Skip to content

Staging#70

Merged
cole-ramer merged 114 commits into
mainfrom
staging
May 10, 2026
Merged

Staging#70
cole-ramer merged 114 commits into
mainfrom
staging

Conversation

@cole-ramer

Copy link
Copy Markdown
Collaborator

Final merge into main

richardw19 and others added 30 commits April 1, 2026 15:32
…e with AI' option which allows novice users to chat with AI to build a custom Harness.
made ui changes for harness logo, creating harness page, etc.
Add TigerPath to the predefined MCP list (junction-engine /path/mcp scope)
with tiger_junction auth. Fix netid resolution by adding clerk_secret_key
to config, checking Clerk external_accounts (Google, Microsoft) in addition
to email_addresses, and reducing netid cache TTL to 60s. Also fix Convex
API endpoint in scrape-skills.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Fail fast if CLERK_SECRET_KEY is not set, since Princeton netid
resolution depends on the Clerk Backend API.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
feat: add TigerPath MCP and fix netid resolution
- Introduced Arcjet dependencies in package.json and bun.lock.
- Added environment variable ARCJET_KEY to .env.example.
- Implemented rate limiting checks using Arcjet in chat-related functions.
- Created components for displaying usage statistics and integrated them into the chat interface.
- Updated backend to track usage budgets and record usage data.
- Added necessary API endpoints for budget checking and usage recording.
- Added error handling in the UsageDisplay component to notify users when usage data fails to load.
- Updated Arcjet client logging to suppress debug and info logs while retaining error logging.
- Refactored chat rate limit checks for improved readability and graceful degradation.
- Cleaned up unused code in the usage module and clarified comments regarding cost limits and concurrency handling.
- env.ts: ARCJET_KEY is now optional (z.string().min(1).optional())
- arcjet.ts: only initialize the Arcjet client when the key is present; export null otherwise
- chat-ratelimit.ts: skip Arcjet check and allow all requests when aj is null; wrap protect() in try-catch to fail open on errors

Co-authored-by: Ibraheem Amin <DIodide@users.noreply.github.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
process.env.ARCJET_KEY is evaluated at runtime on Workers, not inlined
by Vite at build time. Must be set as a Worker secret binding.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
process.env is empty on Workers — secrets aren't exposed there.
import.meta.env is inlined by Vite at build time from the CD env vars.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
process.env is empty on Workers and import.meta.env only exposes
VITE_-prefixed vars. Use Vite's define option to bake the value
into the server bundle at build time.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
jon3350 and others added 26 commits April 28, 2026 15:41
Truncation retries were bailing out too aggressively on long agentic
runs that legitimately hit the cap several iterations in a row. 20
gives the model more room to make progress while still bounding
worst-case spend.
…arness (#62)

Previously, selecting a workspace with no harness attached rendered the
generic EmptyChat plus a fully interactive ChatInput whose handleSend
silently no-oped — the user could type and click send with no feedback.

Adds a dedicated NoHarnessAttachedState screen that names the workspace
and CTAs into the existing edit-workspace dialog (plumbed through
WorkspaceSidebar via pendingEditWorkspaceId), and disables the chat
textarea + send button with a context-aware placeholder when no harness
is attached (or no workspace is selected).
…ep copy (#64)

* landing: drop integrations strip, generalize hero example, broaden step copy

- Removes the "Connects out of the box" section (IntegrationsStrip + the
  integrations / modelLine constants that fed it). The Princeton-branded
  product names lived almost entirely in this strip.
- Rewrites the hero MockChatPanel from a Princeton coursework example
  (TigerPath / PrincetonCourses tool calls) to a generic issue-triage
  agent wired to GitHub + Linear MCPs, with a matching slash-command
  hint. Reads as a recognizable workflow for any team.
- Replaces the step 02 "Connect" copy that referenced tiger_junction
  token wrangling with provider-agnostic language about encrypted token
  storage and on-demand refresh.

* landing: scrub remaining Princeton references

- Replace "Princeton-ready" hero check-row with "Live sandbox built in".
- Drop "plus four built for Princeton students" from primaryFeatures.
- Replace "course planning" rotating word with "issue triage".
- Update meta description ("coursework" → "ops").
- MockMcpPopover: swap TigerJunction (Princeton-badged) for Linear.
- MockSlashPalette: swap tigerjunction_search_courses for slack_send_message.
- Drop unused GraduationCap icon import.
… warn users if they make duplicate names, onboarding page first harness,
removed sandboxes, patched emphermial sandboxes
@cole-ramer cole-ramer merged commit ed06899 into main May 10, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants