Bridge polling worker evidence¶
Historical report: bridge.pickup and bridge.polling were retired in S2 (decisions a9f0e60e and 6cab5c63).
Task: f97453bb-912f-43f7-ba4b-8d83d9dd818c, frozen version 15.
Execution: c0fe1db2-ac5b-4a30-93fe-d29608662881.
Repository: h8v6/heyaira; branch: heyaira/f97453bb.
Source and starting HEAD: b2c9f9fb8c7bc2439ce613cfecd474ad8574f56b.
Starting parent SHAs: f15825d35c56b3ab9b4725d89eede3c9ff568992,
2e28b469fe6878467f3e5dc849555973df0a0df3.
Starting worktree was clean; no carried candidate or history rewrite.
The commit containing this file is the worker checkpoint; its SHA is in RESULT.
No subagents used. No installation, publication, deployment or production mutation.
Implementation and confidence¶
Adds an alert-only bridge.polling check, its startup threshold validation,
registry assertions, 36 fixed-clock probe cases and eight PostgreSQL cases.
The latter exercise capacity/expired leases across project bindings,
revocation/offline exclusions, and confirmation/notification/recovery without
repair. Documents the threshold and both pickup/polling checks; corrects the
online description. The query uses the same running predicate and identity
join as pickup, evaluated against the single injected observation time.
Confidence in probe logic is supported by passing fixed-clock tests; real SQL
and incident lifecycle are prepared but unverified here.
Commands and observed results¶
Working directory for every command:
/Users/jablonskib/HeyAira-agents/.heyaira-worktrees/heyaira/f97453bb-worker.
Tests ran on source HEAD plus the intended uncommitted patch before commit.
TMPDIR="$PWD/.heyaira/tmp" and PYTHONPATH=src were supplied to pytest.
-
git status --short,git remote get-url origin,git branch --show-current,git rev-parse HEAD,git log -1 --format='%H %P': clean; origin[email protected]:h8v6/heyaira.git; branch/source/parents as above. System Git initially emitted xcrun cache permission warnings; subsequent commands used/Library/Developer/CommandLineTools/usr/bin/git, exit 0./opt/homebrew/bin/gitwas not available (exit 127); nothing installed. -
Base regression: temporarily loaded only the source version of
src/heyaira/server_beat.pywithgit showand restored the fixed bytes infinally; ranpython -m pytest -q tests/test_bridge_polling.py -k 'not real'. Exit 1:36 failed, 1 deselected in 2.41s. Representative failure:AttributeError: 'ServerBeatChecks' object has no attribute 'bridge_polling'. This run preceded the seven additional SQL cases. -
python -m pytest -q tests/test_server_beat.py tests/test_bridge_polling.py -k 'not real': exit 0;39 passed, 1 deselected in 0.85s. The deselected test was the database lifecycle test; seven additional SQL cases were added afterward and do not change those 39 passing cases. An earlier development run had1 failed, 38 passed, 1 deselectedbecause the registry assertion usedlayerinstead ofowner_layer; corrected. -
Final required command:
python -m pytest -q tests/test_server_beat.py tests/test_bridge_pickup.py tests/test_server_beat_audit.py tests/test_bridge_polling.py: exit 1;1 failed, 66 passed, 49 skipped, 55 errors in 7.33s. All 55 errors originate in the existing shared pickup fixture:KeyError: 'HEYAIRA_SERVER_BEAT_E2E_DATABASE_URL'. The 49 skips report missing disposable PostgreSQL or sandbox-denied listening sockets. They are not passing tests. The failing audit istest_R5_10_every_documented_runner_setting_reaches_the_container:AssertionError: ['HEYAIRA_SERVER_BEAT_POLL_STALE_SECONDS']. The first required run, before seven SQL cases were added, returned1 failed, 66 passed, 49 skipped, 48 errors in 5.06s(same causes). -
AST comparison of source and patched
ServerBeatChecks.bridge_pickupandServerBeatChecks.bridge_online: exit 0;bridge_pickup: unchanged AST,bridge_online: unchanged AST.git diff b2c9f9fb8c7bc2439ce613cfecd474ad8574f56b -- docs/: exit 0; reviewed the new 300-second setting and corrected registry table.git diff --check: exit 0, no output.git diff b2c9f9fb8c7bc2439ce613cfecd474ad8574f56b --stat: reviewed scoped server, tests, docs and this evidence file; no forbidden code, dependency or schema changes. New files are included in the staged diff before commit.
Blockers and next actor¶
what: The required database tests cannot establish a result without
HEYAIRA_SERVER_BEAT_E2E_DATABASE_URL; listening tests are sandbox-denied.
who_moves: Coordinator, then Bridge environment operator.
needed: Re-dispatch with a prepared disposable PostgreSQL connection; run
the exact required command again. No worker installation or socket bypass.
what: The docs requirement exposes an audit requirement to forward the new
variable through compose.yaml, which is outside the frozen path scope.
who_moves: Coordinator.
needed: Explicitly authorize the minimal Compose environment addition in a
new frozen contract, then rerun the audit and required suite. The audit was
not weakened and Compose was not changed. A default 300-second check works,
but Compose does not currently forward an operator's threshold override.
The full repository suite, real MCP integration, and independent verification were not run by this worker; full-suite coverage is left to CI as assigned.
Frozen criterion records¶
criterion_id: check outcome: pass evidence_path: docs/reports/bridge-polling-f97453bb.md feedback: Source diff review and 39 focused tests exit 0; registry and probe requirements covered. SQL runtime remains unverified due to missing disposable database.
criterion_id: tests outcome: fail evidence_path: docs/reports/bridge-polling-f97453bb.md feedback: Required suite exit 1: 1 failed, 66 passed, 49 skipped, 55 errors. Missing disposable database and Compose scope conflict prevent a passing required suite.
criterion_id: docs outcome: fail evidence_path: docs/reports/bridge-polling-f97453bb.md feedback: Required documentation added and reviewed; audit fails because Compose does not forward the new variable and Compose is outside the frozen edit scope.
criterion_id: scope outcome: pass evidence_path: docs/reports/bridge-polling-f97453bb.md feedback: Source-relative diff and AST comparison confirm unchanged pickup/online implementations and no workflow.py, bridge.py, migration or dependency changes.