feat(framework): accept digest message class in agent-send.sh (W1)
Some checks failed
ci/woodpecker/pr/ci Pipeline failed

The triage class validator in agent-send.sh rejected `digest`, the
canonical machine-wake / coalescible message class defined by the
converged wake/heartbeat design (CONVERGED-DESIGN §2.3 sol C1). Add
`digest` to the accepted class set (case-statement validator + the
documented consumer grammar regex), alongside the existing
terminal-log/actionable/human/reaction classes.

Red-first: extended agent-send.test.sh with --class digest / -C digest
assertions plus a grammar-regex case for class=digest. At origin/main
these 3 new assertions FAIL (PASS=15 FAIL=3); with the validator fix
applied, all 18 assertions PASS (PASS=18 FAIL=0). All pre-existing
assertions were unaffected throughout.

Part of #892
This commit is contained in:
mosaic-coder
2026-07-25 16:03:51 -05:00
parent 3c7890f17f
commit 8d955c86a1
2 changed files with 23 additions and 5 deletions

View File

@@ -46,6 +46,7 @@
# actionable carries a decision/blocker/gate — deliver
# human from a human operator — deliver
# reaction an emoji/ack reaction
# digest machine-wake, coalescible; batched wake/heartbeat signal
# Long form: --class CLASS (or --class=CLASS). When SET, the
# preamble carries a ` class=<CLASS>` token INSIDE the bracket:
# [<src> -> <dst> class=terminal-log] <message>
@@ -58,7 +59,7 @@
# -h help
#
# PREAMBLE GRAMMAR (for consumers / daemons mirroring this producer)
# ^\[(\S+) -> (\S+?)(?: class=(terminal-log|actionable|human|reaction))?\] (.*)$
# ^\[(\S+) -> (\S+?)(?: class=(terminal-log|actionable|human|reaction|digest))?\] (.*)$
# group 1 = src label group 2 = dst host:session
# group 3 = class (absent => actionable) group 4 = message body
#
@@ -109,8 +110,8 @@ done
CLASS_TOKEN=""
if [ -n "$CLASS" ]; then
case "$CLASS" in
terminal-log|actionable|human|reaction) CLASS_TOKEN=" class=${CLASS}" ;;
*) echo "ERROR: invalid --class '$CLASS' (allowed: terminal-log, actionable, human, reaction)" >&2; exit 3 ;;
terminal-log|actionable|human|reaction|digest) CLASS_TOKEN=" class=${CLASS}" ;;
*) echo "ERROR: invalid --class '$CLASS' (allowed: terminal-log, actionable, human, reaction, digest)" >&2; exit 3 ;;
esac
fi