feat(workspace-config): project grant-bound logical settings through WIP

This commit is contained in:
2026-10-06 06:56:51 +09:00
parent 7a96c42130
commit 0a471242cb
44 changed files with 8159 additions and 72 deletions
@@ -0,0 +1,30 @@
# SubWorker cwd and logical paths during T-695
Two writable child sessions initially reported missing Workdir/Ticket access.
The concrete observations did not justify that conclusion:
- A default-profile child had no `ShowTicket` tool, while the `inherit` child
could read the Ticket. Product requirements therefore had to be forwarded or
the effective child profile chosen explicitly.
- A child spawned with `cwd: crates/workspace-server` received
`file not found: crates/workspace-server/crates/workspace-server/src/config_source.rs`
for a root-relative `Read` path. `Read("src/config_source.rs")` succeeded.
- `Read("../server-api/src/lib.rs")` was rejected as an invalid logical path,
despite both crate directories being in the declared child scope.
- The read-only investigation child successfully inspected repository sources;
successful spawning was not evidence that every child had the expected tools,
but one invalid absolute output-directory lookup was not evidence of an
inaccessible repository either.
The parent inspected committed child sessions and preserved their changes.
The server child was released at Idle, then continued under an explicitly
`inherit`, root-cwd child with the same per-crate write grants and root read
scope. No host-path or parent-traversal workaround was used to bypass the
rejected path. The original prerequisite diff and test evidence were retained.
Improvement: tool descriptions and generated child startup context should agree
on whether relative file paths are attachment-root-relative or cwd-relative.
Expose effective attachment aliases, root/cwd coordinates and granted tool
surface directly to the child, so a profile/tool mismatch is not misdiagnosed
as a repository authority failure. Scope validation should distinguish invalid
path syntax, missing file, missing attachment and actual permission denial.