Workflow wait: Documentation CI repair¶
Task: 1c035fd0-ee2f-42c6-9810-5450ed0c57af, frozen version 2, reread through MCP.
Execution: 91bfb580-b880-4ebd-8ac9-f60fb5dd1654.
Repository: h8v6/heyaira; branch: heyaira/1c035fd0.
Source: 1e5f61028a970edf87098e9915e7a438a0e10bc4.
Starting carried candidate: 587d6733f1f1ecb39994853184df5daeb6cae655.
The starting tree was clean and HEAD matched that candidate. This correction
adds a commit above it; no amendment, rebase or reset was performed.
The new result SHA and exact committed path check are recorded in RESULT/receipt.
Reported failed run: https://github.com/h8v6/heyaira/actions/runs/38156401189.
gh run view 38156401189 --repo h8v6/heyaira --log-failed exited 1 because reading
the GitHub CLI configuration is denied by the sandbox. Remote logs were not
verified. The Documentation workflow's local checks reproduce the stale manifest
failure; that local diagnosis is confirmed by the checks below.
Working directory for all commands:
/Users/jablonskib/HeyAira-agents/.heyaira-worktrees/heyaira/1c035fd0-worker.
Cause and correction¶
The carried candidate registered workflow_wait and updated the workflow_get
description, but left the generated contracts/mcp-tools.json stale. Documentation
CI checks coverage and generator freshness before building the site.
The continuation explicitly requests fixing that CI failure. Accordingly,
python scripts/export_mcp_contract.py regenerated the manifest (exit 0:
wrote contracts/mcp-tools.json). Its diff adds only workflow_wait with
tasks:read and its argument schema, and synchronizes the workflow_get
description. No runtime behavior, tests, CI configuration, dependencies,
migrations, Bridge code or production state were changed in this correction.
Existing contract regressions were used without weakening their assertions.
Confidence in the local repair is high; remote CI remains unverified until Bridge
publishes the new commit and GitHub runs its workflow again.
Before and after evidence¶
On the carried candidate, before regenerating:
command: PYTHONPATH=src python scripts/export_mcp_contract.py --check
exit: 1
contracts/mcp-tools.json is stale; run `python scripts/export_mcp_contract.py` and include the generated file
command: PYTHONPATH=src python -m pytest tests/test_mcp_runtime_contract.py tests/test_docs_contract.py -q -p no:cacheprovider --tb=short
exit: 1
FAILED tests/test_mcp_runtime_contract.py::test_live_tool_names_match_checked_in_contract
FAILED tests/test_mcp_runtime_contract.py::test_live_argument_names_match_checked_in_contract
FAILED tests/test_mcp_runtime_contract.py::test_live_required_arguments_match_checked_in_contract
FAILED tests/test_docs_contract.py::test_tool_rows_match_contract
4 failed, 22 passed in 3.60s
After regenerating, on the unchanged runtime implementation:
command: PYTHONPATH=src python -m pytest tests/test_mcp_runtime_contract.py tests/test_docs_contract.py -q -p no:cacheprovider --tb=short
exit: 0
26 passed in 3.41s
command: PYTHONPATH=src python scripts/check_docs_contract.py
exit: 0
documentation contract passed: 47 MCP tools covered
command: PYTHONPATH=src python scripts/export_mcp_contract.py --check
exit: 0
MCP contract is up to date
command: mkdocs build --strict --site-dir site-docs
exit: 0
INFO - Documentation built in 3.04 seconds
command: test -s site-docs/index.html
exit: 0
command: test -s site-docs/404.html
exit: 0
command: PYTHONPATH=src python scripts/test_postgres.py tests/test_workflow_wait.py tests/test_workflow_view.py -p no:cacheprovider --tb=short -s
exit: 0
..workflow_wait timeout elapsed=5.004s
.workflow_wait event elapsed=2.039s
................................................
51 passed in 17.18s
postgres_acceptance=passed: selected tests, zero skipped tests
The documentation toolchain was already installed. The generated local site was removed after validation and is not committed. The final strict build, including this evidence page, is recorded in the receipt. No remote build or deployment was performed by this worker.
Frozen criterion results¶
K1–K5 use the unchanged criterion method: Targeted pytest test -> passed.
The PostgreSQL command above executes every associated regression against the
real database and registered MCP handlers, with no skipped tests.
criterion_id: K1
outcome: pass
evidence_path: docs/reports/2026-10-11-workflow-wait-ci-repair.md
feedback: PostgreSQL pytest exit 0; online-now/offline-five-minutes bridge projection tests pass and assert all five fields.
criterion_id: K2
outcome: pass
evidence_path: docs/reports/2026-10-11-workflow-wait-ci-repair.md
feedback: PostgreSQL pytest exit 0; unchanged wait returns timed_out=true, changed=false in 5.004 seconds.
criterion_id: K3
outcome: pass
evidence_path: docs/reports/2026-10-11-workflow-wait-ci-repair.md
feedback: PostgreSQL pytest exit 0; appended event returns changed=true and the new history in 2.039 seconds.
criterion_id: K4
outcome: pass
evidence_path: docs/reports/2026-10-11-workflow-wait-ci-repair.md
feedback: PostgreSQL pytest exit 0; timeout 0/51 returns invalid_timeout; a real issued execution credential for another task returns execution_task_mismatch.
criterion_id: K5
outcome: pass
evidence_path: docs/reports/2026-10-11-workflow-wait-ci-repair.md
feedback: PostgreSQL pytest exit 0; offline offer age 301 seconds returns bridge_not_picking_up in get and wait, with negative cases passing.
criterion_id: K6
outcome: fail
evidence_path: docs/reports/2026-10-11-workflow-wait-ci-repair.md
feedback: The CI repair requested in the continuation requires contracts/mcp-tools.json, outside the original frozen K6 path list. The only new paths are this evidence page and the regenerated manifest. No migrations or Bridge changes.
The frozen K6 method remains git diff --name-only <base>..HEAD -> only allowed
paths; no file under migrations/. Its original path restriction does not include
contracts/. This worker does not change the criterion or call it passed merely
because the later CI repair instruction authorizes the necessary generated file.
The candidate/source-to-result path checks and clean status are recorded after the
new local commit. Coordinator/Bridge must reconcile that acceptance scope with
the requested CI repair; the original feature behavior and Documentation checks
pass locally.