ticket: close decodal profile archive work

This commit is contained in:
Keisuke Hirata 2026-07-08 19:35:46 +09:00
parent 0334c5725e
commit ffc16deac2
No known key found for this signature in database
3 changed files with 117 additions and 2 deletions

View File

@ -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'

View File

@ -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`: pass41 lib tests + 5 main tests + doc tests
- `cargo test -p yoi-workspace-server`: pass69 lib tests + 2 main tests
- `cargo check -p yoi`: pass
- `cd web/workspace && deno task check`: pass0 errors / 0 warnings
- `cd web/workspace && deno task test`: pass17 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 済み。

View File

@ -300,3 +300,82 @@ Review evidence:
No merge blockers found.
---
<!-- event: state_changed author: orchestrator at: 2026-07-08T10:35:19Z from: inprogress to: done reason: merged_validated_review_approved field: state -->
## 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`: pass41 lib tests + 5 main tests + doc tests
- `cargo test -p yoi-workspace-server`: pass69 lib tests + 2 main tests
- `cargo check -p yoi`: pass
- `cd web/workspace && deno task check`: pass0 errors / 0 warnings
- `cd web/workspace && deno task test`: pass17 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.
---
<!-- event: state_changed author: hare at: 2026-07-08T10:35:38Z from: done to: closed reason: closed field: state -->
## State changed
Ticket を closed にしました。
---
<!-- event: close author: hare at: 2026-07-08T10:35:38Z status: 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`: pass41 lib tests + 5 main tests + doc tests
- `cargo test -p yoi-workspace-server`: pass69 lib tests + 2 main tests
- `cargo check -p yoi`: pass
- `cd web/workspace && deno task check`: pass0 errors / 0 warnings
- `cd web/workspace && deno task test`: pass17 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 済み。
---