From e3a4f0ae777b8e05f38a9672520b1782f04534fc Mon Sep 17 00:00:00 2001 From: JUN Date: Wed, 9 Sep 2026 23:52:54 +0900 Subject: [PATCH] docs(devlog): move the closed Spark short-quota unit to _fin The 260909_spark_short_quota_attribution unit was committed into the product PR #4128 instead of being kept out of it. That PR merged (b2142586a, merge commit 91db6c2f2) and issue #4122 closed, so the unit is terminal and belongs in _fin per the devlog convention in AGENTS.md: _plan holds units still open, _fin holds units with a recorded terminal outcome. Adds 090_closeout.md with the merged SHAs, the exact-head CI result, and the two consequences the plan already declared out of scope (stale cached short* tuples expiring via the six-hour hydration TTL, and Spark-routed requests no longer preemptively avoiding a Spark-saturated account). Docs only. No file under src/, tests/, gui/, or scripts/ is touched. --- .../000_plan.md | 0 .../090_closeout.md | 27 +++++++++++++++++++ 2 files changed, 27 insertions(+) rename devlog/{_plan => _fin}/260909_spark_short_quota_attribution/000_plan.md (100%) create mode 100644 devlog/_fin/260909_spark_short_quota_attribution/090_closeout.md diff --git a/devlog/_plan/260909_spark_short_quota_attribution/000_plan.md b/devlog/_fin/260909_spark_short_quota_attribution/000_plan.md similarity index 100% rename from devlog/_plan/260909_spark_short_quota_attribution/000_plan.md rename to devlog/_fin/260909_spark_short_quota_attribution/000_plan.md diff --git a/devlog/_fin/260909_spark_short_quota_attribution/090_closeout.md b/devlog/_fin/260909_spark_short_quota_attribution/090_closeout.md new file mode 100644 index 0000000000..061ec107e6 --- /dev/null +++ b/devlog/_fin/260909_spark_short_quota_attribution/090_closeout.md @@ -0,0 +1,27 @@ +# closeout (recorded 2026-09-09) + +Landed via #4128 MERGED (`b2142586a`, merge commit `91db6c2f2`, both ancestors of origin/dev); +issue #4122 CLOSED. Remote CI on the exact head `b2142586a` was green: 28 successful check runs, +0 failures, 2 skipped by their own matrix gates (`macos control`, `windows ${{ matrix.shard }}/6`). + +Delivered exactly the `000_plan.md` file-change map: the optional routed-model hint on +`parseUpstreamQuotaHeaders` / `applyAccountQuotaFromUpstreamHeaders` +(src/codex/quota.ts:411-538), all four `src/server/responses/core.ts` write paths plus the six +`codexWsQuotaObserver` factory call sites, the compact path +(src/server/responses/compact.ts:1018), and the four regression rows in +tests/codex-integration/codex-quota-parser-parity.test.ts. +src/codex/quota-auto-refresh.ts stayed unchanged as planned. + +Carried forward, not regressions: + +- Already-polluted account entries keep the stale account-level `short*` tuple until the six-hour + hydration TTL expires them on disk, or until a restart or a genuine non-Spark short write + replaces them in memory. Declared out of scope in the `000_plan.md` non-goals and unchanged by + the merge. +- A Spark-saturated account is no longer preemptively avoided for Spark-routed requests, because + routing evidence reads only the account-level slot (src/routing/quota.ts:40-61). Bounded to + Spark requests and absorbed by the existing 429 pool rotation. Spark-aware exhaustion sourced + from `customWindows` remains a follow-up. + +The unit was committed into the product PR rather than kept separate; moving it here is that +correction, made after the merge closed the unit.