docs(13): the UAT record is stale — the node reverted to a main build

13-15's gate requires the DEPLOYED surface to be checked, not only the
source. That half is currently void: archi-dev-box runs a binary dated
2026-08-08 03:20 built from main, not this branch — no `app_uninstall` in
`strings`, and the ownership hooks chown unconditionally with no drift-gate
`stat` calls, so b9e64eb6/db8937f9/ca106c5a/b8869307 are all absent. Every
row of the acceptance table was verified against a binary the node no longer
runs, 417 commits back.

Also corrects row 2. The record captured scope `own` only, which cannot
discharge check 2's "real peer/owned files"; and the 2026-08-06 note saying
peers/owned "exist only in type signatures" is obsolete — 05b459a6 and
9abc1623 made requestArchyAllContent fetch all three scopes from init(),
deduped through one sink, which the operator confirmed on 2026-08-08 is the
intended auto-load-at-init behaviour. Check 2 is code-complete and
verification-pending, not unbuilt.

Records the ordered steps to actually close the phase, and the pre-deploy
orphan-companion evidence snapshot the reaper will consume.

The phase stays OPEN. Nothing here closes 13-15.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
archipelago
2026-08-08 08:39:58 -04:00
co-authored by Claude Opus 5
parent b57f363745
commit 278232d7cb
2 changed files with 86 additions and 0 deletions
@@ -0,0 +1,36 @@
# Pre-deploy orphan-companion evidence — captured 2026-08-08T11:08:59Z
## Backends present?
lnd EXISTS
fedimint ABSENT
bitcoin-knots EXISTS
electrumx EXISTS
## Companion containers
archy-lnd-ui Up 2 days
fips-ui Up 2 days (healthy)
archy-fedimint-ui Up 13 hours
archy-electrs-ui Up 2 hours
archy-bitcoin-ui Up About a minute
## Companion systemd units
UNIT LOAD ACTIVE SUB DESCRIPTION
archy-bitcoin-ui.service loaded active running Archipelago companion UI: archy-bitcoin-ui
archy-btcpay-db.service loaded active running Archipelago app: archy-btcpay-db
archy-electrs-ui.service loaded active running Archipelago companion UI: archy-electrs-ui
archy-fedimint-ui.service loaded active running Archipelago companion UI: archy-fedimint-ui
archy-lnd-ui.service loaded active running Archipelago companion UI: archy-lnd-ui
archy-nbxplorer.service loaded active running Archipelago app: archy-nbxplorer
Legend: LOAD → Reflects whether the unit definition was properly loaded.
ACTIVE → The high-level unit activation state, i.e. generalization of SUB.
## Quadlet unit files
archy-bitcoin-ui.container
archy-electrs-ui.container
archy-fedimint-ui.container
archy-lnd-ui.container
archy-lnd-ui.container.bak-20260506061414
fedimint-clientd.container
fips-ui.container
lnd.container
@@ -54,3 +54,53 @@ tree's `dist/`, never by grepping the never-pruned `assets/` graveyard on disk.
phase's close work; recorded in W1.7 of the assessment fix plan.
- Console noise items (wavlake/itunes CSP on enrichment, sw.js SSL on self-signed) tracked
in the open task list.
---
## Addendum — 2026-08-08: this record is stale, and the node is not running this branch
**The phase is NOT closed. Do not mark 13-15 complete from the record above.**
### The deployed surface no longer matches the build under test
13-15's gate is explicit that "the deployed surface is checked, not only the source". That
half of the gate is currently void: `/usr/local/bin/archipelago` on archi-dev-box is dated
2026-08-08 03:20 and is a build of **`main`**, not of this branch. Evidence: `strings` on the
deployed binary finds no `app_uninstall` (added by this branch's `7686a486`, confirmed
branch-exclusive via `git branch --contains`), and the sudo journal shows the per-app
ownership hooks chowning unconditionally with no `stat -c %u:%g` drift-gate calls — i.e.
`b9e64eb6` / `db8937f9` / `ca106c5a` / `b8869307` are absent.
So every row in the table above was verified against a binary the node **no longer runs**.
The node has silently reverted to a tree 417 commits behind this branch. Re-verification is
required after a redeploy; nothing above can be carried forward on trust.
### Row 2 (content grid) — the premise changed after this record was written
The table records scope `own` only (18 items, "13 Images"). 13-15's check 2 asks for **real
peer/owned files**, which `own` alone cannot discharge. Since `482c4e30`:
- `05b459a6` + `9abc1623` made `requestArchyAllContent()` fetch `own`, paint, then fold in
`owned` and `peers` as each resolves — deduped by id, through a single `setArchyContent`
sink, called from `init()`. Operator decision 2026-08-08 confirmed auto-load-at-init is the
intended behaviour.
- The 2026-08-06 note claiming "no call passes `peers` or `owned`; they exist only in type
signatures" is therefore **obsolete** and should not be re-derived from it.
Check 2 remains **unverified on device**. It is a code-complete, verification-pending row.
### What completing this gate requires
1. Merge `gitea-ai/main` into this branch (the open-source workstream, 63 commits) and rebuild.
2. Deploy that build to archi-dev-box — binary **and** both frontends.
3. Re-run rows 111 above; they are void against the current deployment.
4. Discharge check 2 specifically: peer and owned content reaching the grid, images bucket
rendering, audio going to the bottom bar rather than the lightbox.
5. Do the real-handheld pass, still owed from the original record.
6. Only then write `13-15-SUMMARY.md`, flip `13-VALIDATION.md`'s `status:` from `draft` to
`validated`, and close the phase.
Two new lifecycle fixes land with this branch and want their own device checks at the same
time: the companion reaper (orphaned `archy-fedimint-ui` should disappear ~5 min after start
while `archy-bitcoin-ui` survives) and `Restart=always` on backend units (a `podman stop` of
a backend should see systemd restore it within ~10s instead of leaving it deleted).