Commit Graph

1334 Commits

Author SHA1 Message Date
admin 200ab6530b hub 0.159.0 to the manifest (operator yes in advance, 2026-10-19); P1 delivery evidence (agent 0.160.0 on all three hosts)
gates / gates (push) Successful in 7m18s
2026-10-19 04:10:23 +02:00
admin 5622ce2735 Day 2026-10-19 P1 evidence: agent 0.160.0 release, demo-hp delivery, backup + cap, escrow confirm/abandon, R-1093 on the format route
gates / gates (push) Successful in 7m25s
2026-10-19 03:52:34 +02:00
admin afc939bb3c R-887 closed: 381 CI jobs since the S21 change, 0 lost (the 3 re-runs' first attempts ran 47-49 s; control: the known lost attempt ran 11 m 48 s); register 168 -> 167
gates / gates (push) Successful in 7m20s
2026-10-19 03:42:11 +02:00
admin b505ce4ba0 hub v0.159.0 (R-1154, after security review): the enroll reuse path re-issues nothing, it warns the operator
The first draft (5121536f, unpushed) re-issued the claim code and the off-site login on a
reuse whose old box was stale or switched off. A security review flagged it: the caller
holds only the household's retrieval passphrase, and both re-issues are operator
session-only actions (05 section 17.5, 09 decision 252, R-1055/R-1059). Now the reuse
path classifies the old box and re-issues nothing: gone -> host_reinstall_over_old_host
(warning, mailed to the operator: delete the old host and re-run, or re-issue by hand);
live -> host_reenroll_while_live (info). The mint path after the operator's delete is
unchanged and still re-issues. The once-per-silence record and the claim engine comment
edit are reverted. 05 section 8, README and CHANGELOG updated; tests red-proved.
2026-10-19 03:29:44 +02:00
admin 5121536f10 hub v0.159.0: a refused whole-guest backup has its own alarm (R-1150); a reinstall re-issues the claim code and the off-site login when the old host is stale or off (R-1154)
R-1150: the agent's localapi:backup-cadence-cap is a separate per-host state in
HostCapabilityChecker: alone it raises whole_guest_backup_refused (warning, plain text,
agent reason in details) and whole_guest_backup_refusal_cleared (info); other critical
caps keep agent_capability_degraded/_recovered unchanged. New types operator-only and
hub-origin only (not in allowedEventTypes: the suspected controller must not post them).
agent_capability_degraded/_recovered join operatorOnlyEvents (the checker's "never the
customer" claim was configuration only).

R-1154: handleHostEnroll's reuse path re-issues (claim code + off-site login) when no
controller wait is open and either deliberate_off_at is held or both the host report and
the controller report are older than alerting.stale_threshold (wired from main); once per
silence (host_reenroll_reissued record, also written at mint); a live box gets nothing
re-issued and the skip is recorded (host_reenroll_not_reissued). 05 section 8 [DESIGN].

Tests red-proved; go build/vet/test green.
2026-10-19 03:18:34 +02:00
admin e4f022a0d9 Evening 2026-10-18: fresh install proven (R-1148), OnlyOffice walk (R-1018), one-sign-in spike (R-1100 READY), Redis volumes (R-1117), CI rows, golden 0.331.0 baked; register 168 -> 168 (closed 6, opened R-1149..R-1154)
gates / gates (push) Successful in 7m34s
2026-10-18 23:12:21 +02:00
admin 7f7081d127 Day 2026-10-18: report, CONTEXT; old-restic check not run yet (demo-hp's clean-up window opens after the 2026-10-19 04:15 CEST run), STATUS time corrected
gates / gates (push) Successful in 7m19s
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
2026-10-18 16:36:53 +02:00
admin e881115c43 Day 2026-10-18: register (173 -> 168; closed R-1140 R-1144 R-1145 R-1146 R-1147 R-1036; opened R-1148), STATUS, agent 0.159.2 delivery evidence
gates / gates (push) Successful in 7m20s
2026-10-18 14:41:34 +02:00
admin 37cb83c166 Estimator: Immich peak 3,290 -> 3,983 MB from the 4,000-photo import (R-1147, operator yes 2026-10-18); Immich alone on 8 GB now 'does not fit'
gates / gates (push) Successful in 7m17s
Rebuilt sizing-data.json; data cache-bust v5; SIZING.md table and the pinned test cases moved
with it. Before/after: audits/day-2026-10-18/P6-before-after.md.
2026-10-18 14:36:14 +02:00
admin 624bcdc372 installer 1.34.0 (pushed; tag follows): vault-first step 4b (R-1145), --rotate-recovery-only (R-1141), harness gate (R-1146); R-895 dated check
gates / gates (push) Successful in 7m8s
2026-10-18 14:22:44 +02:00
admin 88aecf55b6 Installer step 4b: vault first, then set, then a PVE login (R-1145); host key off curl's argv (review F4); harness green and a gate (R-1146); hub 0.158.0 deploy evidence; independent review + verdicts
gates / gates (push) Successful in 7m23s
Live on demo-hp (--rotate-recovery-only): vault time moved, new value 200, old 401. Harness 52/0;
the R1145 cases fail against HEAD. Publishes only with the next installer tag.
2026-10-18 12:50:49 +02:00
admin 070cea5bd1 Night 2026-10-18: register (175 -> 173; closed R-981 R-1142 R-1063 R-1069 R-1143 R-994; opened R-1144..R-1147), STATUS morning list, golden 0.329.0 record, evidence, report
gates / gates (push) Successful in 6m48s
Golden 0.329.0 baked at the floor's version, NOT vouched. Hub 0.158.0 built, NOT deployed.
Sunday rotation: no duplicate bake of an unvouched golden at the floor's version.
2026-10-17 23:56:53 +02:00
admin 7d64038f02 Hub v0.158.0 code (built, NOT deployed): agent-only vouch, R-895 snapshot alarms, the hub's own 90-day access log (R-1140 A); installer --rotate-recovery-only (R-1141); 02/03/05/09 + break-glass
gates / gates (push) Successful in 6m45s
Hub: the R-120 golden guard judges only a CHANGED golden selection; offsite_snapshots_vanished /
_unexplained (operator-only, hub-origin) on the 07:10 listing; internal/accesslog writes path-only
lines to /data/access-log, 90 days. Installer: --rotate-recovery-only runs step 4b alone (rides
the next installer tag). 03: the orphan check runs after a failed backup (agent 6545ccc). 02: the
allow-list is empty, appdata_folders (controller v0.329.0). All red-proofed.
2026-10-17 23:31:34 +02:00
admin 5a5486104a Agent 0.159.1, the catalog allow-list (controller 0.328.0), break-glass rotation: report, register, design
gates / gates (push) Successful in 8m49s
Closed R-971, R-954, R-1124, R-1012 (174 -> 175 rows); opened R-1139..R-1143; R-895 READY with the design
and hub slice 1; R-972 waits on the vouch. [DESIGN] "The catalog allow-list" in 02; the catalog trust line in
01; FELHOM_THINCHECK and unit-forget in 03. Evidence audits/agent-allowlist-rotation-2026-10-17/.

Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
2026-10-17 18:00:05 +02:00
admin 3feddadd2d R-1133 closed as accepted (option A): ~/.docker/config.json joins the guard's read-refusal list (cc-secrets 0.2.2); 174 rows
gates / gates (push) Successful in 6m45s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012qRErfCoiTkvDK9N5XHbzb
2026-10-17 16:30:25 +02:00
admin 8f97b8009b hub v0.157.0: app_definition_refused (R-971), the vault time moves on a re-vault (R-954), the hub's own snapshot count (R-895 slice); uninstall knows felhom-thin-check
gates / gates (push) Successful in 6m58s
- hub: `app_definition_refused` in allowedEventTypes + operatorOnlyEvents (controller v0.328.0's catalog
  allow-list refusal); SaveHostRecoveryCredential moves set_at on a re-vault (found live: both rotated hosts
  kept their first vault's time); the daily key audit also lists the box's restic snapshots/ read-only over the
  login the hub already holds and logs count/newest/oldest (no alarm yet).
- installer (main only, rides the next tag): --uninstall removes /usr/local/sbin/felhom-thin-check (agent
  v0.159.0's bundle file); test_hostinstall.py knows it.
- runbook whole-guest-backup-orphan-thin.md: the human repair the agent's new orphan finding points to.

Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
2026-10-17 16:27:51 +02:00
admin ab2fc21a9c CC secrets: R-1138 closed (all old copies shredded, 175 rows); option B; sec run strips unloaded stored names; report
gates / gates (push) Successful in 6m48s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012qRErfCoiTkvDK9N5XHbzb
2026-10-17 15:10:35 +02:00
admin b29839ac68 R-1138: two dated credentials copies shredded; an undated third found, waits for the operator
gates / gates (push) Successful in 6m43s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012qRErfCoiTkvDK9N5XHbzb
2026-10-17 14:58:42 +02:00
admin d4ce52e1bb Old ~/.config/credentials deleted on the operator's go (R-1134 closed); R-1130 accepted; R-1138 for its two backup copies (176 rows)
gates / gates (push) Successful in 7m0s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012qRErfCoiTkvDK9N5XHbzb
2026-10-17 14:40:49 +02:00
admin e281de37c0 CC secrets STOP 3: R-1119, R-1120, R-1131, R-1132 closed (181 -> 177); R-1130/R-1133/R-1134 facts; new keys proven; report
gates / gates (push) Successful in 7m1s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012qRErfCoiTkvDK9N5XHbzb
2026-10-17 14:21:11 +02:00
admin f6511dc5c2 FileBrowser never on its default password (D11 = A), real memory amounts (D10 = A), CI mail: report, register, docs
gates / gates (push) Successful in 6m53s
Closed R-1126, R-1125 and R-1129 (not a defect: a misreading of the CI log by the session that filed it); opened
R-1135..R-1137; R-1124 noted. 01 §5 [DESIGN]: the tunnel runs before the claim; FileBrowser is published only after
its default login is checked. STATUS D10-D12 decided. N100 diary: the 21-minute file-manager gap after 0.327.0.
Controller 0.327.1 is the floor since 12:06 UTC.

Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
2026-10-17 14:12:02 +02:00
admin 30b231f447 CC secrets build: register (177 -> 181: R-1130..R-1134 opened, R-1122 closed, R-1118 narrowed), STATUS D13-D16, report
gates / gates (push) Successful in 6m52s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012qRErfCoiTkvDK9N5XHbzb
2026-10-17 13:42:14 +02:00
admin ba40c0a25b CC secrets build: consumers switched to sec, S19 age key in the recovery runbooks, evidence (R-1118, R-1122)
gates / gates (push) Successful in 6m44s
Build skill (hub token, ISO publish), fb_probe (token from `sec run` env, tests red-proved), secrets.md (Resend:
pipe inside sec run), bench README, read_credential docstring, 12-agent-tooling §5, workspace CLAUDE secrets line.
Evidence: audits/cc-creds-build-2026-10-17/ (tests, red-proofs, 36-row child-session proof both launch modes,
install, fresh-session proof, import names+lengths, history sweep names).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012qRErfCoiTkvDK9N5XHbzb
2026-10-17 13:33:07 +02:00
admin 11d03dc0f1 R-1129: CI's failure mail was never sent (RESEND_API_KEY empty in the runner, back to 2026-09-22)
gates / gates (push) Successful in 6m47s
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
2026-10-17 12:01:45 +02:00
admin fae8064557 Register: R-1022, R-1116, R-977 closed; R-1123..R-1128 filed; R-994 narrowed; duplicate ids fixed
b9c4f73b (the cc-creds session) committed this session's uncommitted register edits together with its own
R-1118..R-1122, so main carried two rows each for R-1118..R-1122. This session's five move to R-1124..R-1128
(R-1123 stays); the CLOSED-ITEMS section for the three closed rows lands here. Evidence:
audits/tester1-limits-filebrowser-2026-10-17/.

Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
2026-10-17 11:58:18 +02:00
admin b9c4f73bfa SPIKE cc-creds: secret broker + CC transcript guards measured with canaries (R-1118..R-1122, 168 -> 173)
gates / gates (push) Failing after 6m36s
Mask PASS, PreToolUse refuse PASS, PostToolUse replace PARTIAL (crash and
large-output disk leaks, both with a measured fix), SOPS+age store PARTIAL
(private repo could not be created), transcript sweep PASS. Fake secrets
only; ~/.config/credentials not read; no CC settings changed. Files use
"creds": .gitignore *secret* ignores the brief's names. STATUS D10: the
store choice.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012qRErfCoiTkvDK9N5XHbzb
2026-10-17 11:57:24 +02:00
admin e1dd1cadd3 burndown 3: report, evidence, register (174 -> 168), 07 Redis RDB [DESIGN], 04 §6.3 the box's password doors
gates / gates (push) Successful in 7m2s
Closed R-1115, R-1111, R-1112, R-1113, R-1109, R-1110, R-1114, R-1096; opened R-1116 (decoy suites in the other
runners), R-1117 (Immich/Nextcloud Redis volume, deferred). Controller 0.325.0 is the floor since 08:21 UTC.

Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
2026-10-17 10:28:03 +02:00
admin 796c373a3a 0.324.0 is the floor (02:46 UTC) after the night's off-site runs on all three test boxes; R-1105, R-1107 closed
gates / gates (push) Successful in 6m50s
2026-10-17 04:50:09 +02:00
admin 631e759864 night-restore evidence: local paths scrubbed from the forget plans
gates / gates (push) Successful in 6m56s
2026-10-17 00:02:46 +02:00
admin 5c36d4c110 Night 2026-10-17: restore keeps the DB password (R-1106, 07 §7.4), restic 0.19.1, hardening; 8 rows closed, 7 filed; evidence
gates / gates (push) Successful in 6m57s
2026-10-16 23:59:53 +02:00
admin babf596c89 0.323.0 on the three test boxes; global floor waits for tonight's off-site runs; R-1105 and R-972 narrowed; report
gates / gates (push) Successful in 6m55s
2026-10-16 21:33:52 +02:00
admin e713f6aeff R-1105 re-proof: restic pinned outside the OS (07 §6.8), evidence; R-1106, R-1107, R-1108 filed
gates / gates (push) Successful in 6m55s
2026-10-16 21:20:23 +02:00
admin b94411b4b8 hub 0.156.0 deployed and verified; R-972 narrowed further
gates / gates (push) Successful in 6m53s
2026-10-16 19:40:20 +02:00
admin 7e1c6df3a0 burndown 2: controller 0.322.0 released; R-1033, R-970, R-1103 closed; R-972 narrowed; R-1104, R-1105 filed
gates / gates (push) Successful in 6m51s
2026-10-16 19:10:08 +02:00
admin 836d64efa3 Apps burndown (controller 0.321.0 released): R-1097, R-1102, R-1101, R-1095, R-1098 closed; R-1103 opened; build-hub.sh 1.25.0
gates / gates (push) Successful in 6m52s
build-hub.sh refuses an existing tag and an unanswered registry (test_build_hub_push_once.sh, red-proved).
Register 179 -> 175. R-1067 stays BLOCKED: Tester-2 reports 0.292.0. Design notes in 02 and 07; STATUS;
evidence audits/burndown-apps-2026-10-16/; REPORT-burndown-apps-2026-10-16.md.

Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
2026-10-16 17:27:57 +02:00
admin 11fa13ee38 N100: the file manager's new password set at the operator's yes (controller 0.320.0); STATUS, diary, report
gates / gates (push) Successful in 7m4s
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
2026-10-16 16:21:54 +02:00
admin ea8e67f341 Logins and folders (controller 0.320.0 released): design, R-1100..R-1102 opened, STATUS, evidence, report
gates / gates (push) Successful in 7m4s
02 "Logins and folders" [DESIGN]: an infra stack is part of the box on the app page; one login answer per
installed app (catalog app_info.login_kind); FileBrowser's new-password press (its CLI, server stopped);
"Fájlok ↗" and the per-drive media folders, a folder with no source is text. Register 176 -> 179.
STATUS: look at FileBrowser, RomM and Plex on demo-hp; say yes for the N100's press; decision D10 (R-1102).

Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
2026-10-16 15:53:12 +02:00
admin bc9a871391 R-1085, R-1089, R-1090 closed; R-1096..R-1099 opened; STATUS: the N100 RomM check; report
gates / gates (push) Successful in 6m56s
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
2026-10-16 12:47:19 +02:00
admin 59834feadf app page tuning round 2: P0 cause (Calibre-Web installed before its password field), controller 0.319.0 released, 02 layout rules (style A, login panel, empty-value rule), R-1095 opened, STATUS
gates / gates (push) Successful in 6m54s
Claude-Session: https://claude.ai/code/session_012qRErfCoiTkvDK9N5XHbzb
2026-10-16 12:41:30 +02:00
admin b17e9e993c hub v0.155.0: the floor can never deliver a withdrawn controller build (R-1085); RomM/Ghost evidence
gates / gates (push) Successful in 6m44s
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
2026-10-16 12:24:39 +02:00
admin 920c1aaf84 storage identity build B: live proof, R-1068/R-1079/R-1082/R-1084 closed, R-1093/R-1094 opened, D15, golden 0.318.0 record, backup page
gates / gates (push) Successful in 6m39s
A fresh one-disk install (512 GB VM, installer 1.33.0, agent 0.158.1 + golden 0.318.0 vouched): data volume 100 GiB, data
area 213 GiB registered as the default drive with no press, Jellyfin with no extra step, nothing of the area in a whole-box
copy; partitions formatted and used; the honest backup offer on a VM; /mnt/sys_drive never offered (no box had it).
16 §13 build B status; capability map D15; poster facts (drawing needs a refresh, STATUS); the backup page HU+EN now that
it is true; REPORT-storage-identity-buildB-2026-10-16.md.

Claude-Session: https://claude.ai/code/session_012qRErfCoiTkvDK9N5XHbzb
2026-10-16 10:07:13 +02:00
admin 8b0a4413cd R-1088 and R-1086 closed (token rotated; D11 applied); R-1091 (1)(2) done (D12); STATUS decisions answered
gates / gates (push) Successful in 6m47s
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
2026-10-16 10:02:01 +02:00
admin f51dfe2046 R-1088: credentials restored by the operator; the owed demo-hp guide page check passed (Plex, Sonarr, HU+EN); rotation left open
gates / gates (push) Successful in 6m43s
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
2026-10-16 09:24:54 +02:00
admin d45384bf95 installer 1.33.0 (pushed, not published): the data volume by the ruled table; step 5b the internal data place; OMV guide second-disk line
gates / gates (push) Successful in 6m42s
architecture/16 §5, §7 (build B). Publishing (tag + webpage.yaml, R-110) waits for the operator's vouch of agent 0.158.1.

Claude-Session: https://claude.ai/code/session_012qRErfCoiTkvDK9N5XHbzb
2026-10-16 04:08:39 +02:00
admin 394498d06e 16 §7: the operator approved the build B sizes (mp0 50/100/130, reserve <= 48 GiB); R-1082 ruled: hide it now
gates / gates (push) Successful in 6m56s
Claude-Session: https://claude.ai/code/session_012qRErfCoiTkvDK9N5XHbzb
2026-10-16 03:03:34 +02:00
admin 08cf15d8cd app guides night: R-1089..R-1092 (found writing the guides), R-1088 extended; read_credential.py refuses to overwrite the credentials file (red-proved); STATUS; batch evidence
gates / gates (push) Successful in 6m57s
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
2026-10-15 23:25:53 +02:00
admin 3eca98f135 storage identity build B, Part 1: the D3 space check (proposal, waits for the operator); R-1087, R-1088
gates / gates (push) Successful in 6m41s
Measured four boxes, the hub's five host reports, every catalog image's registry size and one whole-box copy's
thin-pool use. Proposal: mp0 50/100/130 GiB, reserve max(16 GiB, 10 %) capped at 48 GiB -> the internal place
about 42/182/590/1,510 GB for 256 GB/512 GB/1 TB/2 TB. STATUS D10 asks for the operator's ok.

Claude-Session: https://claude.ai/code/session_012qRErfCoiTkvDK9N5XHbzb
2026-10-15 22:51:03 +02:00
admin bfd9b2a7ea app guides night: R-1085 (the floor can still offer spoiled tag 0.316.3), R-1086 (qBittorrent password advice breaks the media wiring); pilot evidence and tools
gates / gates (push) Successful in 6m38s
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
2026-10-15 22:37:08 +02:00
admin a3bf208242 app guides night: the spec saved as the record (it existed only in the operator's message)
gates / gates (push) Successful in 6m51s
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
2026-10-15 22:00:30 +02:00
admin 314308b4aa storage identity build A: 16 accepted + §13 build status; D14; close R-1072/R-1074/R-1075; open R-1083/R-1084; live evidence
gates / gates (push) Successful in 6m44s
The operator ruled D1-D6 as recommended. Build A shipped (agent v0.157.0, controller v0.317.0 MinAgent 0.157.0,
hub v0.154.0): live on Tester 1 (unknown/vm, the "cannot check" notice, copies made not counted), demo-hp and
the N100 (proven, different, unchanged). NAS notice and the no-drive sentence are unit-proven only.
STATUS: D10 removed; vouch agent 0.157.0 and rule on R-1082 added. Poster: the Tier-2 line, text only.

Claude-Session: https://claude.ai/code/session_012qRErfCoiTkvDK9N5XHbzb
2026-10-15 21:49:38 +02:00