Merge main, and two things that answer confidently instead of failing
a6fa843 brought live sync to main. The only conflict was the build script's rename (build-editor.mjs became build-bundles.mjs when it started emitting two): the live-update test step is kept exactly as it was and only the reference repointed. The editor bundle is rebuilt on top of that branch's own changes to editor-entry.js, which is why a rebuilt bundle is never hand-merged. Merged rather than rebased because this branch is already pushed, and rewriting pushed history would need a force push. Two entries for AGENTS.md's section on tools that answer wrongly rather than failing. `carlos channels` reports which release a channel POINTS AT, not which one the box is SERVING, and adoption runs on an hourly timer — so the two disagree for as long as an hour after a promote. Observed 2026-09-01: edge read the new version while the live host served the previous one for five minutes, closed within seconds by a restart. Neither command fails and nothing says "not live yet". Marked as one observation rather than a measurement, because this branch did not re-verify it. And the one this session earned. A merge commit on main was reported as a breach of the shipping cadence, and I passed it on to Paul as one — including "two sessions noticed it independently", when the second session was the one who told me. `amadan branch merge` produces a merge commit itself; the branch had landed correctly through the sanctioned gate. A minute with the tool would have caught it. What is written down now is that another session's report is evidence about what they saw rather than a fact you have checked, and relaying it flatly launders one into the other.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YYB9fUAfxXNzkeC3fsFYzR
23 files changed,
+2451
−43
.amadan/ci.d/10-gate+12 −0AGENTS.md+24 −0docs/superpowers/plans/2026-09-01-live-sync.md+117 −0docs/superpowers/specs/2026-08-30-docs-design.md+40 −4docs/superpowers/specs/2026-09-01-live-sync-design.md+417 −0fixtures/editor-entry.js+145 −8fixtures/live-updates.mjs+192 −0fixtures/live-updates.test.mjs+290 −0internal/docs/app.go+8 −2internal/docs/cursor_test.go+293 −0internal/docs/editor_view_test.go+1 −1internal/docs/handlers.go+69 −2internal/docs/hub.go+118 −0internal/docs/hub_test.go+154 −0internal/docs/render.go+9 −0internal/docs/seed.go+6 −1internal/docs/static/editor.2acdd85ce9619546.js+14 −0internal/docs/static/editor.98af6ed37bba8906.js+0 −14internal/docs/store.go+48 −7internal/docs/store_test.go+4 −4internal/docs/stream.go+170 −0internal/docs/stream_test.go+309 −0internal/docs/testing.go+11 −0
CI passed — run details
Intent
.amadan/ci.d/10-gateLoading diff…
AGENTS.mdLoading diff…
docs/superpowers/plans/2026-09-01-live-sync.mdLoading diff…
docs/superpowers/specs/2026-08-30-docs-design.mdLoading diff…
docs/superpowers/specs/2026-09-01-live-sync-design.mdLoading diff…
fixtures/editor-entry.jsLoading diff…
fixtures/live-updates.mjsLoading diff…
fixtures/live-updates.test.mjsLoading diff…
internal/docs/app.goLoading diff…
internal/docs/cursor_test.goLoading diff…
internal/docs/editor_view_test.goLoading diff…
internal/docs/handlers.goLoading diff…
internal/docs/hub.goLoading diff…
internal/docs/hub_test.goLoading diff…
internal/docs/render.goLoading diff…
internal/docs/seed.goLoading diff…
internal/docs/static/editor.2acdd85ce9619546.jsLoading diff…
internal/docs/static/editor.98af6ed37bba8906.jsLoading diff…
internal/docs/store.goLoading diff…
internal/docs/store_test.goLoading diff…
internal/docs/stream.goLoading diff…
internal/docs/stream_test.goLoading diff…
internal/docs/testing.goLoading diff…