settings-3-console-settings
Instance update settings on the record, app policy, console API (settings spec rev 11 §3, §4.4, §4.5, §5.1; plan 3).
Records carry updates, major, pin and installrequest; instances.json carries the app's instancecontrol and defaults (no default pin). Reconcile resolves both into the registry's updatesettings column ("" = today's adoption; hashed into snapshots only when set; an unreadable policy never resets a row, and the mint waits for it). App members use GET/PUT .../instances/{host}/updates, POST .../updates/install and PUT .../apps/{app}/updates; every door is person-only (svcrole.Set{}) until #155 step 6. The console never chooses a build. pin, manual and major (and default manual/major) are refused until every box reports BoxMetrics.updatesettings, which no binary does before plan 4; the gate fails closed on a missing fleet registry or any incomplete read, and clearing is never refused. Members see a count of boxes, never their names. The control socket gains a read-only GET /updates.
Astra: r1 REJECT (1 P1, 2 P2), fixed; r2 ACCEPT (docs/superpowers/plans/CODEX-FINDINGS-SETTINGS-IMPL-3*.md). Copy: Paul approved all 24 strings unchanged on 2026-10-11; pinned by docs/superpowers/plans/2026-10-07-instance-settings-3-copy.json and TestApprovedCopyIsApplied. CI green at b53c7b99. Ready for Paul's merge call.
Discussions
- No discussions on this branch yet.
Tasks
- No tasks yet.
Activity
- claude agent, operated by paul@keymail.dev pushed b53c7b997 Merge origin/main into settings-3-console-settings
- claude agent, operated by paul@keymail.dev pushed 5ad6aa8f0 settings-3: apply Paul's approved copy and pin it (2026-10-11)
- claude agent, operated by paul@keymail.dev pushed a5587659f Merge origin/main into settings-3-console-settings
- claude agent, operated by paul@keymail.dev pushed 9dba06103 settings-3: Astra's final review (r1 reject, r2 accept)
- claude agent, operated by paul@keymail.dev pushed d9164c9e2 settings-3 final review: no em dash in a registry test message
- claude agent, operated by paul@keymail.dev pushed 798483581 settings-3 final review: the fleet gate fails closed when the fleet registry was not read
- claude agent, operated by paul@keymail.dev pushed 4b7da831b settings-3 final review: an unchanged off-stable major never blocks a full-state clear
- claude agent, operated by paul@keymail.dev pushed 9002e8f22 settings-3 final review: the control socket reports the route's channel for default settings
- claude agent, operated by paul@keymail.dev pushed df3def0f7 settings-3 task 9: read-only GET /updates on the control socket
- claude agent, operated by paul@keymail.dev pushed 0913833ca settings-3 task 8: the app's instance update policy door
- claude agent, operated by paul@keymail.dev pushed 86784bcdf settings-3 task 7: Update now raises an increasing request id
- claude agent, operated by paul@keymail.dev pushed 5c5b9de30 settings-3 task 6: only a change that turns a setting on waits for the fleet
- claude agent, operated by paul@keymail.dev pushed e9e1039af settings-3 task 6: GET and PUT an instance's update settings
- claude agent, operated by paul@keymail.dev pushed 9f5b66047 settings-3 task 5: the box report field and the console's enforcement gate
- claude agent, operated by paul@keymail.dev pushed 4c415b170 settings-3 task 4: reconcile resolves update settings into the registry
- claude agent, operated by paul@keymail.dev pushed 09a40e5c4 settings-3 task 3: update_settings hashes into the snapshot only when set
- claude agent, operated by paul@keymail.dev pushed 5cf6fd2cf settings-3 task 3: the registry's update_settings column
- claude agent, operated by paul@keymail.dev pushed 891945c63 settings-3 task 2: update settings on the record, the policy on the instances manifest
- claude agent, operated by paul@keymail.dev pushed 34d4d76d0 settings-3 task 1: release.UpdateSettings