wake/W3 hardening: align digest.sh fail-loud validator to treat top-level .claim as actionable (non-canonical locator-gate gap) #905

Closed
opened 2026-07-26 00:31:31 +00:00 by jason.woltje · 0 comments
Owner

Non-blocking follow-up from the #904 (W3) review. In packages/mosaic/framework/tools/wake/digest.sh, the fail-loud locator gate treats an entry as actionable via class=="actionable" OR .locators.claim, but the RENDER tier also honors a top-level .claim (jq -r ".claim // .locators.claim"). A hand-crafted entry {"class":"reaction","claim":"...","locators":{}} fed via --stdin/--from-file can therefore render as CLAIM@seq with an EMPTY locator, escaping the exit-4 hard-locator gate. NOT reachable via the canonical --from-store path (store.sh never emits a top-level .claim), and the two-tier UNTRUSTED/VERIFY-LIVE framing still applies (degrades to search-instead-of-one-call, NOT a trust bypass) — so non-blocking. Fix: align the fail-loud validator (digest.sh:241) to also treat a top-level .claim as actionable, so the locator gate covers the non-canonical --stdin/--from-file inputs too. Part of #892.

Non-blocking follow-up from the #904 (W3) review. In `packages/mosaic/framework/tools/wake/digest.sh`, the fail-loud locator gate treats an entry as actionable via `class=="actionable"` OR `.locators.claim`, but the RENDER tier also honors a top-level `.claim` (`jq -r ".claim // .locators.claim"`). A hand-crafted entry `{"class":"reaction","claim":"...","locators":{}}` fed via `--stdin`/`--from-file` can therefore render as `CLAIM@seq` with an EMPTY locator, escaping the exit-4 hard-locator gate. NOT reachable via the canonical `--from-store` path (store.sh never emits a top-level `.claim`), and the two-tier UNTRUSTED/VERIFY-LIVE framing still applies (degrades to search-instead-of-one-call, NOT a trust bypass) — so non-blocking. Fix: align the fail-loud validator (digest.sh:241) to also treat a top-level `.claim` as actionable, so the locator gate covers the non-canonical `--stdin`/`--from-file` inputs too. Part of #892.
Mos closed this issue 2026-07-26 00:58:41 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: mosaicstack/stack#905