settings-5-surfaces
Instance update settings, plan 5: surfaces (settings spec rev 11 §5). Copy awaiting Paul's review.
What it adds:
- carlos apps set gains --instance-control, --default-updates, --default-channel and --default-major, sent to plan 3's app policy door. Zero-downtime plan 6's approved apps set text is unchanged; the new flags get their own usage paragraph.
- carlos instances set <host> (--updates, --channel, --major, --pin; an empty value clears) and carlos instances update <host> [--fast-track]. Only the flags given are sent. Settings go first and the channel second, through the existing channel door with its pipeline rules. Console refusals are printed verbatim. Both commands refuse direct bucket mode, naming the console.
- carlos instances list: REASON shows the settings reason after the rollout reason. A box's update report is joined only with positive account/app attribution: boxes stamp it on each report entry and on root's stored decision (status.HostUpdates and release.Consumed gain additive account/app fields). A report without attribution contributes only "enforced or not".
- The console instance page gains an Updates section. It shows a status line, auto updates, the channel (read-only, with a CLI hint), major and pin, Save, and Update now, with "skip the safety delay" for owners only, behind fresh auth. It shares one core with plan 3's JSON doors, which answer byte for byte as before. Settings the app keeps for itself are read-only. No control is ever disabled. Each live control carries the value the member saw, so a stale page never undoes another member's change, and clearing works while the fleet gate is closed.
- A hostname that changes tenant on a box resolves its update settings fresh (task 8). The registry upsert stops carrying updatesettings and buildstate across an effective account/app change. Root and the agent ignore a stored decision tagged for another tenant. Untagged legacy files are read as before.
- docs/site/cli.md sections for the new verbs, and a README roll note.
Copy: 46 new drafts in internal/updatewords/words_surfaces.go (TODO-COPY). TestApprovedCopyIsApplied fails until docs/superpowers/plans/2026-10-07-instance-settings-5-copy.json records Paul's approved text, so CI is red on that one test only until the copy is applied.
Review: per-task reviews are in the SDD ledger. Astra rejected r1 and r2 and accepted r3; task 8 was rejected in r4 and r5 and accepted in r6. See docs/superpowers/plans/CODEX-FINDINGS-SETTINGS-IMPL-5*.md.
Not merged, not rolled. Do not merge before the copy is approved and applied.
Commits
18
Discussions
0
0 open
Tasks
0/0
done
Discussions
- No discussions on this branch yet.
Tasks
- No tasks yet.
Activity
- claude agent, operated by paul@keymail.dev pushed bb85f2091 settings-5 task 1: Paul's approved copy for plan 5 (unchanged from the drafts) Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
- claude agent, operated by paul@keymail.dev pushed f966f6b48 Merge remote-tracking branch 'origin/main' into settings-5-surfaces
- claude agent, operated by paul@keymail.dev pushed 13294aecb settings-5: Astra's task 8 findings (r4 REJECT, r5 REJECT, r6 ACCEPT)
- claude agent, operated by paul@keymail.dev pushed 8837f20a1 settings-5 task 8: fix round 2 (NUL in an account is invalid in SQL too)
- claude agent, operated by paul@keymail.dev pushed 3e24809fe settings-5 task 8: fix round 1 (held wake reads untagged decisions, effective-account compare, fail closed on registry errors)
- claude agent, operated by paul@keymail.dev pushed 1b603228c settings-5 task 8: a host that changes tenant resolves its update settings fresh
- claude agent, operated by paul@keymail.dev pushed 5c57c95da settings-5: record-write census for the moved settings writers
- claude agent, operated by paul@keymail.dev pushed e87d73d6a Merge remote-tracking branch 'origin/main' into settings-5-surfaces
- claude agent, operated by paul@keymail.dev pushed 86329f0ed settings-5: Astra's findings (r1 REJECT, r2 REJECT, r3 ACCEPT)
- claude agent, operated by paul@keymail.dev pushed 517906451 settings-5: Astra r2 fix (attribute the box's stored update decision)
- claude agent, operated by paul@keymail.dev pushed 40e7782e8 settings-5: Astra r1 fixes (update report attribution, fast-track gate order, inherited major, named-unit services, copy inventory)
- claude agent, operated by paul@keymail.dev pushed 561c7dfb6 settings-5 task 6: docs for the update settings commands; roll notes
- claude agent, operated by paul@keymail.dev pushed f0f070d1e settings-5 task 5: fix round 1 (stale-form baseline, rate-limit copy)
- claude agent, operated by paul@keymail.dev pushed 9900efbaf settings-5 task 5: the instance page's Updates section
- claude agent, operated by paul@keymail.dev pushed 80a18a6ba settings-5 task 4: carlos instances list says why an instance is behind
- claude agent, operated by paul@keymail.dev pushed 5b9c8837c settings-5 task 3: carlos instances set and carlos instances update
- claude agent, operated by paul@keymail.dev pushed 614ea70d0 settings-5 task 2: carlos apps set sets the instance update policy
- claude agent, operated by paul@keymail.dev pushed 0b7355a1f settings-5 task 1: draft plan 5's update settings copy for review