Skip to content

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.

  1. 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/git was not available (exit 127); nothing installed.

  2. Base regression: temporarily loaded only the source version of src/heyaira/server_beat.py with git show and restored the fixed bytes in finally; ran python -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.

  3. 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 had 1 failed, 38 passed, 1 deselected because the registry assertion used layer instead of owner_layer; corrected.

  4. 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 is test_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, returned 1 failed, 66 passed, 49 skipped, 48 errors in 5.06s (same causes).

  5. AST comparison of source and patched ServerBeatChecks.bridge_pickup and ServerBeatChecks.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.