-
Notifications
You must be signed in to change notification settings - Fork 1
[Follow-up] Implement an evidence adapter function integrated (PR #2757) #2761
Copy link
Copy link
Closed
Labels
agent:codexAgent-created issues from CodexAgent-created issues from Codexagents:apply-suggestionsagents:auto-pilotEnd-to-end automation: Issue → Agent → MergeEnd-to-end automation: Issue → Agent → Mergeagents:formattedIssue has been formatted to agent templateIssue has been formatted to agent templatefollow-upfrom:codexCreated from Codex agentCreated from Codex agentrunner:codexstatus:in-progressWork in progressWork in progress
Description
Activity
Metadata
Metadata
Assignees
Labels
agent:codexAgent-created issues from CodexAgent-created issues from Codexagents:apply-suggestionsagents:auto-pilotEnd-to-end automation: Issue → Agent → MergeEnd-to-end automation: Issue → Agent → Mergeagents:formattedIssue has been formatted to agent templateIssue has been formatted to agent templatefollow-upfrom:codexCreated from Codex agentCreated from Codex agentrunner:codexstatus:in-progressWork in progressWork in progress
Why
PR #2757 established the read-only consumer-sync shadow handoff, but the current
mainruntime rail still needs one executable path for strict evidence ingestion, idempotency, safety controls, and machine-readable reporting. The current source of truth isscripts/orchestrator_runtime/; the formersrc/consumer_sync/*plan was never created and must not be used as a phantom target.Scope
Extend the existing orchestrator runtime rail and its tests. Keep all consumer-sync effects read-only until the existing promotion policy is satisfied.
Non-Goals
Do not create a second capability ledger, accept raw prompt text as evidence, or enable consumer writes. Scaffold-only modules without executable tests and deliberate-break evidence do not count as completion.
Tasks
scripts/orchestrator_runtime/evidence_schema.pyandscripts/orchestrator_runtime/completion_event_adapter.pyto parse strict consumer-sync plan evidence and reject prose, malformed payloads, spoofed capability IDs, oversized refs, and missing provenance before state mutation.scripts/orchestrator_runtime/capability_lifecycle.pywith stable evidence identity, ledger-backed duplicate replay, counterexample preservation, and candidate retirement state.scripts/orchestrator_runtime/runner_effect_bridge.pywith read-only effect allowlists, TTL checks, kill-switch termination, and explicit blocked-reason output.scripts/orchestrator_runtime/consumer_sync_report.pyand wire it to the existing runtime ledger so every candidate is classified asno-data,healthy-shadow-evidence, orfailed-evidence-ingestion.tests/orchestrator_runtime/test_completion_event_adapter.pyand newtests/orchestrator_runtime/test_consumer_sync_runtime.pyfixtures.Acceptance Criteria
python -m pytest tests/orchestrator_runtime/test_completion_event_adapter.py tests/orchestrator_runtime/test_consumer_sync_runtime.py -qpasses with non-zero collection.scripts/orchestrator_runtime/capability_lifecycle.py;tests/orchestrator_runtime/test_consumer_sync_runtime.py::test_duplicate_plan_reuses_ledger_resultmust fail, then restore the guard.Implementation Notes
PR #2757 and issue #2753 are the shadow-handoff predecessor. Reuse the versioned runtime rail added under
scripts/orchestrator_runtime/and preserve the source-first Workflows ownership boundary.