From ffc16deac2ce4aa2291e2f259fe4a27e6e65b329 Mon Sep 17 00:00:00 2001 From: Hare Date: Wed, 8 Jul 2026 19:35:46 +0900 Subject: [PATCH] ticket: close decodal profile archive work --- .yoi/tickets/00001KWZ5KERY/item.md | 4 +- .yoi/tickets/00001KWZ5KERY/resolution.md | 36 +++++++++++ .yoi/tickets/00001KWZ5KERY/thread.md | 79 ++++++++++++++++++++++++ 3 files changed, 117 insertions(+), 2 deletions(-) create mode 100644 .yoi/tickets/00001KWZ5KERY/resolution.md diff --git a/.yoi/tickets/00001KWZ5KERY/item.md b/.yoi/tickets/00001KWZ5KERY/item.md index 00fa3cb4..19357d10 100644 --- a/.yoi/tickets/00001KWZ5KERY/item.md +++ b/.yoi/tickets/00001KWZ5KERY/item.md @@ -1,8 +1,8 @@ --- title: 'Migrate Profiles to Decodal ProfileSourceArchive for Runtime launch' -state: 'inprogress' +state: 'closed' created_at: '2026-07-07T20:51:35Z' -updated_at: '2026-07-08T10:33:16Z' +updated_at: '2026-07-08T10:35:38Z' assignee: null queued_by: 'workspace-panel' queued_at: '2026-07-08T09:11:22Z' diff --git a/.yoi/tickets/00001KWZ5KERY/resolution.md b/.yoi/tickets/00001KWZ5KERY/resolution.md new file mode 100644 index 00000000..e6c846bf --- /dev/null +++ b/.yoi/tickets/00001KWZ5KERY/resolution.md @@ -0,0 +1,36 @@ +完了。 + +実装内容: +- Decodal dependency/schema を導入し、builtin role Profiles を Decodal sources として追加した。 +- `ProfileSourceArchive` tar format と `manifest.json` schema を実装した。 +- Backend が profile/role selector から archive を構築し、import closure / source digest / archive digest / size/count/depth/path safety を検証するようにした。 +- Runtime が `ProfileSourceArchiveRef` / config bundle から archive を prefetch / verify / cache / reuse できるようにした。 +- Runtime `ArchiveSourceLoader` は archive-contained Decodal sources のみを解決し、undeclared import / filesystem fallback を拒否するようにした。 +- Worker creation の通常 Browser/Backend path は archive-resolved Decodal config を使い、Runtime-local filesystem profile discovery を使わないようにした。 +- Worker metadata/config bundle summary に archive id / source graph summary を残し、Browser-facing response には archive content / digest / store path / raw path を出さないようにした。 +- Lua filesystem Profile path は compatibility/debug fallback として隔離した。 +- Unknown Builtin / Named selectors と missing entrypoint は default fallback せず typed diagnostics で reject するようにした。 +- Builtin `.dcdl` は real Backend-built `ProfileSourceArchive` + Decodal + `ProfileConfig` path で resolve できるように修正した。 +- Focused worker-runtime / workspace-server tests を追加した。 + +主な commit / merge: +- implementation: `a823d414 feat: add decodal profile archives` +- review fix: `a2833dad fix: reject unknown profile archive selectors` +- merge into orchestration: `0334c572 merge: decodal profile archives` + +Review: +- 初回 external review は request_changes。 +- follow-up external review は approve。merge-blocking issue なし。 + +Final validation in Orchestrator worktree: +- `git diff --check`: pass +- `cargo test -p worker-runtime --features ws-server,fs-store`: pass(41 lib tests + 5 main tests + doc tests) +- `cargo test -p yoi-workspace-server`: pass(69 lib tests + 2 main tests) +- `cargo check -p yoi`: pass +- `cd web/workspace && deno task check`: pass(0 errors / 0 warnings) +- `cd web/workspace && deno task test`: pass(17 tests) +- `yoi ticket doctor`: ok +- `nix build .#yoi --no-link`: pass + +補足: +- implementation branch merge 時に Ticket record conflict が発生したため、Orchestrator 側の Ticket item/thread を保持して解決した。product/code/archive changes は merge 済み。 \ No newline at end of file diff --git a/.yoi/tickets/00001KWZ5KERY/thread.md b/.yoi/tickets/00001KWZ5KERY/thread.md index 5a316d98..af1836e9 100644 --- a/.yoi/tickets/00001KWZ5KERY/thread.md +++ b/.yoi/tickets/00001KWZ5KERY/thread.md @@ -300,3 +300,82 @@ Review evidence: No merge blockers found. --- + + + +## State changed + +Merge/validation acceptance: + +- Follow-up external review approved the implementation after blocker fix。 +- Implementation branch `work/00001KWZ5KERY-decodal-profile-archive` was merged into the orchestration branch with merge commit `0334c572 merge: decodal profile archives`。 +- Ticket-record conflicts during merge were resolved by preserving Orchestrator-side Ticket thread/item records; product/code/archive changes were merged。 +- Final validation in Orchestrator worktree passed: + - `git diff --check`: pass + - `cargo test -p worker-runtime --features ws-server,fs-store`: pass(41 lib tests + 5 main tests + doc tests) + - `cargo test -p yoi-workspace-server`: pass(69 lib tests + 2 main tests) + - `cargo check -p yoi`: pass + - `cd web/workspace && deno task check`: pass(0 errors / 0 warnings) + - `cd web/workspace && deno task test`: pass(17 tests) + - `yoi ticket doctor`: ok + - `nix build .#yoi --no-link`: pass + +Implementation commits: +- `a823d414 feat: add decodal profile archives` +- `a2833dad fix: reject unknown profile archive selectors` + +No merge-blocking issues remain. + +--- + + + +## State changed + +Ticket を closed にしました。 + + +--- + + + +## 完了 + +完了。 + +実装内容: +- Decodal dependency/schema を導入し、builtin role Profiles を Decodal sources として追加した。 +- `ProfileSourceArchive` tar format と `manifest.json` schema を実装した。 +- Backend が profile/role selector から archive を構築し、import closure / source digest / archive digest / size/count/depth/path safety を検証するようにした。 +- Runtime が `ProfileSourceArchiveRef` / config bundle から archive を prefetch / verify / cache / reuse できるようにした。 +- Runtime `ArchiveSourceLoader` は archive-contained Decodal sources のみを解決し、undeclared import / filesystem fallback を拒否するようにした。 +- Worker creation の通常 Browser/Backend path は archive-resolved Decodal config を使い、Runtime-local filesystem profile discovery を使わないようにした。 +- Worker metadata/config bundle summary に archive id / source graph summary を残し、Browser-facing response には archive content / digest / store path / raw path を出さないようにした。 +- Lua filesystem Profile path は compatibility/debug fallback として隔離した。 +- Unknown Builtin / Named selectors と missing entrypoint は default fallback せず typed diagnostics で reject するようにした。 +- Builtin `.dcdl` は real Backend-built `ProfileSourceArchive` + Decodal + `ProfileConfig` path で resolve できるように修正した。 +- Focused worker-runtime / workspace-server tests を追加した。 + +主な commit / merge: +- implementation: `a823d414 feat: add decodal profile archives` +- review fix: `a2833dad fix: reject unknown profile archive selectors` +- merge into orchestration: `0334c572 merge: decodal profile archives` + +Review: +- 初回 external review は request_changes。 +- follow-up external review は approve。merge-blocking issue なし。 + +Final validation in Orchestrator worktree: +- `git diff --check`: pass +- `cargo test -p worker-runtime --features ws-server,fs-store`: pass(41 lib tests + 5 main tests + doc tests) +- `cargo test -p yoi-workspace-server`: pass(69 lib tests + 2 main tests) +- `cargo check -p yoi`: pass +- `cd web/workspace && deno task check`: pass(0 errors / 0 warnings) +- `cd web/workspace && deno task test`: pass(17 tests) +- `yoi ticket doctor`: ok +- `nix build .#yoi --no-link`: pass + +補足: +- implementation branch merge 時に Ticket record conflict が発生したため、Orchestrator 側の Ticket item/thread を保持して解決した。product/code/archive changes は merge 済み。 + +---