Repository navigation
fix(combos): preserve explicit persisted cooldown clears - #8514
Conversation
Keep queued key tombstones through subsequent sets and apply combo-prefix clears to the fresh file under the mutation lock. Add regressions for shorter replacements, peer rows, retry retention, and clear ordering. Follow-up to lidge-jun#8117.
Pre-merge checks:
|
|
✅ Deterministic PR hygiene checks passed. |
✅ READY
Review readiness checklist
✅ 4/4 boxes ticked. This pull request is already Ready for Review. Hygiene✅ Deterministic PR hygiene checks passed. |
Codex Review Summary: ✅ CompletedThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Maintainer judgment (combo/pool bundle lane), head
|
Summary
Verification
Base:
devat87e005f93c2ceafa6472f3d4bb56caa8b12fbfdf. Fix commit:7b317a53b2a11ba2b264a84f90248424836369b0. Linux, pinned Bun 1.4.4.bun test tests/routing/combo-cooldown-persistence.test.ts --test-name-pattern 'a queued key clear|a combo-wide public clear': 0 pass, 2 fail. The failures show the old 24-hour row replacing the new 60-second row, and peer rows surviving a combo clear.bun test tests/routing/combo-cooldown-persistence.test.ts: 15 pass, 0 fail, 45 expectations.bun run typecheck: passed across 2,397 files.bun run structure:check,bun run privacy:scan,git diff --check: passed.bun scripts/test.tsacross cooldown persistence/recording, combo management/classification, file-size ratchet and test-layout guards: 204 pass, 2 fail. Both failing tests also reproduce with the unchanged base source (59 pass, 2 fail across their two files):combo management API > DELETE refresh immediately retires the final managed combo catalog row(catalog row remains present).a local Codex pool cooldown uses capped target backoff and permits account recovery(502 rather than 200).bun run test:changed: blocked before a completion summary because this environment refused an attempted connection toapi.deepseek.com; the request payload and credential scope were not established. The run was not retried and is not counted as passing.enforce-target,hygiene,labelandresolve-prpassed. Catalog async contracts isaction_requiredpending maintainer approval for this fork. The aggregatecicheck has not completed; CodeRabbit skipped the draft.Maintainer action needed: approve the fork workflow runs for
7b317a53b2a11ba2b264a84f90248424836369b0; no workflow permissions or repository settings were changed.Maintainer verification (combo/pool bundle lane)
Head
a81daf5260(contributor branch with currentdevac41d6b7merged; no code changes beyond the merge), macOS, Bun 1.4.4.devsource: withsrc/combos/cooldown-store.tsandsrc/combos/failover.tstaken fromorigin/dev, the queued key and combo clear cases fail (the old 24-hour row replaces the new one). GREEN with this PR:tests/routing/combo-cooldown-persistence.test.ts15 pass, 0 fail (three repeated runs).combo-management-api,server-combo-cooldown-recording,server-combo-cooldown-fallback: pass. When these run in one process together with the persistence file,a combo cooldown is written with an absolute expiry…fails identically on unchangeddev(cross-file interaction, not this change; CI runs files isolated).DELETE refresh…,a local Codex pool cooldown…) pass on currentdevhere.codex / hyds/deepseek-v4.1-flash-1m): PASS, no findings.Co-authored-by: medking82 j.g.wong@hotmail.com
Checklist
Review readiness checklist
This PR stays in draft until every box below is ticked. Tick all four boxes once the requirements are met: