Issue #39 closes a parser gap. Tracker’s runtime already supported marker_grep, route_required, and output_limit for stdout-driven routing, but .dip source couldn’t reach them — authors following tracker’s TRK101 lint recommendation hit unrecognized tool field "marker_grep" from dippin instead of a cleaner pipeline.
tool RunTests
marker_grep: "^(tests_pass|tests_fail)$"
route_required: true
output_limit: 65536
timeout: 2m
command:
go test ./... 2>&1marker_grep — regex matched against captured stdout. The last match populates ctx.tool_marker, so routing edges can reference it instead of parsing raw ctx.tool_stdout.route_required — when true, the node fails (EventToolRouteMissing) if the command emits no _TRACKER_ROUTE=<value> sentinel line. The matched value populates ctx.tool_route.output_limit — per-node override of the engine’s captured-stdout byte cap, for tools that need a larger or smaller window than the global default.Without these fields, authors working around tracker’s TRK101 truncation foot-gun had to enumerate every possible stdout marker as a conditional edge. That made dippin coverage flag false-positive non-exhaustive routing on nodes that were actually fully covered. Typed marker_grep is the canonical fix; now dippin accepts it.
These fields forward through DOT export to tracker. Routing semantics require the matching extractToolAttrs change in tracker; the dippin v0.28 release pairs with a tracker version that pins [email protected]. Older tracker versions silently ignore the new attrs.
marker_grep when a tool node parses stdout for routing without declaring it.true / yes / 1 accepted consistently).outputs DOT round-trip gap.Full changelog: CHANGELOG.md.