ticket: add workspace follow-up items
This commit is contained in:
parent
ef12c6b185
commit
6e95e497f7
0
.yoi/tickets/00001KVMT2J25/artifacts/.gitkeep
Normal file
0
.yoi/tickets/00001KVMT2J25/artifacts/.gitkeep
Normal file
118
.yoi/tickets/00001KVMT2J25/item.md
Normal file
118
.yoi/tickets/00001KVMT2J25/item.md
Normal file
|
|
@ -0,0 +1,118 @@
|
|||
---
|
||||
title: 'Pod protocol: in-flight LLM response reconnect snapshot should include unfinished blocks'
|
||||
state: 'ready'
|
||||
created_at: '2026-06-21T10:02:01Z'
|
||||
updated_at: '2026-06-21T10:23:54Z'
|
||||
assignee: null
|
||||
readiness: 'implementation_ready'
|
||||
risk_flags: ['protocol', 'session-history', 'persistence', 'tui-reconnect', 'stream-state']
|
||||
---
|
||||
|
||||
## User claims / request snapshot
|
||||
|
||||
- プロトコル実装の問題として、LLM 応答中に接続すると、まだ完了していない block の途中内容が欠落する。
|
||||
- 応答完了後に接続し直すと見える。
|
||||
- 対象 workspace は `yoi`。Panel handoff の orchestrator Pod は `yoi-orchestrator`。
|
||||
|
||||
## Confirmed facts / sources
|
||||
|
||||
- 既存 Ticket 確認:
|
||||
- active duplicate は見当たらない。
|
||||
- `00001KSVP63K8` は in-flight TUI composer injection で、実行中 turn への入力注入の設計 Ticket。今回の「途中出力の late attach / reconnect 表示欠落」とは別件。
|
||||
- `crates/protocol/src/lib.rs`
|
||||
- `Event::Snapshot` は接続開始時に一度送られ、`entries` は subscribe 時点の session-log mirror。
|
||||
- コメント上、Snapshot 後の live 更新は `TextDelta` / `ToolCall*` / `ToolResult` 等で流れ、generic な committed entry broadcast はない。
|
||||
- `crates/pod/src/segment_log_sink.rs`
|
||||
- `SegmentLogSink::subscribe_with_snapshot()` は committed `LogEntry` の prefix と live receiver を gap-free に分ける設計。
|
||||
- `AssistantItem` / `ToolResult` などは mirror には反映されるが live broadcast されず、live 表示は streaming events に依存する。
|
||||
- `crates/pod/src/controller.rs`
|
||||
- text / thinking / tool-call args の途中 delta は `Event::TextDelta` / `ThinkingDelta` / `ToolCallArgsDelta` として direct broadcast される。
|
||||
- `crates/tui/src/app.rs`
|
||||
- Snapshot は `restore_snapshot(&entries, greeting)` で session-log entries から復元される。
|
||||
- live delta は TUI 側で block に追記される。
|
||||
- 以上から、コード上も「接続前に流れたがまだ committed history になっていない途中 delta」を late subscriber が復元する lane が見当たらない。
|
||||
|
||||
## Unverified hypotheses
|
||||
|
||||
- 実際の欠落原因は、未完了 block の accumulator が `Event::Snapshot` に含まれず、live subscriber は subscribe 後の delta しか受け取れないことだと思われる。
|
||||
- 応答完了後に再接続すると見えるのは、finalized assistant/tool history が session log mirror に committed され、Snapshot entries から復元できるためだと思われる。
|
||||
- 修正は、protocol-level に in-flight block state を snapshot へ含める、または bounded replay/sequence 付き live event buffer を導入する形が自然そう。
|
||||
|
||||
## Undecided points / open questions
|
||||
|
||||
- blocking な未決定点はなし。
|
||||
- 実装戦術として、`Event::Snapshot` に structured `in_flight` state を追加するか、sequence 付き replay buffer を使うかは Coder がコード調査して選んでよい。
|
||||
- protocol crate の wire shape 変更なので、既存 serde roundtrip / older snapshot fallback をどこまで持つかは実装時に最小限で判断する。不要な後方互換は作らない。
|
||||
|
||||
## Background
|
||||
|
||||
LLM の応答中に Console / TUI / attach client が接続した場合、ユーザーはその時点までに出ている assistant text、thinking、tool-call args などの unfinished block を見られる必要がある。現在の構造では、接続時 Snapshot は committed session-log entries だけを seed し、途中 delta は live broadcast のみなので、接続前に流れた unfinished delta が見えない可能性がある。
|
||||
|
||||
## Requirements
|
||||
|
||||
- LLM 応答中に新しく接続・再接続した client が、接続時点までに蓄積済みの unfinished block 内容を表示できるようにする。
|
||||
- 対象 block は少なくとも以下を含む:
|
||||
- assistant text streaming block
|
||||
- thinking/reasoning streaming block
|
||||
- tool-call arguments streaming block
|
||||
- Snapshot と Snapshot 後の live events の境界で、欠落も重複も起こさない。
|
||||
- 応答完了後の reconnect では、従来通り finalized session-log から完全な表示を復元できること。
|
||||
- protocol-level の整合性として直す。TUI だけの偶然の workaround にしない。
|
||||
- 未完了 model output を、finalized assistant history として誤って永続化しない。
|
||||
- prompt/history/context に hidden injection しない。
|
||||
|
||||
## Acceptance criteria
|
||||
|
||||
- LLM 応答中に client が接続した場合、接続前に生成済みの unfinished text / thinking / tool-call args が表示される。
|
||||
- 接続後に続く delta は同じ block に継続して追記され、途中内容の欠落・二重表示がない。
|
||||
- Run 完了後に接続し直しても、finalized transcript は従来通り Snapshot entries から復元される。
|
||||
- Snapshot/live 境界の gap-free / duplicate-free 性をテストで確認する。
|
||||
- TUI の `Event::Snapshot` 処理と live delta 処理の regression がない。
|
||||
- focused validation として、少なくとも protocol/pod/TUI の関連 test または unit test が追加・更新される。
|
||||
|
||||
## Binding decisions / invariants
|
||||
|
||||
- 「応答完了後に接続し直せば見える」は workaround であり、正しい完了条件ではない。
|
||||
- Late attach は、実行中 Pod の現在表示可能な stream state を復元できるべき。
|
||||
- Committed session-log の gap-free semantics は壊さない。
|
||||
- Unfinished block は finalized assistant history と混同しない。
|
||||
- Provider stream 自体を巻き戻したり mutate したりしない。
|
||||
- Hidden context/history injection はしない。
|
||||
|
||||
## Implementation latitude
|
||||
|
||||
- `Event::Snapshot` に in-flight block state を追加する案、または bounded/sequence 付き stream replay buffer を導入する案のどちらでもよい。
|
||||
- Controller / Pod 側で text/thinking/tool-call args の current accumulator を保持する設計にしてよい。
|
||||
- TUI 側は Snapshot から unfinished block を seed し、その後の live delta を同一 block に継続適用できればよい。
|
||||
- wire compatibility は必要最小限。長期保守・型安全性を優先する。
|
||||
|
||||
## Readiness
|
||||
|
||||
- readiness: implementation_ready
|
||||
- risk_flags: [protocol, session-history, persistence, tui-reconnect, stream-state]
|
||||
|
||||
## Escalation conditions
|
||||
|
||||
- unfinished output をどの durable history item として永続化するかの設計変更が必要になった場合。
|
||||
- Snapshot に含める in-flight state が大きくなり、boundedness / memory usage / truncation policy が必要になった場合。
|
||||
- protocol public surface として互換方針を決める必要が出た場合。
|
||||
- TUI だけではなく Dashboard / Pod list preview など複数 surface の UX 方針に広がる場合。
|
||||
|
||||
## Validation
|
||||
|
||||
- `cargo test -p protocol` の relevant roundtrip / serialization tests。
|
||||
- `cargo test -p pod` の subscriber/snapshot/live-stream focused tests。
|
||||
- `cargo test -p tui` または targeted app snapshot/live delta tests。
|
||||
- `cargo fmt --check`
|
||||
- 必要なら `cargo check -p pod -p tui -p protocol`
|
||||
|
||||
## Related work
|
||||
|
||||
- Related but not duplicate:
|
||||
- `00001KSVP63K8` — Support immediate in-flight TUI composer injection
|
||||
- Relevant files:
|
||||
- `crates/protocol/src/lib.rs`
|
||||
- `crates/pod/src/segment_log_sink.rs`
|
||||
- `crates/pod/src/controller.rs`
|
||||
- `crates/pod/src/pod.rs`
|
||||
- `crates/tui/src/app.rs`
|
||||
105
.yoi/tickets/00001KVMT2J25/thread.md
Normal file
105
.yoi/tickets/00001KVMT2J25/thread.md
Normal file
|
|
@ -0,0 +1,105 @@
|
|||
<!-- event: create author: LocalTicketBackend at: 2026-06-21T10:02:01Z -->
|
||||
|
||||
## 作成
|
||||
|
||||
LocalTicketBackend によって作成されました。
|
||||
|
||||
---
|
||||
|
||||
<!-- event: state_changed author: workspace-panel at: 2026-06-21T10:07:42Z from: ready to: planning reason: panel_return_to_planning field: state -->
|
||||
|
||||
## State changed
|
||||
|
||||
Panel returned ready Ticket 00001KVMT2J25 to planning for requirements sync. This is not Queue routing and must not start implementation.
|
||||
|
||||
## User refinement instruction
|
||||
|
||||
今あるフロントSPAをnodeからdenoにしたい。
|
||||
https://hareworks.net/blog/tech/sveltekit-with-deno
|
||||
|
||||
|
||||
---
|
||||
|
||||
<!-- event: comment author: ticket-intake at: 2026-06-21T10:09:52Z -->
|
||||
|
||||
## Comment
|
||||
|
||||
## Intake requirements sync result
|
||||
|
||||
対象 Ticket `00001KVMT2J25` の item/thread/artifacts と関連 Ticket/source を確認した結果、今回の refinement instruction はこの Ticket の既存スコープとは一致しないため、`00001KVMT2J25` を ready に戻したり queue routing したりせず、requirements sync の結果としてここに記録する。
|
||||
|
||||
### User claims / request snapshot
|
||||
|
||||
- ユーザーは「今あるフロントSPAを node から deno にしたい」と述べた。
|
||||
- 参考 URL として `https://hareworks.net/blog/tech/sveltekit-with-deno` が提示された。
|
||||
|
||||
### Confirmed facts / sources
|
||||
|
||||
- `00001KVMT2J25` の item は「Attach mid-stream TUI client without losing in-flight content」で、protocol / pod / TUI reconnect / stream-state の実装 Ticket である。
|
||||
- `00001KVMT2J25` の thread には、Panel が ready から planning に戻した理由として上記 frontend/Deno refinement instruction が記録されている。
|
||||
- 関連する closed Ticket `00001KVMFFYVX` は Workspace web control plane bootstrap で、SvelteKit static SPA skeleton を `web/workspace` に追加した作業である。
|
||||
- `web/workspace/README.md` は現在の package manager を npm とし、`npm install`, `npm run check`, `npm run build` を案内している。
|
||||
- `web/workspace/package.json` は SvelteKit static SPA の scripts / devDependencies を持ち、`package-lock.json` が存在する。
|
||||
- `web/workspace/svelte.config.js` は `@sveltejs/adapter-static` を使い、`build/` に static output を出す設定である。
|
||||
- `package.nix` は `web/workspace/node_modules`, `.svelte-kit`, `build` を source filter から除外している。
|
||||
- `devshell.nix` には `deno` が含まれている。
|
||||
|
||||
### Intake conclusion
|
||||
|
||||
- この refinement は `00001KVMT2J25` の late-attach / stream-state work item とは別目的であり、同一 Ticket の requirements / acceptance criteria に混ぜると work item が破綻する。
|
||||
- 既存の frontend bootstrap Ticket `00001KVMFFYVX` は closed であり、現在の npm 採用は当時の bootstrap decision / implementation detail として記録されている。Deno 移行は closed Ticket の再オープンではなく、別の concrete follow-up Ticket として扱うのが妥当。
|
||||
- 現時点では、ユーザーが「新規 Ticket を作成して」と明示していないため、duplicate/new Ticket は作成しない。
|
||||
|
||||
### Candidate follow-up draft if user approves new Ticket
|
||||
|
||||
Title: Workspace web SPA の frontend tooling を npm/Node から Deno に移行する
|
||||
|
||||
Readiness: implementation_ready
|
||||
Risk flags: [frontend-tooling, packaging, nix-source-filter, validation]
|
||||
|
||||
Requirements:
|
||||
- `web/workspace` の開発・検証・build 手順を npm/Node 前提から Deno 前提へ移行する。
|
||||
- SvelteKit static SPA であること、Rust backend が business/API authority を持つこと、static output が `web/workspace/build/` に出ることは維持する。
|
||||
- `web/workspace/README.md` の package manager / command guidance を Deno 前提に更新する。
|
||||
- lockfile と依存関係管理を Deno 前提で明確にし、古い npm lockfile/source-of-truth が残る場合は理由を明示する。
|
||||
- generated artifacts (`node_modules`, `.svelte-kit`, `build` など) が git/Nix package source に混入しない状態を維持する。
|
||||
|
||||
Acceptance criteria:
|
||||
- `web/workspace` の check/build が Deno command で成功する。
|
||||
- README と project files から、通常の frontend 作業者が Deno で install/check/build できることが分かる。
|
||||
- npm lockfile / npm scripts / Node-only guidance が不要なら削除され、必要なら Deno 移行後も残す理由が code/docs に明確である。
|
||||
- `package.nix` / devshell / repository hygiene が Deno 移行後の generated artifacts と矛盾しない。
|
||||
- 既存の Rust backend static serving assumptions と `.yoi` records as authority の境界を変えない。
|
||||
|
||||
Implementation latitude:
|
||||
- Deno project layout は `deno.json` / `deno.lock` / `deno task` を使う形でよい。
|
||||
- SvelteKit/Vite を Deno の npm compatibility で動かすか、最小限の package metadata を残すかは実装時に選んでよい。ただし source-of-truth と command guidance は曖昧にしない。
|
||||
|
||||
Validation:
|
||||
- `cd web/workspace && deno task check`
|
||||
- `cd web/workspace && deno task build`
|
||||
- `git diff --check`
|
||||
- packaging/source-filter を変更する場合は `nix build .#yoi --no-link` または Orchestrator が妥当と判断する同等確認
|
||||
|
||||
Next routing recommendation:
|
||||
- `00001KVMT2J25` はこの refinement では implementation_ready に戻さない。
|
||||
- ユーザーが Deno 移行の新規 Ticket 作成を承認した場合、上記 draft を別 Ticket として materialize する。
|
||||
- ユーザーがあくまで `00001KVMT2J25` の差し替えを望む場合は、既存 Ticket を repurpose するのではなく、Orchestrator/maintainer に cancel/close/replacement 方針の判断を戻す。
|
||||
|
||||
---
|
||||
|
||||
<!-- event: intake_summary author: ticket-intake at: 2026-06-21T10:23:54Z -->
|
||||
|
||||
## Intake summary
|
||||
|
||||
ユーザーから、Deno 移行 refinement は `00001KVMT2J25` に誤って付いたものであり、`00001KVMT2J25` は ready に戻してよいとの明示指示があった。再確認したところ、`00001KVMT2J25` の body は late attach / in-flight stream snapshot の concrete work item で、readiness は `implementation_ready`、blocking open question はない。Deno 移行は別 Ticket `00001KVMV03QY` として作成済みであり、本 Ticket の要件には混ぜない。
|
||||
|
||||
---
|
||||
|
||||
<!-- event: state_changed author: ticket-intake at: 2026-06-21T10:23:54Z from: planning to: ready reason: requirements_sync_resolved field: state -->
|
||||
|
||||
## State changed
|
||||
|
||||
Deno 移行 refinement は誤付与として分離済み。`00001KVMT2J25` は元の protocol reconnect / unfinished block snapshot Ticket として Orchestrator routing 可能な ready 状態へ戻す。queue routing や implementation start は行わない。
|
||||
|
||||
---
|
||||
0
.yoi/tickets/00001KVMV03QY/artifacts/.gitkeep
Normal file
0
.yoi/tickets/00001KVMV03QY/artifacts/.gitkeep
Normal file
127
.yoi/tickets/00001KVMV03QY/item.md
Normal file
127
.yoi/tickets/00001KVMV03QY/item.md
Normal file
|
|
@ -0,0 +1,127 @@
|
|||
---
|
||||
title: 'Workspace web SPA の frontend tooling を npm/Node から Deno に移行する'
|
||||
state: 'ready'
|
||||
created_at: '2026-06-21T10:18:10Z'
|
||||
updated_at: '2026-06-21T10:18:10Z'
|
||||
assignee: null
|
||||
readiness: 'implementation_ready'
|
||||
risk_flags: ['frontend-tooling', 'packaging', 'nix-source-filter', 'validation']
|
||||
---
|
||||
|
||||
## User claims / request snapshot
|
||||
|
||||
- ユーザーは「今あるフロントSPAを node から deno にしたい」と述べた。
|
||||
- 参考 URL として `https://hareworks.net/blog/tech/sveltekit-with-deno` が提示された。
|
||||
- この依頼は、Panel から planning に戻された `00001KVMT2J25` の requirements sync 中に追加された。
|
||||
|
||||
## Confirmed facts / sources
|
||||
|
||||
- `00001KVMT2J25` は protocol / pod / TUI reconnect / stream-state の Ticket であり、frontend tooling 移行とは別目的である。
|
||||
- `00001KVMT2J25` の thread に、今回の refinement は別 follow-up Ticket として扱うべきことを Intake comment として記録済み。
|
||||
- Closed Ticket `00001KVMFFYVX` は Workspace web control plane bootstrap で、SvelteKit static SPA skeleton を `web/workspace` に追加した。
|
||||
- `00001KVMFFYVX` の resolution は、frontend が npm + committed `package-lock.json` を使い、generated `node_modules/`, `.svelte-kit/`, `build/` を ignore/source-filter する方針だったことを記録している。
|
||||
- 現在の `web/workspace/package.json` は npm scripts と SvelteKit/Vite devDependencies を持つ。
|
||||
- 現在の `web/workspace/package-lock.json` は npm lockfile として存在する。
|
||||
- 現在の `web/workspace/README.md` は package manager を npm とし、`npm install`, `npm run check`, `npm run build` を案内している。
|
||||
- 現在の `web/workspace/svelte.config.js` は `@sveltejs/adapter-static` を使い、`web/workspace/build/` に static output を出す。
|
||||
- 現在の `package.nix` は `web/workspace/node_modules`, `web/workspace/.svelte-kit`, `web/workspace/build` を source filter から除外している。
|
||||
- 現在の `devshell.nix` には `deno` が含まれている。
|
||||
- 参考 URL の内容は untrusted web content として確認した。記事は SvelteKit を Deno task / npm compatibility / `deno.json` ベースで運用する例、Svelte LSP 用 `tsconfig.json` が残りうる点、Deno 用 adapter への言及を含む。
|
||||
|
||||
## Unverified hypotheses
|
||||
|
||||
- `web/workspace` は static SPA skeleton なので、Deno 移行は backend/API authority を変えず frontend tooling の範囲に収められる可能性が高い。
|
||||
- SvelteKit/Vite/svelte-check は Deno の npm compatibility と `deno task` で動かせる可能性が高い。
|
||||
- Svelte LSP / svelte-check のために `tsconfig.json` を完全削除できない可能性がある。
|
||||
- Deno 移行後も `node_modules` 相当の local generated state が発生する可能性があり、ignore/source-filter の再確認が必要。
|
||||
|
||||
## Undecided points / open questions
|
||||
|
||||
- blocking な未決定点はなし。
|
||||
- `package.json` を完全に削除できるか、SvelteKit/Vite ecosystem 互換のため最小限残すかは実装調査で判断してよい。ただし source-of-truth と command guidance を曖昧にしない。
|
||||
- `tsconfig.json` を維持するか `deno.json` へ寄せるかは、Svelte LSP / svelte-check の実動作に基づいて判断してよい。
|
||||
- `@sveltejs/adapter-static` を維持するか Deno 向け adapter へ変えるかは、Rust backend が static assets を serve する現方針と矛盾しない範囲で判断してよい。
|
||||
|
||||
## Background
|
||||
|
||||
Workspace web control plane の frontend は `web/workspace` にある SvelteKit static SPA skeleton である。bootstrap 時点では npm + `package-lock.json` を採用したが、ユーザーは既存 frontend SPA の tooling を Node/npm 前提から Deno 前提へ移行したい。
|
||||
|
||||
この Ticket は frontend tooling / package-manager migration の concrete follow-up であり、protocol reconnect Ticket `00001KVMT2J25` とは別 work item として扱う。
|
||||
|
||||
## Requirements
|
||||
|
||||
- `web/workspace` の開発・検証・build 手順を npm/Node 前提から Deno 前提へ移行する。
|
||||
- Deno 側の project configuration を明確にする。候補は `deno.json` または `deno.jsonc`、`deno.lock`、`deno task`。
|
||||
- SvelteKit static SPA であることを維持する。
|
||||
- Rust backend が business/API authority を持ち、frontend は lifecycle/business authority を持たない境界を維持する。
|
||||
- static build output が backend から serve できる形を維持する。既存の `web/workspace/build/` を変える場合は backend/README/package hygiene と整合させる。
|
||||
- `web/workspace/README.md` の package manager / command guidance を Deno 前提に更新する。
|
||||
- lockfile と依存関係管理を Deno 前提で明確にする。
|
||||
- 古い npm lockfile / npm scripts / Node-only guidance が不要なら削除し、残す必要がある場合は理由を project files または docs に明記する。
|
||||
- generated artifacts (`node_modules`, `.svelte-kit`, `build` など) が git / Nix package source に混入しない状態を維持する。
|
||||
- `package.nix` source filtering と devshell/package guidance が Deno 移行後の frontend generated state と矛盾しないことを確認する。
|
||||
|
||||
## Acceptance criteria
|
||||
|
||||
- `web/workspace` の check が Deno command で成功する。
|
||||
- `web/workspace` の build が Deno command で成功する。
|
||||
- README と project files から、通常の frontend 作業者が Deno で install/check/build できることが分かる。
|
||||
- npm lockfile / npm scripts / Node-only guidance が不要なら削除されている。
|
||||
- npm/Node 関連ファイルを残す場合、そのファイルが canonical source-of-truth なのか compatibility artifact なのかが明確である。
|
||||
- SvelteKit static SPA と Rust backend static serving の前提が壊れていない。
|
||||
- `web/workspace/build/`, `.svelte-kit/`, `node_modules` または Deno 移行後の同等 generated artifacts が git/Nix package source に混入しない。
|
||||
- 既存の `.yoi` records as authority、Ticket/Objective workflow、Rust backend API authority を変更しない。
|
||||
|
||||
## Binding decisions / invariants
|
||||
|
||||
- この Ticket は frontend tooling migration であり、Workspace backend の API authority / Ticket lifecycle authority / `.yoi` canonical records を変更しない。
|
||||
- Frontend を SSR authority や business/lifecycle authority にしない。
|
||||
- Static SPA と Rust backend serving の境界を維持する。
|
||||
- `00001KVMT2J25` は protocol reconnect Ticket として残し、本 Ticket に混ぜない。
|
||||
- Tooling source-of-truth を npm と Deno の二重管理で曖昧にしない。
|
||||
- Generated artifacts を committed source や Nix package source に混入させない。
|
||||
|
||||
## Implementation latitude
|
||||
|
||||
- Deno project layout は `deno.json` / `deno.lock` / `deno task` を使う形でよい。
|
||||
- SvelteKit/Vite を Deno の npm compatibility で動かすか、最小限の package metadata を残すかは実装時に選んでよい。
|
||||
- `tsconfig.json` は Svelte LSP / svelte-check の都合で必要なら残してよい。
|
||||
- `@sveltejs/adapter-static` を維持してよい。Deno adapter を採用する場合は、この workspace の Rust backend static serving 方針と矛盾しないことを確認する。
|
||||
- `package.nix` / devshell / README の更新範囲は、Deno 移行後の generated artifact と validation command に合わせて最小限でよい。
|
||||
|
||||
## Readiness
|
||||
|
||||
- readiness: implementation_ready
|
||||
- risk_flags: [frontend-tooling, packaging, nix-source-filter, validation]
|
||||
|
||||
## Escalation conditions
|
||||
|
||||
- Deno だけでは SvelteKit check/build が安定せず、Node/npm を primary に残す必要が出た場合。
|
||||
- `package.json` / `package-lock.json` を残すか削除するかが project policy decision になる場合。
|
||||
- Static SPA ではなく SSR / Deno runtime server / Deno Deploy 前提へ移る必要が出た場合。
|
||||
- Rust backend static serving path や package/Nix build 方針の大きな変更が必要になった場合。
|
||||
- Generated artifacts の source-filter / ignore 境界が不明確になる場合。
|
||||
|
||||
## Validation
|
||||
|
||||
- `cd web/workspace && deno task check`
|
||||
- `cd web/workspace && deno task build`
|
||||
- `git diff --check`
|
||||
- frontend generated artifacts が ignored / source-filtered されていることの確認。
|
||||
- packaging/source-filter を変更する場合は `nix build .#yoi --no-link` または Orchestrator が妥当と判断する同等確認。
|
||||
- 必要に応じて `cargo check -p yoi-workspace-server` または static serving 周辺の focused tests。
|
||||
|
||||
## Related work
|
||||
|
||||
- `00001KVMT2J25` — protocol reconnect / in-flight stream snapshot Ticket。今回の Deno 移行とは別件。
|
||||
- `00001KVMFFYVX` — Workspace web control plane bootstrap。`web/workspace` の SvelteKit static SPA skeleton と npm/package-lock 採用元。
|
||||
- Relevant files:
|
||||
- `web/workspace/package.json`
|
||||
- `web/workspace/package-lock.json`
|
||||
- `web/workspace/README.md`
|
||||
- `web/workspace/svelte.config.js`
|
||||
- `web/workspace/vite.config.ts`
|
||||
- `web/workspace/tsconfig.json`
|
||||
- `web/workspace/.gitignore`
|
||||
- `package.nix`
|
||||
- `devshell.nix`
|
||||
7
.yoi/tickets/00001KVMV03QY/thread.md
Normal file
7
.yoi/tickets/00001KVMV03QY/thread.md
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
<!-- event: create author: ticket-intake at: 2026-06-21T10:18:10Z -->
|
||||
|
||||
## 作成
|
||||
|
||||
LocalTicketBackend によって作成されました。
|
||||
|
||||
---
|
||||
Loading…
Reference in New Issue
Block a user