v0.3.0
Hardening of the Stop backstop that stands the session down when a PR is
concluded, closing two prompt-injection / livelock gaps in how it reads the
watcher's report.
Changes
-
feat(stop-hook): dampen repeated, unfixable check_failure blocks (#9) —
the watcher now prints the head commit (Head SHA:) in the check_failure
header, and the hook fingerprints each report by its failed-check set + head
SHA (read from the header region only). Once two reports carry an identical
signature — a real fix would have moved the SHA — the hook infers no fix is
coming, allows the stop, and emits a non-blockingsystemMessageso the red
PR stays visible. One block to try a fix; no more livelock that previously
requiredPR_SENTINEL_DISABLE=1to escape; never a silent walk-away. -
fix(stop-hook): reject a forged ready marker in a CI-log excerpt (#10) —
aPR-SENTINEL EVENT: ready/closedmarker planted in a semi-untrusted CI
log excerpt could stand the backstop down on a still-red PR. Marker matching
is now anchored to the report's header region (above the first
----- BEGIN CI LOG EXCERPTbanner), which the watcher always writes before
any excerpt, so a planted marker cannot climb above the real one.