gates / gates (push) Successful in 6m56s
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
6.2 KiB
6.2 KiB
REPORT — RomM finds its games · Ghost does not lock the household out · the floor refuses withdrawn builds (2026-10-16)
Daytime, operator present. A second session works in this repo today, so this is a dated report, not REPORT.md.
Design read: architecture/09-update-architecture.md (§0, decisions 4 and 250), 05-hub-architecture.md (floor
serving), 02-controller-module-map.md (app e-mail), 07-backup-architecture.md (RomM's optional legs).
Evidence: documentation/audits/romm-ghost-2026-10-16/ (A1, A2, B, C1, C2, teardown).
1. RomM (R-1089) — measured, fixed, both scenarios pass
- A1 (9201): a dummy file where the first steps said (
roms/gba/) → „No platforms found”, 0 games. One folder deeper (roms/roms/gba/) → found. Cause: RomM 5.3.1 scanslibrary/roms/<platform>/; the drive'sroms/was mounted aslibrary/. - Fix (catalog
fb18471):roms→library/roms; new drive folderroms-bios→library/bios(operator ruling); backup and folder labels for it; first steps corrected; staleadmin / admincomment replaced. - Scenario A (fresh install): the file at
roms/gba/is found. Pass. - Scenario B (old install, correction, restart): the old-steps file is found; the drive is unchanged byte for byte;
the data tab shows both folders backed up. Pass. A game uploaded through RomM under the old mapping becomes
„missing” and reappears under a fake platform „roms” (it sits in
roms/roms/<platform>/). - BIOS: a file in
roms-bios/psx/is read as psx firmware. - Who runs RomM: demo-felhom (N100) and demo-hp only (hub
/apps/romm, read only). No customer box.
2. Withdrawn controller builds (R-1085) — refused at input and at serve time, live
- Hub v0.155.0 (
b17e9e99, deployedf1e1c8a6after the operator's yes). One list (hub/internal/store/spoiled_tags.go:0.315.0,0.316.3). Both floor forms and the impact probe refuse a listed tag;ResolveManagedFloorholds one that arrives any other way (stored value, override, config/env default), with its own reason and one[WARN]per change. The Configuration and customer pages say „withdrawn". - The hand deploy: a marked never-deploy line and a chained pre-check in the
felhom-build-deployskill; a test pins that both equal the hub's list. - Tests: store, forms, probe, both branches of both page notices, the real report handler, the skill parity.
Ten red-proofs, each seen failing (
B/hub-redproofs.txt). Full hubgo build && go vet && go test: green. - Live (
B/hub-live-check.txt): ArgoCD Synced/Healthy atf1e1c8a6, pod onfelhom-hub:0.155.0. Impact probe for0.316.3→valid:false, spoiled:true; control0.319.0→ valid. POST0.316.3to the global floor with CC's token → 303flash=floor_spoiled; the floor read back is still0.319.0; the hub logged one[WARN] … REFUSED. Boxes kept being served0.319.0.
3. Ghost (R-1090) — measured, fixed, both ways pass
- C1: Ghost 6.67.0 skips the e-mailed code only on the first-ever sign-in; the next new device got 500 „Failed to send email” — locked out.
- Fix (catalog
fb18471): the device check is off by default and turned on with the mail settings by a newsmtp_mappingwhen app e-mail is on. One FAQ entry. - Scenario E, e-mail off: a new device signs in with the password alone (201).
- Scenario E, e-mail on: 403
2FA_NEW_DEVICE_DETECTED; the shim relayed (hub 200); the mail arrived; the code from it was accepted and the device signed in (200).
4. Versions, commits, teardown, register
- Catalog:
fb18471(RomM + Ghost),806d2d0(report, box-walk fix). felhom.eu:b17e9e99(hub code, skill,09, evidence),f1e1c8a6(manifest), and this commit (register, STATUS, report, last evidence). Hub v0.154.0 → v0.155.0. Controller and agent: not touched. - CI by job id: felhom.eu
b17e9e99job 1934 success; catalogfb18471job 1931 success; the later pushes are listed in the session's final note. - Teardown: machine (9201) — RomM and Ghost removed, the drive's
roms/as found, app e-mail back off, two empty helper folders removed; kept on purpose: twokept/romm/<date>/folders (the product's „start fresh" result, 8 KB). The pre-existing broken RomM was removed by operator ruling. Host — nothing. Hub — no record created; the hub deploy is the only hub change. - Register: 175 rows before, 176 after; 3 closed (R-1085, R-1089, R-1090), 4 opened (R-1096, R-1097, R-1098, R-1099). STATUS: one line for the operator (R-1099). System poster: no poster fact changed — none of the three updates was needed.
5. Observations
- The standing RomM on 9201 crash-looped on Redis files damaged by the 2026-09-24 disk-full — FILED: R-1096.
- RomM keeps saves, states and screenshots in an anonymous volume (
/romm/assets), outside the backup — FILED: R-1097. - The hub build script does not refuse a version that already exists in the registry (the controller's does) — FILED: R-1098. Checked by hand for 0.155.0 today (not found; control 0.154.0 found).
- The N100 may hold RomM uploads in the old place, now under a fake „roms" platform — FILED: R-1099 (operator, STATUS).
- The box walk made a drive folder for a value the caller passed — NOT-A-FINDING: small, fixed (catalog
806d2d0). - A drill fixture folder (
DRILL-2026-08-21) on 9201's drive shows as a RomM platform — NOT-A-FINDING: another session's test file on a test drive, left untouched. - The task gave the new flash text in Hungarian and English — NOT-A-FINDING: the hub's operator pages are English only, so only the English text was used, like every neighbouring flash.
- The task asked for a RomM FAQ line if a rescan is needed after the mount change — NOT-A-FINDING: a rescan does not fix it (the files must move), and no customer runs RomM; R-1099 covers the one box that may.
- RomM's remove answered 502 while another session restarted 9201's controller; the remove had completed — NOT-A-FINDING: the proxy's answer during a deliberate controller restart.
- 9201's controller moved
0.318.0→0.319.0-rc.1during the test — NOT-A-FINDING: another session's release work.
unproven.py --summary: unchanged — 35 of 55 claims not walked.