Files
felhom.eu/REPORT-status-view-2026-10-20.md
T

9.8 KiB
Raw Blame History

REPORT — the status page back to one screen, and a gate that keeps it there (2026-10-20, day)

In plain words

The status page was 107 lines and 31,695 bytes; now it is 50 lines and about 5,500 characters outside the decide table, which holds the 8 decisions that are still open. The „do" list went from about 25 items to 7 „still needed? (yes/no)" questions, 2 morning-list items and 5 other lines (plus one „Later" line of row ids); CC checked the rest in the hub and on DooPlex, and 7 were already done. You answer: the „Still needed? (yes/no)" list below, one word per line.

Still needed? (yes/no) — copied from STATUS.md

  1. Look at roms/roms/ on the N100's drive in the file manager (R-1099). Since 2026-10-16.
  2. The N100 sheet, about 30 minutes: Plex, the admins in Prowlarr, Sonarr and Radarr, your download sources (documentation/audits/n100-lived-in-2026-10-15/SHEET.md). Since 2026-10-15.
  3. Look at these pages on demo-hp when you have time: Calibre-Web („Adatok és mentés"), the file manager, AdventureLog, Plex, the app page, the Plex and Sonarr guides („Útmutató"). Since 2026-10-16.
  4. Remove the test server „plex-k6" from your Plex account (plex.tv → Settings → Authorized Devices). Since 2026-10-15.
  5. Ask Google to index https://felhom.eu/sajat-felho-tarhely in Search Console (R-1035). Since 2026-10-14.
  6. BIOS: on the N100, read „After Power Loss"; on the HP, set „Bypass F1 Prompt on Configuration Changes" to Enable. Since 2026-10-14.
  7. Pin the first Facebook post (R-917), and look at the new cover in the Facebook phone app (R-919). Since 2026-10-12.

What CC checked, and how (method: the hub's GET pages with CC's scoped token, from the running pod; read-only local checks on DooPlex)

„Do" item Verdict Evidence
Vouch agent 0.161.0 done — the Day-0 manifest names 0.161.0 with the asked sha256 documentation/audits/status-view-2026-10-20/hub-reads.txt
Delete the test customer Tester3 done — not in the customer overview same
Discard registrations 40 and 41 done — the Hosts page has no „Unclaimed appliances" section (only registered/bound rows render) same
Delete Tester4's old host Tester4-31fa0e done — not on the Hosts page same
Say „tear it down" for Tester 1's media tests done — R-1022 closed 2026-10-17 CLOSED-ITEMS.md
Hub master key into the password manager, then shred the file done — new.key is gone; its folder is there (control) …/local-checks.txt
Hub 0.153.0 „no token can …" not a task — a statement; moved to history —
Pull the failed disk Z6A07P2G not done — still in DooPlex (lsblk; its twin is the control) …/local-checks.txt
The Facebook first-post/ leftovers not done — 15 files still there same
The deny-list edit in homelab-manifests not done — still uncommitted same
Old „broken" line: a Longhorn volume at 91 % gone — Alertmanager lists only the two R-934 disk alarms same
Old „broken" line: CI jobs get lost (R-887) gone — R-887 closed 2026-10-19 (381 jobs, 0 lost) CLOSED-ITEMS.md

Every decided row (D1, D2, D10–D20) left the decide table only after its ruling was found in its closed row in CLOSED-ITEMS.md. The whole old page is in STATUS-HISTORY.md under „Moved from STATUS on 2026-10-20" (headings moved down two levels, otherwise unchanged).

Register

  • Four numbers: rows before 156, after 153, opened 1 (R-1174), closed 4.
  • Closed: R-1121 (the rotation file is gone; control ~/.bashrc), R-1118 (its last part, R-1134, closed 2026-10-17; sec doctor all OK), R-231 (scripts in git and installed from it, the first run green; its same-disk facts live on in R-232) — evidence in CLOSED-ITEMS.md, audits/status-view-2026-10-20/local-checks.txt, audits/answers-2026-10-12/s20-backup-scripts.txt.
  • Merged: R-993 into R-991 (one decision, D5; the proposal and the „no host floor at install" fact copied into R-991).
  • Narrowed: R-132 (the hub password was rotated 2026-10-15; left: the break-glass hash field in the public repo); R-1049 → WATCHING (the fix is live since hub 0.151.0; it no longer waits on the operator).
  • Owner cell fixed: R-919 CC → operator (upload + the look), then CC (close) — its next action is the operator's.
  • Operator-owned rows (43), still waiting on the operator? yes for all, except: R-933 — CC first (the size measurement), then the operator's go; R-388 — partly (slice 1 is built; the scope decision is open); R-920 — parked by the operator's own choice (c). On the page: decide D3–D9, D21; do (still needed, the rest); the „Later" line for the remaining 23.
  • Rows over 4.5 KB (not rewritten, §N.7): R-336 7.6 KB, R-516 7.0, R-462 6.8, R-433 6.7, R-264 5.8, R-919 5.0, R-440 4.6, R-925 9.0.

The gate — scripts/status_view_gate.py (R-1174)

  • Checks: size outside the decide table (≤ 50 lines, ≤ 6,000 characters); one „Updated" paragraph (≤ 3 sentences, no „Earlier" chain); no Hungarian letter outside a quote; every cited R-n open; no decided/closed/done row in the decide table; the P1 row under „What is broken" or „decide"; every open row whose Owner names the operator under „decide" or „do". Exit 0 clean, 1 convicted, 2 inconclusive (no sections, missing section, no or empty register).
  • Switch: warn-first until 2026-10-27 (SWITCH_DATE), then a refusal; the date is also a due check for R-1174, so the next push on or after that date names it.
  • Tests (scripts/test_status_view_gate.py, 39 cases, all PASS): the genuine fixture before and after the switch; the clean run's „what it looked at" line; per check, decoys that warn before and refuse from the switch — size (50 more lines; few lines and too many characters), updated (a prepended paragraph, an Earlier chain, four sentences, no paragraph), english (a Hungarian do-line), open-ids (a closed row cited), decide (a DECIDED row; a „done" pick), p1 (the P1 line deleted; moved to What works), operator (the Later line deleted; a row only in „broken"); genuine controls that must pass (a long decide table, version numbers in a sentence, Hungarian inside a quote); four inconclusive cases; and the real STATUS.md against the real register.
  • Red-proof: each check removed in turn → exactly its own decoys FAIL (size 4, updated 8, english 2, open-ids 2, decide 4, p1 4, operator 4), then put back → 39/39. The switch moved to 2099 → the 14 „refuses" cases FAIL; moved one day earlier → the 14 „warns on 10-26" cases FAIL. Put back → 39/39.
  • Run against the old page (as it was at 2954b0be): 75 convictions across all seven checks (81 lines, 25,472 characters outside decide; 13 decided rows; 24 operator rows missing; the P1 only in „do").
  • Wired: repo_gates.py (fast set, docstring entry 19), test_gate_decoys.py (COVERS + runs the suite), found by script_tests_gate.py; decoy_coverage_gate.py reports it COVERED.

The CLAUDE.md edit (repo felhom.eu/CLAUDE.md, end-of-session checklist, line 139–141)

  • Before: „… One screen, written for the operator in plain language, and deliberately not CONTEXT.md."
  • After: the same, plus „(STE English) … How to update it:" and five numbered lines — replace the „Updated" paragraph (never prepend; the old one to STATUS-HISTORY.md); a morning list under a dated sub-heading in „do"; remove what you finished; the decide-row rule; the gate checks it (R-1174).
  • Why allowed: a format rule, not a loosened safety rule (PROMPT-TEMPLATE.md §9 rule 9, decision 150).

Commits and the running session

2954b0be register pass · 9ec5f76a the page · 1d7071e8 the gate · 54d1ee82 the instruction · this report. The rehearsal session shares this clone. Its commit f84f94d9 (audit evidence only) landed between my parts 1 and 2; it touched neither STATUS.md nor the register, so there was nothing to merge. Its git push carried my parts 2–4 to origin with its own (the shared branch); its hook ran with --scope=docs. My own --fast run of the same content was green (rc 0), and scripts/push_scope.py classifies the full range correctly as CODE. Its decoy suite briefly planted changes in website/gyik.html and scripts/felhom-host-install.sh while I worked (R-928's shape); I staged only my own paths, and both files were clean again afterwards. unproven.py --summary: unchanged (NOT WALKED 35 of 55).

Gate runs. Every push: repo_gates.py --fast, rc 0 (the last one on the final tree, this report included). Not followed: „the full run before the last push". The full run adds exactly one gate, iso-bootstrap, which starts a container from an ISO image; on DooPlex that is a Docker run on production (workspace rule, and a standing feedback memory), and it checks only scripts/iso/, which this session did not touch.

Observations

  • „My commits were pushed by the other session's push, under a docs-scope hook" — NOT-A-FINDING: CI re-runs the whole fast set on every push whatever the hook's scope, and CI was green for every push of this session (by head_sha on the jobs endpoint, attempt 1 each): 2954b0be job 2131, 54d1ee82 job 2132 (it carried parts 2–4), c701b253 job 2133 — all success; the shared-clone behaviour is already recorded (R-928, the shared-worktree rule).
  • Tester4 shows DOWN with no host on the hub — NOT-A-FINDING: the rehearsal session reinstalls Tester4 today.
  • „A Longhorn volume at 91 %" had no row — NOT-A-FINDING: the alarm is no longer active (Alertmanager, with the two R-934 alarms as the control).

Teardown

Provisioned nothing: no machine, no host, no hub write (GET only, CC's scoped token).