Jason Woltje and Claude Fable 5
a54d539eb3
fix(wake): #941 review §2 — snapshot_ts hardening: sha precondition, epoch sanity, future-skew rejection
...
ci/woodpecker/pr/ci Pipeline was successful
A ts without a valid sha is unverifiable dating — dropped loudly. A future
ts yields a negative age (stale reads fresher-than-fresh, the failure class
this PR exists to fix) — rejected beyond WAKE_SNAPSHOT_TS_FUTURE_SLACK
(default 300s). Epoch sanity (^[0-9]{1,12}$) is validated BEFORE the shell
integer comparison so an absurd value cannot error past the guard. All three
paths covered by new D12. Manifest now records that snapshot_* absence is
deliberately not diagnostic (reviewer observation, PR #941 comment 19475).
Co-Authored-By: Claude Fable 5 <[email protected] >
Claude-Session: https://claude.ai/code/session_01NsKce8iZuSuRnu3gVMCBKB
2026-07-30 05:42:01 -05:00
Jason Woltje and Claude Fable 5
bb54e09aec
feat(wake): #940 snapshot-datable digests — adapter fd-3 snapshot-metadata channel
...
ci/woodpecker/pr/ci Pipeline was successful
A digest locator carried observed_hash + emit_ts but nothing DATING the
snapshot, so a consumer could not tell a fresh snapshot from one already
superseded at delivery without a tool call (wake-pilot finding
fw-wake-digest-snapshot-lag: seq 56 rendered "(none)" from a board revision
superseded ~5s before delivery by one adding a FLEET STOP block).
Additive + backward-compatible:
- detector.sh: invoke the W4 source adapter with fd 3 -> temp file; the
adapter MAY write {"snapshot_sha": "<git commit sha>", "snapshot_ts":
<epoch>}. Out-of-band is load-bearing: stdout is hashed by the delta
gate, so an in-band tip-commit sha would advance observed_hash on every
unrelated push. Metadata is ADVISORY and validated (sha ^[0-9a-f]{7,64}$,
ts number); malformed metadata drops LOUDLY but never fails the poll or
suppresses the wake. Valid fields join the enqueue locators. An adapter
that never writes fd 3 is byte-identical legacy behavior.
- digest.sh: _locator_line renders snapshot_sha=/snapshot_ts= (scrubbed)
beside observed_hash=; snapshot_sha+path upgrades the actionable-tier
re-verify hint to one-call `git show <snapshot_sha>:<path>`. With
emit_ts already in the header, snapshot age is local arithmetic.
- tests: detector D10 (fields land in locators; metadata-only change is
NOT a delta) + D11 (malformed metadata: loud drop, wake still fires, no
fields); digest Q10 (orientation dating render, no-vestige sibling,
actionable re-verify upgrade). manifest 0.6.12; watch-list schema
untouched ([1,1]); store/reconcile/beacon unchanged.
Closes #940
Co-Authored-By: Claude Fable 5 <[email protected] >
Claude-Session: https://claude.ai/code/session_01NsKce8iZuSuRnu3gVMCBKB
2026-07-30 05:13:47 -05:00
jason.woltje and Mos
b981b4ec10
fix(wake): #934 mount-free, privilege-invariant seq-integrity fault injection (T9/T11 run in non-priv CI) ( #936 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: jason.woltje <[email protected] >
Co-committed-by: jason.woltje <[email protected] >
2026-07-26 16:34:58 +00:00
jason.woltje and Mos
9e81ffd7fc
fix(wake): #932 stop reconciler re-enumerating already-CONSUMED detector state ( #935 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: jason.woltje <[email protected] >
Co-committed-by: jason.woltje <[email protected] >
2026-07-26 15:48:40 +00:00
jason.woltje and Mos
9becaf877f
fix(wake): #917 gate the final observed_seq cursor write + observed.set/cursor consistency (defense-in-depth) ( #933 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: jason.woltje <[email protected] >
Co-committed-by: jason.woltje <[email protected] >
2026-07-26 15:14:38 +00:00
jason.woltje and Mos
17087efe15
fix(wake): #925 framework-ship canon fallback-wake (systemd timer + schema bound + A10 install/validate) — F7 out of the box ( #931 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: jason.woltje <[email protected] >
Co-committed-by: jason.woltje <[email protected] >
2026-07-26 13:44:51 +00:00
jason.woltje and Mos
0ea41e848b
fix(wake): #913 installer adoption gaps — _lib dep-check fail-loud + mosaic-wake.service systemd-search-path link+validate ( #930 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: jason.woltje <[email protected] >
Co-committed-by: jason.woltje <[email protected] >
2026-07-26 12:37:29 +00:00
jason.woltje and Mos
347c1d57c1
fix(wake): #924 route dead-letter quarantine alarm via WAKE_ALARM_SINK_CMD with per-observed_seq dedup (G2a) ( #929 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: jason.woltje <[email protected] >
Co-committed-by: jason.woltje <[email protected] >
2026-07-26 11:45:09 +00:00
jason.woltje and Mos
13e6ce5e5c
fix(wake): #927 enqueue TOCTOU — move stale-tmp cleanup off the hot enqueue path (no concurrent in-flight-write clobber) ( #928 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: jason.woltje <[email protected] >
Co-committed-by: jason.woltje <[email protected] >
2026-07-26 10:56:40 +00:00
jason.woltje and Mos
90265ef550
test(wake): #923 de-flake T10 concurrent-enqueue race (deterministic barrier) ( #926 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: jason.woltje <[email protected] >
Co-committed-by: jason.woltje <[email protected] >
2026-07-26 10:23:07 +00:00
jason.woltje and Mos
937a276208
fix(wake): #920 quarantine render-refused drain entry (no head-of-line block) + reconciler enumerations render orientation-tier (reconciled:true, render-tier not class=digest) ( #922 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: jason.woltje <[email protected] >
Co-committed-by: jason.woltje <[email protected] >
2026-07-26 08:45:51 +00:00
jason.woltje and Mos
712c770b7a
fix(wake): #912 exercise the digest/HMAC trust suite in real CI (fix runner divergence + openssl + hard-require) ( #921 )
...
ci/woodpecker/push/ci-image Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
Co-authored-by: jason.woltje <[email protected] >
Co-committed-by: jason.woltje <[email protected] >
2026-07-26 08:11:28 +00:00
jason.woltje and Mos
d967a4a926
fix(wake): #914 digest renderer — WAKE_AGENT-prefixed ack line + digest-class locator threading ( #916 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: jason.woltje <[email protected] >
Co-committed-by: jason.woltje <[email protected] >
2026-07-26 07:13:07 +00:00
jason.woltje and Mos
c585ac3326
test(wake): #918 de-flake T7 ack-no-network-block (sub-second timing) ( #919 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: jason.woltje <[email protected] >
Co-committed-by: jason.woltje <[email protected] >
2026-07-26 06:46:28 +00:00
jason.woltje and Mos
e2ec927b1c
fix(wake): #908 unify observed_seq on a single store-side allocator (dissolve detector-private-counter seam) ( #915 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: jason.woltje <[email protected] >
Co-committed-by: jason.woltje <[email protected] >
2026-07-26 06:02:02 +00:00
jason.woltje and Mos
2378665eaf
feat(wake): W7 A10 idempotent installer + mosaic-wake.service (component-manifest, Gate-A, blank-reset retire, snapshot-guard, fail-closed install-validate) ( #911 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: jason.woltje <[email protected] >
Co-committed-by: jason.woltje <[email protected] >
2026-07-26 04:19:09 +00:00
jason.woltje and Mos
003cdaa1a6
feat(wake): W6 — off-host dead-man beacon + pluggable alarm-sink adapter ( #910 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: jason.woltje <[email protected] >
Co-committed-by: jason.woltje <[email protected] >
2026-07-26 02:30:28 +00:00
jason.woltje and Mos
320f5bfb6f
feat(wake): W5 — synthetic-canary FN-oracle + source-parity reconciler ( #909 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: jason.woltje <[email protected] >
Co-committed-by: jason.woltje <[email protected] >
2026-07-26 02:04:19 +00:00
jason.woltje and Mos
5df47e735e
feat(wake): W4 — per-host delta-gated detector daemon (fail-loud source semantics, enqueues to W2 store) ( #907 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: jason.woltje <[email protected] >
Co-committed-by: jason.woltje <[email protected] >
2026-07-26 01:04:55 +00:00
jason.woltje and Mos
dd1391fd76
fix(wake): digest hard-locator gate covers top-level .claim entries ( Closes #905 ) ( #906 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was canceled
Co-authored-by: jason.woltje <[email protected] >
Co-committed-by: jason.woltje <[email protected] >
2026-07-26 00:58:40 +00:00
jason.woltje and Mos
10d957d095
feat(wake): W3 — cumulative-state digest renderer + non-circular HMAC signer ( #904 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: jason.woltje <[email protected] >
Co-committed-by: jason.woltje <[email protected] >
2026-07-26 00:32:12 +00:00
jason.woltje and Mos
28f022d9c0
feat(wake): W2 — three-cursor durable store + RECEIVED/CONSUMED ack-wrapper + watch-list schema ( #903 )
...
ci/woodpecker/push/publish Pipeline was canceled
ci/woodpecker/push/ci Pipeline was canceled
Co-authored-by: jason.woltje <[email protected] >
Co-committed-by: jason.woltje <[email protected] >
2026-07-25 23:58:08 +00:00