Files
88e9170dc1 refactor(redact): drop home-directory masking from Text (#7772)
redact.Text rewrote the local home directory to /Users/****/ on its way
to the database and the WebSocket broadcast. Removing it.

It was never an access-control boundary. Anyone who can read a task
transcript already sees repository paths, file contents, commands, diffs
and error output; masking one path segment out of all that protected
nothing, while it did make paths non-copy-pasteable and harder to line up
when debugging a run.

It was also incoherent about whose home directory it hid. homeDir and
username were resolved from the process running Text, and the main
transcript fields (Content / Output) are only redacted in the server's
ingest handler -- so a hosted deployment matched them against the
*server's* home directory, never the machine actually running the agent.
Only tool inputs and stderr diagnostics went through the daemon-side call
where the resolved home was the right one.

Transcript visibility is an authorization concern and belongs at that
layer. Secret redaction (API keys, tokens, PEM blocks, connection
strings) is a real boundary and is untouched.

Two tests asserted the removed behaviour and now assert its absence, so
nobody reintroduces host-path masking as a side effect of another fix:
redact.TestTextLeavesHomePathIntact (replacing TestRedactHomeDirectory
and TestInputMapRedactsNestedHomePath) and the home-path arm of
agent.TestCursorExecuteReportsSanitizedStderrOnProcessFailure, which
keeps its bearer-token assertion.

Dropping the branch also resolves the Windows failure in
TestRedactHomeDirectory reported in #7744: Windows can return a
DOMAIN\user account name that is not a substring of the home path, so the
strings.Replace never fired. CI only runs Go tests on ubuntu, which is
why main stayed green.

Co-authored-by: J <[email protected]>
Co-authored-by: multica-agent <[email protected]>
2026-08-31 13:39:39 +08:00
..