feat(pipeline): generic agent-stage runner with tool receipts (P0.2, red-first) #222

Merged
conductor merged 2 commits from research-structuralization into master 2026-09-08 00:50:51 +01:00
2 Commits
Author SHA1 Message Date
Nick dc4e0fcc8e merge master (behind-base)
CI Pipeline / best-practices (push) Successful in 4s
CI Pipeline / documentation (push) Successful in 2s
CI Pipeline / lint (push) Successful in 27s
CI Pipeline / canary (push) Successful in 27s
CI Pipeline / type-check (push) Successful in 22s
CI Pipeline / unit-tests (push) Successful in 36s
CI Pipeline / gitea-offline (push) Successful in 13s
CI Pipeline / required-checks (push) Skipped
CI Pipeline / best-practices (pull_request) Successful in 2s
CI Pipeline / documentation (pull_request) Successful in 2s
CI Pipeline / lint (pull_request) Successful in 27s
CI Pipeline / canary (pull_request) Successful in 25s
CI Pipeline / unit-tests (pull_request) Successful in 35s
CI Pipeline / type-check (pull_request) Successful in 23s
CI Pipeline / gitea-offline (pull_request) Successful in 14s
Spec gate (headless) / spec-gate (pull_request) Successful in 7s
CI Pipeline / required-checks (pull_request) Successful in 1s
Auto-version and Release / release (pull_request) Failing after 15m35s
2026-09-08 00:49:23 +01:00
Nick fa689c77e9 feat(pipeline): generic agent-stage runner — transport with tool receipts, locks, restart safety (P0.2, red-first)
CI Pipeline / best-practices (push) Successful in 4s
CI Pipeline / documentation (push) Successful in 2s
CI Pipeline / lint (push) Successful in 29s
CI Pipeline / canary (push) Successful in 28s
CI Pipeline / type-check (push) Successful in 23s
CI Pipeline / unit-tests (push) Successful in 34s
CI Pipeline / gitea-offline (push) Successful in 13s
CI Pipeline / required-checks (push) Skipped
Auto-label / priority-gate (pull_request) Skipped
CI Pipeline / best-practices (pull_request) Successful in 4s
Auto-label / auto-label (pull_request) Successful in 3s
CI Pipeline / documentation (pull_request) Successful in 3s
CI Pipeline / canary (pull_request) Successful in 25s
CI Pipeline / lint (pull_request) Successful in 27s
CI Pipeline / type-check (pull_request) Successful in 22s
CI Pipeline / unit-tests (pull_request) Successful in 35s
Spec gate (headless) / spec-gate (pull_request) Successful in 7s
CI Pipeline / gitea-offline (pull_request) Successful in 14s
CI Pipeline / required-checks (pull_request) Successful in 1s
scripts/run_agent_stage.py per the Forge Cognitive Research Loop handoff:
- ONE runner for all cognitive stages (research/planning/review) — not a
  family of per-stage scripts
- tool receipts derived from STRUCTURED events (type:tool parts), never
  model self-report; OUTWARD validity = >=2 completed search/fetch calls
  across >=2 distinct web domains
- idempotency key issue+stage+round; TTL locks (crashed stage -> stale lock
  expires -> redispatch safe)
- fail loud: mimo crash, schema violation, missing receipt all return 1
- event schema verified live against runner mimo 0.1.13 (type:text/part.text
  — the spec-gate's parser had the wrong shape; fixed here)
- canary evidence (T8): no native search tool on runner mimo; discovery
  works via webfetch of search-engine HTML + fetched pages (2 domains,
  real content, honest self-report of the fallback)
2026-09-08 00:40:18 +01:00