Repository navigation
Make the editor feel like a real IDE: live errors, shortcuts, safer saving, and a cleaner green design - #28
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… file Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…their account and order Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: a33c2316-0128-44f3-a5c1-47bb3df3bf53) |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 66ddf3ccf7
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
…replaying a checkpoint The workspace API now refuses a request whose bearer token verifies to a different account than the cookie session, so a save queued under one account can't land in another after a sign-in switch. Device checkpoints now record a fingerprint of the account snapshot (files, names, text, syntax) instead of its newest edit time, so a deletion, rename or syntax change made on another device is never overwritten by replaying stale local edits. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: 76ee5177-60bb-4341-bc37-80056c0f0421) |
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 07c02aa3ee
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
…t other devices' clocks The checkpoint's account fingerprint now covers runtime data files, so a data file changed on another device is never overwritten by replaying stale local edits. Replay now depends only on that fingerprint, so a device whose clock ran ahead can no longer make an unsynced local deletion come back. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: 9b95fd7b-e33a-4391-b697-03ea83d6708e) |
|
@codex review |
|
Codex Review: Didn't find any major issues. Bravo. Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
The editor didn't feel like a real IDE yet. Errors only appeared after pressing Run, there were no keyboard shortcuts, switching files threw away undo and scroll position, the panels couldn't be reopened or hidden, phone and tablet layouts cut off output and settings, and autosave could wait minutes while you kept typing. The look was also two products in one: Apple blue in dark mode, forest green in light.
This makes the workspace behave and look like VS Code / JetBrains / Cursor, sized for students:
Out of scope: two tabs on the same account still overwrite each other on the server (whole-workspace last write wins); fixing that needs server-side revisions.
Proof:
tsc,eslint --max-warnings 0andvitest(288 passed) are clean; every change was checked in Chromium and WebKit with Playwright at desktop, half-width, tablet and phone sizes in both themes (screenshots per round), with regression tests that fail without each storage fix.Council review
UX pass — Rounds: 9
Visual design pass — Rounds: 6
(Opus joined from UX round 2, as requested. The design rounds scored the indigo version; the owner then chose the original green accent, which was re-checked for contrast and in the browser.)
Codex review follow-ups (fixed with regression tests): the server rejects a save whose sign-in belongs to a different account than the session; recovered device edits replay only when a fingerprint of the whole account snapshot (files, names, text, runtime data files, syntax) is unchanged. Follow-up, not in this PR: separate unsynced checkpoints per tab for two tabs on one account.
Reviewed with sol-loop: 3 rounds with gpt-6.1-sol on xhigh, plus 4 rounds on the Codex follow-ups. Sol verdict: approved
Generated by
claude-opus-5-5using theClaude Codeharness.🤖 Generated with Claude Code
Note
Medium Risk
Large surface-area UX and persistence changes plus cloud save/checkpoint and session–bearer matching on the workspace API; auth tightening is intentional but save/sync paths deserve careful regression testing.
Overview
Turns the
/appworkspace into an IDE-style workbench: Output / Problems bottom panel (compile diagnostics and runtime errors link into the editor), a status bar (problem counts, save state, line/column, exam syntax), and global shortcuts plus Monaco command-palette actions for run, save, toggling explorer/panel, settings, and new file/folder.Editor and explorer behavior changes include per-document Monaco models (
keepCurrentModel), an editor API for focus/reveal/go-to-line, explorer/panel visibility persisted in localStorage, IDE-style tabs (keyboard + middle-click close), explorer tree focus/keyboard selection, and an empty-state start page with shortcut hints. Run now switches to Problems on compile failure; touch layouts get panel tabs, taller output on tablets, and refined breakpoints.Saving and auth: workspace API requests reject when a Bearer token’s user id doesn’t match the Clerk session (blocks queued saves after account switch). The session hook wiring adds device checkpoints, sync notices, and richer save indicators (including “saved on device, syncing”).
Design/copy: shared
ui-*primitives, settings as preference rows, sentence-case dialogs (“New file”, “Rename”, etc.), PseudoEditor as default syntax colour scheme, refreshed Monaco/workbench colours, flowchart styling, and small public-site CTA/header tweaks. DiagnosticsPanel is removed in favour of ProblemsList; Dialog backdrop clicks ignore drags from inside the card; PostHog drops benign MonacoCanceledexceptions.Reviewed by Cursor Bugbot for commit f07bccb. Bugbot is set up for automated code reviews on this repo. Configure here.