From 2441c86a89690486d4e5d2cc1f2805015bc16a75 Mon Sep 17 00:00:00 2001 From: kisfenyo Date: Tue, 6 Oct 2026 16:11:28 +0200 Subject: [PATCH] Design build done: R-469, R-638 closed; R-518/R-717/R-762 narrowed, R-528 stopped by its measurement; delivery + teardown evidence; STATUS, CONTEXT, REPORT (137 -> 137; 2 opened, 2 closed); section counts recomputed Co-Authored-By: Claude Opus 5.5 (1M context) Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS --- CONTEXT.md | 12 + REPORT.md | 207 ++++++++---------- STATUS.md | 24 +- .../delivery/T1-9202-repoint-live.txt | 27 +++ .../delivery/T2-drill-reset.txt | 1 + .../delivery/controller-delivery.txt | 1 + documentation/backlog/CLOSED-ITEMS.md | 9 + documentation/backlog/OPEN-ITEMS.md | 20 +- 8 files changed, 171 insertions(+), 130 deletions(-) create mode 100644 documentation/audits/design-build-2026-10-06/delivery/T1-9202-repoint-live.txt create mode 100644 documentation/audits/design-build-2026-10-06/delivery/T2-drill-reset.txt create mode 100644 documentation/audits/design-build-2026-10-06/delivery/controller-delivery.txt diff --git a/CONTEXT.md b/CONTEXT.md index 2dcb210b..6dbb9e7f 100644 --- a/CONTEXT.md +++ b/CONTEXT.md @@ -16,6 +16,18 @@ > and holds nothing of its own; this file does hold its own content, namely the standing rulings below. +> **2026-10-06 (evening) — the design build (`09` §3 151–156).** Register 137 → 137 (2 opened: R-892 Tester 1 walk +> route, R-893 off-site rollback reverse direction; 2 closed: R-469 by ruling, R-638). Controller **v0.301.0** +> (`0b1b8d3`, MinAgent 0.131.0) + golden 0.301.0 (`96e94fed…`, Docker pinned to the approved set), vouched with agent +> 0.149.0; floors 0.301.0 / MinAgent 0.131.0 for demo-hp, demo-felhom, tester-1 — all three run it. **R-518** one stop per +> tier, the button makes the local copy only (reverses R-82's one window; first night read-back owed). **R-638** main +> restore paths measured safe on 9202 (docmost, romm), two side paths fixed by order. **R-717** `after_setup` +> `open_command`; wishlist uses it (catalog `a5a5b51`, live-proven); opengist cannot (no tool in its container). +> **R-528 STOPPED by its measurement:** Docker 29.8.2 sets `OOMKilled` correctly in all four shapes tried (operator to +> confirm or drop decision 155). **R-762** wger serves `/static` + `/media` through a `wger-files` nginx (catalog +> `cf1ed43`, a definition step — new bench option `--move-to` / writer `--to-definition`); wger stays hidden, its +> `runserver` question remains. Agent repo gained the shared rule file. Evidence `audits/design-build-2026-10-06/`. + > **2026-10-06 (afternoon) — instruction files kept true; vaultwarden on the ladder (`09` §3 149–150).** Decision 150: > a session corrects a stale fact in `CLAUDE.md` / `.claude/rules/*` itself and names the edit (file, before, after, why); > it never loosens a rule, fence or „never" without the operator — rule text in `.claude/rules/unprompted-work.md` §5 diff --git a/REPORT.md b/REPORT.md index 1e5b5ddf..a4fd7543 100644 --- a/REPORT.md +++ b/REPORT.md @@ -1,147 +1,122 @@ -# REPORT — instruction files kept true; vaultwarden on the ladder; the burn-down continued (2026-10-06 afternoon) +# REPORT — the design build: restore order, out-of-memory alarm, one stop per tier, the family window, wger's files (2026-10-06 evening) | Part | Result | |---|---| -| **A** — the instruction-file rule (R-891, R-469, sweep) | **done** — rule in all four copies of `unprompted-work.md` §5 and `PROMPT-TEMPLATE.md` §9 rule 9; R-891 fixed and closed; R-469 re-read: NOT removable, narrowed (an operator question); sweep: 26 factual edits in four repos (list below). No permission prompt or refusal came up. | -| **B** — vaultwarden on the update ladder (R-890) | **done** — the test-box admin seed built (catalog `6b4877d`, red-proved); 1.36.0-alpine → 1.37.4-alpine proven on bench 9401 and on 9202; written by `--write-ladder` (catalog `ecb8552`); R-890 closed | -| **C** — the burn-down | **3 closed** (R-644, R-763, R-764), **2 stopped with the reason written** (R-762 medium, R-717 needs a design) | +| **A** — housekeeping | **done** — decisions 151–156 recorded first; R-469 closed by ruling; the agent repo has the shared rule file (identical: `diff` against the controller's copy empty, one md5 across five copies); the Tester 1 walk route is NOT a 30-minute fix → R-892 | +| **B** — restore order (R-638) | **done** — measured first on 9202: both main paths SAFE (docmost, romm); two side paths fixed by order, red-proved; exposure 3 not fixable by order → known limit in `07` §6.3 + R-893; R-638 closed | +| **C** — out-of-memory alarm (R-528) | **STOPPED by its measurement** — Docker 29.8.2 set `OOMKilled` correctly in all four shapes; nothing built; a decision for you | +| **D** — one stop per backup tier (R-518) | **built and delivered, not shown live** — measured first (read-only): the off-site part of a stop is ~2 s; red-proved; the live button test was not possible on 9202 (no agent connection) and the demo boxes take deliveries only → R-518 open for the first night read-back | +| **E** — reopen a sign-up for the family window (R-717) | **done for wishlist, proven live; opengist stopped** (no tool in its container) → R-717 narrowed | +| **F** — wger's file server (R-762) | **done and proven on both venues; wger stays hidden** — R-762 narrowed to the `runserver` half it carries from R-755 | | Rows before | Rows after | Opened | Closed | |---|---|---|---| -| **142** | **137** | **0** | **5** (R-890, R-891, R-644, R-763, R-764) | +| **137** | **137** | **2** (R-892, R-893) | **2** (R-469, R-638) | ## Baselines and rulings -Verified at the start: felhom.eu `7d0dffcf34`, controller `36088fd82e` (v0.300.0), agent `cefdc731a4` (v0.149.0), -catalog `65130c6c03`; register 142. Read: every repo's `CLAUDE.md` and `.claude/rules/`, `REPORT.md`, R-890, R-891, -R-469. The two rulings were recorded first as `09` §3 decisions 149 and 150, with the reviewer's error recorded in 150. -Architecture read: `09-update-architecture.md` §3 (decisions 16, 35, 42, 146), §6.4 part 4 (the ladder writer), §6.5 -(the drill catalog). +Verified at the start: felhom.eu `01d5dbd3e0`, controller `31242786af` (v0.300.0), agent `3e8ebeb96c` (v0.149.0), catalog +`ecb8552ee9`, register 137. Read: the three designs in `audits/night-burndown-2026-10-05/`, rows R-638, R-528, R-518, R-717, +R-762, R-469, `07` §6, `08` (the OOM rung), `09` §3 decisions 47/49. Rulings recorded first as `09` §3 151–156 (ruling 6 is +carried as A by the brief; the operator's chat answer was not visible to this session). -## Part A +## Part B — R-638 -**The rule** — `.claude/rules/unprompted-work.md` §5 „Instruction files", the operator's text verbatim plus the -permission-check sentence; identical in felhom.eu, felhom-controller, app-catalog-felhom.eu and the workspace root's -unversioned copy (md5 `c1e6c881…` for all four). `documentation/PROMPT-TEMPLATE.md` §9, rule 9. felhom-agent has no copy -of the shared rule file (it never had one); adding one is a rule change, left for the operator. +**Slice 0, measurement only** (scratch 9202, controller 0.299.0, drill catalog; `audits/design-build-2026-10-06/B/`). +Install the OLD definition → seed → the guarded Update migrates (its backing-up phase makes the copy at the old version) → +the household's restore of that copy (`POST /backup/restore`, the only copy offered: "helyi"). -**R-469 — not met.** R-463 closed (8 of 11 PostgreSQL apps converted by the box; zipline, adventurelog, immich stay on 16 -by decision 42), but the engine gate now enforces decision 35: a PostgreSQL major passes only with a two-venue ladder -entry carrying `engine_conversion`. Removing it would let an unproven major ship, and the image refuses to start on the -old datadir. That is a loosened fence. Nothing is left for CC to build; the row asks the operator to close it (CC's pick) -or keep it. +| app | migration | after restore | `Imported DB dump` | seed | the copy's own dump (control) | +|---|---|---|---|---|---| +| docmost 0.95.0 → 0.96.0 (pg16) | 42 → 48 tables (+6 `oauth_*`, `public_spaces`, `siem_destinations`) | 42, none of the 6 | yes | read back | 42, equal | +| romm 5.0.0 → 5.3.0 (mariadb 11.4) | 27 → 39 (+12) | 27, none of the 12 | yes | read back | 27, equal (views counted) | -**Every instruction-file edit** (before → after, why). All factual; none loosens a rule. +Both went back to the old pinned version and ran. **Said plainly:** romm needed four runs — run 1 refused the install +(its data path must be a drive), run 2 hit an empty drill commit, run 3 measured correctly but my control read the wrong +file (a `pre-restore-*` dump) and missed three VIEWS; run 4 fixed both. docmost's run 1 installed the live version +because the box had not read the drill yet (the script then waited for the old reference). -felhom.eu -1. `CLAUDE.md` „Gates — ONE entry point": a list of ten gates + „`--fast` … today that is all of them" → the `GATES` - table is the list (nineteen gates); `--fast` skips the full-run-only gates and names them (today `iso-bootstrap`). Why: - `repo_gates.py` imported: 19 gates, `iso-bootstrap` not fast. **R-891.** -2. `CLAUDE.md` design pointer `architecture/01..05-*.md` → `01..11-*.md` (00 = the capability map). Why: 06–11 exist. -3. `.claude/rules/docs.md` „the locked design" `01..05` → `01..11`. Same reason. -4. `.claude/rules/website.md`: the list of what `site_gates.py` asserts gains „no embedded `