yoi/.yoi/tickets/00001KX6Y2A9Q/thread.md

6.4 KiB

作成

LocalTicketBackend によって作成されました。


Plan

整理結果:

  1. 00001KX6Y2A9Q WorkerFilesystemAuthority

    • hard dependency なし。
    • no-workdir を filesystem authority none として型で表現する基盤。
  2. 00001KX6WVNPD Embedded no-workdir Worker authority policy

    • depends_on: 00001KX6Y2A9Q。
    • UI/API の workdir 任意化と embedded no-workdir tool surface 制御を実装する。
  3. 00001KX6Y6ZEA WorkspaceBackend / workspace_id 分離

    • depends_on: 00001KX6Y2A9Q。
    • workspace_root path 依存を workspace_id + Runtime-injected WorkspaceClient へ移行する。
    • embedded no-workdir MVP をブロックしない。

Hard dependencies は WorkerFilesystemAuthority を共通前提に限定する。WorkspaceBackend 分離は embedded no-workdir policy の MVP には related だが depends_on にはしない。


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.


Intake summary

Marked ready by yoi ticket state.


State changed

Marked ready by yoi ticket state.


State changed

Ticket を workspace-panel が queued にしました。


Decision

Routing decision: accept for implementation

Evidence checked:

  • Ticket 00001KX6Y2A9Q is queued and has a concrete implementation scope。
  • TicketRelationQuery(00001KX6Y2A9Q) shows incoming dependents (00001KX6WVNPD, 00001KX6Y6ZEA) but no outgoing unresolved blockers for this Ticket。
  • TicketOrchestrationPlanQuery(00001KX6Y2A9Q) had no prior plan; accepted plan was recorded in this routing pass。
  • TicketList(inprogress) shows 0 inprogress Tickets。
  • Orchestrator worktree /home/hare/Projects/yoi/.worktree/orchestration is clean。

Accepted plan:

  • Create dedicated implementation worktree /home/hare/Projects/yoi/.worktree/00001KX6Y2A9Q-worker-filesystem-authority from current orchestration branch。
  • Use branch work/00001KX6Y2A9Q-worker-filesystem-authority
  • Route implementation to sibling Coder Pod, then external review to sibling Reviewer Pod。
  • Orchestrator retains merge, final validation, Ticket close, and child worktree/branch cleanup authority。

Implementation focus:

  • Add explicit WorkerFilesystemAuthority with no-workdir None and local Local(LocalWorkingDirectory) representation。
  • Remove Worker-level cwd: PathBuf field and worker.cwd() accessor。
  • Gate core filesystem tools and Bash on WorkerFilesystemAuthority::Local; no-workdir Workers must not register those tools。
  • Update constructor / restore / embedded / child-spawn paths to pass filesystem authority explicitly。
  • Separate workspace context from filesystem authority; do not use workspace root / process cwd / runtime cwd fallback as no-workdir authority。
  • Add tests for no-workdir model-visible tool surface and execution construction behavior, plus grep/equivalent assurance that worker.cwd() usages are gone。

State changed

Dashboard queue authorization was inspected, no blockers were found, and an accepted plan was recorded. Moving queued Ticket to inprogress before creating implementation worktree or spawning Pods.


Implementation report

Implementation progress report:

  • Coder Pod yoi-coder-00001KX6Y2A9Q-worker-fs-authority completed implementation in /home/hare/Projects/yoi/.worktree/00001KX6Y2A9Q-worker-filesystem-authority on branch work/00001KX6Y2A9Q-worker-filesystem-authority
  • Implementation commit: b50b94612a1185dc5bdc935d83d63f9d6ace826b feat: add explicit worker filesystem authority
  • Orchestrator inspected the worktree status, branch log, commit stats, git diff --check db3a7165..HEAD, and grep checks for worker.cwd() / Worker fn cwd; worktree was clean, diff check passed, and no matches were found。

Coder-reported implementation summary:

  • Added explicit WorkerFilesystemAuthority::{None, Local(LocalWorkingDirectory)} boundary。
  • Removed Worker-level cwd: PathBuf and worker.cwd() accessor。
  • Local Workers carry authority root and cwd separately。
  • No-workdir embedded Worker spawn passes WorkerFilesystemAuthority::None explicitly instead of falling back to runtime/process cwd。
  • Controller tool registration branches on local filesystem authority:
    • Local Workers register Read, Write, Edit, Glob, Grep, Bash and get fs view/completions。
    • No-workdir Workers do not construct/register filesystem or Bash tools。
  • Ticket / worker-spawn / peer-discovery cwd-dependent paths now require local filesystem authority instead of using workspace root as fallback。
  • Tests added/updated for no-workdir tool omission, no cwd fallback, and local/materialized Worker filesystem/Bash behavior。

Coder-reported validation passed:

  • cargo test -p worker --lib --tests
  • cargo test -p worker-runtime --features ws-server,fs-store
  • cargo test -p yoi-workspace-server --lib
  • cargo check -p yoi
  • git diff --check
  • cargo run -p yoi -- ticket doctor
  • nix build .#yoi --no-link
  • rg "worker\\.cwd\\(" crates || true: no matches。
  • rg "pub fn cwd\\(" crates/worker/src/worker.rs || true: no Worker cwd accessor remains。

Not run by Coder:

  • cd web/workspace && deno task check && deno task test because web/API/types were not touched。

Next action:

  • Route to external Reviewer Pod before merge/close decisions。