From 84fa103125ca1f3e343f282847200fb5294afa41 Mon Sep 17 00:00:00 2001 From: type-two Date: Wed, 8 Jul 2026 19:09:22 +1000 Subject: [PATCH] =?UTF-8?q?docs:=20correct=203cff97d=20=E2=80=94=20the=20'?= =?UTF-8?q?ratelimited'=20bug=20was=20not=20real?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit I claimed done_ids() was binning rate-limited tasks forever. It wasn't: /task-completed has always refused to persist 'ratelimited' and 'requeue' rows (they stay PENDING by design), so such an id can never reach results.jsonl. Verified against the copy that was actually running. The done_ids() guard stays as defence in depth against a hand-appended row, but its comment no longer claims to fix a bug that didn't exist. The real bug in that commit — no circuit breaker on a failure streak — stands, as does the actual root cause in 82d5ff4 (promptEchoed matched a 60-char prefix). Co-Authored-By: Claude Opus 4.8 --- local_server_example.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/local_server_example.py b/local_server_example.py index e1d5d01..29a7fee 100755 --- a/local_server_example.py +++ b/local_server_example.py @@ -84,12 +84,12 @@ def load_queue(): def done_ids(): """Ids that must NOT be handed out again. - 'ratelimited' is deliberately absent. handleRateLimit() writes that status meaning - "report the task back as pending" — no gen ran, the abuse flag just froze us mid-task. - Counting it as done silently binned the task forever, contradicting its own comment. - 'failed' IS counted: a timeout may have burned credits invisibly, so nothing is retried automatically. To re-run a failed task, delete its line from results.jsonl (requeue.py). + + 'ratelimited'/'requeue' are skipped belt-and-braces: /task-completed already refuses to + persist those rows (they stay PENDING by design), so they can't reach this file. This is + defence in depth against someone appending a row by hand — not a bug fix. """ ids = set() if os.path.exists(RESULTS_FILE):