FN-9175: isolate engine run-audit emitters
Make run-audit telemetry best-effort across engine lifecycle paths.
- centralize bounded sink handling for absent, throwing, rejecting, hanging, and late-settling audit writers
- route merger, recovery, scheduler, plugin, mission, project, and run-auditor emissions through the shared seam
- add hostile-sink regression coverage, emitter routing checks, documentation, and a patch changeset
Files changed:
.../fn-9175-non-executor-run-audit-isolation.md | 7 +
AGENTS.md | 7 +-
docs/run-audit.md | 4 +-
.../src/__tests__/emit-bounded-run-audit.test.ts | 31 ++-
...on-executor-run-audit-emitter-isolation.test.ts | 29 +++
.../non-executor-run-audit-sink-health.test.ts | 280 +++++++++++++++++++++
packages/engine/src/__tests__/self-healing.test.ts | 7 +-
.../engine/src/executor/emit-bounded-run-audit.ts | 52 +---
packages/engine/src/logger.ts | 3 +
packages/engine/src/merge/merger-ai.ts | 47 ++--
packages/engine/src/merge/pr-reconcile.ts | 5 +-
packages/engine/src/merger.ts | 41 +--
.../engine/src/missions/mission-execution-loop.ts | 5 +-
packages/engine/src/plugins/plugin-runner.ts | 9 +-
packages/engine/src/project-engine.ts | 55 ++--
packages/engine/src/scheduler.ts | 17 +-
packages/engine/src/self-healing.ts | 39 +--
packages/engine/src/util/emit-bounded-run-audit.ts | 69 +++++
packages/engine/src/util/run-audit.ts | 9 +-
19 files changed, 564 insertions(+), 152 deletions(-)
Fusion-Task-Id: FN-9175
Fusion-Task-Lineage: bf74cd37-19bd-4d99-a5d6-b05a4bb43576
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>