2026-10-07 17:26:42 -04:00
|
|
|
# Fleet recovery qualification — 7 October 2026
|
|
|
|
|
|
2026-10-07 17:37:24 -04:00
|
|
|
Status: source regressions and isolated browser checks qualified; deployed-browser and distributed
|
2026-10-07 17:26:42 -04:00
|
|
|
transport acceptance remain open. This supplements tasks 8, 10 and 12 without
|
|
|
|
|
claiming that the full Fleet acceptance matrix is complete.
|
|
|
|
|
|
|
|
|
|
## Findings and changes
|
|
|
|
|
|
|
|
|
|
A failed status poll only surfaced an error during the initial load. Once reports
|
|
|
|
|
were cached, network failures silently left the previous view in place. The view
|
|
|
|
|
now keeps those reports, selection and sort order, with an explicit failed-refresh
|
|
|
|
|
notice and Retry. An initial failure without reports remains an unavailable state.
|
|
|
|
|
A successful refresh clears the notice. Report timestamps continue ageing; a
|
|
|
|
|
monitoring failure is not relabelled as proof that a peer is offline.
|
|
|
|
|
|
|
|
|
|
Concurrent refreshes could overwrite newer status/alerts with older replies.
|
|
|
|
|
Status, alerts and refresh completion now track request generations. Replies
|
|
|
|
|
arriving after unmount cannot repopulate the session cache or change the view.
|
|
|
|
|
Malformed status envelopes cannot advance the successful-refresh timestamp.
|
|
|
|
|
|
|
|
|
|
## Evidence
|
|
|
|
|
|
|
|
|
|
Focused Vitest run: **21 tests passed in four files**, zero failures, including
|
|
|
|
|
actual Fleet view rendering with retained cards, outage notice and successful
|
|
|
|
|
Retry. Other cases cover a missing cache, late status/alert replies, a malformed
|
|
|
|
|
status response, late responses after unmount, real zero versus unavailable
|
|
|
|
|
metrics, report ageing, sorting and selected-node history isolation.
|
|
|
|
|
|
2026-10-07 17:37:24 -04:00
|
|
|
Logs: `/tmp/archy-fleet-recovery-tests-final.log` and
|
|
|
|
|
`/tmp/archy-fleet-recovery-typecheck.log` (Vue typecheck passed).
|
|
|
|
|
|
|
|
|
|
An isolated real Chromium harness rendered the actual Fleet component and styles
|
|
|
|
|
at 390px and 1440px. Cached cards and failure notice remained visible; keyboard
|
|
|
|
|
focus/Enter on Retry recovered the view; genuine zero remained 0%; no horizontal
|
|
|
|
|
overflow or page errors occurred. RPC was replaced with synthetic replies; all
|
|
|
|
|
non-fixture network requests were blocked. This was source-served component
|
|
|
|
|
qualification, not a deployed artifact or real outage. Initial harness attempts
|
|
|
|
|
failed because its standalone app initialization/import was incomplete; corrected
|
|
|
|
|
before both widths passed. Failed logs retained.
|
|
|
|
|
|
|
|
|
|
Browser scenario: `/tmp/archy-fleet-recovery-browser.cjs`,
|
|
|
|
|
server: `/tmp/archy-fleet-browser-server.mjs`,
|
|
|
|
|
result: `/tmp/archy-fleet-recovery-browser.log`. The owned server was stopped.
|
2026-10-07 17:26:42 -04:00
|
|
|
This is local component/composable evidence, not a live-node outage test.
|
|
|
|
|
No node service, peer relationship, wallet or payment was changed.
|
|
|
|
|
|
2026-10-07 18:37:04 -04:00
|
|
|
Combined frontend regression suite subsequently passed **1,448 tests in 176 files**,
|
|
|
|
|
zero failures, using one worker. Log:`/tmp/archy-combined-ui-20261007-full.log`.
|
|
|
|
|
Input hashes:`/tmp/archy-combined-ui-20261007-inputs.json`.
|
|
|
|
|
|
|
|
|
|
Production build passed from a separate frozen copy of all 701 qualified inputs;
|
|
|
|
|
all hashes were verified again after build. Real Chromium loaded this production
|
|
|
|
|
dist at 390px and1440px, with synthetic Fleet outage/recovery replies: retained
|
|
|
|
|
reports, keyboard Retry, genuine zero, layout and error checks passed. Payment
|
|
|
|
|
and signing were blocked. This is artifact qualification, not a real outage.
|
|
|
|
|
|
|
|
|
|
Durable artifact and evidence:
|
|
|
|
|
`~/.local/state/archipelago/release-qualification/combined-ui-20261007/`.
|
|
|
|
|
Archive SHA256:`16523c80ecebbb4ba1f6d289ead81ab86d59daf67093ce1d8d68d5bce3ffaae5`.
|
|
|
|
|
Index SHA256:`65e5a09eb736f73650ef5ac52bdebf66d1c877e69511edd7bd3095847f6734de`.
|
|
|
|
|
|
|
|
|
|
The initial dev deployment preservation gate refused before any writes because
|
|
|
|
|
three container start times changed independently after preflight. Failed log
|
|
|
|
|
retained at `/tmp/archy-combined-ui-dev-deploy.log`; actual deployed-node
|
|
|
|
|
acceptance remains separate until the retry and browser checks pass.
|
|
|
|
|
|
2026-10-07 17:26:42 -04:00
|
|
|
## Remaining acceptance matrix
|
|
|
|
|
|
|
|
|
|
| Area | Established evidence | Remaining |
|
|
|
|
|
| --- | --- | --- |
|
|
|
|
|
| Report rendering | Local normalization/render tests; earlier dev/Yaya metrics evidence in progress ledger | Updated sender/receiver comparison across supported versions |
|
|
|
|
|
| Status freshness | Clock-driven ageing, unknown versus stale, no synthetic metric zero | Real partition, reconnect and transport delivery |
|
2026-10-07 17:37:24 -04:00
|
|
|
| Refresh failures | Visible retained reports; empty failure; Retry recovery | Deployed artifact and actual-node outage; isolated 390/1440 browser passed |
|
2026-10-07 17:26:42 -04:00
|
|
|
| Concurrent replies | Newest status/alerts win; no unmount cache repopulation | Distributed delay/out-of-order delivery |
|
|
|
|
|
| Selection/sorting | Retained across failure; history request isolation | Larger-fleet navigation and keyboard checks |
|
|
|
|
|
| Authorization | No permission changes in this patch | Unauthorized/expired-trust actual-handler matrix |
|
|
|
|
|
| Remote actions/updates | Outside this patch | Disposable-node success/partial failure/restart/update matrix |
|
|
|
|
|
| FIPS | Existing preferred authenticated transport unchanged | Measured latency, fallback, reconnect and mixed capabilities |
|
|
|
|
|
|
|
|
|
|
No current-node restart or deliberate network outage was performed. Live fault
|
|
|
|
|
qualification must preserve wallets, installed applications and operator intent.
|
2026-10-07 18:37:04 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
## Dev deployment attempt and verified rollback
|
|
|
|
|
|
|
|
|
|
The immediate retry passed preflight but failed the final container-preservation
|
|
|
|
|
check because `botfights` was independently replaced during the deployment. The
|
|
|
|
|
helper automatically restored the prior UI. A subsequent HTTP fetch verified
|
|
|
|
|
index SHA256 `4d9424a4ad7548221a07e2c4f14019029ac5fc4e3f1d27ff5eca72b5ff0f6a56`,
|
|
|
|
|
matching the preflight baseline. Do not claim the new UI is deployed.
|
|
|
|
|
|
|
|
|
|
Read-only systemd and management journal checks show pre-existing health-monitor
|
|
|
|
|
restarts of datum, gashboard and angor-relay, and later botfights recovery from a
|
|
|
|
|
stuck stopping state. These checks explain the inventory change; they do not
|
|
|
|
|
establish why the health checks failed. No live app was stopped by this UI task.
|
|
|
|
|
Keep the preservation gate, leave the prior UI in place, and retry only after
|
|
|
|
|
qualification conditions are stable. Yaya was not changed.
|
|
|
|
|
|
|
|
|
|
Logs: `/tmp/archy-combined-ui-dev-deploy-retry.log` and the private preflight
|
|
|
|
|
receipt `/tmp/archy-combined-ui-dev-preflight-retry.json`.
|