diff --git a/docs/WEEKLY_RELEASE_TRACKER.md b/docs/WEEKLY_RELEASE_TRACKER.md index fcb5eacc..87014d49 100644 --- a/docs/WEEKLY_RELEASE_TRACKER.md +++ b/docs/WEEKLY_RELEASE_TRACKER.md @@ -4,6 +4,55 @@ Last updated: 2026-06-14 (session on node .116 / archi-thinkpad) --- +# ▶ IN PROGRESS — LND wallet auto-unlock fix (2026-06-14) + +## RESUME PROMPT (paste into a fresh session, on .116 / archi-thinkpad, tree at /home/archipelago/Projects/archy) + +> Resume the LND wallet-password fix. Read memory `project_lnd_wallet_password.md` FIRST (full +> root-cause + design + validated facts). Work is on branch `lnd-wallet-password-fix` (pushed to +> gitea-vps2, commit 91adc281, NOT merged to main, NOT shipped). Bug: hardcoded +> `WALLET_PASSWORD="hellohello"` left LND wallets LOCKED fleet-wide after OTA → Bitcoin-receive +> shows "wallet is locked" on every updated node. DONE + cargo-checked: per-node random secret +> (secrets/lnd-wallet-password), both init paths unified, candidate-unlock with fail-fast, +> login-time candidate-migration (ChangePassword). DETECTION GATE already shipped on main +> (commit 8c8e4d7a). DECISION: alpha, NO funds on nodes → destructive wipe+recreate is OK and +> wanted UNATTENDED for ALL nodes in the next update. A wallet locked with an unknown password is +> already inaccessible, so wiping loses nothing reachable. + +## EXACT NEXT STEPS — LND fix (in order) +1. **Finish seed/fresh recovery** (REMAINING piece): in `container/lnd.rs ensure_wallet_initialized`, + when wallet.db exists but ALL unlock candidates fail → wipe wallet.db (+ macaroons + graph/chain + mainnet state, as root via host_sudo) and re-init fresh (random genseed + per-node secret) so the + node self-heals unattended at boot. (Login-time candidate-migration already handles nodes whose + pw matches.) Validate the wipe→reinit mechanic on the scratch LND first (see below). +2. **Scratch validation** (was in progress, .249 unreachable from .116's subnet → use a throwaway + `lnd-scratch` podman container on .116, regtest/neutrino, REST :18099 — already proven for + init/unlock/ChangePassword). Test: init(passA) → restart→LOCKED → delete wallet.db while locked → + confirm /v1/state→NON_EXISTING (may need container restart) → genseed+initwallet fresh → unlock. + NOTE: scratch wallet.db lives at the container's LND data dir (regtest), `podman exec lnd-scratch + find / -name wallet.db`. CLEAN UP: `podman rm -f lnd-scratch` when done. +3. `cargo check -p archipelago` (on .116 ~15-30s incremental; full test compile ~9min). +4. **End-to-end on .228** (reachable 192.168.1.x, SSH pw `archipelago`, UI pw unknown, NO funds — + has a locked unknown-pw wallet = perfect auto-recreate test): build binary + (`ARCHIPELAGO_TARGET=archipelago@192.168.1.228 scripts/deploy-to-target.sh` or per + reference_deploy_to_nodes), deploy, restart, confirm wallet auto-recreates+unlocks, lncli state + RPC_ACTIVE, lnd.newaddress returns an address. Run os-audit against .228 → lnd check PASS. +5. Merge `lnd-wallet-password-fix` → main, then **cut + publish v1.7.93-alpha** (carries the LND + fix). Ship ritual: create-release.sh 1.7.93-alpha → add CHANGELOG (≥3 layman bullets) → run + sync-whats-new.py (the new What's-New gate will require it) → publish-release-assets.sh gitea-vps2 + → push origin/gitea-vps2 + tags → verify live manifest==1.7.93-alpha. Heads-up: create-release + leaves core/Cargo.lock version-bump uncommitted (commit it as a chore, both .91 and .92 hit this). + +## Context: how we got here (this session, all on node .116) +- Shipped **v1.7.91-alpha** (bitcoinReceive TS2538 build fix) and **v1.7.92-alpha** (ElectrumX + overlay-during-sync fix; L3 reboot os-audit gate; What's-New sync gate + 8-version backfill) — + both LIVE on vps2. Restored .116-local nginx `/lnd-connect-info` route (was dropped 2026-06-10). +- Triaged user symptoms: ElectrumX "can't connect" = electrs syncing / Bitcoin verifying (not a + regression); .228 "5/14 apps after reboot" = normal ~5min staggered startup (all 14 came up). +- LND lock bug found + detection gate shipped + forward fix & migration implemented (this section). + +--- + # ✔ DONE PASS — v1.7.91-alpha + v1.7.92-alpha (2026-06-14) ## Outcome (both releases PUBLISHED + LIVE on vps2)