Work queue preparation retries — worker evidence¶
Task: b19701fa-2de8-4ed3-8d77-3ec7ab1d1a2e, frozen version 4.
Execution: 65f57ac3-050e-415b-865b-35215589dc6b.
Repository: h8v6/heyaira; branch: heyaira/b19701fa.
Source and starting HEAD: 7b4efed323e84558279ad67f14257eaa7bab5938.
The starting tree was clean; there was no carried candidate. No history was
rewritten. No subagents were used. No install, push, PR, merge or deployment.
The server identity matched the supplied resource, instance and project.
task_get(task_id, version=4) returned all four frozen criteria and the three
handoff corrections. The Bridge procedure and work contract exempt this
execution from interactive claiming/status/continuity operations. No task
status or acceptance was changed.
Implementation and confidence¶
Preparation failure classification is distinct from verifier failure_kind.
Only failed/transient/explicit pre-spawn failures schedule bounded retries.
Retry promotion preserves the failed offer's purpose and feedback, the candidate
and worker attribution, and does not spend a work/correction round. Due retries
revalidate the dispatcher, node/project binding and repository binding while
holding the established subject/task/binding/capacity locks. Capacity reservation
and the offer commit in one transaction. All reported failures outside the safe
retry predicate, exhaustion, retry-window expiry and promotion authorization
revocation park with a task notification. Running resets the retry series.
Confidence is high for the frozen ASGI/PostgreSQL criteria. Provider processes, Git artifacts and notification delivery endpoints in the fixtures are synthetic; the server, MCP/Bridge request handling, migrations, persistence, locking and capacity checks use real PostgreSQL. The TCP suite remains unverified here.
Commands and observed results¶
All candidate commands ran in
/Users/jablonskib/HeyAira-agents/.heyaira-worktrees/heyaira/b19701fa-worker,
against the uncommitted intended changes above the source SHA. The local commit
containing this report preserves that tested implementation. Temporary logs and
disposable database test reports were kept under the supplied writable TMPDIR,
outside the committed patch. No credentials or fixture authorization headers are
included below.
K1 — retry regressions and comparison with the source¶
Command:
python scripts/test_postgres.py tests/test_workflow_retry.py -p no:cacheprovider
Final candidate result, exit 0:
24 passed in 11.89s
postgres_acceptance=passed: selected tests, zero skipped tests
Coverage: T1 correction/work feedback and unchanged budget; T2 all five delays and sixth-failure exhaustion; injected jitter at 0.8 and 1.2; T3 verification candidate and worker attribution, full-capacity 30-second deferral; T4 24-hour and deadline expiry during recovery; T5 transient without positive pre-spawn, interrupted, absent/unknown, capability and workspace classifications; T6 task_get/task_list stage, workflow retry projection and running reset; T7 parking notification and idempotent terminal replay; T8 original digest and a stored legacy event replay; T9 cancel then retire, rejecting direct retirement; T10 capability; T11 membership, project-token, node/project and repository revocations; T12 concurrent promoters creating one offer.
The same final regression file was copied into an archive of the exact source
commit. No checkout/reset/rebase of this branch was used. Exact runner (passed
as the body of python -c, with stdout/stderr redirected to the temporary log):
import io, os, pathlib, shutil, subprocess, sys, tarfile, tempfile
root = pathlib.Path.cwd()
source = '7b4efed323e84558279ad67f14257eaa7bab5938'
git = '/Library/Developer/CommandLineTools/usr/bin/git'
archive = subprocess.check_output([git, 'archive', source])
workspace = tempfile.TemporaryDirectory(prefix='retry-base-', dir=os.environ['TMPDIR'])
base = pathlib.Path(workspace.name)
tarfile.open(fileobj=io.BytesIO(archive)).extractall(base, filter='data')
shutil.copy(root / 'tests/test_workflow_retry.py', base / 'tests/test_workflow_retry.py')
print('Source:', source, flush=True)
result = subprocess.run([sys.executable, 'scripts/test_postgres.py',
'tests/test_workflow_retry.py', '-p', 'no:cacheprovider'], cwd=base)
workspace.cleanup()
sys.exit(result.returncode)
Source result, exit 1:
22 failed, 2 passed in 12.76s
Every new-behavior case failed: T1, T2, both jitter variants, T3, both T4
variants, all seven T5/T7 variants, T6, T9, T10, all four T11 variants and T12.
The two T8 tests passed on the source and the candidate. The original code
rejects new failure fields; legacy unknown failures lack the parked prefix;
the capability is absent. These are expected source failures, not candidate
defects. The source digest for the fixed legacy preparing event was also
captured directly before implementation:
ee43329617d34bc31e63fa0af054dca52ccd1774cb7e86f0eeb4636247b3de72.
Earlier runs of the same candidate command: exit 1, 20 failed/4 passed while a
shell heredoc was denied and the migration file was not yet written; then exit
1, 1 failed/23 passed because the test used task_list.tasks rather than the
existing items key. The migration was written with apply_patch and the test
assertion corrected before the final passing run. The initial source run also
returned exit 1, 22 failed/2 passed in 11.27 seconds.
criterion_id: K1 outcome: pass evidence_path: docs/reports/work-queue-retry-b19701fa.md feedback: Final retry suite exit 0, 24 passed and zero skipped; identical tests on the archived source exit 1, 22 expected new-behavior failures and 2 legacy passes.
K2 — existing queue and failure-kind suites¶
python scripts/test_postgres.py tests/test_capacity_queue.py tests/test_capacity_queue_reads.py tests/test_workflow_failure_kind.py -p no:cacheprovider
Exit 0:
47 passed in 25.13s
postgres_acceptance=passed: selected tests, zero skipped tests
criterion_id: K2 outcome: pass evidence_path: docs/reports/work-queue-retry-b19701fa.md feedback: Required existing suites exit 0, 47 passed and zero skipped.
K3 — contract and documentation¶
python scripts/export_mcp_contract.py --check
PYTHONPATH=src python -m pytest tests/test_mcp_runtime_contract.py tests/test_docs_contract.py -q -p no:cacheprovider
Both exited 0. Final output:
MCP contract is up to date
27 passed in 9.61s
The preceding run of the contract/docs suite also exited 0, 27 passed in 8.83s.
The contract was regenerated with python scripts/export_mcp_contract.py
(exit 0, wrote contracts/mcp-tools.json) after updating MCP tool descriptions.
Additional check:
python scripts/test_postgres.py tests/test_schema_guard.py -p no:cacheprovider
Exit 1: 1 failed, 6 passed in 0.39s. The sole failure is
test_migration_numbers_are_unique_and_monotonic, with
At index 58 diff: 60 != 59. Number 059 is reserved by the frozen task for
parallel OpenCode work; no unrelated placeholder migration was added. This is
the explicitly permitted criterion limitation (failure_kind=criterion), not
a contract/docs failure. The schema guard otherwise passed.
criterion_id: K3 outcome: pass evidence_path: docs/reports/work-queue-retry-b19701fa.md feedback: Export check exit 0, current; contract/docs exit 0, 27 passed. Additional schema_guard exit 1 solely on the explicitly allowed 059 numbering gap (criterion limitation).
K4 — scope and local Git integrity¶
Intended paths:
contracts/mcp-tools.json
docs/BRIDGE_PROTOCOL.md
docs/reports/work-queue-retry-b19701fa.md
migrations/060_work_queue_retry.sql
src/heyaira/bridge.py
src/heyaira/execution.py
src/heyaira/server.py
src/heyaira/workflow.py
tests/test_workflow_retry.py
All are within the frozen scope and exactly one new migration is included.
git diff --check exited 0 without output. The final committed scope method is
git diff --name-only 7b4efed323e84558279ad67f14257eaa7bab5938..HEAD;
its observed output is recorded in the local checkpoint below and RESULT.
Git was invoked directly from /Library/Developer/CommandLineTools/usr/bin/git:
the default /usr/bin/git shim attempted denied Xcode cache writes. Direct Git
works; warnings about the inaccessible user ignore file are execution limits.
criterion_id: K4 outcome: pass evidence_path: docs/reports/work-queue-retry-b19701fa.md feedback: Intended paths are confined to the allowed directories, contract and one 060 migration; the committed path comparison is recorded below and in RESULT.
Additional execution limitation¶
python scripts/test_postgres.py tests/test_workflow_e2e.py -p no:cacheprovider
Exit 1:
1 passed, 50 skipped in 1.65s
postgres_acceptance=failed: 50 skipped tests
Every skip reports listening sockets are not permitted here (agent sandbox);
runs in CI. This optional TCP suite has not passed here and is not substituted
for any required check. The required ASGI suites above have zero skips.
what: TCP workflow_e2e cannot establish acceptance because listening sockets are denied; schema_guard also reports the explicitly reserved 059 gap. who_moves: Bridge coordinator/environment operator for a TCP-capable CI environment; coordinator for migration reconciliation. needed: Run the existing TCP suite in CI and reconcile the parallel 059 migration before merge. No worker installation or permission bypass.
Independent acceptance remains with the assigned Bridge verifier. RESULT and receipt record the final local SHA and all observed limitations; publication remains with Bridge.
Committed scope checkpoint¶
Implementation/evidence commit: 5bed559c28928683378aac40e41e2ad49cee8523.
Parent: 7b4efed323e84558279ad67f14257eaa7bab5938.
Observed after that commit, using the direct Git binary (all exits 0):
git rev-parse HEAD
git log -1 --format='%H %P'
git diff --name-only 7b4efed323e84558279ad67f14257eaa7bab5938..HEAD
git diff --check
git status --short
The first two commands returned the implementation SHA and parent above. The path comparison returned exactly the nine paths listed under K4. Diff validation and working-tree status returned no output (clean). A final evidence-only commit adds this checkpoint to this already listed report; it changes no implementation or additional path. The final SHA and repeated committed path/status checks are recorded in RESULT/receipt.
The implementation commit command exited 0 and created the verified commit.
It also reported a denied automatic maintenance write to the shared
packed-refs.lock. This is a sandbox limitation: HEAD, parent, intended paths
and clean status were independently read back successfully; no permission
bypass or history rewrite was attempted.