2bd6fbfac9
gates / gates (push) Successful in 24s
- audits/r553-2026-09-17/: live before/after on demo-hp (CSRF redacted), the 409 refusal, the hub health block, red-proofs for all five sites, the site-5 fixture diff, gates. - 10-localisation.md §9: the five decisions with what each reads now; the rule (a text signature may remain only where the text is not ours); the one legacy exception and its end date. - Register: R-553 and R-563 closed to CLOSED-ITEMS; R-569 (four API handlers match English words), R-570 (the legacy stale-note fallback + the slice-2 fence), R-571 (classifier and alert placement documented nowhere). R-557 carries the R-570 dependency. 263 -> 264 open. - STATUS, including the live probe that installed an app and was removed the same minute. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
32 lines
3.3 KiB
Markdown
32 lines
3.3 KiB
Markdown
# R-553 + R-563 — nothing decides by reading a Hungarian word (controller v0.251.0), 2026-09-17
|
|
|
|
Method: **endpoint-level** inside demo-hp guest 9201 (no browser on DooPlex) — `https://127.0.0.1:443`
|
|
with `Host: felhom.enkisfelhom.hu` and a session. CSRF tokens in the saved files are `<CSRF-REDACTED>`.
|
|
|
|
| what | result |
|
|
|---|---|
|
|
| pages before (0.250.0) → after (0.251.0), Hungarian | `live/page-comparison.txt`: `/launcher` and `/monitoring` identical; `/backups/remote` identical apart from the new `data-status` attribute and the one poll line (+23 bytes); `/dashboard` differs only in live numbers (CPU, load) |
|
|
| the deploy refusal, live | `POST /api/stacks/adventurelog/deploy` on an ALREADY DEPLOYED app → **409 before and after, byte-identical message**; the app kept running (`Up 10 hours (healthy)`) |
|
|
| the 400 refusals | **not provoked live** — a live probe starts an install (one did; it was stopped and removed the same minute, see REPORT.md). Covered by `TestR553_DeployProducersCarryKindAndKeepTheirWords` through the real `DeployStack`, and by the status table |
|
|
| site 2 (quota) and site 4 (stale note) | **not provoked live**: demo-hp's off-site tier reports `last_status: ok` with no warning, and provoking either would mean filling a quota or clearing the selection on a live box. Red-proofed unit tests carry them |
|
|
| site 3 (disk warning placement) | **not visible live**: the box has no storage warning (`alert-banner` blocks 0 on all three pages, before and after). The placement is unit-tested with a translated warning |
|
|
| site 5 (R-563) | after: `id="offbox-status-value" data-status="ok"`, poll reads `v.dataset.status === 'running'`; before: no attribute, poll read `textContent.indexOf('Fut')` |
|
|
| the hub wire | `live/hub-report-health.txt`: the health block on 0.251.0 carries exactly `issues, status, warnings` — no kind reached the hub. `warnings` is `[]` on this box before and after (it has no warnings), so the BYTES with warnings present are pinned by `TestR553_HubReportWarningsAreUnchangedOnTheWire` instead |
|
|
| settings | `offbox` block identical before and after; `last_warning_kind` absent (no warning to carry one) |
|
|
|
|
Unit evidence: `redproofs.txt` (every site's pre-fix predicate restored and watched failing, then
|
|
restored), `site5-fixture-diff.txt` (12 re-captured fixtures differ ONLY by the attribute and the poll
|
|
line; the other 94 byte-identical), `green-gate.txt`.
|
|
|
|
Detector re-run (`scripts/i18n_inventory.py`): template compares **1 → 0**; one Go compare left
|
|
(`offbox_handlers.go:132`, the known false positive — an `[INFO]` log line) and one indirect compare
|
|
left (`handlers.go` `offboxStaleWarningMarker`, the deliberate legacy fallback, row R-570). Decoys
|
|
planted in a template and in Go were both convicted, then removed.
|
|
|
|
Teardown: machine — demo-hp guest 9201 on `hu`, controller 0.251.0, fleet floor unchanged (0.250.0),
|
|
no golden; the password file and scripts shredded/removed; evidence pulled here. Host — transfer files
|
|
removed. Hub — nothing written; the DB copy read for the report lines shredded on DooPlex.
|
|
**One thing was changed and put back:** a first live probe of the deploy refusal used an app with no
|
|
empty required field and therefore INSTALLED vaultwarden; it was stopped and removed (data volume it
|
|
had just created removed with it) within two minutes, and the probe was rewritten to the 409 form.
|