Commit Graph
2307 Commits
Author SHA1 Message Date
admin a3247d9f44 security watch reads zstd layers in CI by itself (R-1327): pinned zstandard 0.25.0 wheel, sha256-checked; RUNTIME log line; HA 2026.9.4 and RomM 5.4.1 dropped from the cache for the CI fill proof; Immich v3.3.5 power-cut repair evidence
gates / gates (push) Successful in 4m12s
2026-10-28 07:59:34 +01:00
felhom security watch 9b4b5fe5e7 security-watch: memory of 2026-10-28 (R-1303). Docs only. 2026-10-28 03:42:17 +00:00
admin 3d3cd3ad7c Night 2026-10-27/28: Immich and Home Assistant lane walks proven (drill), Wanderer hidden in the drill, R-1322/R-1313 updated; STATUS (D61 RomM, the morning list), CONTEXT with the unattended decisions
gates / gates (push) Successful in 2m0s
2026-10-27 23:36:25 +01:00
admin f5a4995da5 security watch sees runtimes (R-1327) and DooPlex (R-1328); HTTP2Shell rows R-1329–R-1332; R-1326 closed
gates / gates (push) Successful in 3m27s
- scripts/image_runtime.py: Node / Python Brotli / brotlicffi / apk / dpkg read from an image's registry config and
  layers (no pull; HEAD for the nightly digest; zstd via the zstd program where present; quay.io, index.docker.io).
- security_watch.py: a „runtime" source (security_watch_runtimes.json), cached by digest in state.json (154 images,
  filled on DooPlex tonight); ghcr.io tag lists are paged; the DooPlex group (own block, homelab next-step).
