Repository navigation
v0.6.0 final — release scope: the short list (blocker set + deferrals) #909
Description
Goal
Ship v0.6.0 final as soon as safely possible. Scope = the minimum set that makes rc2 safe and correct to release. Everything else retargets to 0.6.1/0.7.0 — a smaller release is the goal, not a bigger one.
Blockers (fund safety / stop-ship)
| PR | Why it blocks |
|---|---|
| #908 | gonuts v0.14.0 — NUT-13 residue-collision guard (the wallet-bricking duplicate-output class) + amount==fee local refusal. Script-generated bump, tests green, evidence in-thread. |
| #899 (+ #894, same #888 family) | Fresh install leaves uhttpd.main with no listeners — the captive portal is dead on a clean apk-era install. Stop-ship. #894 carries install-time credentials through the same path. |
| #871 | Durable config writes + offline wallet.db corruption check (#505 audit) — power-loss state/fund safety. |
| #870 | Single-writer invariant at boot and on the CLI socket (#504). |
| #793 + #873 | Swap-recovery pair: recover crashed swaps on wallet load (#497) + boot resume replays journaled swap intents (#719 crash window). Same family — land together. |
| #782 | NDS pre-auth allowlist executes at nft priority −2 — completes merged #769 (pre-auth DNS) so it actually functions. |
| #874 | IPv6 disabled globally until captivity is v6-aware. Largest review item (+2278) — flagging explicitly: either it blocks, or we consciously accept v6 exposure in final. Needs a decision, not a default. |
Quick wins riding the release cut (small, release-relevant)
- fix(deps): security sweep — grpc x3 advisories + otel family lockstep (dependabot #89/#90/#91/#88) #885 — grpc ×3 + otel lockstep advisory clears (supersedes deps: clear the four post-sweep dependabot alerts — grpc v1.83.1 (token-recovery), otel otlptrace v1.47.0 (src) #727 — same files, broader set; deps: clear the four post-sweep dependabot alerts — grpc v1.83.1 (token-recovery), otel otlptrace v1.47.0 (src) #727 closed into it). Shipping final with known-CVE deps in the router binary is avoidable for +50 lines.
- docs(changelog): rename the four drifted fragments to the numeric convention + PR-link tails #891 + changelog: fix #850's fragment form — bullet body and PR-link tail #893 — changelog-fragment hygiene: the release-notes rewrite consumes fragments; drifted/malformed ones break the cut.
- test(installer): contract lane for built packages on a pristine apk-era VM — #888/#890 acceptance, shipped red #892 — installer contract lane on a pristine apk-era VM: this is the test coverage for the installer: TOLLGATE_ADMIN_PASSWORD / TOLLGATE_PRIVATE_WIFI_PASSWORD never reach the uci-defaults script under
apk addon 25.12 — the documented install-time credential UX is broken #888/fix(setup): fresh install left uhttpd.main with no listeners — entry_ui must not wait for the marker its writer has not yet run (#849) #899 family it ships with. - test(battery): cgroup-bound test legs + ai-legion host-resource doctrine #877 — battery cgroup legs: needed to run the release battery sanely on ai-legion.
Deferred to 0.6.1+ / 0.7.0 (~45 PRs — not on the critical path)
Features: #549 (wallet recover CLI), #856 (br-mgmt bridge), #859 (hostmode), #860 (ssid leading-bang), #886 (cloud-lab scenario e'), #773 (port-table single source), #795 (upstream portal trigger hardening).
Merchant/ops quality: #777, #865, #869, #875, #887, #895, #715, #778.
Firewall family remainder: #784, #785, #786 (correctness hardening; #782 is the functional piece).
Test/docs/CI lanes: #711, #759, #762, #764, #774, #775, #779, #794, #797, #820, #823, #830, #846, #857, #861, #862, #863, #864, #868, #872, #878, #879, #881, #883, #898, #905.
(None of these are holding the release; several are already staged with review evidence and can merge at leisure, pre- or post-cut.)
Process from here (sequential)
- Confirm/amend this list (the fix(packaging): IPv6 disabled globally until captivity is v6-aware (#783 mitigation) #874 decision is the main fork in the road).
- Battery campaign against rc2 + the confirmed blocker set (tmux, ai-legion).
- Final cut: fold [Unreleased] → [v0.6.0], VERSION, tag, Nostr publish.
Scope drafted from the full open-PR audit on 2026-10-12; classifications from PR titles/bodies and the merged rc2 content. Amendments welcome in comments — this issue is the release scope of record.
Activity
Amperstrand commentedon Oct 13, 2026
Scope refresh (2026-10-13, post-rc4)
The rc3/rc4 cuts changed the landscape under this scope:
Release-notes draft #912 has been amended to match rc4 (credential model, decommission plan, upgrade notes).
Amperstrand commentedon Oct 13, 2026
Queue health — conflict sweep (2026-10-13, via #921)
Open PRs: 65 · conflicting with
origin/main: 6tests/uci-defaults-entry-ui-mapping_test.shsrc/merchant/merchant.go.github/workflows/test.yml.github/workflows/test.ymlscripts/token-recovery/go.mod,scripts/token-recovery/go.sum,tests/cloud-lab/Dockerfile.clienttree.Scope-relevant: #793 (swap-recovery blocker) is now CONFLICTING — it was mergeable at the last manual check; rc4's direct pushes broke it. #899 remains conflicting. Both need rebases before their approvals can convert to merges. The
test.ymlconflicts (#864, #856) are the hotspot disease #920 proposes to fix.Amperstrand commentedon Oct 14, 2026
Status board — 2026-10-14 unattended audit (release lane)
Verdicts from local test-merges against
origin/main @ 7fec9e3(current tip, fetched fresh today) — not GitHub's asyncmergeablefield, which is provably stale on #793 (it reports MERGEABLE while the actual tree conflicts). Evidence reviews were posted today where threads lacked them; all cited test runs executed on ai-legion.Blockers
1945fdc(21:12Z) — current.9795777on 10-13 20:00Z; only7fec9e3after. Fresh 13-criteria delta review posted today at headfd77a3a: merged-tree runs 73/0 (install-sequence incl. new scenario 4/4b) + 162/0 (mapping).cd0a222(probe-then-remove race). #932 (stacked, one commit) closes it: flock-serialized claim + concurrent-start regression test, mutation-checked red on pre-fix, fullsrc/clibattery green under-race -tags testenv. Squash into #870 or merge after it.scripts/token-recovery/go.mod,go.sum,tests/cloud-lab/Dockerfile.client(the rc4-era direct pushes). Rubric review at current heade1f8330stands; the rebase is the only remaining work once un-declined.Quick wins riding the cut
9795777at 10-13 12:44Z, CLEAN today. Pre-review in-thread.Net: every blocker except #793 (owner-declined rebase) and #874 (owner decision) is merge-ready pending human write-access approval; the one open code finding in the set is fixed and posted as #932.
The one recommended morning sequence
— posted by the 909 release lane (handoff:
/tmp/opencode/handoff-909.mdon ai-legion).