merge: origin/main — unify subprocess isolation into carlosTestEnv
Main's carlosTestEnv (CARLOS_CREDENTIALS masking, from the 40-account production incident) meets this branch's HOME/CARLOS_CONSOLE/cmd.Dir isolation (the binary now reads ~/.carlos/config and walks cwd for .carlos/config). The helper now masks all three vars; cmd.Dir stays per-site. CLAUDE.md's rule widened to match.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KxXEWoRXU8WVTXjTJypuJ5
48 files changed,
+7103
−348
CLAUDE.md+6 −0accounts.go+133 −47accounts_resolve_test.go+115 −0apimode.go+52 −21apimode_test.go+87 −42appconfig_cli.go+8 −8auth_e2e_test.go+74 −6cli.go+80 −53docs/superpowers/plans/2026-08-04-account-slugs.md+916 −0docs/superpowers/plans/2026-08-04-console-bake-controls.md+1761 −0docs/superpowers/specs/2026-08-04-account-slugs-design.md+187 −0docs/superpowers/specs/2026-08-04-console-bake-controls-design.md+277 −0e2e_test.go+239 −59internal/console/apicli.go+36 −30internal/console/apicli_test.go+83 −11internal/console/authcli.go+5 −2internal/console/authcli_test.go+8 −2internal/console/authowner_test.go+1 −1internal/console/bakecontrols_test.go+354 −0internal/console/ladder.go+5 −0internal/console/ladder_test.go+206 −0internal/console/resolve.go+47 −0internal/console/resolve_test.go+92 −0internal/console/server.go+237 −22internal/console/server_account_test.go+208 −8internal/console/server_test.go+38 −8internal/console/store.go+4 −0internal/console/templates/app.html+1 −1internal/console/templates/apps.html+1 −1internal/console/templates/ladder.html+65 −1internal/console/templates/layout.html+2 −2internal/console/templates/newaccount.html+8 −6internal/console/templates/picker.html+22 −0internal/console/view.go+91 −0internal/console/view_test.go+8 −1internal/domains/slugname.go+16 −0internal/domains/slugname_test.go+23 −0internal/domains/sqid.go+36 −0internal/domains/sqid_test.go+56 −0internal/release/adopt.go+109 −5internal/release/adopt_test.go+320 −0internal/release/bake.go+178 −5internal/release/bake_test.go+251 −0internal/release/production.go+177 −0internal/release/production_test.go+240 −0internal/release/release.go+69 −2internal/release/release_test.go+143 −0scopedkeys_e2e_test.go+28 −4
CLAUDE.mdLoading diff…
accounts.goLoading diff…
accounts_resolve_test.goLoading diff…
apimode.goLoading diff…
apimode_test.goLoading diff…
appconfig_cli.goLoading diff…
auth_e2e_test.goLoading diff…
cli.goLoading diff…
docs/superpowers/plans/2026-08-04-account-slugs.mdLoading diff…
docs/superpowers/plans/2026-08-04-console-bake-controls.mdLoading diff…
docs/superpowers/specs/2026-08-04-account-slugs-design.mdLoading diff…
docs/superpowers/specs/2026-08-04-console-bake-controls-design.mdLoading diff…
e2e_test.goLoading diff…
internal/console/apicli.goLoading diff…
internal/console/apicli_test.goLoading diff…
internal/console/authcli.goLoading diff…
internal/console/authcli_test.goLoading diff…
internal/console/authowner_test.goLoading diff…
internal/console/bakecontrols_test.goLoading diff…
internal/console/ladder.goLoading diff…
internal/console/ladder_test.goLoading diff…
internal/console/resolve.goLoading diff…
internal/console/resolve_test.goLoading diff…
internal/console/server.goLoading diff…
internal/console/server_account_test.goLoading diff…
internal/console/server_test.goLoading diff…
internal/console/store.goLoading diff…
internal/console/templates/app.htmlLoading diff…
internal/console/templates/apps.htmlLoading diff…
internal/console/templates/ladder.htmlLoading diff…
internal/console/templates/layout.htmlLoading diff…
internal/console/templates/newaccount.htmlLoading diff…
internal/console/templates/picker.htmlLoading diff…
internal/console/view.goLoading diff…
internal/console/view_test.goLoading diff…
internal/domains/slugname.goLoading diff…
internal/domains/slugname_test.goLoading diff…
internal/domains/sqid.goLoading diff…
internal/domains/sqid_test.goLoading diff…
internal/release/adopt.goLoading diff…
internal/release/adopt_test.goLoading diff…
internal/release/bake.goLoading diff…
internal/release/bake_test.goLoading diff…
internal/release/production.goLoading diff…
internal/release/production_test.goLoading diff…
internal/release/release.goLoading diff…
internal/release/release_test.goLoading diff…
scopedkeys_e2e_test.goLoading diff…