diff --git a/.yoi/tickets/00001KW76E8EG/item.md b/.yoi/tickets/00001KW76E8EG/item.md index 895e5f52..17f21194 100644 --- a/.yoi/tickets/00001KW76E8EG/item.md +++ b/.yoi/tickets/00001KW76E8EG/item.md @@ -1,8 +1,8 @@ --- title: 'Workspace Backendのembedded Runtimeをfs-store永続化に切り替える' -state: 'inprogress' +state: 'closed' created_at: '2026-06-28T13:34:29Z' -updated_at: '2026-06-28T19:15:12Z' +updated_at: '2026-06-28T19:16:31Z' assignee: null queued_by: 'workspace-panel' queued_at: '2026-06-28T17:12:16Z' diff --git a/.yoi/tickets/00001KW76E8EG/resolution.md b/.yoi/tickets/00001KW76E8EG/resolution.md new file mode 100644 index 00000000..ba1e3849 --- /dev/null +++ b/.yoi/tickets/00001KW76E8EG/resolution.md @@ -0,0 +1,27 @@ +Workspace Backend embedded Runtime を memory-backed から fs-store backed `worker-runtime` へ切り替え、reviewer approval 後に orchestration branch へ merge した。 + +実装内容: +- `workspace-server` で `worker-runtime` の `fs-store` feature を有効化。 +- `ServerConfig` に `embedded_runtime_store_root` を追加。 +- default store root を user data 配下の `workspace-server//embedded-runtime` に設定し、project records / `.yoi/tickets` と混ぜない設計にした。 +- 通常の `WorkspaceApi::new` / `new_with_execution_backend` 経路を fs-store backed `EmbeddedWorkerRuntime::new_fs_store_with_execution_backend(...)` に切り替え。 +- `Runtime::with_fs_store_and_execution_backend(...)` を使う constructor を追加。 +- Backend restart 後に Runtime catalog / Worker snapshot / transcript / ConfigBundle store が復元されることを focused tests で確認。 +- restart 後の live execution handle は connected として偽装せず、stale/unconnected diagnostic/projection として扱う。 +- Browser-facing API に Runtime store root / raw path / execution handle を出さないことを確認。 +- production path が memory-backed runtime に戻らないよう通常 constructor を fs-store backed にした。 + +Integrated commit: +- `736b05c6 feat: persist embedded workspace runtime in fs store` +- merge: `888e7b68 merge: embedded runtime fs-store` + +Validation: +- `cargo fmt --all --check`: success +- `cargo test -p yoi-workspace-server`: success (`38 passed`) +- `cargo test -p worker-runtime --features "ws-server fs-store"`: success +- `cargo check -p yoi`: success +- `git diff --check`: success +- `nix build .#yoi --no-link`: success + +Operational note: +- User instructed not to use `StopPod` for now after repeated stop/hang symptoms. Cleanup will skip role-Pod shutdown and remove only child implementation worktree / branch. \ No newline at end of file diff --git a/.yoi/tickets/00001KW76E8EG/thread.md b/.yoi/tickets/00001KW76E8EG/thread.md index 5efdb3af..a873742b 100644 --- a/.yoi/tickets/00001KW76E8EG/thread.md +++ b/.yoi/tickets/00001KW76E8EG/thread.md @@ -259,3 +259,94 @@ read-only 方針に合わせ、worktree 内のソース/Ticket は変更せず - `nix build .#yoi` は reviewer 側では再実行していません。ただし `Cargo.lock` / `package.nix` の更新と Rust 側の check/test は整合しており、報告されているビルド系コマンドは十分 plausible と判断します。 --- + + + +## Implementation report + +Merge / validation report: + +Implementation branch was integrated into the orchestration branch after reviewer approval. + +Integrated commit: +- `736b05c6 feat: persist embedded workspace runtime in fs store` + +Merge commit: +- `888e7b68 merge: embedded runtime fs-store` + +Validation in orchestration worktree: +- `cargo fmt --all --check`: success +- `cargo test -p yoi-workspace-server`: success (`38 passed`) +- `cargo test -p worker-runtime --features "ws-server fs-store"`: success (`26 passed` + rest server tests) +- `cargo check -p yoi`: success +- `git diff --check`: success +- `nix build .#yoi --no-link`: success + +Outcome: +- Workspace Backend embedded Runtime now uses fs-store backed `worker-runtime` for normal `WorkspaceApi` construction. +- `ServerConfig` carries `embedded_runtime_store_root`, with default user-data/workspace-id local state path rather than project records / `.yoi/tickets`. +- Restart restores catalog / Worker snapshot / ConfigBundle / transcript. +- Restart does not falsely restore live execution handles as connected; stale/unconnected diagnostic/projection remains explicit. +- Browser-facing APIs do not expose Runtime store root / raw path / execution handle. +- Production path no longer uses `new_memory_with_execution_backend`; memory constructor remains for explicit low-level/test use only. + +--- + + + +## State changed + +Reviewer approval後に implementation branch を orchestration branch へ merge し、要求された validation が成功したため done に遷移する。 + +Validation: +- `cargo fmt --all --check`: success +- `cargo test -p yoi-workspace-server`: success (`38 passed`) +- `cargo test -p worker-runtime --features "ws-server fs-store"`: success +- `cargo check -p yoi`: success +- `git diff --check`: success +- `nix build .#yoi --no-link`: success + +--- + + + +## State changed + +Ticket を closed にしました。 + + +--- + + + +## 完了 + +Workspace Backend embedded Runtime を memory-backed から fs-store backed `worker-runtime` へ切り替え、reviewer approval 後に orchestration branch へ merge した。 + +実装内容: +- `workspace-server` で `worker-runtime` の `fs-store` feature を有効化。 +- `ServerConfig` に `embedded_runtime_store_root` を追加。 +- default store root を user data 配下の `workspace-server//embedded-runtime` に設定し、project records / `.yoi/tickets` と混ぜない設計にした。 +- 通常の `WorkspaceApi::new` / `new_with_execution_backend` 経路を fs-store backed `EmbeddedWorkerRuntime::new_fs_store_with_execution_backend(...)` に切り替え。 +- `Runtime::with_fs_store_and_execution_backend(...)` を使う constructor を追加。 +- Backend restart 後に Runtime catalog / Worker snapshot / transcript / ConfigBundle store が復元されることを focused tests で確認。 +- restart 後の live execution handle は connected として偽装せず、stale/unconnected diagnostic/projection として扱う。 +- Browser-facing API に Runtime store root / raw path / execution handle を出さないことを確認。 +- production path が memory-backed runtime に戻らないよう通常 constructor を fs-store backed にした。 + +Integrated commit: +- `736b05c6 feat: persist embedded workspace runtime in fs store` +- merge: `888e7b68 merge: embedded runtime fs-store` + +Validation: +- `cargo fmt --all --check`: success +- `cargo test -p yoi-workspace-server`: success (`38 passed`) +- `cargo test -p worker-runtime --features "ws-server fs-store"`: success +- `cargo check -p yoi`: success +- `git diff --check`: success +- `nix build .#yoi --no-link`: success + +Operational note: +- User instructed not to use `StopPod` for now after repeated stop/hang symptoms. Cleanup will skip role-Pod shutdown and remove only child implementation worktree / branch. + +---