Repository navigation
fix: C5 leftovers part 2 — cron tz, idle-compaction reorder, guard fail-closed, loop-gate precision (#35 #37 #38 #39 #42 #50 #71) - #1415
Conversation
FleetReviewFleetReview's daily member-call budget is spent (1082/1200 for 2026-09-28 UTC); review skipped. FleetReview · reviewKind: skipped-budget |
Red on base (test_cron_slot_uses_configured_tz_not_host), 18/18 green with fix.
Only psutil.NoSuchProcess means gone/no-op; AccessDenied et al. now refuse the signal in all three psutil probes. Red on base, 34/34 guard tests green.
…ping (C5 #42) Reorder + best-effort telemetry: a raise in the post-compaction token estimate no longer escapes build_turn_context with stale history/anchor. Red on base (RuntimeError escapes), 9/9 idle-compaction tests green.
to_thread(f, os.listdir(p)) evaluates os.listdir on the loop. New RED arm misses on base, caught with fix; widened gate finds 0 new repo offenders (32/32).
…39, #35 sibling) - #37 import map is module-level; function-local imports bind only in their function - #38 sink_dotted honoured when sink_names is None - #39 a function-local import shadows a same-file def - offload-call args walked (eager), lambda args still deferred New precision arms: 4 red on base, 5/5 green. Consumer gates 32/32; the widened walker surfaced 2 pre-existing telegram get_label->requests.get reaches (same shape as baselined matrix entry), added to REACHABLE_BASELINE.
…dren (C5 #71 CI follow-up) CI slice 9/16 red: test_process_probe_failure_never_authorizes_reclaim[psutil-missing] stubs sys.modules['psutil']=None, so psutil.Process raises AttributeError on the test's own spawned child and the guard refused its cleanup kill. For pids on the spawn/initial-children record only AccessDenied fails closed; broken probe machinery trusts the record. Parent-chain branch still fails closed on anything. Red locally before, 45/45 (stall + guard self-test) after.
…47) Ruling: keep gating every mapped ref (fail-safe). The awaiting-deploy comment now says 'Deploy-gated because <reason states a deploy gate | block reason/card body names deploy tree X>' so over-gating is visible. Marker unchanged. New test red on base; test_kanban_pr_gate.py 99/99.
…ow count + duration (C5 #64) Ruling: accept the first-open O(rows) CREATE INDEX as a one-shot migration and make it visible. Logs only when the index is actually built. Test red on base; test_lcm_superseded_session_reads.py 7/7.
…ndex (C5 #32) The kanban-home-cards block lists home cards across all boards and its overflow hint says 'hermes kanban list --home', which listed the current board only. list --home now appends an OTHER BOARDS section from kanban_home_index.open_cards (one read, same source as the block; --status honoured; filters the index can't evaluate skip it; unavailable index prints a one-line note). Docs updated. Test red on base; home-index + home-session + home-cards files 185/185.
…on thread (C5 #46) Ruling: no notify spool/outbox exists in-tree, so page_once dispatches the flock + notify send onto a tracked NON-daemon thread; flush_pages() gives it a bounded 5 s join at exit (threading._register_atexit, before the interpreter's non-daemon join) and logs any page still in flight. The dedup flock wait is bounded (5 s, then the in-process dedup fallback) so the thread is self-bounded. Test red on base (verdict blocked 10.16 s behind a slow page); shell_hooks + shell_hooks_missing 110/110.
52613df to
aa2e2d5
Compare
…g window (C5 #64) Run next to other files, INFO was already on at store creation, so the test captured the fresh-store build too. An empty store has nothing to migrate, so it no longer logs; the test clears caplog before the measured calls. 52/52 mixed, 7/7 alone.
|
🤖 merged-by: apollo · lane: kanban-merge-pass · gate: ADVISORY (FleetReview not green for 04ebeb5): fleetreview-advisory-20260927-standing.md · why: t_5b33906e: C5 leftovers part 2: 14 TRUE rows needing a harness or design call (gate precisi; Argus off card review (Ace 13:08), CI green |
FleetReviewReview: pre-merge · head profile: light (rule: default light: lines 592<800, files 20<1000000, hunks 46<1000000, no hot path) · round 0 · members: B-assert-ctx, C-assert-xhigh, F, 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, F=gpt-6-sol · cost: $6.34 · duration: 9m 09s · rounds: 1 · files examined: 20 |
FleetReviewReview: pre-merge · head
Reviewed with 2 of 3 model families — xai unavailable. profile: light (rule: default light: lines 592<800, files 20<1000000, hunks 46<1000000, no hot path) · round 1 · members: B-assert-ctx, C-assert-xhigh, F, G · families: anthropic,openai Confidence: 1/5 Findings
FleetReview provenance · models: B=gpt-6-sol, C=claude-code-opus-5-5, D=grok-4.6, F=gpt-6-sol · cost: $6.50 · duration: 5m 06s · rounds: 2 · files examined: 20 |
|
🤖 merged-by: apollo · lane: review · gate: ADVISORY (FleetReview not green for 80336b0): fleetreview-advisory-20260927-standing.md · why: t_5b33906e: CI green, FleetReview-session sweep (Ace 'proceed with everything' 18:02) |
FleetReviewReview: post-merge · head
Post-merge review ( profile: light (rule: default light: lines 592<800, files 20<1000000, hunks 46<1000000, no hot path) · round 1 · members: B-assert-ctx, B-state, C-assert-xhigh, F · families: anthropic,openai Confidence: 1/5 Findings
FleetReview provenance · models: B=gpt-6-sol, C=claude-code-opus-5-5, F=gpt-6-sol · cost: $5.47 · duration: 3m 47s · rounds: 1 · files examined: 20 |
Card t_5b33906e (derived from t_48e86865, verdict table comment 16121). One commit per row, each with a red-on-base test.
cron.jobs._hermes_now), not host tz. Test:test_cron_slot_uses_configured_tz_not_host(red on base; 18/18 file).psutil.NoSuchProcessas gone; AccessDenied/other now refuses the signal (3 probe sites). Test:test_os_kill_unverifiable_pid_fails_closed(red on base; guard files 34/34).test_idle_compaction_bookkeeping_raise_keeps_turn_state(base: RuntimeError escapes build_turn_context; 9/9 idle-compaction tests).to_thread(f, os.listdir(p))is eager). New RED arm; real-tree scan: 0 new offenders (32/32).get_label -> requests.getreaches surfaced (same shape as the baselined matrix entry) and added to REACHABLE_BASELINE with a comment.Apollo ruling 07:35 (card comment) on the design rows, all in this PR:
test_process_probe_failure_never_authorizes_reclaim[psutil-missing]stubssys.modules['psutil']=None, so psutil.Process raised AttributeError on the test's own spawned child and the guard refused its cleanup kill. For pids on the spawn/initial-children record only AccessDenied fails closed; the parent-chain branch still fails closed on anything. Reproduced locally, then 45/45 (stall + guard self-test).Deploy-gated because <trigger>. New test red on base; file 99/99.kanban list --homeappends an OTHER BOARDS section from the cross-board home index (same source as the kanban-home-cards block), so the hint is true; docs updated. New test red on base; home-index/home-session/home-cards 185/185.flush_pages()join at exit (logs pages still in flight); dedup flock wait bounded to 5 s. New test red on base (verdict blocked 10.16 s behind a slow page); shell_hooks files 110/110.#77 (pipecat) is ANG-Ventures/pipecat-house-voice#493.
Rebased onto main 2026-09-28 (9 behind): union-resolved REACHABLE_BASELINE conflict with t_cd88e043 #82 in tests/gateway/test_no_network_reachable_from_loop.py; loop gates 51/51 on the rebased tree.
Override: none by design — #47 adds no new refusal. The docstring hit is the existing awaiting-deploy hold, which still clears only when the merge is an ancestor of the tree HEAD or when an operator unblocks the card by hand (unchanged). This diff only adds text naming what triggered the hold.