- dooplex_inventory.py + documentation/security-watch/dooplex-workloads.txt (89 images, homelab-manifests 5aeec8d).
- Tests W10–W12 (58 checks) + test_image_runtime.py (13), each red-proved.
- audits/http2shell-2026-10-27: the Home Assistant lane walk (proven), HOMELAB-LIST.md (19 to update), the run log.
- 08 §11 design line; 09 §3 decision 276 (HA monthly = same main version; decided by CC unattended).
2026-10-27 23:23:02 +01:00
admin 503692a1da D60 (CC never deletes from the secret store) and D56–D59 recorded: 09 §3 decisions 271–275, rows R-785/R-1311/R-1313/R-1315, the decide table cleared; D60 in workspace CLAUDE, 12, secrets runbook
gates / gates (push) Successful in 1m59s
2026-10-27 22:31:44 +01:00
admin a69ddbde56 hub manifest (R-1326): a startupProbe gives the hub up to 180 s to start (measured 31–36 s); liveness unchanged after start
gates / gates (push) Successful in 1m57s
2026-10-27 21:45:58 +01:00
admin f633d48bab R-1299 CLOSED: the clean-up window button (hub 0.174.0/0.174.1, live grant + cancel on tester-1); R-1326 filed (hub start-up vs liveness); R-1237 updated (46 dead names removed with sec rm); 07/05 design lines; secrets runbook: sec rm
gates / gates (push) Successful in 1m59s
2026-10-27 21:16:48 +01:00
admin 714ee236b2 hub v0.174.1: manifest bump (R-1299 event row + Backup & DR tab) — on the operator's yes 2026-10-27
gates / gates (push) Successful in 2m1s
2026-10-27 20:22:46 +01:00
admin de57c090bf hub(R-1299): the window grant/cancel event is really stored (0.174.0 wrote no row); the block moves to the Backup & DR tab
gates / gates (push) Successful in 1m59s
2026-10-27 20:12:43 +01:00
admin 1796112508 Security app updates 2026-10-27, close-out: Jellyfin 12.4 live (catalog 540f185; bench + box + the undo proven, R-1314 filed and closed); per-box floors cleared after a clean 30-min watch; TRIAGE states; STATUS (four picks D56-D59); teardown; REPORT-security-app-updates-2026-10-27.md
gates / gates (push) Successful in 2m4s
2026-10-27 19:26:39 +01:00
admin 33f3cd7af0 hub v0.174.0: manifest bump (R-1299, the clean-up window button) — on the operator's yes 2026-10-27
gates / gates (push) Successful in 1m54s
2026-10-27 19:22:20 +01:00
admin d85198b835 hub(R-1299): the one-time clean-up window gets a button on the customer page
gates / gates (push) Successful in 1m51s
The Backup card's off-site part shows the window state (weekly switch, the normal cap, a waiting grant, the last
window) and a form: optional limit -> a confirm step that names the customer and the limit -> the SAME route and
rule as the script address (POST /offsite/window-grant/<customer>, wr(grpOffsite), the page's CSRF). A waiting grant
can be cancelled. A raised limit above the store's measured snapshot count is refused (the 500 ceiling stays). Every
grant and cancel: a log line and an operator-only info event offsite_window_grant (who, customer, limit).
Tests TestR1299_* (five), red-proved by five mutations.
2026-10-27 17:23:37 +01:00
admin 7610f69e7c Security app updates 2026-10-27: 14 security-fix steps + 2 normal steps live (catalog 06e603e, 7b0071e, 65a6b11); controller v0.346.1 (traefik, file manager, cloudflared) floor set; R-1304 and R-1306 CLOSED, R-1305 NARROWED; R-1313, R-1315–R-1325 filed (big steps left, three observations); 09 decision 255 and B23: the batch use of the lane; evidence 2026-10-27 17:22:02 +01:00
admin 7c75162a18 REPORT-release-2026-10-27: the night's fixes, the line test, the release block; the floor watch and the per-box clear (evidence)
gates / gates (push) Successful in 1m56s
2026-10-27 16:13:40 +01:00
admin acd79a78cc Release block 2026-10-27: hub 0.173.0, agent 0.167.0, controller 0.346.0 released; R-1250 fixed the same day and proven; ten rows closed, R-1312 opened
gates / gates (push) Successful in 2m29s
- audits/linetest-2026-10-27/: the hold failed four times as built (qBittorrent drains ~14 s), the fix 710ceac, the test
  through the hold on 0.346.0-rc.1 (94.5 Mbit/s, the limit back exactly), teardown.
- audits/release-2026-10-27/: builds, agent release + signed updates, per-box and global floors, box walk.
- 09 §3 decisions 269 (R-1250 fix the same day) and 270 (R-1218 live proof waived); D55's window result in 268.
- 08 §: the drain-wait design line. STATUS, CONTEXT, register (223 -> 214).
2026-10-27 15:45:59 +01:00
admin 708a34512e Security app updates 2026-10-27: evidence of batch 1 (box walks rallly, romm, code-server, outline, vikunja; wishlist + bookstack bench and box; jellyfin bench; the walk's negative control). Docs only.
gates / gates (push) Successful in 1m58s
2026-10-27 15:08:44 +01:00
admin bbc3acb817 hub v0.173.0: manifest bump (D53 held apps, R-1218 hub half, Go 1.27.3) — on the operator's yes 2026-10-27
gates / gates (push) Successful in 1m56s
2026-10-27 09:31:45 +01:00
admin 29134c52c2 security_watch: a GitHub Actions advisory is not listed; an empty fix with a closed range reads 'after X' (R-1310 part; test W9, red first)
gates / gates (push) Successful in 3m36s
2026-10-27 09:16:58 +01:00
admin ba06b873b9 Security app updates, Part 1: the triage of 38 flagged pins (TRIAGE.md, per-app notes, PICKS.md); R-1306 triaged; R-1310 (watch classifier) and R-1311 (Termix X-Forwarded-For) filed
gates / gates (push) Successful in 2m0s
2026-10-27 09:06:38 +01:00
admin c6248dbfc5 R-1303: the GitHub key is in place (CI dry job 2415 read every repo in one night); first real night (job 2413) mailed nothing, as designed; STATUS do-item removed
gates / gates (push) Successful in 2m0s
2026-10-27 07:55:04 +01:00
admin 8744eab80d R-1174 CLOSED: the status gate refuses from 2026-10-27 (hand run: clean copy rc 0, a copy citing a closed row rc 1); R-1250's due check moves one day (the line test runs today, from 10:00 CET)
gates / gates (push) Successful in 2m4s
The nightly CI job 2412 convicted both due checks, as designed.
2026-10-27 05:16:43 +01:00
felhom security watch 3c8c1ded1f security-watch: memory of 2026-10-27 (R-1303). Docs only. 2026-10-27 03:41:31 +00:00
admin 626275b187 R-1303 built and live-proven (test mail arrived, seed run committed its memory); R-1305–R-1309 filed (file manager, 27 apps, image packages, floating tags, mail-only notices); docs 08 §11, B23, monthly §4a; STATUS
gates / gates (push) Successful in 2m21s
2026-10-26 23:51:45 +01:00
felhom security watch ed843da788 security-watch: memory of 2026-10-26 (R-1303). Docs only. 2026-10-26 22:44:04 +00:00
admin 6ee23a3b8f R-1303: watch — abandoned templates are GAP, a seed's unread pins stay pending (no storm after a seed); 38 checks
gates / gates (push) Successful in 4m5s
2026-10-26 23:34:29 +01:00
admin 1f62d62915 R-1303: the nightly security watch — security_watch.py, the shared pin list + upstream gate, 35 tests, the CI job (03:40 UTC)
gates / gates (push) Successful in 3m53s
2026-10-26 23:20:06 +01:00
admin 97ae7086c0 R-1303 (P2): the security watch — spike: which notice sources catch the controls; R-1304 (P3): traefik v3.7.13 inside 12 October advisories
gates / gates (push) Successful in 1m55s
2026-10-26 22:57:07 +01:00
admin ae3db89ab3 night fixes 2026-10-26: live proofs (R-1220, R-1232, R-1187, R-1298), register states, design lines; R-1300 filed; R-528 design
gates / gates (push) Successful in 1m56s
Evidence audits/night-fixes-2026-10-26/ (scanned: 0 secret hits).
2026-10-26 22:17:36 +01:00
admin cc0fb962f3 R-1300 CLOSED: controller 0.345.1 (cloudflared 2026.10.3) on every box; R-1301 filed (N100 host clock, chrony fails at boot); 01: cloudflared follows Cloudflare's security notices
gates / gates (push) Successful in 2m27s
2026-10-26 21:41:05 +01:00
admin f680720ecd STATUS: R-1300 (P1) — the tunnel's bad-certificate trust, until 0.345.1 reaches each box
gates / gates (push) Successful in 2m35s
2026-10-26 20:58:42 +01:00
admin ffb91d89e7 R-1300 (P1, Security): cloudflared 2026.9.3 trusts the eMudhra weak-key intermediates — the list, the origin check (not affected), evidence 2026-10-26 20:50:39 +01:00
admin 3720bd1f03 audits: R-972 govulncheck before/after (Go 1.27.3)
gates / gates (push) Successful in 2m16s
2026-10-26 20:42:41 +01:00
admin d625a1437d hub build(R-972): Go 1.27.3 + golang:1.27.3-alpine3.24 builder (GO-2026-6809) — govulncheck 1 → 0 called 2026-10-26 20:42:35 +01:00
admin 09b5f02fc3 hub(R-1218): never replace a recovery package that seals the off-site key with one that seals none (409)
gates / gates (push) Successful in 1m54s
SaveHostEscrowWithIdentity refuses (ErrEscrowWouldDropRepoKey); the PUT answers 409. Red-proved (store: superseded=true;
API: 500). Two older tests pinned the old demotion and are updated. Commit only.
2026-10-26 20:21:08 +01:00
admin 99c0f5e310 D55 = 260 recorded (09 §3 decision 268); the grant set and read back; R-1299 filed (no grant button)
gates / gates (push) Successful in 1m56s
2026-10-26 20:11:22 +01:00
admin 3ca9b71c73 R-435 read and closed: the 2026-10-26 windows (hub records + mailbox; box logs lost to restarts, said plainly)
gates / gates (push) Successful in 2m5s
2026-10-26 19:17:19 +01:00
admin 4955744462 docs: STATUS D55 (the D54 grant needs the operator: CC's token lacks offsite:write; the cap), R-1294/R-1297 rows, CONTEXT
gates / gates (push) Successful in 1m57s
2026-10-26 19:06:41 +01:00
admin e33ec8210a D53 built + live-proven (08 §10 [DESIGN — built]); R-1297 decoys: register-shape decoys assert the script's exit
gates / gates (push) Successful in 3m25s
- 08 §10: built (controller 5bd03ad, hub 7e57e824, commit only); putback_pending as on the wire; as-built notes
- audits/d53-held-apps-2026-10-26: live proof on 9202 against a test hub (3-min grace), red-proofs, teardown
- R-1291 BUILT (not released); R-1298 filed (9202's orphan holds + PrivateBin leftover)
- test_gate_decoys.py: the register-shape cases also run the script and assert its exit code — R-1297's decoy 2
  showed an inert main() passed every case (9 cases red with it now)
- audits/r1297-ci-trim-2026-10-26: runners, times, decoys
2026-10-26 19:03:07 +01:00
admin 7e57e824a2 hub(D53): held apps reach the operator — mirror, Held apps list (host + Hosts page), reminder after the grace
gates / gates (push) Successful in 1m58s
app_held / app_hold_cleared allow-listed and operator-only; handleEvent mirrors them in held_apps; HeldAppsChecker
sends ONE app_held_reminder (warning, operator-only, per-app cooldown) after the grace per reason (6 h / 1 d / 3 d),
then weekly; recorded before sending; stale rows not reminded; the hub never clears a hold. Test-only
alerting.held_app_grace_override. TestD53_* in api/monitor/notify/web, red-proved by six mutations. Commit only.
2026-10-26 18:25:00 +01:00
admin ecd82abab8 ci(R-1297 A): heavy suites by path on a branch push, all on a tag and nightly; no second full gate run
gates / gates (push) Successful in 3m23s
- script_tests_gate.py: test_gate_decoys / test_due_checks_gate / dooplex-offsite run on a CI branch push only
  when one of their paths changed (FELHOM_CHANGED_FILES); no list, an empty or unreadable list = every suite
- gates.yml: nightly schedule 03:20 UTC; the list is set only for push:refs/heads/*; a trimmed commits array
  (total_commits > listed) is an unknown list
- test_repo_gates.py and test_due_checks_gate.py group G drive the real runner with GATES narrowed to their
  labels, instead of the whole gate set a second time (130 s each in CI)
- red-proved: filter cases, workflow pins (old gates.yml), inert run_gate, unregistered due-checks
2026-10-26 18:14:23 +01:00
admin 8143a2c872 docs: record D53, D54 and R-1297 (B) (09 §3 decisions 265-267); STATUS moves the two picks to history
gates / gates (push) Successful in 5m51s
2026-10-26 18:07:22 +01:00
admin 2354b9084c 2026-10-26 afternoon: R-1295 and R-1292 closed (hub 0.172.0 + tenantsync v1.4.0 on ep0; controller 0.345.0, floor 13:27:04Z); R-1297 filed (CI speed, operator: both); STATUS (D53, D54), CONTEXT, the run's report.
gates / gates (push) Successful in 13m30s
2026-10-26 14:33:48 +01:00
admin 69443d3c4e hub v0.172.0 RELEASED (13:08 UTC); felhom-tenantsync v1.4.0 INSTALLED on ep0 (operator yes); R-1292 live on Tester 1 (PASS; run 1 was an instrument failure, kept).
gates / gates (push) Successful in 13m17s
2026-10-26 14:17:07 +01:00
admin a90a9745a8 hub: image 0.172.0 (R-1295; operator yes 2026-10-26)
gates / gates (push) Successful in 13m1s
2026-10-26 14:04:22 +01:00
admin 232f42d21e R-1295 live on hub rc.1 (a fresh Tester4 install set up its whole-guest off-site tier; the box consumed the credential and made its first copy); R-1294 read: an honest plan the cap can never catch up with (D54); R-1291 design (08 §10, D53); design lines for R-1295, R-1285, R-1292, R-1294; R-1296 filed; STATUS.
gates / gates (push) Successful in 13m41s
2026-10-26 13:42:47 +01:00
admin ee38dee2c9 hub: image 0.172.0-rc.1 (R-1295 live proof; operator yes 2026-10-26)
gates / gates (push) Successful in 13m30s
2026-10-26 12:45:52 +01:00
admin 722013da90 R-1295: the PBS DR set-up waits out PBS's 5-s permission cache. Cause measured on a throwaway PBS 4.2.5 under load (v1.3.0 failed 11/30, v1.4.0 0/30): tenantsync v1.4.0 re-checks the same token (and the admin token) up to 15 s; hub v0.172.0 retries a self_check_failed rollback 3x, 7 s apart, and a final failure mails the operator (pbsdr_provision_failed, operator-only). Red-proved. Commit only; ep0 unchanged.
gates / gates (push) Successful in 13m24s
2026-10-26 12:27:28 +01:00
admin c69f53055d 2026-10-26 release run: hub 0.171.0, agent 0.166.0 (vouched), controller 0.344.0 (global floor 09:07:47 UTC), catalog 73c165d, golden 0.344.0 (baked, vouched; a fresh install came up on 0.344.0); the golden waiver removed — the gate is green on the golden. Rows: 9 closed (R-1278, R-1280–R-1283, R-1286–R-1289), R-1285 back to OPEN, R-1294 and R-1295 filed; STATUS, CONTEXT, evidence (scanned, 0 hits).
gates / gates (push) Successful in 13m35s
2026-10-26 10:42:54 +01:00
admin 6efb47607f hub: image 0.171.0 (R-1287, R-1289; operator yes 2026-10-26)
gates / gates (push) Successful in 13m7s
2026-10-26 08:53:49 +01:00
admin 7ad7c99684 D52: the golden waiver renewed for 2026-10-26 only (expires 2026-10-27) — the Sunday bake was missed; the golden is baked today on v0.344.0 and the waiver goes after the vouch. D51 (Start) and D52 recorded (09 §3 263, 264; CONTEXT; STATUS-HISTORY).
gates / gates (push) Successful in 12m56s
2026-10-26 08:37:12 +01:00