feat: completion-enforcement loop (fallback, proof, emit-model, auditor)

Close the loop so dispatched work actually completes on bl:

- on_no_result fallback in followup-sweeper (op + job forms via
  exec-constrained registry / job-dispatch), seeded on the three
  autonomy-pulse jobs; fallback_due() dedupes the gravity path
- gravity.py: add __main__ entry (loop-remediator.timer was a no-op),
  300s re-arm budget, fallback firing + stamp/skip logic
- harvester: proof-of-result followups (result_has_evidence),
  acted-variant NACK, emit-model tool-hint wording
- envelope: RESPONSE RULE states the emit model (agents EMIT
  directives verbatim; runtime executes; works from bare containers)
- completion-audit.py + systemd 15-min timer: per-family funnel,
  swarm drain, followup backlog; digest DM when degraded, 6h heartbeat
- tests/test_completion.py (29 tests), JOB-SPEC.md docs

Tests: 67/67 focused green (completion + tool_calls).
This commit is contained in:
Muse Sidechat
2026-10-06 08:20:14 +00:00
parent b7e45010c3
commit a9f014f9fa
12 changed files with 1173 additions and 16 deletions
+9 -1
View File
@@ -18,5 +18,13 @@
"route": "autonomy-pulse"
},
"chain_next": null,
"on_failure": "alert"
"on_failure": "alert",
"on_no_result": {
"op": "swarm.spawn",
"args": {
"count": 2,
"task": "Standing pulse work for 646 (autonomy-pulse-646): execute your scope standing work: verify timers, check swarm results, act or close; report per-slot verdicts.",
"label": "autonomy-pulse-646-fallback"
}
}
}
+9 -1
View File
@@ -18,5 +18,13 @@
"route": "autonomy-pulse"
},
"chain_next": null,
"on_failure": "alert"
"on_failure": "alert",
"on_no_result": {
"op": "swarm.spawn",
"args": {
"count": 2,
"task": "Standing pulse work for opm (autonomy-pulse-opm): execute your scope standing work: verify timers, check swarm results, act or close; report per-slot verdicts.",
"label": "autonomy-pulse-opm-fallback"
}
}
}
+9 -1
View File
@@ -18,5 +18,13 @@
"route": "autonomy-pulse"
},
"chain_next": null,
"on_failure": "alert"
"on_failure": "alert",
"on_no_result": {
"op": "swarm.spawn",
"args": {
"count": 2,
"task": "Standing pulse work for pip (autonomy-pulse-pip): execute your scope standing work: verify timers, check swarm results, act or close; report per-slot verdicts.",
"label": "autonomy-pulse-pip-fallback"
}
}
}