diff --git a/CONTEXT.md b/CONTEXT.md index c7b211e..7eac1f1 100644 --- a/CONTEXT.md +++ b/CONTEXT.md @@ -1,5 +1,10 @@ # CONTEXT — felhom-agent working state +> **2026-10-08 (day) — UNRELEASED on main, ships with tomorrow's release (decision 178).** R-899: `POST /backup?trigger=manual` +> runs no OS leg (`localapi/server.go`); after-boot kernel reports carry the saved block's ring (`kernelReportRing`). R-304: +> `escrow.ErrRetainedUnchecked` → HTTP 424 `older_unchecked` when not every earlier package was tried (withheld, caps, +> malformed, unreadable list). Binary-only delivery; no wrapper or root file changed. + > **2026-10-07 (evening) — v0.152.0, the kernel lane (R-836, decision 172, `11` §5.11).** Wrapper layer `kernel` + two GRUB generators in the bundle (delivered with step bundle `0.152.0-step1` — the bundle adds paths, R-880); `osupdate/kernel.go`: night step on told nights only, after-boot judge (host rule + hub reached, 20 min), ONE self-revert, `os_kernel_step` stages only. Proven on Tester 1 (panic → fell_back, held guest → self_reverted, healthy → 7.0.14-22 default). Open: R-898, R-897; the ring-0 night run. > **2026-10-04 night — v0.143.0 RELEASED + vouched (R-840, decision 96): the config bundle.** `felhom-os-apply` mode diff --git a/REPORT.md b/REPORT.md index 0081c5c..1871882 100644 --- a/REPORT.md +++ b/REPORT.md @@ -1,9 +1,16 @@ -# REPORT — agent v0.153.0: ring 0 stages exactly the told kernel (2026-10-07, late evening) +# REPORT — agent, 2026-10-08 (day): R-899 and R-304 on main, unreleased -- R-898 (closed): the night kernel step on ring 0 stages the kernel the household was told about (`select listed`, - `osupdate.KernelSet(kver)`), never "whatever is pending tonight". A told version no longer installable → the wrapper - refuses before any change (R7); the hub re-tells the household for the newer kernel. -- Tests: `TestKernel_Ring0ToldNightStagesThenReboots` (red-proved against the old select), `TestKernelSet`; wrapper - cases `test_ring0_listed_installs_the_told_kernel_not_the_newest`, `test_ring0_told_kernel_gone_is_refused_before_any_change`. -- Released `v0.153.0`, binary `b204ebe6…`; delivered (binary only) to demo-hp, demo-felhom, Tester 1 at 19:03. -- Tonight (7→8): demo-felhom stages 7.0.14-20, demo-hp 7.0.14-22 — both households told. Read back 2026-10-08. +**No release, no delivery today** (kernel night 8→9; `09` §3 decision 178). Binary-only; ships with tomorrow's release. + +| Item | Commit | Tests | Red-proof | +|---|---|---|---| +| R-899 — `trigger=manual` (a press) runs no OS leg | `4c69c25` | `TestAfterPrimaryBackup` + 2 sub-cases | ignoring `trigger` → the leg ran once after a press (`[8200]`) | +| „ring 1" label in after-boot kernel reports (seen 2026-10-08 night, demo-felhom) | `4c69c25` | `TestKernelReportRing_BeforeFirstFetch` | `Block().Ring` → `ring 1, want 0` | +| R-304 — 424 `older_unchecked` instead of „did not open the sealed bundle" when earlier packages were not all tried | `91b9405` | `TestR304_*` (real age crypto), 424 row in `TestRecoverOffsitePassword_EachSituationGetsItsOwnStatus` | check off → four cases returned the wrong-code error | + +**Read before the change (read-only, demo-hp):** on 2026-10-07 08:51 the morning press DID reach the OS leg +(`osupdate: skipped — already ran tonight`, saved by the 20-hour rule only); `os-update-block.json` on demo-hp holds +`ring 0` (the fallback the label fix reads). + +**Gates:** `go build/vet/test ./...` rc 0; `agent_gates.py --fast` rc 0. **CI:** job 1529 (`4c69c25`) success; job 1530 +(`91b9405`) success.