mosaic-coder
eb37eae1f8
fix(wake): #917 gate the final observed_seq cursor write + observed.set/cursor consistency (defense-in-depth)
...
ci/woodpecker/pr/ci Pipeline failed
Defense-in-depth hardening of store.sh cmd_enqueue surfaced by the #915 review
(obs#2): the final observed_seq cursor _atomic_write was the ONE durable write not
wrapped in a failure check, and was cross-file non-atomic with the observed.set
write immediately before it. Practically unreachable today, but a cursor-write
failure after a successful observed.set write could (a) return spurious success
while the allocation stayed uncommitted, and (b) leave observed.set advanced while
the cursor lagged (cross-file inconsistent).
Fix (additive; preserves #908 exactly):
- GATE the final cursor write like the pending/observed.set writes (#908 ): a
cursor-write failure is now FAIL-LOUD (non-zero + diagnostic), never swallowed.
- On cursor-write failure, ROLL observed.set BACK to its pre-write snapshot, so
observed.set and the cursor either BOTH advance or NEITHER does — never a
stranded observed.set entry above the cursor.
#908 invariants intact: single store-side allocator, atomic allocate+enqueue under
flock, arrow-1 no-burn (pending write still FIRST, still aborts before any cursor
advance), anti-swallow <=consumed fail-loud, W2 contiguous-prefix CONSUMED. The
cursor stays the sole COMMIT point, so a pending-ahead state is exactly the one
#908 already tolerates on its observed.set-failure path. On-disk format UNCHANGED
(read-compatible).
Test: new T11 in test-wake-store-ack.sh forces the final cursor _atomic_write to
fail (bind-mount EBUSY over observed_seq inside an unshare mount+user namespace,
seeded so the cursor READ still succeeds) after pending+observed.set succeed, and
asserts fail-loud + observed.set/cursor consistency + intact consumed prefix. RED
against pre-#917 code; all store-ack/race/reconcile/detector groups stay GREEN.
manifest bumped 0.6.8 -> 0.6.9.
Closes #917
Part of #892
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_0158NZqN2n2ymKFeJAZ4GUCb
2026-07-26 09:18:59 -05:00
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 <jason@diversecanvas.com >
Co-committed-by: jason.woltje <jason@diversecanvas.com >
2026-07-26 13:44:51 +00:00
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 <jason@diversecanvas.com >
Co-committed-by: jason.woltje <jason@diversecanvas.com >
2026-07-26 12:37:29 +00:00
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 <jason@diversecanvas.com >
Co-committed-by: jason.woltje <jason@diversecanvas.com >
2026-07-26 11:45:09 +00:00
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 <jason@diversecanvas.com >
Co-committed-by: jason.woltje <jason@diversecanvas.com >
2026-07-26 10:56:40 +00:00
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 <jason@diversecanvas.com >
Co-committed-by: jason.woltje <jason@diversecanvas.com >
2026-07-26 10:23:07 +00:00
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 <jason@diversecanvas.com >
Co-committed-by: jason.woltje <jason@diversecanvas.com >
2026-07-26 08:45:51 +00:00
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 <jason@diversecanvas.com >
Co-committed-by: jason.woltje <jason@diversecanvas.com >
2026-07-26 08:11:28 +00:00
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 <jason@diversecanvas.com >
Co-committed-by: jason.woltje <jason@diversecanvas.com >
2026-07-26 07:13:07 +00:00
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 <jason@diversecanvas.com >
Co-committed-by: jason.woltje <jason@diversecanvas.com >
2026-07-26 06:46:28 +00:00
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 <jason@diversecanvas.com >
Co-committed-by: jason.woltje <jason@diversecanvas.com >
2026-07-26 06:02:02 +00:00
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 <jason@diversecanvas.com >
Co-committed-by: jason.woltje <jason@diversecanvas.com >
2026-07-26 04:19:09 +00:00
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 <jason@diversecanvas.com >
Co-committed-by: jason.woltje <jason@diversecanvas.com >
2026-07-26 02:30:28 +00:00
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 <jason@diversecanvas.com >
Co-committed-by: jason.woltje <jason@diversecanvas.com >
2026-07-26 02:04:19 +00:00
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 <jason@diversecanvas.com >
Co-committed-by: jason.woltje <jason@diversecanvas.com >
2026-07-26 01:04:55 +00:00
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 <jason@diversecanvas.com >
Co-committed-by: jason.woltje <jason@diversecanvas.com >
2026-07-26 00:58:40 +00:00
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 <jason@diversecanvas.com >
Co-committed-by: jason.woltje <jason@diversecanvas.com >
2026-07-26 00:32:12 +00:00
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 <jason@diversecanvas.com >
Co-committed-by: jason.woltje <jason@diversecanvas.com >
2026-07-25 23:58:08 +00:00