Feat/final polish#67
Conversation
… warn users if they make duplicate names, onboarding page first harness,
|
@claude review this |
|
Claude finished @jon3350's task in 3m 17s —— View job PR Review: Feat/final polish
SummaryThis PR adds several "polish" features across the stack: per-user sandbox cap enforcement (frontend + Convex + FastAPI rollback), chat input character counter, harness status editing, duplicate name warnings, and improved empty states. The backend architecture is solid. A few issues worth addressing before merging. IssuesMedium — Dead variable in
This is a copy-paste artifact from Medium — FastAPI In instead of the plain message. Parsing the JSON would surface a clean error: const body = await res.json().catch(() => ({ detail: "" }));
throw new Error(body.detail || `Sandbox API error ${res.status}`);Minor NitsCommented-out dead code in Extra blank line in
Potential Race Condition (low risk, known pattern)The sandbox cap check in Convex ( Positive Highlights
|
|
@claude review this |
|
Claude finished @jon3350's task in 2m 29s —— View job PR Review: Feat/final polish
SummaryThis is a re-review of the same PR. The two medium issues from the previous review are now fixed. The remaining observations are minor. This is clean, shippable code. Previous Issues — Now Fixed ✅✅ Dead ✅ FastAPI error detail parsed correctly ( ✅ All commented-out duplicate/draft dead code removed New ObservationsMinor — const { data: sandboxes } = useQuery(convexQuery(api.sandboxes.list, {}));
const sandboxCount = sandboxes?.length ?? 0;
const atSandboxLimit = sandboxCount >= MAX_SANDBOXES_PER_USER;During the brief window when Minor — const duplicateSandboxNames = (() => {
const counts = new Map<string, number>();
...
})();This is fine at today's cap of 5, but it could be wrapped in Minor — status warning banners read persisted state, not local edits Nit — no Positive Highlights
|
No description provided.