From a645ee5b790ae428f10e9871b1cb3474cea0450f Mon Sep 17 00:00:00 2001 From: Hare Date: Wed, 8 Jul 2026 20:55:03 +0900 Subject: [PATCH] ticket: close backend resource fetch work --- .yoi/tickets/00001KX0G06VA/item.md | 4 +- .yoi/tickets/00001KX0G06VA/resolution.md | 36 +++++++++++ .yoi/tickets/00001KX0G06VA/thread.md | 78 ++++++++++++++++++++++++ 3 files changed, 116 insertions(+), 2 deletions(-) create mode 100644 .yoi/tickets/00001KX0G06VA/resolution.md diff --git a/.yoi/tickets/00001KX0G06VA/item.md b/.yoi/tickets/00001KX0G06VA/item.md index 2211e0f6..479a0574 100644 --- a/.yoi/tickets/00001KX0G06VA/item.md +++ b/.yoi/tickets/00001KX0G06VA/item.md @@ -1,8 +1,8 @@ --- title: 'Add Runtime-to-Backend resource fetch REST API' -state: 'inprogress' +state: 'closed' created_at: '2026-07-08T09:12:33Z' -updated_at: '2026-07-08T11:53:02Z' +updated_at: '2026-07-08T11:54:55Z' assignee: null queued_by: 'workspace-panel' queued_at: '2026-07-08T10:04:10Z' diff --git a/.yoi/tickets/00001KX0G06VA/resolution.md b/.yoi/tickets/00001KX0G06VA/resolution.md new file mode 100644 index 00000000..50339b2a --- /dev/null +++ b/.yoi/tickets/00001KX0G06VA/resolution.md @@ -0,0 +1,36 @@ +完了。 + +実装内容: +- Runtime-to-Backend resource fetch contract を追加した。 +- Backend-issued typed resource handle と `BackendResourceBroker` を実装した。 +- v0 resource kind `profile_source_archive` を fetch / verify / cache できるようにした。 +- embedded direct Runtime path と remote Runtime HTTP path が同じ typed resource contract を使うようにした。 +- Runtime は handle に基づき archive を fetch し、digest / max bytes / content type / expiry / binding を検証してから cache/reuse するようにした。 +- Backend broker は stored issued handle を authority として扱い、Runtime-provided mutable handle fields による expiry / max_bytes / policy tampering を fail closed するようにした。 +- Runtime cache は Backend authorization / expiry / binding を bypass しないようにした。 +- Decodal ProfileSourceArchive / config bundle path を resource fetch boundary に接続し、Runtime filesystem discovery を再導入しない形にした。 +- Browser-facing summaries は internal resource handle / endpoint / raw path / archive content/digest/store path / token 等を出さないようにした。 +- Focused worker-runtime / workspace-server tests を追加した。 + +主な commit / merge: +- implementation: `57e96d3b feat: add backend resource fetch api` +- review fix: `e716ae44 fix: harden backend resource handles` +- merge into orchestration: `01f94b75 merge: backend resource fetch api` + +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(45 lib tests + 5 main tests + doc tests) +- `cargo test -p yoi-workspace-server`: pass(77 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 + +補足: +- Reviewer の non-blocking follow-up: stored `audit_correlation_id` echo と Runtime-side response `resource_id` check、remote HTTP response-size limiting のさらなる強化余地。 +- queued `00001KX0DSMPT` については、resource-fetch API shape が確定したため再 routing 可能。 \ No newline at end of file diff --git a/.yoi/tickets/00001KX0G06VA/thread.md b/.yoi/tickets/00001KX0G06VA/thread.md index 3e56961d..689736c6 100644 --- a/.yoi/tickets/00001KX0G06VA/thread.md +++ b/.yoi/tickets/00001KX0G06VA/thread.md @@ -317,3 +317,81 @@ Effect on queued `00001KX0DSMPT`: - blocking concern なし。profile/archive details は redacted summaries behind boundary に留まっており、future settings UI/API が profile metadata を consume しても handles を露出しない設計と互換。 --- + + + +## State changed + +Merge/validation acceptance: + +- Follow-up external review approved the implementation after blocker fix。 +- Implementation branch `work/00001KX0G06VA-resource-fetch-api` was merged into the orchestration branch with merge commit `01f94b75 merge: backend resource fetch api`。 +- Final validation in Orchestrator worktree passed: + - `git diff --check`: pass + - `cargo test -p worker-runtime --features ws-server,fs-store`: pass(45 lib tests + 5 main tests + doc tests) + - `cargo test -p yoi-workspace-server`: pass(77 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: +- `57e96d3b feat: add backend resource fetch api` +- `e716ae44 fix: harden backend resource handles` + +No merge-blocking issues remain. Reviewer noted no blocking concern for queued `00001KX0DSMPT`; the resource-fetch API shape is now stable enough for that follow-up to be re-routed. + +--- + + + +## State changed + +Ticket を closed にしました。 + + +--- + + + +## 完了 + +完了。 + +実装内容: +- Runtime-to-Backend resource fetch contract を追加した。 +- Backend-issued typed resource handle と `BackendResourceBroker` を実装した。 +- v0 resource kind `profile_source_archive` を fetch / verify / cache できるようにした。 +- embedded direct Runtime path と remote Runtime HTTP path が同じ typed resource contract を使うようにした。 +- Runtime は handle に基づき archive を fetch し、digest / max bytes / content type / expiry / binding を検証してから cache/reuse するようにした。 +- Backend broker は stored issued handle を authority として扱い、Runtime-provided mutable handle fields による expiry / max_bytes / policy tampering を fail closed するようにした。 +- Runtime cache は Backend authorization / expiry / binding を bypass しないようにした。 +- Decodal ProfileSourceArchive / config bundle path を resource fetch boundary に接続し、Runtime filesystem discovery を再導入しない形にした。 +- Browser-facing summaries は internal resource handle / endpoint / raw path / archive content/digest/store path / token 等を出さないようにした。 +- Focused worker-runtime / workspace-server tests を追加した。 + +主な commit / merge: +- implementation: `57e96d3b feat: add backend resource fetch api` +- review fix: `e716ae44 fix: harden backend resource handles` +- merge into orchestration: `01f94b75 merge: backend resource fetch api` + +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(45 lib tests + 5 main tests + doc tests) +- `cargo test -p yoi-workspace-server`: pass(77 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 + +補足: +- Reviewer の non-blocking follow-up: stored `audit_correlation_id` echo と Runtime-side response `resource_id` check、remote HTTP response-size limiting のさらなる強化余地。 +- queued `00001KX0DSMPT` については、resource-fetch API shape が確定したため再 routing 可能。 + +---