ticket: require cwd authority removal
This commit is contained in:
parent
6fa3d9d21f
commit
3df1c2dcfa
|
|
@ -3,7 +3,7 @@ title: 'Implement WorkerFilesystemAuthority for no-workdir Workers'
|
||||||
state: 'planning'
|
state: 'planning'
|
||||||
priority: 'P1'
|
priority: 'P1'
|
||||||
created_at: '2026-07-10T21:13:49Z'
|
created_at: '2026-07-10T21:13:49Z'
|
||||||
updated_at: '2026-07-10T21:32:47Z'
|
updated_at: '2026-07-10T21:46:21Z'
|
||||||
assignee: null
|
assignee: null
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -16,11 +16,12 @@ no-workdir Worker は、内部プロセスの実 cwd や fallback 元が何で
|
||||||
## 要件
|
## 要件
|
||||||
|
|
||||||
- Worker に filesystem authority の有無を表す明示的な型を導入する。
|
- Worker に filesystem authority の有無を表す明示的な型を導入する。
|
||||||
|
- Worker の `cwd: PathBuf` property と `worker.cwd()` accessor を削除し、working directory は `WorkerFilesystemAuthority::Local` の中だけで表現する。
|
||||||
- workdir あり Worker は local working directory として `root` と `cwd` を持ち、既存の tools default base / Bash cwd / fs view はこの値を使う。
|
- workdir あり Worker は local working directory として `root` と `cwd` を持ち、既存の tools default base / Bash cwd / fs view はこの値を使う。
|
||||||
- no-workdir Worker は filesystem authority を `None` として表現し、Worker authority としての cwd fallback を持たない。
|
- no-workdir Worker は filesystem authority を `None` として表現し、Worker authority としての cwd fallback を持たない。
|
||||||
- filesystem authority が無い Worker では `Read` / `Write` / `Edit` / `Glob` / `Grep` / `Bash` を登録しない、または確実に利用不能にする。
|
- filesystem authority が無い Worker では `Read` / `Write` / `Edit` / `Glob` / `Grep` / `Bash` を登録しない。
|
||||||
- `cwd` と `workspace_root` の意味を分離し、filesystem authority は `WorkerFilesystemAuthority` 側に寄せる。
|
- 既存の `worker.cwd()` 参照箇所をすべて分類し、filesystem authority が必要な箇所は `WorkerFilesystemAuthority::Local` 経由に置き換え、workspace 情報が必要な箇所は `workspace_root`/cwd 依存から切り離す方向で明示的に扱う。
|
||||||
- 既存の `workspace_root: PathBuf` 依存はこのチケットでは全削除しなくてよいが、filesystem authority として使わない境界を明確にする。
|
- `workspace_root` はこのチケットでは全削除しなくてよいが、filesystem authority として使わない境界を明確にする。
|
||||||
|
|
||||||
## 実装メモ
|
## 実装メモ
|
||||||
|
|
||||||
|
|
@ -38,14 +39,20 @@ struct LocalWorkingDirectory {
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
最小実装では既存 `cwd: PathBuf` を一気に消さず、Worker 構築時に `WorkerFilesystemAuthority` を導入して tools 登録と runtime/embedded spawn 経路から先に参照させる。no-workdir embedded Worker は `None` を渡す。
|
Worker 構築時に `WorkerFilesystemAuthority` を必須入力として受け取り、既存の `cwd: PathBuf` / `worker.cwd()` 経路を削除する。no-workdir embedded Worker は `WorkerFilesystemAuthority::None` を渡す。通常 Worker / workdir あり embedded Worker / spawned child Worker は、既存の working directory 解決結果から `LocalWorkingDirectory { root, cwd }` を作って渡す。
|
||||||
|
|
||||||
## 受け入れ条件
|
## 受け入れ条件
|
||||||
|
|
||||||
- Worker が filesystem authority 有無を型で保持できる。
|
- Worker が filesystem authority 有無を型で保持できる。
|
||||||
|
- Worker struct から `cwd: PathBuf` field が削除され、`worker.cwd()` accessor も存在しない。
|
||||||
|
- Worker の constructor / restore / embedded runtime spawn / child spawn 経路は `WorkerFilesystemAuthority` を明示的に受け渡す。
|
||||||
- workdir あり Worker では、tools の default cwd が `LocalWorkingDirectory.cwd` に一致する。
|
- workdir あり Worker では、tools の default cwd が `LocalWorkingDirectory.cwd` に一致する。
|
||||||
- no-workdir Worker では core filesystem tools と Bash が model-visible tool surface に現れない、または実行不能であることをテストで確認できる。
|
- workdir あり Worker では、authority root が `LocalWorkingDirectory.root` として保持され、cwd と root の意味が分かれている。
|
||||||
- no-workdir Worker 作成時に workspace root / process cwd fallback が filesystem authority として使われない。
|
- no-workdir Worker では core filesystem tools と Bash が model-visible tool surface に現れないことをテストで確認できる。
|
||||||
|
- no-workdir Worker では `Read` / `Write` / `Edit` / `Glob` / `Grep` / `Bash` が実行経路上も構築されず、空 scope や実行時エラー頼りの制御になっていない。
|
||||||
|
- no-workdir Worker 作成時に workspace root / process cwd / runtime cwd fallback が filesystem authority として使われない。
|
||||||
- embedded no-workdir Worker の spawn 経路から `WorkerFilesystemAuthority::None` を指定できる。
|
- embedded no-workdir Worker の spawn 経路から `WorkerFilesystemAuthority::None` を指定できる。
|
||||||
|
- 既存の `worker.cwd()` 利用箇所が残っていないことを grep または同等のテストで確認できる。
|
||||||
|
- Ticket / memory / workflow / child spawn など、従来 cwd に依存していた箇所は `WorkerFilesystemAuthority::Local` 必須箇所と workspace context 箇所に分類され、no-workdir で local filesystem に触れない。
|
||||||
- 既存の通常 Worker / workdir あり embedded Worker / spawned child Worker の動作が回帰しない。
|
- 既存の通常 Worker / workdir あり embedded Worker / spawned child Worker の動作が回帰しない。
|
||||||
- `cargo test` と `nix build .#yoi` が通る。
|
- `cargo test` と `nix build .#yoi` が通る。
|
||||||
|
|
|
||||||
|
|
@ -28,4 +28,13 @@ LocalTicketBackend によって作成されました。
|
||||||
Hard dependencies は WorkerFilesystemAuthority を共通前提に限定する。WorkspaceBackend 分離は embedded no-workdir policy の MVP には related だが depends_on にはしない。
|
Hard dependencies は WorkerFilesystemAuthority を共通前提に限定する。WorkspaceBackend 分離は embedded no-workdir policy の MVP には related だが depends_on にはしない。
|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
<!-- event: decision author: hare at: 2026-07-10T21:46:21Z -->
|
||||||
|
|
||||||
|
## Decision
|
||||||
|
|
||||||
|
Clarification: `process_cwd` is not part of this design. The Worker-level `cwd: PathBuf` property and `worker.cwd()` accessor should be removed rather than kept as a legacy authority surface. Working directory exists only under `WorkerFilesystemAuthority::Local`; no-workdir uses `WorkerFilesystemAuthority::None`. Tool registration must be derived from that authority, not manifest override or cwd fallback.
|
||||||
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user