Files
yoi/docs/report/subworker-cwd-tool-paths.md
Hare 5424280348 fix(ticket): project immutable results and typed source observations
T-716: merged evidence uses recorded result approval; open source reads use Runtime provider authority and preserve unavailability. Current requirements use the shared exact snapshot evaluator. Remove primary-MR/report SQL heuristics; continue bounded query scans through nonmatching candidates. Align Worker/Web projections and explain lifecycle versus integration/attestation. Synchronize checker test on delivered inputs, not pre-delivery attempt state.

Validation: root cargo check; cargo test -p merge-request (30), -p server-api (70), -p worker (949), -p yoi-workspace-server (620 lib + 11 binary); server-api typescript feature check; 32 focused Deno tests; deno task check (0 errors/warnings); cargo fmt --all -- --check; git diff --check HEAD; canonical OpenAPI/generated Ticket artifact checks.
2026-10-08 15:44:27 +09:00

1.1 KiB

SubWorker cwd changes logical tool path interpretation

During T-716 delegation, a child spawned with cwd: crates/merge-request and explicit read grants for docs/development/rust-testing-strategy.md could not read that path. Read was presented as Workdir-root-relative, but the observed error resolved it as crates/merge-request/docs/development/rust-testing-strategy.md. The same prefixing occurred for crates/merge-request/src/lib.rs; parent traversal was rejected.

The child made no edits. Rebinding a child at the checkout root with read-only . plus writable crates/merge-request let it read the required strategy and edit only the delegated crate. No denied write was bypassed.

Suggested improvement: make logical path resolution and child cwd semantics consistent in the tool description, capability checks, and execution. If cwd affects filesystem tools, expose the effective logical root explicitly and retain an unambiguous way to address other granted read paths. Scope validation should reject unusable grants at spawn rather than leave the child discovering path-prefix behavior.