carlos / platform Public

merge: origin/main — config doors meet account slugs and console defaults

The config methods (configGet/configApply/configSync) adopt main's apiAcct
contract so env/secrets/sync resolve accounts per-viewer and honor
-account-id exactly like every other verb; configGet's ?environment append
learns to coexist with apiPath's ?exact=sqid.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Paul Campbell 78db5b06eb1a1dab7e6b3c07cdbb89b22bbc416e parent 41e9b3aparent 761d3d0
55 files changed, +8991 −404
  • CLAUDE.md +6 −0
  • accounts.go +133 −47
  • accounts_resolve_test.go +115 −0
  • apimode.go +68 −28
  • apimode_test.go +101 −56
  • appconfig_cli.go +21 −21
  • auth.go +132 −22
  • auth_e2e_test.go +110 −14
  • auth_test.go +9 −10
  • cli.go +80 −53
  • config.go +161 −0
  • config_e2e_test.go +4 −4
  • config_test.go +327 −0
  • docs/superpowers/plans/2026-08-04-account-slugs.md +916 −0
  • docs/superpowers/plans/2026-08-04-console-bake-controls.md +1761 −0
  • docs/superpowers/plans/2026-08-04-console-default-resolution.md +939 −0
  • docs/superpowers/specs/2026-08-04-account-slugs-design.md +187 −0
  • docs/superpowers/specs/2026-08-04-console-bake-controls-design.md +277 −0
  • docs/superpowers/specs/2026-08-04-console-default-resolution-design.md +162 −0
  • e2e_test.go +311 −39
  • internal/console/apicli.go +36 −30
  • internal/console/apicli_test.go +83 −11
  • internal/console/authcli.go +5 −2
  • internal/console/authcli_test.go +8 −2
  • internal/console/authowner_test.go +1 −1
  • internal/console/bakecontrols_test.go +354 −0
  • internal/console/ladder.go +5 −0
  • internal/console/ladder_test.go +206 −0
  • internal/console/resolve.go +47 −0
  • internal/console/resolve_test.go +92 −0
  • internal/console/server.go +237 −22
  • internal/console/server_account_test.go +208 −8
  • internal/console/server_test.go +38 −8
  • internal/console/store.go +4 −0
  • internal/console/templates/app.html +1 −1
  • internal/console/templates/apps.html +1 −1
  • internal/console/templates/ladder.html +65 −1
  • internal/console/templates/layout.html +2 −2
  • internal/console/templates/newaccount.html +8 −6
  • internal/console/templates/picker.html +22 −0
  • internal/console/view.go +91 −0
  • internal/console/view_test.go +8 −1
  • internal/domains/slugname.go +16 −0
  • internal/domains/slugname_test.go +23 −0
  • internal/domains/sqid.go +36 −0
  • internal/domains/sqid_test.go +56 −0
  • internal/release/adopt.go +109 −5
  • internal/release/adopt_test.go +320 −0
  • internal/release/bake.go +178 −5
  • internal/release/bake_test.go +251 −0
  • internal/release/production.go +177 −0
  • internal/release/production_test.go +240 −0
  • internal/release/release.go +69 −2
  • internal/release/release_test.go +143 −0
  • scopedkeys_e2e_test.go +31 −2
CLAUDE.md

Loading diff…

accounts.go

Loading diff…

accounts_resolve_test.go

Loading diff…

apimode.go

Loading diff…

apimode_test.go

Loading diff…

appconfig_cli.go

Loading diff…

auth.go

Loading diff…

auth_e2e_test.go

Loading diff…

auth_test.go

Loading diff…

cli.go

Loading diff…

config.go

Loading diff…

config_e2e_test.go

Loading diff…

config_test.go

Loading diff…

docs/superpowers/plans/2026-08-04-account-slugs.md

Loading diff…

docs/superpowers/plans/2026-08-04-console-bake-controls.md

Loading diff…

docs/superpowers/plans/2026-08-04-console-default-resolution.md

Loading diff…

docs/superpowers/specs/2026-08-04-account-slugs-design.md

Loading diff…

docs/superpowers/specs/2026-08-04-console-bake-controls-design.md

Loading diff…

docs/superpowers/specs/2026-08-04-console-default-resolution-design.md

Loading diff…

e2e_test.go

Loading diff…

internal/console/apicli.go

Loading diff…

internal/console/apicli_test.go

Loading diff…

internal/console/authcli.go

Loading diff…

internal/console/authcli_test.go

Loading diff…

internal/console/authowner_test.go

Loading diff…

internal/console/bakecontrols_test.go

Loading diff…

internal/console/ladder.go

Loading diff…

internal/console/ladder_test.go

Loading diff…

internal/console/resolve.go

Loading diff…

internal/console/resolve_test.go

Loading diff…

internal/console/server.go

Loading diff…

internal/console/server_account_test.go

Loading diff…

internal/console/server_test.go

Loading diff…

internal/console/store.go

Loading diff…

internal/console/templates/app.html

Loading diff…

internal/console/templates/apps.html

Loading diff…

internal/console/templates/ladder.html

Loading diff…

internal/console/templates/layout.html

Loading diff…

internal/console/templates/newaccount.html

Loading diff…

internal/console/templates/picker.html

Loading diff…

internal/console/view.go

Loading diff…

internal/console/view_test.go

Loading diff…

internal/domains/slugname.go

Loading diff…

internal/domains/slugname_test.go

Loading diff…

internal/domains/sqid.go

Loading diff…

internal/domains/sqid_test.go

Loading diff…

internal/release/adopt.go

Loading diff…

internal/release/adopt_test.go

Loading diff…

internal/release/bake.go

Loading diff…

internal/release/bake_test.go

Loading diff…

internal/release/production.go

Loading diff…

internal/release/production_test.go

Loading diff…

internal/release/release.go

Loading diff…

internal/release/release_test.go

Loading diff…

scopedkeys_e2e_test.go

Loading diff…