acpmux: confine workflow transcript reads to the requesting chat
_acpmux/subagent_transcript searched every sibling Claude session folder when given a workflow run ID. A request scoped to one chat could therefore read another chat's workflow transcript. Reads now stay in the resolved chat's own Claude session folder and retain the existing component-by-component symlink and mount guards. A sibling run gets the same serialized error as a missing transcript.
This fixes the authorization blocker for #27008 before that PR exposes the read through the pane relay. Risk: high (socket read authorization). No command execution, mutation, new allowlist entry, timer, or peer routing is added.
Fork-ancestor transcripts are unavailable with this fix. Supporting them later requires an explicit authorized parent_id walk; agent-spawn lineage_descends is not fork ancestry.
Peer-origin handling keeps the existing authenticated dispatch, pairing gate, remote guard, and peer forwarding/redaction paths from #26887, #26895, and #26912. The regression exercises both PeerToken and paired Device credentials through the real server, resolves the visible chat, reads its own transcript, and compares sibling/missing error bytes.
Validation
Added handler-level own/sibling/missing regressions and peer-origin coverage beside the existing symlink tests. Focused remote command: cd cmux-tui && cargo test -p acpmux --lib hub::subagent_transcript. Tests are committed before the fix so the same handler regression can run red and green in one remote job.
Observed / Not run
Static prepush gate passed. Rust compilation and execution are pending the combined remote run. Independent final-head review is pending.
HOLD: awaiting focused remote tests and independent final-head review.
Request
"Like you need to be more ambitious, really. Like the whole dynamic workflow situation. I don't know if you already have the UI for that, how good it is, if you guys have tested it out yet. But, you know, we need to have that. And likewise, obviously, like the session info area, like that's where the things can be shown, and also the right tab area. All of these, like better and better UI. Just go ahead, man. I feel like you can do a hell of a lot more. More codex, more Claude, more whatever. We have the capacity, so let's use the fucking capacity to go do some more productive fucking work, right?"
Changelog
Fixed: Workflow transcript reads no longer search other chats' Claude session folders.
Agent session: agent session