Changelog
- fe358fe Reapply "feat: workspace URL refactor v2 + rollback-safe compat layer (#1138)" (#1139) (#1141)
- 9b94914 Revert "feat: workspace URL refactor + slug-first API identity (#1131)" (#1137)
- b30fd98 Revert "feat: workspace URL refactor v2 + rollback-safe compat layer (#1138)" (#1139)
- c0b4e7e feat(agent): add Cursor Agent CLI runtime support (#1057)
- cd50c31 feat(agent): add GitHub Copilot CLI backend (#1157)
- 8c518c3 feat(agent): add Pi agent runtime support (#1064)
- efb0c1d feat(agent): use official pi.dev wordmark for Pi runtime icon (#1153)
- fa804c2 feat(web): add Desktop download entry to landing page (#1093)
- 59ace95 feat: workspace URL refactor + slug-first API identity (#1131)
- 75d12c2 feat: workspace URL refactor v2 + rollback-safe compat layer (#1138)
- 7395b51 fix(agent): apply filterCustomArgs to hermes backend for parity (#1122)
- 9a97ee1 fix(agent): resume codex thread across tasks on the same issue (#1166)
- ac8b08e fix(agent): surface codex turn errors instead of reporting empty output (#1156)
- f3d20fd fix(auth): 'Sign in as a different user' performs full logout (#1179)
- f029eb0 fix(auth): retain stored token on non-401 errors in initialize (#1169)
- 48a8a27 fix(copilot): use GitHub mark (Invertocat) for runtime icon
- 94c9d28 fix(core): collapse workspace rehydrate side effect into setCurrentWorkspace (#1164)
- e3a1b95 fix(desktop): allow dev and production instances to coexist (#1155)
- b5c6a9b fix(desktop): reserve traffic-light space and surface trigger when sidebar is hidden (#1144)
- fe13259 fix(desktop): validate persisted tab slugs against current workspace list (#1178)
- 3c46c5b fix(editor): add dirty check and allow clearing description (#1132)
- bfe407a fix(editor): include done issues in @ mention search (#1172)
- 1b30ad0 fix(email): HTML-escape workspace/inviter names in invitation email (#1126)
- a71aa6c fix(email): sanitize invitation Subject and lock behavior with tests (#1140)
- 441554a fix(inbox): read workspace ID from request context (#1142)
- 6d6bc5a fix(routing): rename /new-workspace to /workspaces/new + extend reserved slug list (#1188)
- f8c6dd5 fix(security): bind URL issueId to workspace on four issue-scoped daemon.go handlers (#1145)
- 93cf95f fix(security): enforce workspace access on GetIssueGCCheck (#1121)
- f0f3cb5 fix(server): resolve X-Workspace-Slug in middleware-less handlers (#1165)
- d12d690 fix(usage): bucket workspace usage by task_usage.created_at, not enqueue time (#1176)
- 0fdd005 fix(views): make autopilot run history rows fully clickable (#1171)
- a36252c refactor(runtime): derive runtime usage from task_usage only (#1167)
- c38af55 refactor(ui): comprehensive UI craft review — sidebar, headers, detail panels (#1087)
- 6a2432b refactor: remove onboarding flow, fix daemon zero-workspace bootstrap (#1175)
- ce52374 test(daemon): add cross-workspace regression for GetIssueGCCheck (#1143)