Skip to content

feat(evolution): process every 4h (fix backlog growth: ~25 gen/day vs ~1-2 proc/night)#461

Merged
Lexus2016 merged 1 commit into
mainfrom
evolution/processing-cadence-4h
Jun 22, 2026
Merged

feat(evolution): process every 4h (fix backlog growth: ~25 gen/day vs ~1-2 proc/night)#461
Lexus2016 merged 1 commit into
mainfrom
evolution/processing-cadence-4h

Conversation

@Lexus2016

Copy link
Copy Markdown
Owner

Why (root cause of "again many unprocessed issues")

Measured generation vs processing:

day created completed
06-20 28 7*
06-21 29 14*
06-22 24 0 (evening not yet)

(*much of 06-20/21 "completed" was manual curation, not the autonomous cycle.) Last night the autonomous chain ran fine but landed exactly 1 PR (#436). The pipeline GENERATES ~25 issues/day but the once-daily processing lands ~1-2 → the board grows ~20/day. Not a breakage — a funnel imbalance that recurs every day.

What

Run the processing chain every 4h (generation stays daily):

  • analysis: 0 1,5,9,13,17,21 (was 0 21)
  • implementation: 0 2,6,10,14,18,22 (was 0 22, +1h after analysis)
  • integration: 0 3,7,11,15,19,23 (was 0 23, +1h so CI settles)

~6× processing passes/day. Mechanically safe (verified): reports are date-keyed (overwritten each run, latest wins), the implementation freshness gate is date-based (today's analysis = fresh), and accepted-label + dedup stop re-processing handled issues. So intra-day re-runs just chew through the remaining backlog.

Watchdog (kept consistent)

STAGES mirrors the first daily slot (analysis=1, impl=2, integration=3) — "a report for today must exist by then." Mirror test now reads the first hour of a multi-slot cron; stage-report tests made slot-aware. 35 watchdog tests pass.

Caveats (honest)

  • Cost ≈ 6× the processing agent runs/day. Easy to dial to every 6h/8h.
  • Frequency alone may not fully close the gap (≈25 gen vs even ~6-12 proc); a generation backlog-cap is the complementary fix (recommended follow-up).
  • Deploy dependency: takes effect only after the server re-registers cron (register_evolution_cron, runs on hermes update/pull).

Local verification

cron exprs valid 5-field; watchdog suite 35 passed. parse_schedule/compute_next_run can't run locally (croniter not installed in this env — affects the existing daily exprs too), so the cron-execution path is verified by CI + on the server.

…acklog growth)

The pipeline generates ~25 issues/day (research+issues+introspection) but
the once-daily processing chain landed only ~1-2/night (analysis caps at 8,
most triage out / don't land cleanly), so the open backlog grows ~20/day —
the recurring 'again many unprocessed issues'.

Run the PROCESSING chain every 4h instead of daily (generation stays daily):
- analysis:       0 1,5,9,13,17,21 * * *  (was 0 21)
- implementation: 0 2,6,10,14,18,22 * * *  (was 0 22, +1h after analysis)
- integration:    0 3,7,11,15,19,23 * * *  (was 0 23, +1h so CI settles)
This is ~6x processing passes/day. Mechanically safe: reports are
date-keyed (overwritten each run, latest wins) and the implementation
freshness gate is date-based ('today's analysis = fresh'), so intra-day
re-runs don't break the chain; the accepted-label + dedup prevent
re-processing already-handled issues.

Watchdog: STAGES now mirrors the FIRST daily slot (analysis=1, impl=2,
integration=3) — 'a report for today must exist by then' (reports are
date-keyed). Mirror test updated to read the first hour of a multi-slot
cron; stage-report tests made slot-aware. 35 watchdog tests pass.

NOTE: takes effect after the server re-registers cron (register_evolution_cron
on next 'hermes update'/pull). Cost ~6x the processing agent runs/day — dial
to every 6h/8h if needed. Complementary generation backlog-cap still
recommended to fully converge (generation ~25/day > even 6x processing).
@github-actions

Copy link
Copy Markdown
Contributor

🔎 Lint report: evolution/processing-cadence-4h vs origin/main

ruff

Total: 0 on HEAD, 0 on base (➖ 0)

🆕 New issues: none

✅ Fixed issues: none

Unchanged: 0 pre-existing issues carried over.

ty (type checker)

Total: 11564 on HEAD, 11564 on base (➖ 0)

🆕 New issues: none

✅ Fixed issues: none

Unchanged: 6085 pre-existing issues carried over.

Diagnostics are surfaced as warnings — this check never fails the build.

@Lexus2016 Lexus2016 merged commit bb30fce into main Jun 22, 2026
39 checks passed
@Lexus2016 Lexus2016 deleted the evolution/processing-cadence-4h branch June 22, 2026 15:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant