fix(guards): C4 backfill slice -- 6 confirmed guard/ownership findings (t_9c9e757c) - #1353
Conversation
…s (t_9c9e757c) FleetReview retro-backfill 2026-09-27, class C4. Each finding re-verified at 5a9d284; one RED-on-base / GREEN test per confirmed instance. - #813 agent/quota_registry_gate.py: missing/unparseable observed_at now fails open (docstring contract), no longer skips a working fallback. - #1017 cron/lifecycle_guard.py: superseded by #1348 (6662bbd) on main; this slice's 5 callback cases pass against it, so the edit was dropped on rebase. - #1019 agent/lsp/manager.py: slot-dir OSError in _has_capacity -> run without LSP instead of raising out of enabled_for()/write_file. - #1026 cron/scheduler.py: owner-deadman exemption scoped to the host it owns; a note naming only another DOWN host is gated. - #1229 scripts/ci/live_comment.py: comment lookup/update network errors no longer kill the poller; a failed post is retried next poll. - #1230 plugins_cmd.py: pinned-plugin remedy shell-quotes the recorded source (CLI + dashboard). - #1238 tools/mixture_of_agents_tool.py: reference responses move from the aggregator system message to a tagged data block in the user message. Verified: test-gate narrow pytest; new tests 13 RED on base, all GREEN with fix; neighbouring suites (lifecycle_guard x4, host_down_gate, quota wiring, plugins_cmd, fallback_policy, fork toolsets) pass.
b2cb61b to
1af0a00
Compare
|
🤖 merged-by: apollo · lane: kanban-merge-pass · gate: ADVISORY (FleetReview not green for 1af0a00): fleetreview-advisory-20260927-standing.md · why: t_9c9e757c: C4 backfill slice: hermes-agent agent/tools/cron/scripts guards — 14 instances; Argus off card review (Ace 13:08), CI green |
|
🤖 merged-by: apollo · lane: review · gate: ADVISORY (FleetReview not green for 1af0a00): fleetreview-advisory-20260927-standing.md · why: t_9c9e757c: CI green; Apollo review pass 16:40 |
…ugins/CI scripts (t_779040d0) Re-verified 14 C7 instances at 533612e (then rebased on ab6b6d4). Every fix has a RED-on-base test. Fixed: - k87 cron/fork_ext/scheduler_ext.py: timeout_s "inf"/float('inf') raised OverflowError out of resolve_job_script_timeout; now falls back. - k88 cron/scheduler.py: host-down ledger row was written before the send; now written only once the demoted #logs delivery succeeds. - k116 plugins/blackbox/__init__.py: prefix guard got cache_read / prompt_tokens as measured numbers when buckets were unknown; now None. - k117 plugins/blackbox/store.py: turn_api_calls stored unknown buckets as 0, so first_call_cache_miss judged an unmeasured read; now NULL. - k119 lcm/db_bootstrap.py: a trigger-only repair cleared a deep/parity corruption flag; now only a rebuild clears it (a structural flag is cleared when the structure verifies). - k120 lcm/db_bootstrap.py: repair rolled back a caller-owned transaction on failure; now rolls back only its own (captured at entry). - k122 mem0/capture_drain.py: the exactly-once shortcut (add committed, crash before routing) skipped Arm-B routing; now routes (staging is keyed by turn id, so a re-route overwrites in place). - k125 scripts/ci/live_comment.py: re-run dedupe kept the first-listed artifact; now newest (created_at, id) wins. - k127 scripts/ci_overflow_integration.py: an executed job with no PROBE line gave PASS; now UNVERIFIABLE. - k128 scripts/ci_overflow_integration.py: one matching slice certified a selective re-run as full; full_rerun_verdict now BLOCKs when any job was carried over from the prior attempt. - k136 plugins/blackbox/store.py: migration test passed on a table that could not take an insert; the migration now adds every base column insert_api_call names, and the test inserts after migrating. Dropped: - k124 FIXED on main by #1353 (live_comment.py:659 `body = last_body`, test_comment_lookup_outage_is_retried_not_fatal). - k126 no rate-limit bug to fix: nothing on main runs live_comment.py (no .github reference; ci-review-comment was retired in aff7aea). - k133 FALSE: the autouse tests/conftest.py::_hermetic_environment sets HERMES_HOME per test; a probe confirmed get_hermes_home() is <tmp_path>/hermes_test, so the real scripts dir is never written.
…ugins/CI scripts (t_779040d0) Re-verified 14 C7 instances at 533612e (then rebased on ab6b6d4). Every fix has a RED-on-base test. Fixed: - k87 cron/fork_ext/scheduler_ext.py: timeout_s "inf"/float('inf') raised OverflowError out of resolve_job_script_timeout; now falls back. - k88 cron/scheduler.py: host-down ledger row was written before the send; now written only once the demoted #logs delivery succeeds. - k116 plugins/blackbox/__init__.py: prefix guard got cache_read / prompt_tokens as measured numbers when buckets were unknown; now None. - k117 plugins/blackbox/store.py: turn_api_calls stored unknown buckets as 0, so first_call_cache_miss judged an unmeasured read; now NULL. - k119 lcm/db_bootstrap.py: a trigger-only repair cleared a deep/parity corruption flag; now only a rebuild clears it (a structural flag is cleared when the structure verifies). - k120 lcm/db_bootstrap.py: repair rolled back a caller-owned transaction on failure; now rolls back only its own (captured at entry). - k122 mem0/capture_drain.py: the exactly-once shortcut (add committed, crash before routing) skipped Arm-B routing; now routes (staging is keyed by turn id, so a re-route overwrites in place). - k125 scripts/ci/live_comment.py: re-run dedupe kept the first-listed artifact; now newest (created_at, id) wins. - k127 scripts/ci_overflow_integration.py: an executed job with no PROBE line gave PASS; now UNVERIFIABLE. - k128 scripts/ci_overflow_integration.py: one matching slice certified a selective re-run as full; full_rerun_verdict now BLOCKs when any job was carried over from the prior attempt. - k136 plugins/blackbox/store.py: migration test passed on a table that could not take an insert; the migration now adds every base column insert_api_call names, and the test inserts after migrating. Dropped: - k124 FIXED on main by #1353 (live_comment.py:659 `body = last_body`, test_comment_lookup_outage_is_retried_not_fatal). - k126 no rate-limit bug to fix: nothing on main runs live_comment.py (no .github reference; ci-review-comment was retired in aff7aea). - k133 FALSE: the autouse tests/conftest.py::_hermetic_environment sets HERMES_HOME per test; a probe confirmed get_hermes_home() is <tmp_path>/hermes_test, so the real scripts dir is never written.
FleetReviewReview: post-merge · head Post-merge review ( profile: light (rule: default light: lines 264<800, files 12<1000000, hunks 18<1000000, no hot path) · round 0 · members: B-state, L6, C-assert-xhigh, G · families: anthropic,openai,xai Confidence: 3/5 Findings
FleetReview provenance · models: B=gpt-6-sol, C=claude-code-opus-5-5, D=grok-4.6 · cost: $1.57 · duration: 7m 59s · rounds: 1 · files examined: 12 |
…ugins/CI scripts (t_779040d0) Re-verified 14 C7 instances at 533612e (then rebased on ab6b6d4). Every fix has a RED-on-base test. Fixed: - k87 cron/fork_ext/scheduler_ext.py: timeout_s "inf"/float('inf') raised OverflowError out of resolve_job_script_timeout; now falls back. - k88 cron/scheduler.py: host-down ledger row was written before the send; now written only once the demoted #logs delivery succeeds. - k116 plugins/blackbox/__init__.py: prefix guard got cache_read / prompt_tokens as measured numbers when buckets were unknown; now None. - k117 plugins/blackbox/store.py: turn_api_calls stored unknown buckets as 0, so first_call_cache_miss judged an unmeasured read; now NULL. - k119 lcm/db_bootstrap.py: a trigger-only repair cleared a deep/parity corruption flag; now only a rebuild clears it (a structural flag is cleared when the structure verifies). - k120 lcm/db_bootstrap.py: repair rolled back a caller-owned transaction on failure; now rolls back only its own (captured at entry). - k122 mem0/capture_drain.py: the exactly-once shortcut (add committed, crash before routing) skipped Arm-B routing; now routes (staging is keyed by turn id, so a re-route overwrites in place). - k125 scripts/ci/live_comment.py: re-run dedupe kept the first-listed artifact; now newest (created_at, id) wins. - k127 scripts/ci_overflow_integration.py: an executed job with no PROBE line gave PASS; now UNVERIFIABLE. - k128 scripts/ci_overflow_integration.py: one matching slice certified a selective re-run as full; full_rerun_verdict now BLOCKs when any job was carried over from the prior attempt. - k136 plugins/blackbox/store.py: migration test passed on a table that could not take an insert; the migration now adds every base column insert_api_call names, and the test inserts after migrating. Dropped: - k124 FIXED on main by #1353 (live_comment.py:659 `body = last_body`, test_comment_lookup_outage_is_retried_not_fatal). - k126 no rate-limit bug to fix: nothing on main runs live_comment.py (no .github reference; ci-review-comment was retired in aff7aea). - k133 FALSE: the autouse tests/conftest.py::_hermetic_environment sets HERMES_HOME per test; a probe confirmed get_hermes_home() is <tmp_path>/hermes_test, so the real scripts dir is never written.
…ugins/CI scripts (t_779040d0) Re-verified 14 C7 instances at 533612e (then rebased on ab6b6d4). Every fix has a RED-on-base test. Fixed: - k87 cron/fork_ext/scheduler_ext.py: timeout_s "inf"/float('inf') raised OverflowError out of resolve_job_script_timeout; now falls back. - k88 cron/scheduler.py: host-down ledger row was written before the send; now written only once the demoted #logs delivery succeeds. - k116 plugins/blackbox/__init__.py: prefix guard got cache_read / prompt_tokens as measured numbers when buckets were unknown; now None. - k117 plugins/blackbox/store.py: turn_api_calls stored unknown buckets as 0, so first_call_cache_miss judged an unmeasured read; now NULL. - k119 lcm/db_bootstrap.py: a trigger-only repair cleared a deep/parity corruption flag; now only a rebuild clears it (a structural flag is cleared when the structure verifies). - k120 lcm/db_bootstrap.py: repair rolled back a caller-owned transaction on failure; now rolls back only its own (captured at entry). - k122 mem0/capture_drain.py: the exactly-once shortcut (add committed, crash before routing) skipped Arm-B routing; now routes (staging is keyed by turn id, so a re-route overwrites in place). - k125 scripts/ci/live_comment.py: re-run dedupe kept the first-listed artifact; now newest (created_at, id) wins. - k127 scripts/ci_overflow_integration.py: an executed job with no PROBE line gave PASS; now UNVERIFIABLE. - k128 scripts/ci_overflow_integration.py: one matching slice certified a selective re-run as full; full_rerun_verdict now BLOCKs when any job was carried over from the prior attempt. - k136 plugins/blackbox/store.py: migration test passed on a table that could not take an insert; the migration now adds every base column insert_api_call names, and the test inserts after migrating. Dropped: - k124 FIXED on main by #1353 (live_comment.py:659 `body = last_body`, test_comment_lookup_outage_is_retried_not_fatal). - k126 no rate-limit bug to fix: nothing on main runs live_comment.py (no .github reference; ci-review-comment was retired in aff7aea). - k133 FALSE: the autouse tests/conftest.py::_hermetic_environment sets HERMES_HOME per test; a probe confirmed get_hermes_home() is <tmp_path>/hermes_test, so the real scripts dir is never written.
…ugins/CI scripts (t_779040d0) Re-verified 14 C7 instances at 533612e (then rebased on ab6b6d4). Every fix has a RED-on-base test. Fixed: - k87 cron/fork_ext/scheduler_ext.py: timeout_s "inf"/float('inf') raised OverflowError out of resolve_job_script_timeout; now falls back. - k88 cron/scheduler.py: host-down ledger row was written before the send; now written only once the demoted #logs delivery succeeds. - k116 plugins/blackbox/__init__.py: prefix guard got cache_read / prompt_tokens as measured numbers when buckets were unknown; now None. - k117 plugins/blackbox/store.py: turn_api_calls stored unknown buckets as 0, so first_call_cache_miss judged an unmeasured read; now NULL. - k119 lcm/db_bootstrap.py: a trigger-only repair cleared a deep/parity corruption flag; now only a rebuild clears it (a structural flag is cleared when the structure verifies). - k120 lcm/db_bootstrap.py: repair rolled back a caller-owned transaction on failure; now rolls back only its own (captured at entry). - k122 mem0/capture_drain.py: the exactly-once shortcut (add committed, crash before routing) skipped Arm-B routing; now routes (staging is keyed by turn id, so a re-route overwrites in place). - k125 scripts/ci/live_comment.py: re-run dedupe kept the first-listed artifact; now newest (created_at, id) wins. - k127 scripts/ci_overflow_integration.py: an executed job with no PROBE line gave PASS; now UNVERIFIABLE. - k128 scripts/ci_overflow_integration.py: one matching slice certified a selective re-run as full; full_rerun_verdict now BLOCKs when any job was carried over from the prior attempt. - k136 plugins/blackbox/store.py: migration test passed on a table that could not take an insert; the migration now adds every base column insert_api_call names, and the test inserts after migrating. Dropped: - k124 FIXED on main by #1353 (live_comment.py:659 `body = last_body`, test_comment_lookup_outage_is_retried_not_fatal). - k126 no rate-limit bug to fix: nothing on main runs live_comment.py (no .github reference; ci-review-comment was retired in aff7aea). - k133 FALSE: the autouse tests/conftest.py::_hermetic_environment sets HERMES_HOME per test; a probe confirmed get_hermes_home() is <tmp_path>/hermes_test, so the real scripts dir is never written.
…ugins/CI scripts (t_779040d0) Re-verified 14 C7 instances at 533612e (then rebased on ab6b6d4). Every fix has a RED-on-base test. Fixed: - k87 cron/fork_ext/scheduler_ext.py: timeout_s "inf"/float('inf') raised OverflowError out of resolve_job_script_timeout; now falls back. - k88 cron/scheduler.py: host-down ledger row was written before the send; now written only once the demoted #logs delivery succeeds. - k116 plugins/blackbox/__init__.py: prefix guard got cache_read / prompt_tokens as measured numbers when buckets were unknown; now None. - k117 plugins/blackbox/store.py: turn_api_calls stored unknown buckets as 0, so first_call_cache_miss judged an unmeasured read; now NULL. - k119 lcm/db_bootstrap.py: a trigger-only repair cleared a deep/parity corruption flag; now only a rebuild clears it (a structural flag is cleared when the structure verifies). - k120 lcm/db_bootstrap.py: repair rolled back a caller-owned transaction on failure; now rolls back only its own (captured at entry). - k122 mem0/capture_drain.py: the exactly-once shortcut (add committed, crash before routing) skipped Arm-B routing; now routes (staging is keyed by turn id, so a re-route overwrites in place). - k125 scripts/ci/live_comment.py: re-run dedupe kept the first-listed artifact; now newest (created_at, id) wins. - k127 scripts/ci_overflow_integration.py: an executed job with no PROBE line gave PASS; now UNVERIFIABLE. - k128 scripts/ci_overflow_integration.py: one matching slice certified a selective re-run as full; full_rerun_verdict now BLOCKs when any job was carried over from the prior attempt. - k136 plugins/blackbox/store.py: migration test passed on a table that could not take an insert; the migration now adds every base column insert_api_call names, and the test inserts after migrating. Dropped: - k124 FIXED on main by #1353 (live_comment.py:659 `body = last_body`, test_comment_lookup_outage_is_retried_not_fatal). - k126 no rate-limit bug to fix: nothing on main runs live_comment.py (no .github reference; ci-review-comment was retired in aff7aea). - k133 FALSE: the autouse tests/conftest.py::_hermetic_environment sets HERMES_HOME per test; a probe confirmed get_hermes_home() is <tmp_path>/hermes_test, so the real scripts dir is never written.
…ugins/CI scripts (t_779040d0) Re-verified 14 C7 instances at 533612e (then rebased on ab6b6d4). Every fix has a RED-on-base test. Fixed: - k87 cron/fork_ext/scheduler_ext.py: timeout_s "inf"/float('inf') raised OverflowError out of resolve_job_script_timeout; now falls back. - k88 cron/scheduler.py: host-down ledger row was written before the send; now written only once the demoted #logs delivery succeeds. - k116 plugins/blackbox/__init__.py: prefix guard got cache_read / prompt_tokens as measured numbers when buckets were unknown; now None. - k117 plugins/blackbox/store.py: turn_api_calls stored unknown buckets as 0, so first_call_cache_miss judged an unmeasured read; now NULL. - k119 lcm/db_bootstrap.py: a trigger-only repair cleared a deep/parity corruption flag; now only a rebuild clears it (a structural flag is cleared when the structure verifies). - k120 lcm/db_bootstrap.py: repair rolled back a caller-owned transaction on failure; now rolls back only its own (captured at entry). - k122 mem0/capture_drain.py: the exactly-once shortcut (add committed, crash before routing) skipped Arm-B routing; now routes (staging is keyed by turn id, so a re-route overwrites in place). - k125 scripts/ci/live_comment.py: re-run dedupe kept the first-listed artifact; now newest (created_at, id) wins. - k127 scripts/ci_overflow_integration.py: an executed job with no PROBE line gave PASS; now UNVERIFIABLE. - k128 scripts/ci_overflow_integration.py: one matching slice certified a selective re-run as full; full_rerun_verdict now BLOCKs when any job was carried over from the prior attempt. - k136 plugins/blackbox/store.py: migration test passed on a table that could not take an insert; the migration now adds every base column insert_api_call names, and the test inserts after migrating. Dropped: - k124 FIXED on main by #1353 (live_comment.py:659 `body = last_body`, test_comment_lookup_outage_is_retried_not_fatal). - k126 no rate-limit bug to fix: nothing on main runs live_comment.py (no .github reference; ci-review-comment was retired in aff7aea). - k133 FALSE: the autouse tests/conftest.py::_hermetic_environment sets HERMES_HOME per test; a probe confirmed get_hermes_home() is <tmp_path>/hermes_test, so the real scripts dir is never written.
…ugins/CI scripts (t_779040d0) Re-verified 14 C7 instances at 533612e (then rebased on ab6b6d4). Every fix has a RED-on-base test. Fixed: - k87 cron/fork_ext/scheduler_ext.py: timeout_s "inf"/float('inf') raised OverflowError out of resolve_job_script_timeout; now falls back. - k88 cron/scheduler.py: host-down ledger row was written before the send; now written only once the demoted #logs delivery succeeds. - k116 plugins/blackbox/__init__.py: prefix guard got cache_read / prompt_tokens as measured numbers when buckets were unknown; now None. - k117 plugins/blackbox/store.py: turn_api_calls stored unknown buckets as 0, so first_call_cache_miss judged an unmeasured read; now NULL. - k119 lcm/db_bootstrap.py: a trigger-only repair cleared a deep/parity corruption flag; now only a rebuild clears it (a structural flag is cleared when the structure verifies). - k120 lcm/db_bootstrap.py: repair rolled back a caller-owned transaction on failure; now rolls back only its own (captured at entry). - k122 mem0/capture_drain.py: the exactly-once shortcut (add committed, crash before routing) skipped Arm-B routing; now routes (staging is keyed by turn id, so a re-route overwrites in place). - k125 scripts/ci/live_comment.py: re-run dedupe kept the first-listed artifact; now newest (created_at, id) wins. - k127 scripts/ci_overflow_integration.py: an executed job with no PROBE line gave PASS; now UNVERIFIABLE. - k128 scripts/ci_overflow_integration.py: one matching slice certified a selective re-run as full; full_rerun_verdict now BLOCKs when any job was carried over from the prior attempt. - k136 plugins/blackbox/store.py: migration test passed on a table that could not take an insert; the migration now adds every base column insert_api_call names, and the test inserts after migrating. Dropped: - k124 FIXED on main by #1353 (live_comment.py:659 `body = last_body`, test_comment_lookup_outage_is_retried_not_fatal). - k126 no rate-limit bug to fix: nothing on main runs live_comment.py (no .github reference; ci-review-comment was retired in aff7aea). - k133 FALSE: the autouse tests/conftest.py::_hermetic_environment sets HERMES_HOME per test; a probe confirmed get_hermes_home() is <tmp_path>/hermes_test, so the real scripts dir is never written.
…ugins/CI scripts (t_779040d0) (#1371) * fix(c7): C7 backfill slice C2 -- 11 durable-state findings in cron/plugins/CI scripts (t_779040d0) Re-verified 14 C7 instances at 533612e (then rebased on ab6b6d4). Every fix has a RED-on-base test. Fixed: - k87 cron/fork_ext/scheduler_ext.py: timeout_s "inf"/float('inf') raised OverflowError out of resolve_job_script_timeout; now falls back. - k88 cron/scheduler.py: host-down ledger row was written before the send; now written only once the demoted #logs delivery succeeds. - k116 plugins/blackbox/__init__.py: prefix guard got cache_read / prompt_tokens as measured numbers when buckets were unknown; now None. - k117 plugins/blackbox/store.py: turn_api_calls stored unknown buckets as 0, so first_call_cache_miss judged an unmeasured read; now NULL. - k119 lcm/db_bootstrap.py: a trigger-only repair cleared a deep/parity corruption flag; now only a rebuild clears it (a structural flag is cleared when the structure verifies). - k120 lcm/db_bootstrap.py: repair rolled back a caller-owned transaction on failure; now rolls back only its own (captured at entry). - k122 mem0/capture_drain.py: the exactly-once shortcut (add committed, crash before routing) skipped Arm-B routing; now routes (staging is keyed by turn id, so a re-route overwrites in place). - k125 scripts/ci/live_comment.py: re-run dedupe kept the first-listed artifact; now newest (created_at, id) wins. - k127 scripts/ci_overflow_integration.py: an executed job with no PROBE line gave PASS; now UNVERIFIABLE. - k128 scripts/ci_overflow_integration.py: one matching slice certified a selective re-run as full; full_rerun_verdict now BLOCKs when any job was carried over from the prior attempt. - k136 plugins/blackbox/store.py: migration test passed on a table that could not take an insert; the migration now adds every base column insert_api_call names, and the test inserts after migrating. Dropped: - k124 FIXED on main by #1353 (live_comment.py:659 `body = last_body`, test_comment_lookup_outage_is_retried_not_fatal). - k126 no rate-limit bug to fix: nothing on main runs live_comment.py (no .github reference; ci-review-comment was retired in aff7aea). - k133 FALSE: the autouse tests/conftest.py::_hermetic_environment sets HERMES_HOME per test; a probe confirmed get_hermes_home() is <tmp_path>/hermes_test, so the real scripts dir is never written. * fix(c7): address eight pre-merge durable-state review findings * fix(mem0): preserve staged turn across route mode changes * test(mem0): remove orphaned plugin-local test whitespace * fix(c7): address six FleetReview findings on #1371 @ef358148 - cron/scheduler.py: flush host-down ledger rows the moment the #logs send succeeds, not after all targets. - mem0 capture_router: match staged turn file literally (glob.escape). - ci_overflow_integration full_rerun_verdict: never-started jobs are not reused/missing; a prior-attempt job absent from the re-run BLOCKs. - blackbox store/_measured + prefix guard: gate each bucket on its own unknown flag; aggregate-only usage_unknown keeps measured buckets. Six new tests, each RED on the pre-fix head, GREEN after. --------- Co-authored-by: ang-fleet-workers[bot] <333956806+ang-fleet-workers[bot]@users.noreply.github.com> Co-authored-by: ang-fleet-interactive[bot] <333962442+ang-fleet-interactive[bot]@users.noreply.github.com>
C4 backfill slice (FleetReview retro-backfill 2026-09-27, card t_9c9e757c, parent t_a2bf7813). All 14 instances re-checked at 5a9d284.
Fixed (6). Each has a test that fails on base and passes with the fix
observed_atnow fails open, as the docstring promisesenabled_for()Not fixed here (8)
record_restore_refusedalready swallows every error:try: ... except Exception: logger.debug("restore_refused ledger write failed", ...). It cannot raise past thereturn False.merge_groupcode is already approved for merge and runs at push-to-main trust. Thepull_requestfork case is gated (same_repo == "true").Verification
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.