diff --git a/docs/1.8.0-RELEASE-HARDENING-PLAN.md b/docs/1.8.0-RELEASE-HARDENING-PLAN.md index e8ae206b..11124a4c 100644 --- a/docs/1.8.0-RELEASE-HARDENING-PLAN.md +++ b/docs/1.8.0-RELEASE-HARDENING-PLAN.md @@ -140,16 +140,14 @@ modules; production request/boot paths are essentially panic-free. The real risk revalidate) instead of blocking on systemctl. `image_verifier.rs` cosign sites have no callers yet โ€” handled with the ยงA cosign item. Tests: container 155 / transport 29 / config 29 / package 46 all green. -- [ ] ๐ŸŸก **Restrict Bitcoin RPC exposure.** INVESTIGATED 2026-07-03 โ€” the fix is NOT - `rpcallowip`: under rootless-podman NAT every forwarded connection reaches bitcoind - with an in-subnet source IP, so scoping `rpcallowip` blocks nothing (and container - consumers use archy-net DNS anyway). The actual exposure is the host-side publish - `8332:8332` (binds 0.0.0.0 โ†’ LAN can hit RPC, auth-only barrier; 4 write sites: - `bootstrap.rs:424`, `package/config.rs:694`, `package/install.rs:1333/2450`, plus - the knots manifest). Real fix = `127.0.0.1:8332:8332` host bind (P2P 8333 stays - public; zmq 28332/28333 should get the same look โ€” unauthenticated). โš  May break - external wallets pointed straight at nodeIP:8332 โ€” needs a user call + on-node gate - re-run, so NOT changed drive-by from the dev box. +- [x] ๐ŸŸก **Restrict Bitcoin RPC exposure.** DECIDED (user, 2026-07-08: break external + wallets) + DONE `dd61a204`: manifest port mappings grew a validated `bind` field; + bitcoin-knots/-core publish 8332 on `127.0.0.1` + the archy-net gateway `10.89.0.1` + only (in-node consumers dial host.archipelago/host.containers.internal โ†’ 10.89.0.1, + unaffected; P2P 8333 stays public); legacy config.rs strings get the same incl. + unauthenticated ZMQ 28332/28333. Unbound ports render byte-identical (no false-drift + wave). **Still to roll out:** catalog regen + re-sign for catalog-covered nodes; + each node's bitcoin container recreates once on deploy โ†’ restart lnd after (IP cache). - [x] ๐ŸŸก **Move secret env out of plaintext channels โ†’ podman secrets.** DONE 2026-07-05, **VERIFIED ON .228 2026-07-08**: recreate wave settled (only fedimint-gateway lagged โ€” restart-sensitive, converged via a controlled quadlet restart, healthy, 0 plaintext @@ -360,11 +358,13 @@ media (latest artifact only one minor behind). `config.rs:256` once the .5 gate reports clean. - [ ] ๐ŸŸ  **Developer CLI suite** (`archy app validate/render/install/test`) โ€” gates external app publishing (`APP-PACKAGING-MIGRATION-PLAN.md` step 5). -- [ ] โ›”๐ŸŸก **Version-naming decision** (`1.7.99-alpha` โ†’ `1.8.0` vs `1.8.00-alpha`) โ€” a one-line - call, then a mechanical bump + tag. **Needs your decision.** -- [ ] โ›”๐ŸŸข **Bitcoin multi-version fleet OTA** โ€” `.228` working on branch; rollout timing is - held for your call (`docs/bitcoin-version-bulletproof-rollout.md`). -- [ ] โ›”๐ŸŸข **3ccc stock-Meshtastic RF validation** โ€” code fix in place; needs a live radio send. +- [ ] ๐ŸŸก **Version bump + tag** โ€” DECIDED (user, 2026-07-08): the release ships as + **`1.8.0-alpha`**. Remaining work is the mechanical bump + `create-release.sh` run + when the gate criteria are met. +- [ ] ๐ŸŸข **Bitcoin multi-version fleet OTA** โ€” DECIDED (user, 2026-07-08): timing doesn't + matter; fold the branch into the next fleet OTA (`docs/bitcoin-version-bulletproof-rollout.md`). +- [x] ~~โ›”๐ŸŸข **3ccc stock-Meshtastic RF validation**~~ โ€” DROPPED per user 2026-07-08; the + code fix stays in, no live-radio validation will be scheduled. ---