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

121 lines
9.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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).