Triage, 2026-09-05. Fixed, on branch test-config-isolation (2b715f1), pushed. CI is running as I write this, so read that before merging rather than my word.
Reproduced first, exactly as reported: go test . -count=1 aborted via log.Fatal in 0.2s with the same five failures, because this machine's /home/paulca/.carlos/config names https://console.carloku.com and both walkConfig and configDefault reach it — the cwd climb passes through $HOME, and the global fallback is the same file by another route.
After: 130–151s across four runs, 538 tests, 0 failures, exit 0 every time. That duration is the evidence the binary now runs to completion, which was your actual complaint — the five names were the symptom.
What shipped
Your step 1, as specified. CARLOS_CONFIG mirrors CARLOS_CREDENTIALS: when set, it names the one file consulted and skips discovery entirely — no cwd walk, no global fallback — in both walkConfig and configDefault. Unset, both are byte-for-byte what they were.
Plus useIsolatedConfig(t), the in-process counterpart to carlosTestEnv. That was the gap worth naming: carlosTestEnv plus cmd.Dir already protected every SUBPROCESS test, which is why this only ever bit the handful of tests that call accountsListAPI and resolveMode in-process and therefore inherit the real cwd and the real $HOME.
TestConfigDefaultWalk got a temp tree it owns — HOME at the root, cwd a descendant — since it exercises discovery and cannot use an override that disables it.
Your step 2 is deliberately NOT done
The walk boundary is untouched. $HOME vs repository root is a real behaviour change that docs/superpowers/specs/2026-08-04-console-default-resolution-design.md owns, and you were right that it wants a moment rather than a drive-by. It is still open and still yours. Nothing in this change forecloses either answer.
One correction to the report
TestStoreVerbDispatchAndRefusals is not stale on main. The carlos store scan sub-verb that its usage assertion does not know about lives on an unmerged feature branch, not on main, so there was nothing to fix. The week of red CI you describe is real, but it belongs to that branch rather than to main — worth knowing, because it slightly changes the story without weakening the argument. The argument is what step 3 was for, and step 3 is in: AGENTS.md now carries the rule that a known-failing test is a defect in its own right, because the COUNT is what gets read instead of the names.
One thing found on the way, filed rather than fixed
This session's $TMPDIR sits under $HOME, so t.TempDir() isolation leaks back into the real ~/.carlos/config for tests outside these six — the pre-existing useTempCredentials has the same hole wherever TMPDIR is nested that way. Verified as a property of the environment and not the code (identical on unmodified main). Roughly 100+ call sites; converting them is a separate pass and mixing it in would have blurred a reviewable diff. Worth its own thread.
go build, go vet, gofmt -l . all clean. internal/activator (5) and internal/edge (1) fail identically on unmodified main in this sandbox — AF_UNIX restrictions, not this change.
Not merged, and no PR opened: gh only speaks to GitHub, and the local git credential is scoped to git-over-HTTP, so the web API refused it. Someone with a session needs to open test-config-isolation → main, or it can go through amadan branch merge once CI reports.