Skip to content

Acceptance override publication recovery evidence

Task: 36b98be5-7866-4948-a4a3-217222fd3a83, frozen version 3. Execution: 1409dc6e-f321-4d1f-89f1-b539e5793796. Repository: h8v6/heyaira; branch: heyaira/36b98be5. Working directory: /Users/jablonskib/HeyAira-agents/.heyaira-worktrees/heyaira/36b98be5-worker. Source and starting HEAD: a2c3c46856dd9987ebddceceb9efc11bafc6b757. Tested implementation commit: cd8e39491b916a7e1f15c08e055e7d841babaa25, whose parent is the source commit. This report is the only follow-up change; the final result SHA and final scope check are recorded in HeyAira RESULT. No subagents were used.

Cause: the normal done transition resets publication to awaiting with no recheck deadline, even when an override retains an already published PR. After that transition, the fix sets existing publications to unchecked and due now. Background recovery reconfirms the PR and resumes CI polling. The override receipt prefix now receives the same managed-task protection as the acceptance prefix. No classification, authority, Bridge or migration changes were made. Confidence is high for the two scoped paths.

All Python commands below used TMPDIR="$PWD/.task-tmp" for writable temporary artifacts. PostgreSQL tests used the already prepared local test database via the runner; no installation or production mutation occurred. Fixtures, PRs, provider responses and receipts were synthetic. The database, workflow transitions and registered MCP tools were real.

K1

Frozen method: python scripts/test_postgres.py <new tests> -p no:cacheprovider on a2c3c46 and HEAD; RESULT states both outcomes.

Command (same selection on base and fixed implementation):

python scripts/test_postgres.py tests/test_workflow_failure_kind.py::test_accept_override_rechecks_existing_publication_after_ci_block tests/test_workflow_failure_kind.py::test_contributor_cannot_use_accept_override_receipt_prefix -p no:cacheprovider

Base: HEAD a2c3c46856dd9987ebddceceb9efc11bafc6b757, with only the new test fixture/regressions added and production source unchanged. Exit 1:

FAILED tests/test_workflow_failure_kind.py::test_accept_override_rechecks_existing_publication_after_ci_block
FAILED tests/test_workflow_failure_kind.py::test_contributor_cannot_use_accept_override_receipt_prefix
2 failed in 10.95s

T1 failed at assert accepted["publication_state"] == "unchecked": observed awaiting. The real CI reaction had already asserted blocked / correction_budget_exhausted. T3 failed at rejection assertion: observed is_error=False, receipt_recorded=True for the contributor. An earlier exploratory run also had two failures (15.29s), but T1 then failed on a test JSON-decoding assumption; that assumption was corrected before the definitive base run above and before editing production code.

Fixed HEAD cd8e39491b916a7e1f15c08e055e7d841babaa25: exit 0:

2 passed in 2.33s
postgres_acceptance=passed: selected tests, zero skipped tests

T1 inserts a matching project_repositories binding, uses a fake get_pull_request with matching repo/branch/SHA, verifies and confirms publication, exhausts the correction budget and records failing CI. It asserts the override schedules an unchecked publication, then calls recheck_publications without any manual deadline update. Recovery reaches confirmed, clears the publication deadline, sets ci_poll_after, resets poll count and marks the task done. T3 asserts rejected contributor writes leave the workflow, task version and receipts unchanged.

criterion_id: K1 outcome: pass evidence_path: docs/reports/36b98be5-accept-override-evidence.md feedback: Base command exit 1, both regressions failed at intended assertions; fixed HEAD command exit 0, 2 passed, zero skipped.

K2

Frozen method: python scripts/test_postgres.py tests/test_workflow_failure_kind.py -p no:cacheprovider -> passed, 0 skipped.

Command on tested implementation HEAD:

python scripts/test_postgres.py tests/test_workflow_failure_kind.py -p no:cacheprovider

Exit 0, real output:

33 passed in 9.17s
postgres_acceptance=passed: selected tests, zero skipped tests

Includes the existing override-without-publication regression, which still expects publication_state == 'awaiting', and the two added regressions.

criterion_id: K2 outcome: pass evidence_path: docs/reports/36b98be5-accept-override-evidence.md feedback: Named PostgreSQL suite exit 0, 33 passed, zero skipped; existing no-publication behavior preserved.

K3

Frozen method: PYTHONPATH=src python -m pytest tests/test_mcp_runtime_contract.py tests/test_docs_contract.py -q -p no:cacheprovider -> passed.

Command on tested implementation HEAD:

PYTHONPATH=src python -m pytest tests/test_mcp_runtime_contract.py tests/test_docs_contract.py -q -p no:cacheprovider

Exit 0, real output:

26 passed in 2.48s

criterion_id: K3 outcome: pass evidence_path: docs/reports/36b98be5-accept-override-evidence.md feedback: Named runtime contract and docs tests exit 0, 26 passed.

K4

Frozen method: git diff --name-only a2c3c46856dd9987ebddceceb9efc11bafc6b757..HEAD; git merge-base --is-ancestor a2c3c46 HEAD.

On tested implementation HEAD, both commands exited 0. Diff output:

src/heyaira/server.py
src/heyaira/workflow.py
tests/test_workflow_failure_kind.py

git merge-base --is-ancestor a2c3c46 HEAD produced no output, exit 0. git diff --check exited 0 with no output. This report adds one path under docs/; no migration was added. Final post-commit checks are recorded in RESULT.

criterion_id: K4 outcome: pass evidence_path: docs/reports/36b98be5-accept-override-evidence.md feedback: Diff and ancestry commands exit 0; implementation paths in scope, this report under docs/, no migration, source remains ancestor.

Execution limits and checks not run

The system Git shim emitted denied xcrun temporary-cache warnings. Subsequent Git commands used /Library/Developer/CommandLineTools/usr/bin/git directly. Git also warned about the unreadable global ignore file and emitted a packed-refs.lock denial during commit maintenance; the implementation commit succeeded and its SHA and parent were read back. No required check was obstructed. The full repository test suite and external GitHub/production checks were not run; they are outside the frozen methods. Independent acceptance and publication remain with Bridge.