diff --git a/.yoi/tickets/00001KWWE8E04/item.md b/.yoi/tickets/00001KWWE8E04/item.md index f044f2f9..93e402bf 100644 --- a/.yoi/tickets/00001KWWE8E04/item.md +++ b/.yoi/tickets/00001KWWE8E04/item.md @@ -1,8 +1,8 @@ --- title: 'Scope Workspace Browser routes and API by workspace id' -state: 'inprogress' +state: 'closed' created_at: '2026-07-06T19:25:08Z' -updated_at: '2026-07-06T20:52:40Z' +updated_at: '2026-07-06T20:53:44Z' assignee: null queued_by: 'workspace-panel' queued_at: '2026-07-06T19:53:14Z' diff --git a/.yoi/tickets/00001KWWE8E04/resolution.md b/.yoi/tickets/00001KWWE8E04/resolution.md new file mode 100644 index 00000000..e203ce9f --- /dev/null +++ b/.yoi/tickets/00001KWWE8E04/resolution.md @@ -0,0 +1,32 @@ +完了。 + +実装内容: +- Workspace Browser の canonical UI routes を `/w//...` に移行した。 +- Browser-facing Workspace API に `/api/w//...` scoped variants を追加した。 +- Backend current immutable `workspace_id` と path `workspace-id` を照合し、mismatch は typed sanitized `workspace_id_mismatch` diagnostic / 404 として fail closed するようにした。 +- Frontend の workspace-scoped data calls は `/api/w//...` helper 経由に変更した。 +- Sidebar / settings / repository / objectives / worker console links は workspace id を含む scoped links を使うようにした。 +- Runtime `/v1/...` API surface は変更しなかった。 +- Unscoped browser routes は `/api/workspace` bootstrap から scoped `/w//...` へ redirect する thin shim とし、通常の unscoped data route / duplicated co-canonical page surface を廃止した。 +- Backend SPA fallback でも unscoped Browser routes を scoped route に redirect するようにした。 +- Focused backend/web tests を追加/更新した。 + +主な commit / merge: +- implementation: `f6ad9cfc feat: scope workspace routes by id` +- review fix: `71340b89 fix: redirect unscoped workspace routes` +- merge into orchestration: `13e756e7 merge: workspace id route scoping` + +Review: +- 初回 external review は request_changes。 +- follow-up external review は approve。merge-blocking issue なし。 + +Final validation in Orchestrator worktree: +- `git diff --check`: pass +- `cd web/workspace && deno task check`: pass(0 errors / 0 warnings) +- `cd web/workspace && deno task test`: pass(17 tests) +- `cargo test -p yoi-workspace-server`: pass(65 lib tests + 2 main tests) +- `cargo check -p yoi`: pass +- `yoi ticket doctor`: ok + +未実行: +- `nix build .#yoi --no-link` は Cargo.lock / dependency / resource packaging / Nix 変更ではないため未実行。 \ No newline at end of file diff --git a/.yoi/tickets/00001KWWE8E04/thread.md b/.yoi/tickets/00001KWWE8E04/thread.md index e510d2a4..857cf929 100644 --- a/.yoi/tickets/00001KWWE8E04/thread.md +++ b/.yoi/tickets/00001KWWE8E04/thread.md @@ -269,3 +269,76 @@ Validation note: No merge-blocking issues found. --- + + + +## State changed + +Merge/validation acceptance: + +- Follow-up external review approved the implementation after blocker fix。 +- Implementation branch `work/00001KWWE8E04-workspace-id-routes` was merged into the orchestration branch with merge commit `13e756e7 merge: workspace id route scoping`。 +- Final validation in Orchestrator worktree passed: + - `git diff --check`: pass + - `cd web/workspace && deno task check`: pass(0 errors / 0 warnings) + - `cd web/workspace && deno task test`: pass(17 tests) + - `cargo test -p yoi-workspace-server`: pass(65 lib tests + 2 main tests) + - `cargo check -p yoi`: pass + - `yoi ticket doctor`: ok +- `nix build .#yoi --no-link` は Cargo.lock / dependency / resource packaging / Nix 変更ではないため未実行。 + +Implementation commits: +- `f6ad9cfc feat: scope workspace routes by id` +- `71340b89 fix: redirect unscoped workspace routes` + +No merge-blocking issues remain. + +--- + + + +## State changed + +Ticket を closed にしました。 + + +--- + + + +## 完了 + +完了。 + +実装内容: +- Workspace Browser の canonical UI routes を `/w//...` に移行した。 +- Browser-facing Workspace API に `/api/w//...` scoped variants を追加した。 +- Backend current immutable `workspace_id` と path `workspace-id` を照合し、mismatch は typed sanitized `workspace_id_mismatch` diagnostic / 404 として fail closed するようにした。 +- Frontend の workspace-scoped data calls は `/api/w//...` helper 経由に変更した。 +- Sidebar / settings / repository / objectives / worker console links は workspace id を含む scoped links を使うようにした。 +- Runtime `/v1/...` API surface は変更しなかった。 +- Unscoped browser routes は `/api/workspace` bootstrap から scoped `/w//...` へ redirect する thin shim とし、通常の unscoped data route / duplicated co-canonical page surface を廃止した。 +- Backend SPA fallback でも unscoped Browser routes を scoped route に redirect するようにした。 +- Focused backend/web tests を追加/更新した。 + +主な commit / merge: +- implementation: `f6ad9cfc feat: scope workspace routes by id` +- review fix: `71340b89 fix: redirect unscoped workspace routes` +- merge into orchestration: `13e756e7 merge: workspace id route scoping` + +Review: +- 初回 external review は request_changes。 +- follow-up external review は approve。merge-blocking issue なし。 + +Final validation in Orchestrator worktree: +- `git diff --check`: pass +- `cd web/workspace && deno task check`: pass(0 errors / 0 warnings) +- `cd web/workspace && deno task test`: pass(17 tests) +- `cargo test -p yoi-workspace-server`: pass(65 lib tests + 2 main tests) +- `cargo check -p yoi`: pass +- `yoi ticket doctor`: ok + +未実行: +- `nix build .#yoi --no-link` は Cargo.lock / dependency / resource packaging / Nix 変更ではないため未実行。 + +---