Skip to content

[WRONG BRANCH] release: promote verified 2.52.0-preview.20260911 product tree to preview - #4273

Merged
lidge-jun merged 285 commits into
previewfrom
codex/release-252-preview
Sep 11, 2026
Merged

[WRONG BRANCH] release: promote verified 2.52.0-preview.20260911 product tree to preview#4273
lidge-jun merged 285 commits into
previewfrom
codex/release-252-preview

Conversation

@lidge-jun

Copy link
Copy Markdown
Owner

Summary

Promotes the same audited 2.51.0 product tree to preview, published as 2.52.0-preview.20260911.

This is the identical freeze the stable promotion uses — 42fcf9a0a6de7930a3f69b5c0d6917acaca1a7ea. git diff 42fcf9a0a HEAD is exactly one line:

package.json | 2 +-
-  "version": "2.51.0",
+  "version": "2.52.0-preview.20260911",

Nothing else differs. The preview channel gets the same bytes the stable channel does, from the same regression audit, which is the point of cutting both from one freeze rather than auditing twice.

preview moves 2.49.0-preview.20260909 to 2.52.0-preview.20260911.

Why 2.52.0-preview and not 2.51.1-preview

nextPreviewRelease offers both from the current tag state. 2.52.0-preview.20260911 is the right one because dev is already at 2.52.0 — the pre-move in #4270 put it there so 2.51.0 could publish — so this previews the core dev is actually becoming.

This closes the 2.51.x patch line, per MAINTAINERS.md: once vX.Y.0-preview.* is tagged, a fix ships as part of X.Y.0, not as X.(Y-1).(Z+1). A post-2.51.0 fix will ship as 2.52.0. That consequence is already implied by dev sitting at 2.52.0; naming it here so it is a decision on the record rather than a side effect.

No dev pre-move is needed for this cut. release.yml requires dev to outrank the released version, and 2.52.0 outranks 2.52.0-preview.20260911 because a prerelease sorts below its release — the case MAINTAINERS.md describes as "no move is needed".

Verification

The audit behind this tree is the one recorded for 2.51.0: six independent read-only xai/grok-4.6 lanes over all 97 changed product paths, coverage proven mechanically with zero unowned, five NO-BLOCKER and one blocker that was reproduced and fixed in #4269 rather than waived. Full detail, including the eight-clause blocker definition and 23 non-blocking dispositions: devlog/_plan/260911_251_regression_audit_release/.

Because this tree is byte-identical to the stable promotion apart from the version string, the audit transfers without a re-run.

The authoritative gate is the push-event ci.yml and service-lifecycle.yml on this PR's merge commit, which release.yml independently requires before it will publish.

Checklist

  • Scope stays focused and avoids unrelated cleanup.
  • Docs or release notes were updated when needed.
  • Security-sensitive changes were reviewed for secrets, auth, and unsafe defaults.

… the account short slot

The response-header quota path had no model context, so on a Spark-model
response the upstream model-specific 5h limit (codex_bengalfox) was stored
as the account-level shortPercent tuple. One pool account then displayed a
5h quota bar its identically-limited Pro peers did not have, and
account-policy readers (main-account hard lock, five-hour auto-refresh)
consumed a model-specific window.

parseUpstreamQuotaHeaders and applyAccountQuotaFromUpstreamHeaders now take
an optional routed-model hint; on Spark-family models the sub-day primary
window is filed under customWindows with the same label the WHAM parser
uses, merged label-wise so the WHAM-recorded Spark weekly window survives
(#4007 retention intact). All HTTP and WebSocket header write paths pass
route.modelId. Genuine account-level 5h windows on non-Spark models are
unchanged, and warmup callers (non-Spark default models) keep legacy
behavior.

Regression coverage in tests/codex-integration/codex-quota-parser-parity.test.ts.

Closes #4122
fix(codex): attribute Spark 5h header windows to the model limit, not the account short slot
The 260909_spark_short_quota_attribution unit was committed into the product
PR #4128 instead of being kept out of it. That PR merged (b214258, merge
commit 91db6c2) 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.
SECURITY.md described how to file a report but not what to do after one is
filed and quiet. Reporters had no stated route for a stalled private thread, no
statement of what a public issue may contain in that situation, and no way to
tell an acknowledgment apart from completed triage.

Adds a public-or-private routing test, a follow-up section that keeps
coordination in the private advisory thread and limits a public issue to
coordination with no vulnerability detail or advisory identifiers, and an
explicit statement that receipt is not triage and that a landed public patch
does not close the corresponding private report. States plainly that no
first-response target is published; review stays best-effort.

README's security pointer carries the same three facts.

Closes #4073
The new paragraph claimed the 90-second prelude deadline is not configurable
through connectTimeoutMs. The constant is not tunable, but the effective wait
is: core.ts passes connectTimeoutMs (default 200s) as the header-timeout budget
to fetchWithHeaderTimeout, which aborts the combined signal the WS exchange runs
under, and codex-ws-exchange.ts cancels an already-sent create on that abort
before the prelude timer fires. An operator who lowers connectTimeoutMs below 90
seconds keeps the shorter deadline, so state it as the shorter of the two.

Addresses the Codex review finding on this PR.
…ance

fix(codex): report operator-owned root routing truthfully
…tches

A live Codex thread switched from a native ChatGPT model to a routed provider
replays the backend-minted encrypted agent message on every later turn. That turn
is not a thread spawn, so the direct recovery gate skipped it and the thread was
permanently unusable on that provider, with no recovery attempt and no
recovery_reason on the error.

Drop the threadSpawn conjunct from the direct gate only. The trust boundary is
recoveryAdmission() -- Codex originator, live native ChatGPT bearer, matching
chatgpt-account-id, no inbound API key -- which is unchanged. The cache restore
lives inside the same if, so a mid-thread turn can now reuse a plaintext this
proxy already paid for. The combo gate keeps its spawn requirement.

Closes #4089
…e visibility

The first draft said a defect 'plainly visible in code that is already
published' could go to a public issue. opencodex is source-available, so that
reading covers nearly every finding, and it contradicted the same file's rule
that undisclosed vulnerabilities never start as public issues.

The test is now whether the weakness is already public — fix shipped, or already
described in a published advisory, issue, or pull request — with an explicit
statement that being findable in the source is not disclosure.
Docs-only devlog move. Exact-head CI at e3a4f0a: 12 success, 10 skipped by path filters, only the CodeRabbit review bot outstanding. Merged by the maintainer under the dev integration policy in MAINTAINERS.md.
The proxy has stamped a stable non-PII account label on every request row and
every attempt for a long time (main, p<hex6> for Codex pool accounts, o<hex6>
for other OAuth providers), but nothing could read it back. An operator running
several accounts behind one provider had to grep usage.jsonl to answer "which
account served this request", which is the first diagnostic question for a quota
or cache anomaly.

/api/logs now accepts ?account=<label>, matching failover attempts the same way
?provider and ?model already do, so a request is findable by the account that
finally served it as well as the one that first refused it. ocx logs gains the
matching --account flag and prints acct=<label> in human output, so a filtered
result can be told apart from an empty one.

No new field is persisted and no new identifier is derived: this reads back the
label already written by sealRequestAttemptIdentity.

Closes #4057
…ing MissingSessionID

OpenCode closed the keyless Zen tier to its own client. A request without an
x-opencode-session header is refused with error type MissingSessionID and
"OpenCode's free tier can only be used in OpenCode", so every opencode-free
request now fails and the user saw that raw upstream string with no indication
of what happened or what to do instead.

Presence of the header is the entire gate, so the proxy could pass it by minting
a value. It does not: a fabricated session id plus a versioned opencode/<version>
User-Agent is a claim to be the OpenCode client, and OpenCode publishes no
third-party integration contract for this keyless tier, so a 200 obtained that
way is a bypassed admission check rather than permission.

Report the restriction instead. The Zen guidance module gains a free-tier
enrichment that replaces the passthrough with the reason and the supported keyed
opencode-zen route. It is scoped to Zen destinations and to this error, and is
idempotent so layered enrichment cannot append it twice. Wired on both surfaces
that render upstream errors: the native Chat path, where the issue reproduces,
and the Responses path, whose existing single call site now goes through a
composed entry point that leaves the 429 guidance unchanged.

The opencode-free registry note and the providers guide document the gate, the
refusal to impersonate, and the keyed alternative.

Closes #4121
MAX_DECOMPRESSED_BODY_BYTES was hard-coded at 256 MiB, and on the 922k-token
opt-in window a session's serialized history crosses it. The request that
crosses it is Codex's own remote-compaction request, so the session 413s on the
one operation that would have shrunk it and cannot recover.

Adds the opt-in `maxInboundBodyBytes`, shaped like `maxUpstreamBodyBytes`:
omitted or 0 keeps today's 256 MiB. Every reader resolves through
resolveInboundBodyLimitBytes(), which clamps to [1 MiB, 512 MiB]. The ceiling is
mandatory rather than advisory: readBoundedJsonRequestBody materializes the body
several times over, so peak memory is a multiple of whatever is admitted and an
unbounded inbound cap would be a memory exhaustion lever. The schema keeps the
outbound guard's `.catch(undefined)` degradation, which is exactly why the bound
cannot live there.

Bun's listener rejects an oversized body before fetch() runs, so
maxRequestBodySize is now resolved from config at bind time instead of being
pinned to the default; an out-of-range value is clamped with one startup warning.

Also separates the two 413s a client can now see on this surface. #4112 gives an
upstream size refusal `context_length_exceeded`; a local admission refusal now
answers `inbound_body_too_large` with a message that names OpenCodex as the
refuser, the observed and configured sizes, and the config key that moves the
limit. The diagnostic inherits the thrown error's rule about keeping non-finite
and untyped values out of the text.
The reference page and the sub-agent surface guide framed agentTaskRecovery as
spawn-only. It now also covers a live thread switched from a native ChatGPT model
to a routed one. Combo recovery is still spawn-only, so say that explicitly in
each locale rather than leaving the distinction implicit.
…sal shape

Bun answers 413 and stops reading while the client is still uploading, so the
write side can surface the refusal as a transport error rather than a response.
Accept either shape for the refusal, and pair it with the admitted case at the
same body size so the assertion stays non-vacuous: the old listener, pinned to
MAX_DECOMPRESSED_BODY_BYTES, admitted this body under every configuration.
… locales

The English providers guide now says the keyless tier is closed, while ko, ja,
zh-cn, zh-tw, fr, ru and tr still told readers it works without a key. Each
locale gets the same two paragraphs in its own register, keeping the identifiers,
the quoted upstream message and both URLs verbatim.
…he rendered page

`skills/ocx/references/01_management_surface.md` is generated from `CAPABILITIES`
in `src/cli/capabilities.ts`, and `tests/ci-workflows/skill-ocx.test.ts` compares
the committed file against a fresh render byte for byte. The previous commit
edited the rendered page by hand, so the two disagreed.

Declare the flag at its source instead: the logs capability now carries
`--account` between `--conversation` and `--status`, its summary names the new
filter, and a detail line documents the `acct=<label>` column next to the
existing `conv=<id>` one. The rendered page is unchanged from the previous
commit apart from that detail line, which is what the registry now emits.
…grant

A Codex pool credential whose OAuth grant was revoked upstream kept
lastCodexValidationStatus: "ok" in codex-accounts.json and was reported as
healthy for as long as the install lived, while every request using it 401'd.

guardianSweep's pool branch already classified the failure -- it computed
`permanent` for a revoked/expired TokenRefreshError -- but spent it only on
widening an in-memory backoff delay. The persisted-verdict branch next to it
required `needsWarmup`, which is false in the default configuration, and
additionally excluded every TokenRefreshError, so the one class of failure that
proves the credential is dead was the one class that never reached the record.

Persist that verdict instead, independently of needsWarmup, and add a
lastCodexValidationTerminal marker so a dead grant is distinguishable from a
transient warmup failure. The write is fenced on the generation the sweep
actually observed, so a credential replaced mid-refresh is never branded by the
previous credential's failure.

The marker clears itself in both directions that disprove it: markCodexAccountValidated
clears it explicitly, and every credential write drops it because the record is
rebuilt from preservedValidationMetadata, which deliberately omits it. A refresh
that succeeds disproves "the grant was revoked", so one spurious invalid_grant
cannot brand a live account dead forever.

On the read side, projectCodexAccountHealth now reads that verdict and reports
reauth_required/refresh_failed -- the accurate statement, since only a re-login
recovers a revoked grant, and the existing union member already carries the
Codex reauth action. collectLocalCodexEntries is folded onto the same projector
rather than keeping its inlined copy, which is how the CLI would otherwise have
kept reporting the account healthy after the dashboard stopped.

Background warmup stays opt-in; no default-on probe is introduced.

Closes #4120
Diff-level roadmap for the three-layer chain (#4120 -> #3848 -> #3777), with the
wp1 design decisions recorded: why the terminal marker is an extra optional key
rather than a new status value, why it clears itself on every credential write,
why the generation fence declines rather than clobbers, and why the dashboard fix
is a server-side projection onto the existing reauth_required member.
fix(responses): classify non-streaming provider input overflow
CodeRabbit flagged that the ja and zh-cn pages disagreed about when combo
recovery runs. The runtime has two triggers: no payload-eligible target is
initially selectable (core.ts:2753), and native attempts are exhausted with no
eligible target left (core.ts:3054-3060). The English reference page named only
the first, while the sub-agent surface guide and the fr/zh pages named both, so
the English page and the ja/ko/tr/ru pages were the ones out of step.
…up-4073

Closes #4073. Exact-head CI at cf967c3: Cross-platform CI success, enforce-target success x3, PR hygiene success x2, PR Labeler success x2, React Doctor success; the two cancelled runs are superseded duplicates at the same SHA and only the CodeRabbit review bot is outstanding. Documentation only: SECURITY.md plus locale mirrors, no response SLA published. Merged by the maintainer under the dev integration policy in MAINTAINERS.md.
fix(responses): allow 90 seconds for Codex WebSocket response prelude
…-envelope

fix(google): restore AI Studio model discovery
lidge-jun and others added 17 commits September 11, 2026 14:20
…an unselectable one

CodeRabbit review on #4257: the exempt default must survive only when the surviving ladder advertises it; an orphaned ultra default is repaired down without naming the rung in the clamp diagnostic. Also folds the three doc-coherence findings into the devlog unit and docs-site.
fix(codex): emit max/ultra efforts unconditionally and expire stale clamp diagnostics
The Responses preset shipped a two-model roster read off the models.json sample
on BigModel's Codex page. That sample is a starter catalog, not the endpoint's
roster, and taking it for the latter left Flash off a subscription that sells it.

Three upstream pages disagree with the old reading, all checked 2026-09-11:

- coding-plan/latest-model.md pins Codex to https://open.bigmodel.cn/api/v1 --
  this preset's exact baseUrl -- and states GLM Coding Plan supports GLM-5.3 and
  GLM-5.3-Flash for every tier, then treats glm-5.3-flash as an already-callable
  id in that tool.
- coding-plan/overview.md states GLM-5-Turbo calls are auto-switched to
  GLM-5.3-Flash. The preset already lists glm-5-turbo, so it was already reaching
  Flash on this endpoint under another name.
- guide/models/vlm/glm-5.3-flash.md gives native multimodal input, a 1M window,
  and text parameters "consistent with GLM-5.3".

Flash is seeded into the roster and all five sibling per-model maps. Its context
tracks the 5.3 sibling on this row (1_048_576) rather than the Chat row's
1_000_000: both are documented as "1M", and this preset expresses that family's
1M the way BigModel's own Codex declaration does, so one preset does not claim
two sizes for one documented window.

Flash declares ["text", "image"]. It is the only row here that can actually see
an image; the other two are text-only upstream and get image back from the vision
sidecar at catalog-build time. Declaring Flash text-only would push a native VLM's
pictures through a describe-it-first detour and hand the model prose about an
image it could have read -- the defect ZAI_GLM_5X_SIDECAR_VISION_MODELS already
exists to prevent on the Chat rows.

The oracle moves in this same commit, because a test asserting the old roster is
not evidence for the new one, it is the thing being changed. It previously locked
models to two entries and asserted glm-5.3-flash was absent from the export. It
now pins the three-model contract, Flash's exported window, ladder
(low/high/max plus the compatibility ultra tier), default effort and native image
modality, and keeps asserting the part no document supports: there is still no
HTTP /models contract here, so liveModels and apiKeyValidation must not drift.

Closes #4201
… describes

The preset now seeds glm-5.3-flash, and both pages still said it did not. The guide went further and told the reader why it was excluded, which stops being staleness and becomes a false statement the moment this lands.

The modality note is split rather than rewritten: 5.3 and Turbo still reach images through the vision sidecar, while Flash declares native text and image input, so the page should not describe one mechanism for all three rows.
provider: seed GLM-5.3-Flash on the BigModel Responses preset
Two surfaces changed because one pooled account stopped being usable, and
neither said so. The reporter in #4212 lost astra and sol through the proxy,
found the proxy worked with ocx turned off, and concluded OpenCodex had broken.
The real cause was a single account stuck on a failed credential refresh, which
they eventually found themselves and then asked to be told about.

The request-time refusal now names the account. refreshPoolForwardAuth and
refreshPoolCompactContext both caught a non-terminal refresh failure and returned
"Codex credential refresh did not complete; retry this request", which describes a
transient server problem. It stays a retryable 503 and stays non-quarantining,
because the refresh genuinely may succeed and a token-endpoint 5xx must not retire
a healthy account (#2887). What it gains is the account and the exit: when
retrying stops helping, that account has to be signed in again. The two call sites
now share one helper, so the regular and compact contracts on this endpoint cannot
drift the way they already had -- compact takes no RouteResult and so could not
reach the public selector at all until its caller started passing it.

The refusal says "sign in to that account again" rather than the more natural
"needs reauthentication", and that is load-bearing. classifyError runs
isAuthenticationMessage before it reaches the status === 503 arm, and that check is
status-blind on the bare substring "authentication", which "reauthentication"
contains. The friendlier wording reclassifies the body to authentication_error /
invalid_api_key while the HTTP status stays 503, and Codex applies retry-after
backoff only for server_is_overloaded -- so it would have quietly disabled the
retry this refusal exists to ask for. A test pins the wording, not just the
resulting code, because the next person to improve this sentence will not know.

The name is a public account selector when the request carried one, otherwise the
durable p-prefixed log label. Never the raw pool id and never the email: those are
the identifiers responses-compaction-routing.test.ts and codex-auth-context.test.ts
already assert must not reach an operator-facing surface, and an error body travels
further than a log line. When neither resolves, the sentence degrades to "the
selected Codex pool account" rather than naming something opaque.

The catalog drop now explains itself. A gated native model that no usable account
backs is omitted from the catalog -- there is no row, so nothing downstream could
attach a reason to it, and no later surface can tell "never entitled" apart from
"the account broke this morning". The suppression site now says which accounts are
stuck while the entitlement snapshot that produced the omission is still in scope.

That explanation is deliberately narrow, in two ways. It is produced only when an
account needs reauthentication, because being unentitled is the default state of
most installations and explaining that on every sync would bury the case an
operator can act on. And it considers only accounts that could have served the
model in question: an account upstream positively denied is not the reason the
model is missing, so naming it would send the operator to repair a credential that
was never going to help. An unconfirmed roster stays a candidate, because that is
exactly what a credential stuck on a failed refresh looks like.

Catalog bytes are unchanged. The suppressed slugs are still suppressed, so the
existing oracles that assert gated slugs stay absent from the written catalog keep
asserting exactly that.

Closes #4212
…attribution

pool: name the account when a refresh fails or its models vanish
A connected client reported healthy while the installed Codex CLI exited
before its first request, because the catalog on disk used a reasoning
level that CLI does not know. Connection state proved the hub and the
credential; it never proved the selected local runtime could consume what
was written.

The write-time gate cannot answer this. It runs once, on bytes about to be
written, so it says nothing about a catalog that predates it, one written
while the runtime ladder was unverified, or a runtime swapped afterwards.

inspectClientCatalogReadiness assesses the installed file, and ocx connect
status, ocx status --json and ocx connect now report the verdict. Only
"ready" means ready; an unobservable runtime stays "unverified" rather than
becoming an incompatibility, which is the line the write-time gate already
refuses to cross. The probe runs only for a connected client, so no other
install pays a Codex process for it.

Closes #4207
Four things an independent read of the diff found.

A diagnostics command should not start writing runtime selection state: the
default observer now resolves the runtime without persisting and hands that
command to the catalog read, which also avoids a second probe on a path that
had already resolved it.

The ocx connect decision moves into a pure connectCompletionReport, so the
fail-closed exit is exercised without a hub. It prints the verdict first and
withholds "Connected to" when it fails, because a caller grepping that phrase
would otherwise read a broken catalog as success. A Claude-only connection is
told about an old Codex CLI but not failed by it, since nothing in that
connection launches Codex.

connectClient now receives the same observer, so the write-time gate and the
readiness check cannot disagree about the ladder inside one command.

An installed catalog that is not JSON gets its own sentence instead of the
gate's "downloaded" wording, and the subprocess fixture takes the same spawn
budget the neighbouring client fixtures use.
The previous commit only forwarded catalogCompatibility when a test had
injected it, so an ordinary ocx connect still let assertClientCatalogCompatible
fall back to its own default -- which persists runtime selection state and runs
a second probe. One command could then act on two separately observed ladders,
and the comment claiming otherwise was false. Both checks now build the
observer through one helper.
collectClientConnectionStatus observes the local ladder for a connected client, and observing it spawns codex debug models under a 45s budget. That is the point on ocx status and ocx connect status. config show is a different caller: it reads state, reason and token to answer whether the hub link is real, and it arrived on dev after this branch forked, so nothing here had declined the probe on its behalf.

Declining it explicitly keeps a read-only config dump from turning into a runtime probe - the same reasoning the readiness check already applies when it refuses to persist runtime selection state.
client: report local Codex readiness instead of bare connected state
Round one fixed the English remote hub guide and left the seven translated
copies telling their readers to run the line that fails. Each locale still ran a
nested `ocx config set hub.<field>` straight after `ocx config set runtimeRole hub`,
but `runtimeRole` does not create the object and the CLI refuses to create a
missing parent, so the guide's own next line died with `config parent path not
found: hub`. Each locale also still offered `--allow-insecure-http`, which
`ocx connect` rejects as an unknown argument, and none of them documented the
data plane at all.

Every locale now creates `hub` and `remoteGui` first, offers the whole-object
alternative with its replace-not-merge warning, and carries the section that
gives the data listener TLS: the macOS constraint that Serve proxies only to
127.0.0.1, the loopback forwarder, the split data and `--management-url`
origins, and the quiet trap where a loopback-bound listener behind a TLS
frontend answers 403 `origin_rejected` on `/v1/catalog` while `/readyz` still
returns 200.

The locales say a mistyped key is rejected at write time with a `schema_invalid`
error, without pinning the literal error shape. That is deliberate: the English
guide at docs-site/src/content/docs/guides/remote-hub.md:110 says the shape is
`schema_invalid: hub.<field>`, but `remoteGuiConfigError` in src/config.ts only
produces the dotted form when the Zod issue carries a path. An unrecognized key
has an empty path, so a typo actually reports `schema_invalid: hub`. Correcting
the English source is outside this change's scope, and a translation should not
quietly assert a different error shape than the source it translates, so the
locales state only what is true of both.

tests/ci-workflows/docs-remote-hub-claims.test.ts only read the English guide,
which is why this drift went unenforced. It now runs the language-independent
assertions over all eight files, English included, pinning commands and literal
error codes rather than prose a translator is meant to rewrite. The
replace-not-merge check bounds its window on the next heading of any level and
requires the warning to name `hub.managementIngress`; bounding on `##` alone and
accepting any bold let the following subsection satisfy it, which made the
assertion decorative in five of the eight files.

Closes #4200
docs(i18n): make the remote hub guide runnable in every locale
…not a bad key

The 2.51.0 candidate reworded the retryable main-account refusal to end with 'the main Codex account needs reauthentication'. classifyError runs isAuthenticationMessage before it reaches the status === 503 arm, and that check is status-blind on the bare substring 'authentication', which 'reauthentication' contains. The body was served as authentication_error / invalid_api_key while still returning 503.

Codex keys retry-after backoff on server_is_overloaded, so a transient token refresh started reading to the client as a bad API key and it stopped retrying. On 2.50.0 the same failure classified as server_error / server_is_overloaded.

The pool counterpart in core.ts documents this exact trap and words itself around it; the main path walked into it anyway. It now uses the same construction: sign in to the main Codex account again.

The old test asserted only the 503 and the word 'reauthentication', which is why the reclassification shipped unnoticed. The added test asserts error.type and error.code, and that the message carries no 'authentication' substring at all - the substring is the thing that reclassifies, not the phrasing.
…ssification

fix(responses): keep the retryable main-refresh refusal an overload, not a bad key
@lidge-jun
lidge-jun requested a review from Ingwannu as a code owner September 11, 2026 11:07
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 11, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-09-11T11:22:17.154152Z c1af925 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@github-actions

Copy link
Copy Markdown
Contributor

Deterministic PR hygiene checks passed.

@coderabbitai

coderabbitai Bot commented Sep 11, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Too many files!

This PR contains 1238 files, which is 938 over the limit of 300.

To get a review, reduce the PR to 300 files or fewer by splitting it into smaller PRs or changing its base branch.

Usage-priced reviews support at most 300 files.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Advanced

Run ID: cf4e5950-cdc8-4935-a7a6-d1c5c883df56

📥 Commits

Reviewing files that changed from the base of the PR and between a433d39 and c1af925.

⛔ Files ignored due to path filters (40)
  • .github/pr-assets/codex-quota-pending.png is excluded by !**/*.png
  • .github/pr-assets/codex-quota-recovered.png is excluded by !**/*.png
  • devlog/_fin/260818_260818-zcode-client/020_gui_zcode_tab.png is excluded by !**/*.png
  • devlog/_fin/260818_260818-zcode-client/021_zcode_e2e_live.png is excluded by !**/*.png
  • devlog/_fin/260818_fastwire_b2_openrouter/evidence/010_logs_openrouter_priority_lower_bound.png is excluded by !**/*.png
  • devlog/_fin/260818_fastwire_b2_xai/evidence/010_logs_priority_lower_bound.png is excluded by !**/*.png
  • devlog/_fin/260820_bug_pr_backlog_consolidation/assets/2157-logs-intercepted-badge.png is excluded by !**/*.png
  • devlog/_fin/260820_bug_pr_backlog_consolidation/assets/2157-logs-intercepted-filtered.png is excluded by !**/*.png
  • devlog/_fin/260820_sidecar_selection_unification/assets/l4-websearch-picker-filtered.png is excluded by !**/*.png
  • devlog/_fin/260820_sidecar_selection_unification/assets/vision_routed_dropdown.png is excluded by !**/*.png
  • devlog/_fin/260822_260822-gui-sidecar-layout-dvh/evidence/after-aligned.jpg is excluded by !**/*.jpg
  • devlog/_fin/260822_260822-gui-sidecar-layout-dvh/evidence/before-collapse.jpg is excluded by !**/*.jpg
  • devlog/_fin/260827_remote_hub/assets/gui-p4-dashboard.png is excluded by !**/*.png
  • devlog/_fin/260830_sidecar_control_band/evidence/010-after-ko-1024.png is excluded by !**/*.png
  • devlog/_fin/260830_sidecar_control_band/evidence/010-after-ko-1440.png is excluded by !**/*.png
  • devlog/_fin/260830_sidecar_control_band/evidence/010-before-ko-1024.png is excluded by !**/*.png
  • devlog/_fin/260830_sidecar_control_band/evidence/010-before-ko-1440.png is excluded by !**/*.png
  • devlog/_fin/260830_sidecar_control_band/evidence/020-after-en-1600.png is excluded by !**/*.png
  • devlog/_fin/260830_sidecar_control_band/evidence/020-after-ko-1024.png is excluded by !**/*.png
  • devlog/_fin/260830_sidecar_control_band/evidence/020-after-ko-1440.png is excluded by !**/*.png
  • devlog/_fin/260830_sidecar_control_band/evidence/020-after-ru-1440.png is excluded by !**/*.png
  • devlog/_fin/260902_cursor_local_models_schema/011_effort_control.png is excluded by !**/*.png
  • devlog/_fin/260902_cursor_local_models_schema/012_effort_ladder.png is excluded by !**/*.png
  • devlog/_fin/260902_cursor_local_models_schema/013_high_turn.png is excluded by !**/*.png
  • devlog/_fin/260902_cursor_local_models_schema/031_context_selector.png is excluded by !**/*.png
  • devlog/_fin/260902_cursor_local_models_schema/032_context_options.png is excluded by !**/*.png
  • devlog/_fin/260903_muse_provider_parity/assets/021_observed_age_render.png is excluded by !**/*.png
  • devlog/_fin/260903_muse_release_train/021_meta_mark_screenshot.png is excluded by !**/*.png
  • devlog/_fin/260904_codex_set_head_and_logo/assets/010_after_850_wrapped.png is excluded by !**/*.png
  • devlog/_fin/260904_codex_set_head_and_logo/assets/010_before_850_clipped.png is excluded by !**/*.png
  • devlog/_fin/260904_codex_set_head_and_logo/assets/020_nav_codex_mark_dark.png is excluded by !**/*.png
  • devlog/_fin/260904_codex_set_head_and_logo/assets/020_nav_codex_mark_light.png is excluded by !**/*.png
  • devlog/_fin/260904_logs_cost_effort_polish/assets/020_logs_ko_after.png is excluded by !**/*.png
  • devlog/_fin/260904_main_card_badge_parity/evidence/main-card-badges.png is excluded by !**/*.png
  • devlog/_fin/260904_providers_home_and_quota_refresh/assets/010_overview_refresh_all_quotas.png is excluded by !**/*.png
  • devlog/_fin/260904_providers_home_and_quota_refresh/assets/020_brand_home_dashboard.png is excluded by !**/*.png
  • devlog/_fin/260904_triage_gap_closure/assets/010_codex_set_head_relocated.png is excluded by !**/*.png
  • devlog/_fin/260905_admin_token_local_ux/assets/admin-token-dialog-before-after.png is excluded by !**/*.png
  • devlog/_fin/260905_admin_token_local_ux/assets/local-session-notice-before-after.png is excluded by !**/*.png
  • devlog/_fin/260905_grok_responses_default/assets/001_chat_optin.png is excluded by !**/*.png
📒 Files selected for processing (1238)
  • .github/pr-assets/codex-quota-evidence.md
  • AGENTS.md
  • AGENTS_INSTALL.md
  • README.md
  • SECURITY.md
  • bin/ocx.mjs
  • devlog/_fin/260724_gpt_live_hotfix/010_session_header_fix.md
  • devlog/_fin/260802_codex_set_prompt_composer/000_plan.md
  • devlog/_fin/260802_codex_set_prompt_composer/001_prompt_layer_inventory.md
  • devlog/_fin/260802_codex_set_prompt_composer/002_injection_paths_and_presets.md
  • devlog/_fin/260802_codex_set_prompt_composer/003_config_write_semantics.md
  • devlog/_fin/260802_codex_set_prompt_composer/004_surface_inventory.md
  • devlog/_fin/260802_codex_set_prompt_composer/005_ux_design.md
  • devlog/_fin/260802_codex_set_prompt_composer/010_wp1_prompt_layers_core.md
  • devlog/_fin/260802_codex_set_prompt_composer/020_wp2_management_route.md
  • devlog/_fin/260802_codex_set_prompt_composer/021_wp2_amendments.md
  • devlog/_fin/260802_codex_set_prompt_composer/022_empirical_gate_findings.md
  • devlog/_fin/260802_codex_set_prompt_composer/023_stack_scope_presets.md
  • devlog/_fin/260802_codex_set_prompt_composer/030_wp3_page_shell.md
  • devlog/_fin/260802_codex_set_prompt_composer/040_wp4_layer_rows.md
  • devlog/_fin/260802_codex_set_prompt_composer/050_wp5_custom_layers.md
  • devlog/_fin/260802_codex_set_prompt_composer/060_wp6_presets_and_linter.md
  • devlog/_fin/260802_codex_set_prompt_composer/070_wp7_docs_and_verification.md
  • devlog/_fin/260802_codex_set_prompt_composer/080_wp8_stack_publication.md
  • devlog/_fin/260802_codex_set_prompt_composer/090_theme_deferred.md
  • devlog/_fin/260802_codex_set_prompt_composer/091_stack_gate_findings.md
  • devlog/_fin/260805_ssh_app_server_catalog_race/000_plan.md
  • devlog/_fin/260805_ssh_app_server_catalog_race/001_two_host_comparison.md
  • devlog/_fin/260805_ssh_app_server_catalog_race/002_startup_vs_sync_asymmetry.md
  • devlog/_fin/260813_apply_patch_tool_visibility/000_plan.md
  • devlog/_fin/260813_apply_patch_tool_visibility/001_codex_opencodex_survey.md
  • devlog/_fin/260813_apply_patch_tool_visibility/010_decision_and_noop_or_fix.md
  • devlog/_fin/260813_apply_patch_tool_visibility/011_decision_record.md
  • devlog/_fin/260813_apply_patch_tool_visibility/020_push_and_close.md
  • devlog/_fin/260813_bun_canary_dogfood/000_plan.md
  • devlog/_fin/260813_bun_canary_dogfood/010_git_cleanup.md
  • devlog/_fin/260813_bun_canary_dogfood/020_bun_canary.md
  • devlog/_fin/260813_bun_canary_dogfood/030_memory_patches.md
  • devlog/_fin/260813_bun_canary_dogfood/040_verification_deploy.md
  • devlog/_fin/260813_bun_canary_dogfood/090_terminal.md
  • devlog/_fin/260813_openai_chat_baseurl_normalize/000_plan.md
  • devlog/_fin/260813_openai_chat_baseurl_normalize/010_normalize_chat_baseurl.md
  • devlog/_fin/260814_bug_resolution_campaign/000_plan.md
  • devlog/_fin/260814_bug_resolution_campaign/001_audit_inventory.md
  • devlog/_fin/260814_bug_resolution_campaign/002_merge_train_analysis.md
  • devlog/_fin/260814_bug_resolution_campaign/003_pr_split_decisions.md
  • devlog/_fin/260814_bug_resolution_campaign/010_wave1_small_p0_invariants.md
  • devlog/_fin/260814_bug_resolution_campaign/020_wave2_windows_service.md
  • devlog/_fin/260814_bug_resolution_campaign/030_wave3_cursor.md
  • devlog/_fin/260814_bug_resolution_campaign/040_wave4_oauth_config_security.md
  • devlog/_fin/260814_bug_resolution_campaign/050_wave5_provider_capability.md
  • devlog/_fin/260814_bug_resolution_campaign/060_wave6_ci_bun14.md
  • devlog/_fin/260814_bug_resolution_campaign/090_terminal.md
  • devlog/_fin/260814_usage_memory_roadmap/000_plan.md
  • devlog/_fin/260814_usage_memory_roadmap/010_m0_1_input_admission.md
  • devlog/_fin/260814_usage_memory_roadmap/020_m0_2_continuation_dedup.md
  • devlog/_fin/260814_usage_memory_roadmap/030_m0_3_provider_delivery.md
  • devlog/_fin/260814_usage_memory_roadmap/040_m0_4_memory_recovery.md
  • devlog/_fin/260814_usage_memory_roadmap/050_m0_5_nonjson_depth_cap.md
  • devlog/_fin/260814_usage_memory_roadmap/060_u1_segmented_writer.md
  • devlog/_fin/260814_usage_memory_roadmap/070_u2_sqlite_projector.md
  • devlog/_fin/260814_usage_memory_roadmap/080_u3_projection_api.md
  • devlog/_fin/260814_usage_memory_roadmap/090_terminal.md
  • devlog/_fin/260816_undeclared_tool_invocation_contract/000_research.md
  • devlog/_fin/260818_260818-zcode-client/000_plan.md
  • devlog/_fin/260818_260818-zcode-client/010_phase1.md
  • devlog/_fin/260818_fastwire_b2_openrouter/evidence/README.md
  • devlog/_fin/260818_fastwire_b2_xai/evidence/README.md
  • devlog/_fin/260819_response_state_temp_reclaim/000_plan.md
  • devlog/_fin/260819_response_state_temp_reclaim/001_audit_round1.md
  • devlog/_fin/260819_response_state_temp_reclaim/002_audit_round1_late.md
  • devlog/_fin/260819_response_state_temp_reclaim/010_phase1_periodic_sweeper.md
  • devlog/_fin/260819_response_state_temp_reclaim/011_audit_round2.md
  • devlog/_fin/260819_response_state_temp_reclaim/012_phase1_verification.md
  • devlog/_fin/260819_response_state_temp_reclaim/020_phase2_doctor_reclaim.md
  • devlog/_fin/260819_response_state_temp_reclaim/021_audit_round3.md
  • devlog/_fin/260819_response_state_temp_reclaim/022_phase2_verification.md
  • devlog/_fin/260819_triage_execution/000_plan.md
  • devlog/_fin/260819_triage_execution/010_env_key_contract.md
  • devlog/_fin/260819_triage_execution/020_remote_reasoning_leak_rca.md
  • devlog/_fin/260819_triage_execution/030_outcome.md
  • devlog/_fin/260820_bug_pr_backlog_consolidation/000_research_inventory.md
  • devlog/_fin/260820_bug_pr_backlog_consolidation/010_layer1_bearer_admission_2132.md
  • devlog/_fin/260820_bug_pr_backlog_consolidation/020_layer2_responses_id_backfill_2131.md
  • devlog/_fin/260820_bug_pr_backlog_consolidation/030_sibling_prompt_cache_retention.md
  • devlog/_fin/260820_bug_pr_backlog_consolidation/040_sibling_routing_capability.md
  • devlog/_fin/260820_bug_pr_backlog_consolidation/050_sibling_k12_short_window.md
  • devlog/_fin/260820_bug_pr_backlog_consolidation/060_supersede_and_close_operations.md
  • devlog/_fin/260820_bug_pr_backlog_consolidation/070_execution_log.md
  • devlog/_fin/260820_bug_pr_backlog_consolidation/080_residual_dispositions.md
  • devlog/_fin/260820_bug_pr_backlog_consolidation/090_merge_log.md
  • devlog/_fin/260820_bug_pr_backlog_consolidation/100_release_audit.md
  • devlog/_fin/260820_bug_pr_backlog_consolidation/100_release_safety_audit.md
  • devlog/_fin/260820_bug_pr_backlog_consolidation/110_three_bug_issues.md
  • devlog/_fin/260820_bug_pr_backlog_consolidation/120_release_2280.md
  • devlog/_fin/260820_sidecar_selection_unification/000_unit_overview.md
  • devlog/_fin/260820_sidecar_selection_unification/000_wp0_branch_worktree_cleanup.md
  • devlog/_fin/260820_sidecar_selection_unification/001_research_current_state.md
  • devlog/_fin/260820_sidecar_selection_unification/002_protocol_research.md
  • devlog/_fin/260820_sidecar_selection_unification/003_grok_tools_research.md
  • devlog/_fin/260820_sidecar_selection_unification/010_layer1_sidecar_auth.md
  • devlog/_fin/260820_sidecar_selection_unification/020_layer2_picker_candidates.md
  • devlog/_fin/260820_sidecar_selection_unification/030_layer3_websearch_slots.md
  • devlog/_fin/260820_sidecar_selection_unification/031_future_backend_research.md
  • devlog/_fin/260820_sidecar_selection_unification/040_layer4_write_gates_gui.md
  • devlog/_fin/260820_sidecar_selection_unification/050_layer5_cli_and_final.md
  • devlog/_fin/260820_sidecar_selection_unification/060_layer6_backend_union.md
  • devlog/_fin/260820_sidecar_selection_unification/070_layer7_xai_executor.md
  • devlog/_fin/260820_sidecar_selection_unification/080_layer8_gemini_executor.md
  • devlog/_fin/260820_sidecar_selection_unification/090_layer9_exa_executor.md
  • devlog/_fin/260820_sidecar_selection_unification/100_chat_default_regression.md
  • devlog/_fin/260820_sidecar_selection_unification/110_global_merge_order.md
  • devlog/_fin/260820_sidecar_selection_unification/120_sidecar_chain_merge.md
  • devlog/_fin/260820_sidecar_selection_unification/130_xai_responses_optin_switch.md
  • devlog/_fin/260820_sidecar_selection_unification/140_release_prep.md
  • devlog/_fin/260820_sidecar_selection_unification/141_release_prep_artifact.md
  • devlog/_fin/260820_sidecar_selection_unification/150_lidge_final_gate.md
  • devlog/_fin/260820_sidecar_selection_unification/160_vision_external_research.md
  • devlog/_fin/260820_sidecar_selection_unification/170_vision_backend_union.md
  • devlog/_fin/260820_sidecar_selection_unification/180_vision_describe_executors.md
  • devlog/_fin/260820_sidecar_selection_unification/190_vision_surfaces_and_delivery.md
  • devlog/_fin/260821_260821-model-catalog-refresh/000_plan.md
  • devlog/_fin/260821_260821-model-catalog-refresh/010_phase1.md
  • devlog/_fin/260821_260821-windows-picker-full-restart/000_plan.md
  • devlog/_fin/260821_260821-windows-picker-full-restart/010_phase1.md
  • devlog/_fin/260822_260822-bun14-followup-memory/000_plan.md
  • devlog/_fin/260822_260822-bun14-followup-memory/000_research.md
  • devlog/_fin/260822_260822-bun14-followup-memory/010_memory_diagnostics.md
  • devlog/_fin/260822_260822-bun14-followup-memory/020_watchdog_gc_relief.md
  • devlog/_fin/260822_260822-bun14-followup-memory/030_smol_workers.md
  • devlog/_fin/260822_260822-bun14-followup-memory/040_macmini_measurement.md
  • devlog/_fin/260822_260822-bun14-followup-memory/090_terminal.md
  • devlog/_fin/260822_260822-gui-sidecar-layout-dvh/000_plan.md
  • devlog/_fin/260822_260822-gui-sidecar-layout-dvh/010_phase1.md
  • devlog/_fin/260822_260822-gui-sidecar-layout-dvh/020_phase2.md
  • devlog/_fin/260822_260822-gui-sidecar-layout-dvh/030_phase3.md
  • devlog/_fin/260822_260822-gui-sidecar-layout-dvh/040_phase4.md
  • devlog/_fin/260822_260822-gui-sidecar-layout-dvh/050_execution.md
  • devlog/_fin/260822_260822-gui-sidecar-layout-dvh/060_container_queries.md
  • devlog/_fin/260822_backlog_disposition_program/000_plan.md
  • devlog/_fin/260822_backlog_disposition_program/001_baseline_verifier_evidence.md
  • devlog/_fin/260822_backlog_disposition_program/002_audit_synthesis.md
  • devlog/_fin/260822_backlog_disposition_program/003_live_drift_and_2360.md
  • devlog/_fin/260822_backlog_disposition_program/010_wp1_green_ready_merges.md
  • devlog/_fin/260822_backlog_disposition_program/011_wp1_execution_record.md
  • devlog/_fin/260822_backlog_disposition_program/020_wp2_changes_requested_rebuilds.md
  • devlog/_fin/260822_backlog_disposition_program/021_wp2_execution_record.md
  • devlog/_fin/260822_backlog_disposition_program/030_wp3_issue_2316_wait_agent_timeout.md
  • devlog/_fin/260822_backlog_disposition_program/040_wp4_issue_2292_windows_picker.md
  • devlog/_fin/260822_backlog_disposition_program/041_wp4_execution_record.md
  • devlog/_fin/260822_backlog_disposition_program/050_wp5_issue_2221_native_main_refresh.md
  • devlog/_fin/260822_backlog_disposition_program/060_wp6_issue_1049_presubstrate_home_adoption.md
  • devlog/_fin/260822_backlog_disposition_program/061_wp6_deferral_record.md
  • devlog/_fin/260822_backlog_disposition_program/070_wp7_bun14_memory_stack_retarget.md
  • devlog/_fin/260822_backlog_disposition_program/071_wp7_execution_record.md
  • devlog/_fin/260822_backlog_disposition_program/080_wp8_conflicting_and_remaining.md
  • devlog/_fin/260822_backlog_disposition_program/081_wp8_execution_and_reconciliation.md
  • devlog/_fin/260822_backlog_disposition_program/090_wp9_new_pr_disposition.md
  • devlog/_fin/260822_cli_usage_cost_query/000_unit_overview.md
  • devlog/_fin/260822_cli_usage_cost_query/001_current_state_inventory.md
  • devlog/_fin/260822_cli_usage_cost_query/010_data_layer.md
  • devlog/_fin/260822_cli_usage_cost_query/020_api_layer.md
  • devlog/_fin/260822_cli_usage_cost_query/021_audit_amendments.md
  • devlog/_fin/260822_cli_usage_cost_query/030_cli_layer.md
  • devlog/_fin/260822_cli_usage_cost_query/031_live_evidence.md
  • devlog/_fin/260822_cli_usage_cost_query/040_verification_and_pr.md
  • devlog/_fin/260822_dev_release_readiness/000_plan.md
  • devlog/_fin/260822_dev_release_readiness/001_delta_inventory.md
  • devlog/_fin/260822_dev_release_readiness/002_risk_matrix.md
  • devlog/_fin/260822_dev_release_readiness/009_roadmap_lock.md
  • devlog/_fin/260822_dev_release_readiness/010_wp4_findings.md
  • devlog/_fin/260822_dev_release_readiness/090_go_verdict.md
  • devlog/_fin/260823_owner_backlog_closeout/000_inventory_and_roadmap.md
  • devlog/_fin/260823_owner_backlog_closeout/001_reviewer_evidence.md
  • devlog/_fin/260823_owner_backlog_closeout/010_wp1_pr2439_contract_manifest.md
  • devlog/_fin/260823_owner_backlog_closeout/020_wp2_pr2437_history_manifest.md
  • devlog/_fin/260823_owner_backlog_closeout/030_wp3_pr2435_fetch_helper_boundary.md
  • devlog/_fin/260823_owner_backlog_closeout/040_wp4_pr2433_combo_failover.md
  • devlog/_fin/260823_owner_backlog_closeout/050_wp5_pr2387_process_state.md
  • devlog/_fin/260823_owner_backlog_closeout/060_wp6_pr2380_provider_validation.md
  • devlog/_fin/260823_owner_backlog_closeout/070_wp4b_exactly_once_terminal.md
  • devlog/_fin/260823_owner_backlog_closeout/080_wp7_issue2392_auth_error_mapping.md
  • devlog/_fin/260823_owner_backlog_closeout/090_wp8_issue2443_wait_coercion.md
  • devlog/_fin/260823_owner_backlog_closeout/100_wp9_verdict_only_issues.md
  • devlog/_fin/260823_owner_backlog_closeout/110_wp10_roadmap_issue_dispositions.md
  • devlog/_fin/260823_owner_backlog_closeout/120_wp11_issue1702_combo_quota.md
  • devlog/_fin/260823_owner_backlog_closeout/900_closing_reconciliation.md
  • devlog/_fin/260824_v2_32_1_hotfix_train/000_baseline_scope_and_roadmap.md
  • devlog/_fin/260824_v2_32_1_hotfix_train/001_reviewer_lane_evidence.md
  • devlog/_fin/260824_v2_32_1_hotfix_train/010_wp1_dev_fastforward_to_release_lineage.md
  • devlog/_fin/260824_v2_32_1_hotfix_train/020_wp3_pr2483_anthropic_id_classification.md
  • devlog/_fin/260824_v2_32_1_hotfix_train/030_wp4_pr2481_selectedmodels_slug_equivalence.md
  • devlog/_fin/260824_v2_32_1_hotfix_train/040_wp5_pr2473_oversized_ws_transport.md
  • devlog/_fin/260824_v2_32_1_hotfix_train/050_wp6_pr2477_namespace_alias_authorization.md
  • devlog/_fin/260824_v2_32_1_hotfix_train/060_wp7_pr2476_snapshot_write_amplification.md
  • devlog/_fin/260824_v2_32_1_hotfix_train/070_wp2_pr2427_parallel_test_runner.md
  • devlog/_fin/260824_v2_32_1_hotfix_train/080_wp8_freeze_verification_and_go_nogo.md
  • devlog/_fin/260824_v2_32_1_hotfix_train/090_wp9_issue2472_mixed_sequence_regression.md
  • devlog/_fin/260824_v2_32_1_hotfix_train/900_go_nogo_readiness_report.md
  • devlog/_fin/260825_oauth_login_ux/000_baseline_and_scope.md
  • devlog/_fin/260825_oauth_login_ux/001_current_state_inventory.md
  • devlog/_fin/260825_oauth_login_ux/002_plan_audit.md
  • devlog/_fin/260825_oauth_login_ux/003_delivery_map.md
  • devlog/_fin/260825_oauth_login_ux/010_wp2_shared_login_hint.md
  • devlog/_fin/260825_oauth_login_ux/020_wp3_first_add_parity.md
  • devlog/_fin/260825_oauth_login_ux/030_wp4_browser_open_control.md
  • devlog/_fin/260825_oauth_login_ux/040_wp5_paste_normalization.md
  • devlog/_fin/260825_oauth_login_ux/090_merge_train_closeout.md
  • devlog/_fin/260825_owner_backlog_and_bugpr_closeout/000_research_snapshot.md
  • devlog/_fin/260825_owner_backlog_and_bugpr_closeout/001_audit_response.md
  • devlog/_fin/260825_owner_backlog_and_bugpr_closeout/010_wp2_merge_train_remainder.md
  • devlog/_fin/260825_owner_backlog_and_bugpr_closeout/020_wp4_google_lane.md
  • devlog/_fin/260825_owner_backlog_and_bugpr_closeout/030_wp5_hygiene_and_drafts.md
  • devlog/_fin/260825_owner_backlog_and_bugpr_closeout/040_wp6_cursor_catalog.md
  • devlog/_fin/260825_owner_backlog_and_bugpr_closeout/050_wp7_oauth_failover.md
  • devlog/_fin/260825_owner_backlog_and_bugpr_closeout/060_wp8_wp9_cli_and_platform.md
  • devlog/_fin/260825_owner_backlog_and_bugpr_closeout/070_wp10_wp11_slug_and_exec.md
  • devlog/_fin/260825_owner_backlog_and_bugpr_closeout/080_wp12_catalog_ux.md
  • devlog/_fin/260825_owner_backlog_and_bugpr_closeout/090_wp13_architecture.md
  • devlog/_fin/260825_owner_backlog_and_bugpr_closeout/100_wp6_wp8_execution.md
  • devlog/_fin/260825_owner_backlog_and_bugpr_closeout/110_wp7_oauth_failover.md
  • devlog/_fin/260825_owner_backlog_and_bugpr_closeout/111_wp7_audit_response.md
  • devlog/_fin/260825_owner_backlog_and_bugpr_closeout/120_wp5_2497_security_review.md
  • devlog/_fin/260825_owner_backlog_and_bugpr_closeout/130_wp16_late_bug_prs.md
  • devlog/_fin/260825_owner_backlog_and_bugpr_closeout/140_closeout.md
  • devlog/_fin/260825_owner_backlog_and_bugpr_closeout/150_community_bug_sweep.md
  • devlog/_fin/260825_owner_backlog_and_bugpr_closeout/160_terminal_record.md
  • devlog/_fin/260826_backlog_triage/000_snapshot.md
  • devlog/_fin/260826_backlog_triage/010_stale_prs.md
  • devlog/_fin/260826_backlog_triage/020_issue_quick_wins.md
  • devlog/_fin/260826_backlog_triage/030_recommendations.md
  • devlog/_fin/260826_glm53_flash_preseed/000_plan.md
  • devlog/_fin/260826_quota_window_and_backlog/000_plan.md
  • devlog/_fin/260826_quota_window_and_backlog/001_audit_response.md
  • devlog/_fin/260826_quota_window_and_backlog/010_phase1.md
  • devlog/_fin/260826_quota_window_and_backlog/020_phase2.md
  • devlog/_fin/260826_quota_window_and_backlog/030_phase3.md
  • devlog/_fin/260826_quota_window_and_backlog/040_phase4.md
  • devlog/_fin/260826_quota_window_and_backlog/050_phase5.md
  • devlog/_fin/260826_quota_window_and_backlog/060_phase6.md
  • devlog/_fin/260826_quota_window_and_backlog/070_phase7.md
  • devlog/_fin/260826_wp13_disposable_host/010_census.md
  • devlog/_fin/260827_bug_pr_merge_round/000_intake.md
  • devlog/_fin/260827_bug_pr_merge_round/001_pr2694_compile_break.md
  • devlog/_fin/260827_bug_pr_merge_round/002_pr2639_regression.md
  • devlog/_fin/260827_bug_pr_merge_round/003_disposition_matrix.md
  • devlog/_fin/260827_bug_pr_merge_round/004_pr2693_missing_implementation.md
  • devlog/_fin/260827_bug_pr_merge_round/005_audit_corrections.md
  • devlog/_fin/260827_bug_pr_merge_round/006_execution_order.md
  • devlog/_fin/260827_bug_pr_merge_round/007_audit_round2.md
  • devlog/_fin/260827_bug_pr_merge_round/010_lane_l1_commit_then_merge.md
  • devlog/_fin/260827_bug_pr_merge_round/011_wp2_l1_outcome.md
  • devlog/_fin/260827_bug_pr_merge_round/020_lane_l3_cherry_pick.md
  • devlog/_fin/260827_bug_pr_merge_round/021_status_vs_created_at_asymmetry.md
  • devlog/_fin/260827_bug_pr_merge_round/022_l3_audit.md
  • devlog/_fin/260827_bug_pr_merge_round/030_lane_l2_close_squash.md
  • devlog/_fin/260827_bug_pr_merge_round/031_wp4_l2_outcome.md
  • devlog/_fin/260827_bug_pr_merge_round/040_lane_l4_reimplement.md
  • devlog/_fin/260827_bug_pr_merge_round/041_wp5_l4_outcome.md
  • devlog/_fin/260827_bug_pr_merge_round/050_round_closeout.md
  • devlog/_fin/260827_dev_hardening/000_inventory.md
  • devlog/_fin/260827_dev_hardening/010_wp2_version_line.md
  • devlog/_fin/260827_dev_hardening/020_wp3_failover_identity.md
  • devlog/_fin/260827_dev_hardening/030_wp4_locale_docs.md
  • devlog/_fin/260827_dev_hardening/040_wp5_local_gates.md
  • devlog/_fin/260827_dev_hardening/050_wp6_invariant_locks.md
  • devlog/_fin/260827_dev_hardening/060_wp8_launcher_flake.md
  • devlog/_fin/260827_dev_hardening/070_wp7_promotion_readiness.md
  • devlog/_fin/260827_dev_regression_and_prompt_variants/000_plan.md
  • devlog/_fin/260827_dev_regression_and_prompt_variants/001_regression_review.md
  • devlog/_fin/260827_dev_regression_and_prompt_variants/010_wp2_git_attribution_layer.md
  • devlog/_fin/260827_dev_regression_and_prompt_variants/020_wp3_base_variants.md
  • devlog/_fin/260827_dev_regression_and_prompt_variants/021_audit_blockers.md
  • devlog/_fin/260827_dev_regression_and_prompt_variants/030_wp4_docs_and_stack.md
  • devlog/_fin/260827_dev_regression_and_prompt_variants/040_remote_verification_and_wp3_landing.md
  • devlog/_fin/260827_dev_regression_and_prompt_variants/041_wp3_audit_direct.md
  • devlog/_fin/260827_dev_regression_and_prompt_variants/042_wp3_remote_gate_and_landing.md
  • devlog/_fin/260827_igwanu_bug_pr_merge_round/000_plan.md
  • devlog/_fin/260827_igwanu_bug_pr_merge_round/010_phase1.md
  • devlog/_fin/260827_igwanu_bug_pr_merge_round/011_wp1_outcome.md
  • devlog/_fin/260827_igwanu_bug_pr_merge_round/020_phase2.md
  • devlog/_fin/260827_igwanu_bug_pr_merge_round/021_wp2_outcome.md
  • devlog/_fin/260827_igwanu_bug_pr_merge_round/030_phase3.md
  • devlog/_fin/260827_igwanu_bug_pr_merge_round/040_phase4.md
  • devlog/_fin/260827_igwanu_bug_pr_merge_round/041_wp2b_2729_supersede.md
  • devlog/_fin/260827_igwanu_bug_pr_merge_round/050_phase5.md
  • devlog/_fin/260827_igwanu_bug_pr_merge_round/060_phase6.md
  • devlog/_fin/260827_igwanu_bug_pr_merge_round/070_outcome.md
  • devlog/_fin/260827_kiro_subagent_delegation_unblock/000_plan.md
  • devlog/_fin/260827_kiro_subagent_delegation_unblock/010_exec_discovery_preservation.md
  • devlog/_fin/260827_kiro_subagent_delegation_unblock/011_root_cause_nudge_gap.md
  • devlog/_fin/260827_kiro_subagent_delegation_unblock/012_audit_round1_synthesis.md
  • devlog/_fin/260827_kiro_subagent_delegation_unblock/013_wp1_check_evidence.md
  • devlog/_fin/260827_kiro_subagent_delegation_unblock/020_unbounded_kiro_delegation.md
  • devlog/_fin/260827_kiro_subagent_delegation_unblock/030_verification.md
  • devlog/_fin/260827_kiro_subagent_delegation_unblock/040_exec_catalog_priority.md
  • devlog/_fin/260827_kiro_subagent_delegation_unblock/041_wp2_audit_synthesis.md
  • devlog/_fin/260827_kiro_subagent_delegation_unblock/042_wp2_check_evidence.md
  • devlog/_fin/260827_kiro_subagent_delegation_unblock/050_ship.md
  • devlog/_fin/260827_kiro_subagent_delegation_unblock/051_ci_shard4_triage.md
  • devlog/_fin/260827_release_train/000_state_and_decisions.md
  • devlog/_fin/260827_release_train/010_preview_promote.md
  • devlog/_fin/260827_release_train/020_preview_release.md
  • devlog/_fin/260827_release_train/030_main_promote.md
  • devlog/_fin/260827_release_train/040_stable_release.md
  • devlog/_fin/260827_release_train/050_deploy_and_verify.md
  • devlog/_fin/260827_remote_hub/000_research.md
  • devlog/_fin/260827_remote_hub/001_interview.md
  • devlog/_fin/260827_remote_hub/002_audit_r1_synthesis.md
  • devlog/_fin/260827_remote_hub/003_audit_r2_synthesis.md
  • devlog/_fin/260827_remote_hub/010_design.md
  • devlog/_fin/260827_remote_hub/020_roadmap.md
  • devlog/_fin/260827_remote_hub/030_phase1_protocol_catalog.md
  • devlog/_fin/260827_remote_hub/040_phase2_remote_session.md
  • devlog/_fin/260827_remote_hub/050_phase3_connect.md
  • devlog/_fin/260827_remote_hub/060_phase4_two_plane.md
  • devlog/_fin/260827_remote_hub/070_phase5_deploy.md
  • devlog/_fin/260827_remote_hub/080_phase6_hardening.md
  • devlog/_fin/260827_remote_hub/090_dogfood_record.md
  • devlog/_fin/260827_remote_hub/090_terminal.md
  • devlog/_fin/260828_bugpr_fix_and_reimplement/000_plan.md
  • devlog/_fin/260828_bugpr_fix_and_reimplement/010_phase1.md
  • devlog/_fin/260828_bugpr_fix_and_reimplement/020_phase2.md
  • devlog/_fin/260828_bugpr_fix_and_reimplement/021_wp2_wp3_outcome.md
  • devlog/_fin/260828_bugpr_fix_and_reimplement/030_phase3.md
  • devlog/_fin/260828_bugpr_fix_and_reimplement/040_phase4.md
  • devlog/_fin/260828_bugpr_fix_and_reimplement/050_phase5.md
  • devlog/_fin/260828_bugpr_fix_and_reimplement/060_phase6.md
  • devlog/_fin/260828_bugpr_fix_and_reimplement/070_outcome.md
  • devlog/_fin/260828_cursor_ndjson_backlog_train/000_plan.md
  • devlog/_fin/260828_cursor_ndjson_backlog_train/001_backlog_abort_rca.md
  • devlog/_fin/260828_cursor_ndjson_backlog_train/002_cursor_open_defect_inventory.md
  • devlog/_fin/260828_cursor_ndjson_backlog_train/003_roadmap_lock.md
  • devlog/_fin/260828_cursor_ndjson_backlog_train/010_backlog_abort_fix.md
  • devlog/_fin/260828_cursor_ndjson_backlog_train/020_macmini_probe_round.md
  • devlog/_fin/260828_cursor_ndjson_backlog_train/021_probe_results_round1.md
  • devlog/_fin/260828_cursor_ndjson_backlog_train/030_cursor_fixes.md
  • devlog/_fin/260828_cursor_ndjson_backlog_train/031_midstream_echo_fix.md
  • devlog/_fin/260828_cursor_ndjson_backlog_train/040_closure_round.md
  • devlog/_fin/260828_cursor_ndjson_backlog_train/050_merge_train.md
  • devlog/_fin/260828_cursor_umbrella_catalog/000_plan.md
  • devlog/_fin/260828_cursor_umbrella_catalog/001_reference_analysis.md
  • devlog/_fin/260828_cursor_umbrella_catalog/002_current_surface.md
  • devlog/_fin/260828_cursor_umbrella_catalog/003_design.md
  • devlog/_fin/260828_cursor_umbrella_catalog/004_roadmap_lock.md
  • devlog/_fin/260828_cursor_umbrella_catalog/010_capability_core.md
  • devlog/_fin/260828_cursor_umbrella_catalog/020_catalog_integration.md
  • devlog/_fin/260828_cursor_umbrella_catalog/030_closure.md
  • devlog/_fin/260828_quota_reset_detection/000_plan.md
  • devlog/_fin/260828_quota_reset_detection/001_audit_response.md
  • devlog/_fin/260828_quota_reset_detection/002_wp2_audit_response.md
  • devlog/_fin/260828_quota_reset_detection/003_wp3_audit_response.md
  • devlog/_fin/260828_quota_reset_detection/004_wp3_review_response.md
  • devlog/_fin/260828_quota_reset_detection/010_phase2_detection_core.md
  • devlog/_fin/260828_quota_reset_detection/020_phase3_observation_wiring.md
  • devlog/_fin/260828_quota_reset_detection/030_phase4_sinks_and_surface.md
  • devlog/_fin/260828_quota_reset_detection/040_phase5_hardening_delivery.md
  • devlog/_fin/260828_quota_reset_detection/050_activation_evidence.md
  • devlog/_fin/260828_quota_reset_detection/060_closeout.md
  • devlog/_fin/260829_bugpr_lane_h_residual_issues/120_issue_1527_replay_envelope.md
  • devlog/_fin/260829_bugpr_lane_h_residual_issues/130_pr2872_probe_fingerprint.md
  • devlog/_fin/260829_bugpr_lane_h_residual_issues/140_pr2884_shim_backup_matcher.md
  • devlog/_fin/260829_bugpr_lane_h_residual_issues/150_issue_2887_pool_401_refresh.md
  • devlog/_fin/260829_bugpr_lane_h_residual_issues/160_issue_2886_entitlement_client_version.md
  • devlog/_fin/260829_bugpr_lane_h_residual_issues/170_pr2895_pool_401_recovery_budget.md
  • devlog/_fin/260829_green_pr_merge_train/000_plan.md
  • devlog/_fin/260829_green_pr_merge_train/010_wp1_2429_privacy_scan.md
  • devlog/_fin/260829_green_pr_merge_train/020_wp2_2827_expose_header.md
  • devlog/_fin/260829_green_pr_merge_train/090_closeout.md
  • devlog/_fin/260829_gui_dashboard_slop/000_baseline_and_roadmap.md
  • devlog/_fin/260829_gui_dashboard_slop/010_sidecar_pair_alignment.md
  • devlog/_fin/260829_gui_dashboard_slop/011_audit_correction_align_content.md
  • devlog/_fin/260829_gui_dashboard_slop/012_shipped_fix_and_subgrid_postmortem.md
  • devlog/_fin/260829_gui_dashboard_slop/013_final_shipped_and_measurement_lessons.md
  • devlog/_fin/260829_gui_dashboard_slop/020_phantom_grid_track.md
  • devlog/_fin/260829_gui_dashboard_slop/030_dynamic_viewport_units.md
  • devlog/_fin/260829_lane_n_effort_ladder_and_locale_probe/000_units.md
  • devlog/_fin/260830_dev_version_line_bump_pr/000_cause_and_roadmap.md
  • devlog/_fin/260830_dev_version_line_bump_pr/010_version_repair.md
  • devlog/_fin/260830_dev_version_line_bump_pr/020_post_release_bump.md
  • devlog/_fin/260830_dev_version_line_bump_pr/030_ship.md
  • devlog/_fin/260830_lane_o_reset_recovery_parity/000_units.md
  • devlog/_fin/260830_lane_q_2892_gaps_3_4/000_units.md
  • devlog/_fin/260830_lane_r_2941_copilot_vision/000_units.md
  • devlog/_fin/260830_release_readiness_train/000_plan.md
  • devlog/_fin/260830_release_readiness_train/010_wp1_runner_and_hygiene.md
  • devlog/_fin/260830_release_readiness_train/020_wp2_quota_expiry.md
  • devlog/_fin/260830_release_readiness_train/030_wp3_responses_and_config.md
  • devlog/_fin/260830_release_readiness_train/040_wp4_issue_2899_antigravity.md
  • devlog/_fin/260830_release_readiness_train/050_wp5_issue_1298_acl_proof.md
  • devlog/_fin/260830_release_readiness_train/060_wp6_release_gates.md
  • devlog/_fin/260830_release_readiness_train/070_outcome.md
  • devlog/_fin/260830_sidecar_control_band/010_shared_control_band.md
  • devlog/_fin/260831_bug_triage_nonprio70/000_roadmap.md
  • devlog/_fin/260831_bug_triage_nonprio70/001_scan_verdicts.md
  • devlog/_fin/260831_bug_triage_nonprio70/002_audit_round1_synthesis.md
  • devlog/_fin/260831_bug_triage_nonprio70/003_audit_round2_synthesis.md
  • devlog/_fin/260831_bug_triage_nonprio70/004_audit_round3_synthesis.md
  • devlog/_fin/260831_bug_triage_nonprio70/070_outcome.md
  • devlog/_fin/260831_prio70_entitlement_and_spill_train/000_plan.md
  • devlog/_fin/260831_prio70_entitlement_and_spill_train/001_research_3022_entitlement_floor.md
  • devlog/_fin/260831_prio70_entitlement_and_spill_train/002_research_3023_roster_ttl.md
  • devlog/_fin/260831_prio70_entitlement_and_spill_train/003_audit_3018_spill_drain.md
  • devlog/_fin/260831_prio70_entitlement_and_spill_train/004_audit_round1_synthesis.md
  • devlog/_fin/260831_prio70_entitlement_and_spill_train/005_audit_round2_synthesis.md
  • devlog/_fin/260831_prio70_entitlement_and_spill_train/006_audit_round3_synthesis.md
  • devlog/_fin/260831_prio70_entitlement_and_spill_train/007_audit_round4_wp1_plan.md
  • devlog/_fin/260831_prio70_entitlement_and_spill_train/008_audit_round5_wp2_plan.md
  • devlog/_fin/260831_prio70_entitlement_and_spill_train/009_audit_rounds6to8_wp2_and_wp3_review.md
  • devlog/_fin/260831_prio70_entitlement_and_spill_train/010_wp1_entitlement_floor_and_empty_roster.md
  • devlog/_fin/260831_prio70_entitlement_and_spill_train/020_wp2_roster_ttl_refresh.md
  • devlog/_fin/260831_prio70_entitlement_and_spill_train/030_wp3_spill_publication_drain.md
  • devlog/_fin/260831_prio70_entitlement_and_spill_train/040_wp4_entitlement_diagnostic.md
  • devlog/_fin/260831_prio70_entitlement_and_spill_train/050_wp5_tristate_entitlement_authority.md
  • devlog/_fin/260831_prio70_entitlement_and_spill_train/060_wp6_ensure_freshness.md
  • devlog/_fin/260831_prio70_entitlement_and_spill_train/070_outcome.md
  • devlog/_fin/260831_prio70_train_round2/000_plan.md
  • devlog/_fin/260831_prio70_train_round2/001_research_scan_evidence.md
  • devlog/_fin/260831_prio70_train_round2/002_audit_round1_synthesis.md
  • devlog/_fin/260831_prio70_train_round2/003_audit_round2_synthesis.md
  • devlog/_fin/260831_prio70_train_round2/004_audit_round3_synthesis.md
  • devlog/_fin/260831_prio70_train_round2/005_audit_round4_synthesis.md
  • devlog/_fin/260831_prio70_train_round2/006_audit_round5_synthesis.md
  • devlog/_fin/260831_prio70_train_round2/007_audit_round6_synthesis.md
  • devlog/_fin/260831_prio70_train_round2/008_audit_round7_synthesis.md
  • devlog/_fin/260831_prio70_train_round2/009_audit_round8_synthesis.md
  • devlog/_fin/260831_prio70_train_round2/010_audit_round9_synthesis.md
  • devlog/_fin/260831_prio70_train_round2/010_wp1_web_search_query_field.md
  • devlog/_fin/260831_prio70_train_round2/011_audit_round10_synthesis.md
  • devlog/_fin/260831_prio70_train_round2/020_wp2_spill_disk_budget.md
  • devlog/_fin/260831_prio70_train_round2/030_wp3_forked_rollout_restore.md
  • devlog/_fin/260831_prio70_train_round2/040_wp4_terminal_short_window.md
  • devlog/_fin/260831_prio70_train_round2/050_wp5_stop_failure_taxonomy.md
  • devlog/_fin/260831_prio70_train_round2/051_wp5_outcome.md
  • devlog/_fin/260831_prio70_train_round2/060_wp6_wham_401_refresh.md
  • devlog/_fin/260831_prio70_train_round2/061_wp6_outcome.md
  • devlog/_fin/260831_prio70_train_round2/070_outcome.md
  • devlog/_fin/260831_prio70_train_round2/070_rescan.md
  • devlog/_fin/260901_release_train_2390/000_plan.md
  • devlog/_fin/260901_release_train_2390/010_wp1_regression_audit.md
  • devlog/_fin/260901_release_train_2390/020_wp2_preview_promotion.md
  • devlog/_fin/260901_release_train_2390/030_wp3_main_promotion.md
  • devlog/_fin/260901_release_train_2390/040_wp4_publish.md
  • devlog/_fin/260901_release_train_2390/050_audit_verdicts.md
  • devlog/_fin/260901_release_train_2390/070_outcome.md
  • devlog/_fin/260901_release_train_2390/080_post_release_repairs.md
  • devlog/_fin/260901_remote_hub_restack/000_research.md
  • devlog/_fin/260901_remote_hub_restack/002_audit_r1_synthesis.md
  • devlog/_fin/260901_remote_hub_restack/003_review_thread_ledger.md
  • devlog/_fin/260901_remote_hub_restack/010_wp1_design_contract.md
  • devlog/_fin/260901_remote_hub_restack/011_wp1_outcome.md
  • devlog/_fin/260901_remote_hub_restack/020_wp2_p1_protocol_catalog.md
  • devlog/_fin/260901_remote_hub_restack/021_wp2_outcome.md
  • devlog/_fin/260901_remote_hub_restack/030_wp3_p2_remote_session.md
  • devlog/_fin/260901_remote_hub_restack/031_wp3_outcome.md
  • devlog/_fin/260901_remote_hub_restack/040_wp4_p3_connect.md
  • devlog/_fin/260901_remote_hub_restack/041_wp4_outcome.md
  • devlog/_fin/260901_remote_hub_restack/050_wp5_p4_two_plane.md
  • devlog/_fin/260901_remote_hub_restack/051_wp5_outcome.md
  • devlog/_fin/260901_remote_hub_restack/060_wp6_p5_deploy.md
  • devlog/_fin/260901_remote_hub_restack/061_wp6_outcome.md
  • devlog/_fin/260901_remote_hub_restack/070_wp7_p6_hardening.md
  • devlog/_fin/260901_remote_hub_restack/071_wp7_outcome.md
  • devlog/_fin/260901_remote_hub_restack/072_stack_state.md
  • devlog/_fin/260901_remote_hub_restack/080_wp8_stack_integrity.md
  • devlog/_fin/260901_remote_hub_restack/081_wp8_ci_repairs.md
  • devlog/_fin/260901_remote_hub_restack/090_outcome.md
  • devlog/_fin/260901_remote_hub_restack/100_polish_audit.md
  • devlog/_fin/260901_remote_hub_restack/101_polish_outcome.md
  • devlog/_fin/260901_remote_hub_restack/102_axis_ledger.md
  • devlog/_fin/260901_remote_hub_restack/110_merge_train_plan.md
  • devlog/_fin/260901_remote_hub_restack/111_wp1_3147_outcome.md
  • devlog/_fin/260901_remote_hub_restack/112_wp2_order_reversal.md
  • devlog/_fin/260901_remote_hub_restack/120_merge_train_outcome.md
  • devlog/_fin/260901_remote_hub_restack/121_open_threads_after_merge.md
  • devlog/_fin/260901_remote_hub_restack/122_post_merge_verification.md
  • devlog/_fin/260901_remote_hub_restack/130_final_state.md
  • devlog/_fin/260901_remote_hub_restack/131_worktree_state.md
  • devlog/_fin/260901_remote_hub_restack/140_objective_closeout.md
  • devlog/_fin/260901_remote_hub_restack/141_review_fix_verification.md
  • devlog/_fin/260901_remote_hub_restack/150_unit_closed.md
  • devlog/_fin/260902_admin_merge_3190/000_plan.md
  • devlog/_fin/260902_admin_merge_3190/002_audit_round1.md
  • devlog/_fin/260902_admin_merge_3190/010_wp1_anonymize_home_paths.md
  • devlog/_fin/260902_admin_merge_3190/011_wp1_stale_check.md
  • devlog/_fin/260902_admin_merge_3190/020_wp2_rebase_merge_3190.md
  • devlog/_fin/260902_admin_merge_3190/021_wp2_cherry_pick.md
  • devlog/_fin/260902_admin_merge_3190/030_wp3_inventory_refresh.md
  • devlog/_fin/260902_admin_merge_3190/031_wp3_live_inventory.md
  • devlog/_fin/260902_bug_pr_closeout_stack/000_plan.md
  • devlog/_fin/260902_bug_pr_closeout_stack/010_phase1.md
  • devlog/_fin/260902_bug_pr_closeout_stack/011_wp1_landing.md
  • devlog/_fin/260902_bug_pr_closeout_stack/020_phase2.md
  • devlog/_fin/260902_bug_pr_closeout_stack/021_wp2_landing.md
  • devlog/_fin/260902_bug_pr_closeout_stack/030_phase3.md
  • devlog/_fin/260902_bug_pr_closeout_stack/031_wp3_disposition.md
  • devlog/_fin/260902_bug_pr_closeout_stack/040_phase4.md
  • devlog/_fin/260902_bug_pr_closeout_stack/050_phase5.md
  • devlog/_fin/260902_bug_pr_closeout_stack/060_phase6.md
  • devlog/_fin/260902_bug_pr_closeout_stack/070_closeout.md
  • devlog/_fin/260902_cursor_local_models_schema/000_research.md
  • devlog/_fin/260902_cursor_local_models_schema/005_audit_round1.md
  • devlog/_fin/260902_cursor_local_models_schema/010_layer1_models_capabilities.md
  • devlog/_fin/260902_cursor_local_models_schema/015_layer1_live_evidence.md
  • devlog/_fin/260902_cursor_local_models_schema/016_layer1_check.md
  • devlog/_fin/260902_cursor_local_models_schema/017_impl_review.md
  • devlog/_fin/260902_cursor_local_models_schema/020_layer2_docs_guide.md
  • devlog/_fin/260902_cursor_local_models_schema/021_pr_rollup.json
  • devlog/_fin/260902_cursor_local_models_schema/022_stack_closeout.md
  • devlog/_fin/260902_cursor_local_models_schema/030_max_mode_context_selector.md
  • devlog/_fin/260902_cursor_unified_identity/000_plan.md
  • devlog/_fin/260902_cursor_unified_identity/001_current_state.md
  • devlog/_fin/260902_cursor_unified_identity/002_audit_round1.md
  • devlog/_fin/260902_cursor_unified_identity/010_wp2_umbrella_seed.md
  • devlog/_fin/260902_cursor_unified_identity/020_wp3_codex_fast_toggle.md
  • devlog/_fin/260902_cursor_unified_identity/030_wp4_global_fast_switch.md
  • devlog/_fin/260902_cursor_unified_identity/040_residuals.md
  • devlog/_fin/260902_multiplatform_qa_and_gui/000_host_inventory.md
  • devlog/_fin/260902_multiplatform_qa_and_gui/001_qa_evidence_layout.md
  • devlog/_fin/260902_multiplatform_qa_and_gui/002_qa_verdicts.md
  • devlog/_fin/260902_multiplatform_qa_and_gui/010_wp2_gui_design.md
  • devlog/_fin/260902_multiplatform_qa_and_gui/011_wp2_outcome.md
  • devlog/_fin/260902_multiplatform_qa_and_gui/020_wp3_wp5_deploy_qa.md
  • devlog/_fin/260902_multiplatform_qa_and_gui/021_wp3_macmini_outcome.md
  • devlog/_fin/260902_multiplatform_qa_and_gui/022_wp4_linux_macbook_outcome.md
  • devlog/_fin/260902_multiplatform_qa_and_gui/023_wp5_windows_outcome.md
  • devlog/_fin/260902_multiplatform_qa_and_gui/090_outcome.md
  • devlog/_fin/260902_multiplatform_qa_and_gui/091_wp6_merge_outcome.md
  • devlog/_fin/260902_multiplatform_qa_and_gui/092_objective_closeout.md
  • devlog/_fin/260902_windows_ci_release/000_inventory.md
  • devlog/_fin/260902_windows_ci_release/010_async_acl_lifecycle.md
  • devlog/_fin/260902_windows_ci_release/011_wp2_evidence.md
  • devlog/_fin/260902_windows_ci_release/020_fsync_spill_bump.md
  • devlog/_fin/260902_windows_ci_release/030_regression_audit.md
  • devlog/_fin/260902_windows_ci_release/040_promote_and_bump.md
  • devlog/_fin/260902_windows_ci_release/070_outcome.md
  • devlog/_fin/260902_windows_ci_release/080_release_automation_followups.md
  • devlog/_fin/260903_bug_drawdown_bcda/000_plan.md
  • devlog/_fin/260903_bug_drawdown_bcda/010_phase1.md
  • devlog/_fin/260903_bug_drawdown_bcda/020_phase2.md
  • devlog/_fin/260903_bug_drawdown_bcda/030_phase3.md
  • devlog/_fin/260903_bug_drawdown_bcda/040_phase4.md
  • devlog/_fin/260903_bug_drawdown_bcda/050_phase5.md
  • devlog/_fin/260903_bug_drawdown_bcda/060_phase6.md
  • devlog/_fin/260903_bug_drawdown_bcda/070_phase7.md
  • devlog/_fin/260903_bug_drawdown_bcda/080_phase8.md
  • devlog/_fin/260903_bug_drawdown_bcda/090_phase9.md
  • devlog/_fin/260903_bug_drawdown_bcda/100_closeout.md
  • devlog/_fin/260903_contributor_credit_restoration/000_plan.md
  • devlog/_fin/260903_contributor_credit_restoration/010_credits_file.md
  • devlog/_fin/260903_contributor_credit_restoration/020_hygiene_gate.md
  • devlog/_fin/260903_contributor_credit_restoration/030_release_notes.md
  • devlog/_fin/260903_contributor_credit_restoration/100_closeout.md
  • devlog/_fin/260903_gemini_38_rollout/000_plan.md
  • devlog/_fin/260903_gemini_38_rollout/001_vendor_claim_ledger.md
  • devlog/_fin/260903_gemini_38_rollout/002_live_cca_probe.md
  • devlog/_fin/260903_gemini_38_rollout/003_audit_round1_synthesis.md
  • devlog/_fin/260903_gemini_38_rollout/004_no_change_inventory.md
  • devlog/_fin/260903_gemini_38_rollout/005_audit_round2_synthesis.md
  • devlog/_fin/260903_gemini_38_rollout/006_maintainer_review_fold.md
  • devlog/_fin/260903_gemini_38_rollout/007_closeout.md
  • devlog/_fin/260903_gemini_38_rollout/010_wp1_antigravity_core.md
  • devlog/_fin/260903_gemini_38_rollout/020_wp2_metadata_pricing.md
  • devlog/_fin/260903_gemini_38_rollout/030_wp3_peripheral_surfaces.md
  • devlog/_fin/260903_gemini_38_rollout/040_wp4_delivery.md
  • devlog/_fin/260903_gemini_38_rollout/050_followups.md
  • devlog/_fin/260903_muse_provider_parity/000_plan.md
  • devlog/_fin/260903_muse_provider_parity/001_parity_inventory.md
  • devlog/_fin/260903_muse_provider_parity/010_wp1_passive_quota_core.md
  • devlog/_fin/260903_muse_provider_parity/020_wp2_observation_age_ui.md
  • devlog/_fin/260903_muse_provider_parity/030_wp3_parity_closeout.md
  • devlog/_fin/260903_muse_provider_parity/031_wp3_disposition_record.md
  • devlog/_fin/260903_muse_provider_parity/040_wp4_provider_level_quota.md
  • devlog/_fin/260903_muse_release_train/000_plan.md
  • devlog/_fin/260903_muse_release_train/005_audit_round1_synthesis.md
  • devlog/_fin/260903_muse_release_train/010_wp1_regression_review.md
  • devlog/_fin/260903_muse_release_train/011_review_ledger.md
  • devlog/_fin/260903_muse_release_train/020_wp2_muse_mark.md
  • devlog/_fin/260903_muse_release_train/030_wp3_preview_release.md
  • devlog/_fin/260903_muse_release_train/040_wp4_main_release.md
  • devlog/_fin/260903_muse_release_train/050_followups.md
  • devlog/_fin/260903_muse_spark_plan_oauth/000_plan.md
  • devlog/_fin/260903_muse_spark_plan_oauth/001_vendor_claim_ledger.md
  • devlog/_fin/260903_muse_spark_plan_oauth/002_plan_credential_feasibility.md
  • devlog/_fin/260903_muse_spark_plan_oauth/003_credential_and_quota_measurements.md
  • devlog/_fin/260903_muse_spark_plan_oauth/004_muse_quota_emission_questions.md
  • devlog/_fin/260903_muse_spark_plan_oauth/010_wp1_direct_provider.md
  • devlog/_fin/260903_muse_spark_plan_oauth/020_wp2_device_oauth.md
  • devlog/_fin/260903_muse_spark_plan_oauth/030_wp3_delivery.md
  • devlog/_fin/260903_muse_spark_plan_oauth/040_wp4_muse_oauth_provider.md
  • devlog/_fin/260903_muse_spark_plan_oauth/050_wp5_passive_muse_quota.md
  • devlog/_fin/260903_responses_passthrough/000_research.md
  • devlog/_fin/260903_responses_passthrough/010_wp2_raw_usage_bridge.md
  • devlog/_fin/260903_responses_passthrough/020_wp3_coverage.md
  • devlog/_fin/260903_responses_passthrough/030_wp4_prs.md
  • devlog/_fin/260903_voice_sideband_regression/000_research.md
  • devlog/_fin/260903_voice_sideband_regression/010_wp2_inject_realtime_ws_override.md
  • devlog/_fin/260903_voice_sideband_regression/020_wp3_proxy_affinity_probe.md
  • devlog/_fin/260903_voice_sideband_regression/021_wp3_probe_transcript.md
  • devlog/_fin/260903_voice_sideband_regression/030_wp4_docs_pr.md
  • devlog/_fin/260903_voice_sideband_regression/040_d_record.md
  • devlog/_fin/260904_anthropic_effort_ladder/000_research.md
  • devlog/_fin/260904_anthropic_effort_ladder/010_registry_ladder.md
  • devlog/_fin/260904_anthropic_effort_ladder/020_verification_and_pr.md
  • devlog/_fin/260904_anthropic_effort_ladder/030_related_empty_ladders.md
  • devlog/_fin/260904_astra_release_alignment/000_research.md
  • devlog/_fin/260904_astra_release_alignment/010_wp2_catalog_alignment.md
  • devlog/_fin/260904_astra_release_alignment/015_audit_synthesis.md
  • devlog/_fin/260904_astra_release_alignment/020_wp3_adapter_eof.md
  • devlog/_fin/260904_astra_release_alignment/021_wp3_evidence.md
  • devlog/_fin/260904_astra_release_alignment/030_wp4_merge.md
  • devlog/_fin/260904_bug_backlog_closeout/000_research.md
  • devlog/_fin/260904_bug_backlog_closeout/010_wp2_green_merge_train.md
  • devlog/_fin/260904_bug_backlog_closeout/020_wp3_draft_pr_triage.md
  • devlog/_fin/260904_bug_backlog_closeout/030_wp4_account_pool.md
  • devlog/_fin/260904_bug_backlog_closeout/040_wp5_remaining_issues.md
  • devlog/_fin/260904_bug_backlog_closeout/050_wp6_needs_info.md
  • devlog/_fin/260904_bug_backlog_closeout/060_ledger.md
  • devlog/_fin/260904_bug_backlog_closeout/070_closeout.md
  • devlog/_fin/260904_bug_stack_train/000_research.md
  • devlog/_fin/260904_bug_stack_train/010_wp2_deviceauth_core.md
  • devlog/_fin/260904_bug_stack_train/020_wp3_deviceauth_surface.md
  • devlog/_fin/260904_bug_stack_train/030_wp4_bug_carry.md
  • devlog/_fin/260904_bug_stack_train/040_deferrals.md
  • devlog/_fin/260904_bug_stack_train/050_outcome.md
  • devlog/_fin/260904_bug_stack_train/060_closeout.md
  • devlog/_fin/260904_bug_stack_train/070_issue_dispositions.md
  • devlog/_fin/260904_bug_stack_train/080_merge_ledger.md
  • devlog/_fin/260904_codex_set_head_and_logo/000_research.md
  • devlog/_fin/260904_codex_set_head_and_logo/010_wp1_page_head_wrap.md
  • devlog/_fin/260904_codex_set_head_and_logo/020_wp2_codex_nav_mark.md
  • devlog/_fin/260904_codex_set_head_and_logo/030_live_verification_record.md
  • devlog/_fin/260904_codex_set_head_and_logo/040_wp4_regression_coverage.md
  • devlog/_fin/260904_cross_platform_parity/000_problem_model.md
  • devlog/_fin/260904_cross_platform_parity/001_darwin_surface_inventory.md
  • devlog/_fin/260904_cross_platform_parity/002_muse_cli_storage_measurement.md
  • devlog/_fin/260904_cross_platform_parity/003_issue_3320_root_cause.md
  • devlog/_fin/260904_cross_platform_parity/004_implementation_outcome.md
  • devlog/_fin/260904_cross_platform_parity/010_wp1_muse_manual_key.md
  • devlog/_fin/260904_cross_platform_parity/020_wp2_platform_support_docs.md
  • devlog/_fin/260904_cross_platform_parity/030_wp3_windows_identity_decode.md
  • devlog/_fin/260904_cross_platform_parity/040_wp4_stack_closeout.md
  • devlog/_fin/260904_cross_platform_parity/041_ci_triage.md
  • devlog/_fin/260904_cross_platform_parity/050_followups.md
  • devlog/_fin/260904_dashboard_minimal/000_inventory.md
  • devlog/_fin/260904_dashboard_minimal/001_subagent_opinions.md
  • devlog/_fin/260904_dashboard_minimal/002_decisions.md
  • devlog/_fin/260904_dashboard_minimal/003_audit_record.md
  • devlog/_fin/260904_dashboard_minimal/010_sidebar_footer.md
  • devlog/_fin/260904_dashboard_minimal/020_dashboard_home.md
  • devlog/_fin/260904_dashboard_minimal/030_models_catalog.md
  • devlog/_fin/260904_dashboard_minimal/040_integrations.md
  • devlog/_fin/260904_dashboard_minimal/050_codex_set.md
  • devlog/_fin/260904_dashboard_minimal/060_usage.md
  • devlog/_fin/260904_dashboard_minimal/070_startup.md
  • devlog/_fin/260904_dashboard_minimal/080_page_polish.md
  • devlog/_fin/260904_dashboard_minimal/090_i18n_prune_docs.md
  • devlog/_fin/260904_dashboard_minimal/090_terminal.md
  • devlog/_fin/260904_external_fast_wire/000_plan.md
  • devlog/_fin/260904_external_fast_wire/005_audit_round1.md
  • devlog/_fin/260904_external_fast_wire/006_wp0_receipt.md
  • devlog/_fin/260904_external_fast_wire/010_wp1_fast_row_core.md
  • devlog/_fin/260904_external_fast_wire/020_wp2_listing.md
  • devlog/_fin/260904_external_fast_wire/030_wp3_ingress.md
  • devlog/_fin/260904_external_fast_wire/040_wp4_docs_and_landing.md
  • devlog/_fin/260904_external_fast_wire/050_outcome.md
  • devlog/_fin/260904_gated_client_version_floor/000_research.md
  • devlog/_fin/260904_gated_client_version_floor/005_audit_synthesis.md
  • devlog/_fin/260904_gated_client_version_floor/010_wp2_floor_aware_tier2.md
  • devlog/_fin/260904_gated_client_version_floor/020_wp3_projection_verification.md
  • devlog/_fin/260904_gated_client_version_floor/030_wp4_landing.md
  • devlog/_fin/260904_gated_client_version_floor/070_outcome.md
  • devlog/_fin/260904_gpt6_astra_prereg/000_plan.md
  • devlog/_fin/260904_logs_cost_effort_polish/000_research.md
  • devlog/_fin/260904_logs_cost_effort_polish/010_wp1_plan.md
  • devlog/_fin/260904_main_card_badge_parity/000_evidence.md
  • devlog/_fin/260904_main_card_badge_parity/010_server_dto_parity.md
  • devlog/_fin/260904_main_card_badge_parity/020_gui_plan_badge.md
  • devlog/_fin/260904_main_card_badge_parity/030_verification_and_pr.md
  • devlog/_fin/260904_main_card_badge_parity/040_promotion_and_release.md
  • devlog/_fin/260904_priority65_closeout/000_research.md
  • devlog/_fin/260904_priority65_closeout/010_wp2_responses_boundary.md
  • devlog/_fin/260904_priority65_closeout/020_wp3_combo_metadata_carry.md
  • devlog/_fin/260904_priority65_closeout/030_wp4_combo_context_cap.md
  • devlog/_fin/260904_priority65_closeout/040_wp5_reset_credit_identity.md
  • devlog/_fin/260904_priority65_closeout/050_wp6_gate_unblock.md
  • devlog/_fin/260904_priority65_closeout/060_wp7_rollback_journal_crud.md
  • devlog/_fin/260904_priority65_closeout/070_wp8_dispositions_and_regression.md
  • devlog/_fin/260904_priority65_closeout/080_outcome.md
  • devlog/_fin/260904_priority65_closeout/081_outcome_wp4.md
  • devlog/_fin/260904_priority65_closeout/082_outcome_wp5.md
  • devlog/_fin/260904_priority65_closeout/083_outcome_wp6.md
  • devlog/_fin/260904_priority65_closeout/084_outcome_wp7.md
  • devlog/_fin/260904_priority65_closeout/085_outcome_wp8.md
  • devlog/_fin/260904_provider_quota_refresh/000_plan.md
  • devlog/_fin/260904_provider_quota_refresh/010_wp1_passive_quota_visibility.md
  • devlog/_fin/260904_provider_quota_refresh/020_wp2_refresh_affordance.md
  • devlog/_fin/260904_provider_quota_refresh/021_audit_round1_synthesis.md
  • devlog/_fin/260904_provider_quota_refresh/030_wp3_live_verification_and_pr.md
  • devlog/_fin/260904_provider_quota_refresh/031_live_verification_record.md
  • devlog/_fin/260904_providers_home_and_quota_refresh/000_research.md
  • devlog/_fin/260904_providers_home_and_quota_refresh/010_brand_home_affordance.md
  • devlog/_fin/260904_providers_home_and_quota_refresh/020_overview_quota_refresh.md
  • devlog/_fin/260904_providers_home_and_quota_refresh/030_verify_and_land.md
  • devlog/_fin/260904_providers_home_and_quota_refresh/040_delivery_record.md
  • devlog/_fin/260904_raycast_integration/000_plan.md
  • devlog/_fin/260904_release_version_line/000_research.md
  • devlog/_fin/260904_release_version_line/001_design.md
  • devlog/_fin/260904_release_version_line/010_phase1_version_algebra.md
  • devlog/_fin/260904_release_version_line/020_phase2_bump_input.md
  • devlog/_fin/260904_release_version_line/030_phase3_premove.md
  • devlog/_fin/260904_release_version_line/040_phase4_invariant_and_docs.md
  • devlog/_fin/260904_release_version_line/050_migration.md
  • devlog/_fin/260904_release_version_line/060_rollback_and_failure_modes.md
  • devlog/_fin/260904_release_version_line/070_final_rebase.md
  • devlog/_fin/260904_triage_gap_closure/000_research.md
  • devlog/_fin/260904_triage_gap_closure/010_fable_metadata.md
  • devlog/_fin/260904_triage_gap_closure/020_credits_3284.md
  • devlog/_fin/260904_triage_gap_closure/030_ultrafast_optin.md
  • devlog/_fin/260904_triage_gap_closure/040_delivery_record.md
  • devlog/_fin/260905_admin_token_local_ux/000_research.md
  • devlog/_fin/260905_admin_token_local_ux/010_suppress_local_prompt.md
  • devlog/_fin/260905_admin_token_local_ux/020_dialog_repair.md
  • devlog/_fin/260905_admin_token_local_ux/030_windows_baseline.md
  • devlog/_fin/260905_admin_token_local_ux/031_preload_guard_ordering.md
  • devlog/_fin/260905_admin_token_local_ux/040_delivery_record.md
  • devlog/_fin/260905_apply_patch_envelope_gap/000_survey.md
  • devlog/_fin/260905_apply_patch_envelope_gap/010_disposition.md
  • devlog/_fin/260905_apply_patch_envelope_gap/020_wp2_implementation.md
  • devlog/_fin/260905_apply_patch_envelope_gap/030_review_round.md
  • devlog/_fin/260905_apply_patch_envelope_gap/040_wp1b_parser_guidance.md
  • devlog/_fin/260905_apply_patch_envelope_gap/050_delivery_record.md
  • devlog/_fin/260905_external_image_roundtrip/000_plan.md
  • devlog/_fin/260905_external_image_roundtrip/003_all_format_audit.md
  • devlog/_fin/260905_external_image_roundtrip/010_chat_image_parts.md
  • devlog/_fin/260905_external_image_roundtrip/020_wire_contract.md
  • devlog/_fin/260905_external_image_roundtrip/030_image_input_forms.md
  • devlog/_fin/260905_external_image_roundtrip/040_orphan_image_carriers.md
  • devlog/_fin/260905_external_image_roundtrip/050_cursor_tool_images.md
  • devlog/_fin/260905_external_image_roundtrip/060_delivery.md
  • devlog/_fin/260905_external_image_roundtrip/070_final_head_delivery.md
  • devlog/_fin/260905_external_image_roundtrip/090_closeout.md
  • devlog/_fin/260905_fast_default_exports/000_plan.md
  • devlog/_fin/260905_fast_default_exports/010_implementation.md
  • devlog/_fin/260905_fast_default_exports/011_review.md
  • devlog/_fin/260905_fast_default_exports/090_closeout.md
  • devlog/_fin/260905_grok_responses_default/000_plan.md
  • devlog/_fin/260905_grok_responses_default/002_first_output_rca.md
  • devlog/_fin/260905_grok_responses_default/010_default_and_controls.md
  • devlog/_fin/260905_grok_responses_default/011_verification.md
  • devlog/_fin/260905_grok_responses_default/090_closeout.md
  • devlog/_fin/260905_unified_quota_activation/010_unified_control.md
  • devlog/_fin/260906_lane_b_catalog_stack/000_plan.md
  • devlog/_fin/260906_lane_b_catalog_stack/009_roadmap_lock.md
  • devlog/_fin/260906_lane_b_catalog_stack/010_visibility.md
  • devlog/_fin/260906_lane_b_catalog_stack/011_visibility_build.md
  • devlog/_fin/260906_lane_b_catalog_stack/020_context.md
  • devlog/_fin/260906_lane_b_catalog_stack/021_context_build.md
  • devlog/_fin/260906_lane_b_catalog_stack/030_ordering.md
  • devlog/_fin/260906_lane_b_catalog_stack/031_ordering_build.md
  • devlog/_fin/260906_lane_b_catalog_stack/032_ordering_repair.md
  • devlog/_fin/260906_lane_b_catalog_stack/033_ordering_control.md
  • devlog/_fin/260906_lane_b_catalog_stack/034_verification_followup.md
  • devlog/_fin/260906_lane_b_catalog_stack/035_ordering_landing.md
  • devlog/_fin/260906_lane_b_catalog_stack/040_management.md
  • devlog/_fin/260906_lane_b_catalog_stack/041_static_verification.md
  • devlog/_fin/260906_lane_b_catalog_stack/042_management_build.md
  • devlog/_fin/260906_lane_b_catalog_stack/043_carry_boundary.md
  • devlog/_fin/260906_lane_b_catalog_stack/044_react_doctor.md
  • devlog/_fin/260906_lane_b_catalog_stack/050_fable.md
  • devlog/_fin/260906_lane_b_catalog_stack/060_landing.md
  • devlog/_fin/260906_lane_b_catalog_stack/061_landed.md
  • devlog/_fin/260906_opaque_transport_finality/000_plan.md
  • devlog/_fin/260906_opaque_transport_finality/010_failure_boundaries.md
  • devlog/_fin/260906_opaque_transport_finality/090_closeout.md
  • devlog/_fin/260906_release_244_publish/000_plan.md
  • devlog/_fin/260906_release_244_publish/010_roadmap.md
  • devlog/_fin/260906_release_244_publish/020_integrate.md
  • devlog/_fin/260906_release_244_publish/030_dev_bump.md
  • devlog/_fin/260906_release_244_publish/040_preview.md
  • devlog/_fin/260906_release_244_publish/050_stable.md
  • devlog/_fin/260906_release_244_publish/090_closeout.md
  • devlog/_fin/260907_code_mode_host_contract/000_plan.md
  • devlog/_fin/260907_code_mode_host_contract/001_host_probe_evidence.md
  • devlog/_fin/260907_code_mode_host_contract/010_pre_call_contract.md
  • devlog/_fin/260907_code_mode_host_contract/020_post_hoc_annotation.md
  • devlog/_fin/260907_code_mode_host_contract/030_docs_and_delivery.md
  • devlog/_fin/260907_code_mode_host_contract/040_delivery_record.md
  • devlog/_fin/260908_a_stack_responses_compat/000_plan.md
  • devlog/_fin/260908_a_stack_responses_compat/010_phase1.md
  • devlog/_fin/260908_a_stack_responses_compat/020_phase2.md
  • devlog/_fin/260908_a_stack_responses_compat/030_phase3.md
  • devlog/_fin/260908_a_stack_responses_compat/040_phase4.md
  • devlog/_fin/260908_a_stack_responses_compat/050_phase5.md
  • devlog/_fin/260908_a_stack_responses_compat/090_closeout.md
  • devlog/_fin/260908_d_group_test_infra_stack/000_plan.md
  • devlog/_fin/260908_d_group_test_infra_stack/001_audit_record.md
  • devlog/_fin/260908_d_group_test_infra_stack/010_phase1_stack_build.md
  • devlog/_fin/260908_d_group_test_infra_stack/020_phase2_publish.md
  • devlog/_fin/260908_d_group_test_infra_stack/030_phase3_merge_and_settle.md
  • devlog/_fin/260908_d_group_test_infra_stack/090_closeout.md
  • devlog/_fin/260909_spark_short_quota_attribution/000_plan.md
  • devlog/_fin/260909_spark_short_quota_attribution/090_closeout.md
  • devlog/_plan/260909_codex_credential_health_chain/000_plan.md
  • devlog/_plan/260909_codex_credential_health_chain/010_wp1_terminal_verdict.md
  • devlog/_plan/260909_codex_credential_health_chain/020_wp2_quota_registration.md
  • devlog/_plan/260909_codex_credential_health_chain/030_wp3_anthropic_plan.md
  • devlog/_plan/260909_mid_thread_agent_task_recovery/000_plan.md
  • devlog/_plan/260909_post249_scope_cleanup/000_plan.md
  • devlog/_plan/260909_post249_scope_cleanup/010_reconciliation.md
  • devlog/_plan/260909_post249_scope_cleanup/020_branch_worktree_cleanup.md
  • devlog/_plan/260909_post249_scope_cleanup/030_issue_disposition.md
  • devlog/_plan/260909_post249_scope_cleanup/040_dispatch_roadmap.md
  • devlog/_plan/260909_post249_scope_cleanup/050_delivery_record.md
  • devlog/_plan/260910_250_regression_audit_release/000_plan.md
  • devlog/_plan/260910_250_regression_audit_release/010_audit_lanes.md
  • devlog/_plan/260910_250_regression_audit_release/020_release_plan.md
  • devlog/_plan/260910_250_regression_audit_release/030_evidence.md
  • devlog/_plan/260910_250_regression_audit_release/040_triage_protocol.md
  • devlog/_plan/260910_250_regression_audit_release/050_lane_packets.md
  • devlog/_plan/260910_250_regression_audit_release/060_release_readiness.md
  • devlog/_plan/260910_250_regression_audit_release/070_release_execution.md
  • devlog/_plan/260910_250_regression_audit_release/080_delivery_record.md
  • devlog/_plan/260910_cursor_acp_bridge/000_plan.md
  • devlog/_plan/260910_cursor_acp_bridge/010_protocol_identity.md
  • devlog/_plan/260910_cursor_acp_bridge/020_cli_jaw_inventory.md
  • devlog/_plan/260910_cursor_acp_bridge/030_opencodex_seams.md
  • devlog/_plan/260910_cursor_acp_bridge/040_feasibility_verdict.md
  • devlog/_plan/260910_cursor_acp_bridge/050_audit.md
  • devlog/_plan/260910_cursor_acp_bridge/060_done.md
  • devlog/_plan/260910_cursor_acp_bridge/070_live_trace.md
  • devlog/_plan/260910_live_service_manager_guard/000_plan.md
  • devlog/_plan/260910_post249_round2/000_plan.md
  • devlog/_plan/260910_post249_round2/010_lane_split.md
  • devlog/_plan/260910_post249_round2/020_4129_shadow_combo_failover.md
  • devlog/_plan/260910_post249_round2/030_4148_claude_system_hoist.md
  • devlog/_plan/260910_post249_round2/040_4141_launchctl_bootout.md
  • devlog/_plan/260910_post249_round2/050_3666_free_model_filter.md
  • devlog/_plan/260910_post249_round2/060_4075_gemini_setup_ux.md
  • devlog/_plan/260910_post249_round2/070_3859_email_mask_toggle.md
  • devlog/_plan/260910_post249_round2/080_1711_zero_credit_catalog.md
  • devlog/_plan/260910_post249_round2/090_4038_decode_rate.md
  • devlog/_plan/260910_post249_round2/100_4147_zcode_reasoning_landing.md
  • devlog/_plan/260910_post249_round2/110_delivery_record.md
  • devlog/_plan/260910_post249_round2/120_landing_gate_decision.md
  • devlog/_plan/260910_post249_round2/_research/1711.md
  • devlog/_plan/260910_post249_round2/_research/3666.md
  • devlog/_plan/260910_post249_round2/_research/3859.md
  • devlog/_plan/260910_post249_round2/_research/4038.md
  • devlog/_plan/260910_post249_round2/_research/4075.md
  • devlog/_plan/260910_post249_round2/_research/4129.md
  • devlog/_plan/260910_post249_round2/_research/4141.md
  • devlog/_plan/260910_post249_round2/_research/4148.md
  • devlog/_plan/260910_post249_round2/_research/_audit.md
  • devlog/_plan/260910_post249_round2/_research/_audit_pr4153.md
  • devlog/_plan/260910_post249_round2/_research/_audit_wp2.md
  • devlog/_plan/260910_post249_round2/_research/_audit_wp3.md
  • devlog/_plan/260910_post249_round2/_research/_audit_wp3b.md
  • devlog/_plan/260910_readme_i18n_parity/000_plan.md
  • devlog/_plan/260910_readme_i18n_parity/010_phase1_parity_guard.md
  • devlog/_plan/260910_readme_i18n_parity/020_phase2_locale_resync.md
  • devlog/_plan/260910_readme_i18n_parity/030_phase3_delivery.md
  • devlog/_plan/260911_catalog_presentation_and_effort_projection/000_plan.md
  • devlog/_plan/260911_catalog_presentation_and_effort_projection/010_evidence.md
  • devlog/_plan/260911_catalog_presentation_and_effort_projection/020_architecture_dispositions.md
  • devlog/_plan/260911_catalog_presentation_and_effort_projection/030_test_impact.md
  • devlog/_plan/260911_catalog_presentation_and_effort_projection/040_open_gaps.md
  • devlog/_plan/260911_catalog_presentation_and_effort_projection/050_revalidation.md
  • devlog/_plan/260911_catalog_presentation_and_effort_projection/060_done.md
  • devlog/_plan/260911_hub_single_port/010_launchd_repair.md
  • devlog/_plan/260911_hub_single_port/020_loopback_companion.md
  • devlog/_plan/260911_hub_single_port/030_hub_local_clients.md
  • devlog/_plan/260911_hub_single_port/040_hub_token_ux.md
  • devlog/_plan/260911_hub_single_port/050_docs_skill.md
  • devlog/_plan/260911_hub_single_port/060_client_hub_state.md
  • devlog/_plan/260911_l1_responses_core/000_packet.md
  • devlog/_plan/260911_l2_catalog_provider/000_packet.md
  • devlog/_plan/260911_l2_catalog_provider/010_4201_quota_admission.md
  • devlog/_plan/260911_l2_catalog_provider/020_flash_upstream_evidence.md
  • devlog/_plan/260911_l3_account_pool/000_packet.md
  • devlog/_plan/260911_l3_account_pool/010_wp1_4126_warmup.md
  • devlog/_plan/260911_l3_account_pool/020_wp2_4212_attribution.md
  • devlog/_plan/260911_l3_account_pool/030_wp3_4211_plan_exclusion.md
  • devlog/_plan/260911_l4_service_cli/000_packet.md
  • devlog/_plan/260911_l4_service_cli/010_wp1_pnpm_self_update.md
  • devlog/_plan/260911_l4_service_cli/020_wp2_stop_refusal.md
  • devlog/_plan/260911_l4_service_cli/030_wp3_client_catalog.md
  • devlog/_plan/260911_l5_integrations_io/000_packet.md
  • devlog/_plan/260911_l6_streaming_tools/000_packet.md
  • devlog/_plan/260911_l6_streaming_tools/010_4191_ws_failure_classification.md
  • devlog/_plan/260911_l6_streaming_tools/020_4190_qoder_scaffold_guard.md
  • devlog/_plan/260911_l7_docs/000_packet.md
  • devlog/_plan/260911_l7_docs/010_roadmap.md
  • devlog/_plan/260911_l7_docs/020_4215_wording.md
  • devlog/_plan/260911_l7_docs/030_4200_recipe.md
  • devlog/_plan/260911_l7_docs/040_4215_delivery.md
  • devlog/_plan/260911_l7_docs/050_4200_delivery.md
  • devlog/_plan/260911_lane_dispatch_round/000_plan.md
  • devlog/_plan/260911_lane_dispatch_round/010_lane_partition.md
  • devlog/_plan/260911_lane_dispatch_round/020_lane_packets.md
  • devlog/_plan/260911_lane_dispatch_round/030_audit_round1.md
  • devlog/_plan/260911_lane_dispatch_round/040_audit_round2.md
  • devlog/_plan/260911_lane_dispatch_round/050_audit_round3.md
  • devlog/_plan/260911_lane_dispatch_round/060_ledger.md
  • devlog/_plan/260911_lane_dispatch_round/070_dispatch_handoff.md
  • devlog/_plan/260911_lane_dispatch_round/080_wp2_publish_plan.md
  • devlog/_plan/260911_lane_dispatch_round/090_wp2_execution.md
  • devlog/_plan/260911_lane_dispatch_round/100_wp3_plan.md
  • devlog/_plan/260911_lane_dispatch_round/110_tracking_refresh.md
  • devlog/_plan/260911_lane_dispatch_round/120_wp4_plan.md
  • devlog/_plan/260911_lane_dispatch_round/130_wp4_feasibility.md
  • docs-site/src/content/docs/fr/guides/codex-integration.md
  • docs-site/src/content/docs/fr/guides/providers.md
  • docs-site/src/content/docs/fr/guides/remote-hub.md
  • docs-site/src/content/docs/fr/reference/configuration/agents.md
  • docs-site/src/content/docs/getting-started/installation.md
  • docs-site/src/content/docs/guides/codex-app-models.md
  • docs-site/src/content/docs/guides/codex-integration.md
  • docs-site/src/content/docs/guides/providers.md
  • docs-site/src/content/docs/guides/remote-hub.md
  • docs-site/src/content/docs/guides/sub-agent-surface.md
  • docs-site/src/content/docs/ja/guides/codex-integration.md
  • docs-site/src/content/docs/ja/guides/providers.md
  • docs-site/src/content/docs/ja/guides/remote-hub.md
  • docs-site/src/content/docs/ja/reference/configuration/agents.md
  • docs-site/src/content/docs/ko/guides/codex-integration.md
  • docs-site/src/content/docs/ko/guides/providers.md
  • docs-site/src/content/docs/ko/guides/remote-hub.md
  • docs-site/src/content/docs/ko/reference/cli/lifecycle.md
  • docs-site/src/content/docs/ko/reference/configuration/agents.md
  • docs-site/src/content/docs/ko/reference/configuration/server.md
  • docs-site/src/content/docs/reference/cli/lifecycle.md
  • docs-site/src/content/docs/reference/configuration/agents.md
  • docs-site/src/content/docs/reference/configuration/providers.md
  • docs-site/src/content/docs/reference/configuration/server.md
  • docs-site/src/content/docs/reference/proxy-formats.md
  • docs-site/src/content/docs/ru/guides/codex-integration.md
  • docs-site/src/content/docs/ru/guides/providers.md
  • docs-site/src/content/docs/ru/guides/remote-hub.md
  • docs-site/src/content/docs/ru/reference/configuration/agents.md
  • docs-site/src/content/docs/tr/guides/codex-integration.md
  • docs-site/src/content/docs/tr/guides/providers.md
  • docs-site/src/content/docs/tr/guides/remote-hub.md
  • docs-site/src/content/docs/tr/reference/configuration/agents.md
  • docs-site/src/content/docs/zh-cn/guides/codex-integration.md
  • docs-site/src/content/docs/zh-cn/guides/providers.md
  • docs-site/src/content/docs/zh-cn/guides/remote-hub.md
  • docs-site/src/content/docs/zh-cn/reference/configuration/agents.md
  • docs-site/src/content/docs/zh-tw/guides/codex-integration.md
  • docs-site/src/content/docs/zh-tw/guides/providers.md
  • docs-site/src/content/docs/zh-tw/guides/remote-hub.md
  • docs-site/src/content/docs/zh-tw/reference/configuration/agents.md
  • gui/src/codex-account-mutation.ts
  • gui/src/components/CodexAccountPool.tsx
  • gui/src/components/codex-account-pool-cards.tsx
  • gui/src/components/provider-workspace/ProviderModels.tsx
  • gui/src/components/use-add-codex-account-oauth.ts
  • gui/src/hooks/useCodexAccountPool.ts
  • gui/src/i18n/de.ts
  • gui/src/i18n/en.ts
  • gui/src/i18n/fr.ts
  • gui/src/i18n/ja.ts
  • gui/src/i18n/ko.ts
  • gui/src/i18n/ru.ts
  • gui/src/i18n/tr.ts
  • gui/src/i18n/zh-TW.ts
  • gui/src/i18n/zh.ts
  • gui/src/oauth-health-display.ts
  • gui/src/pages/Logs.tsx
  • gui/src/pages/Models.tsx
  • gui/src/pages/Providers.tsx
  • gui/src/pages/models-provider-hints.tsx
  • gui/src/pages/models-shared.ts
  • gui/tests/codex-account-pool-behaviour.test.tsx
  • gui/tests/codex-account-pool-controller.test.ts
  • gui/tests/models-discovery-failed-hint.test.tsx
  • gui/tests/oauth-health-display.test.ts
  • gui/tests/provider-revalidation-policy.test.tsx
  • gui/tests/providers-codex-completion-toast.test.tsx
  • package.json
  • readme/README.fr.md
  • readme/README.ja.md
  • readme/README.ko.md
  • readme/README.ru.md
  • readme/README.tr.md
  • readme/README.zh-CN.md
  • readme/README.zh-TW.md
  • readme/i18n-manifest.json
  • scripts/test-layout/layout.json
  • skills/ocx/SKILL.md
  • skills/ocx/references/01_management_surface.md
  • skills/ocx/references/02_json_shapes.md
  • skills/ocx/references/03_recipes.md
  • skills/ocx/references/04_failure_semantics.md
  • skills/ocx/references/05_remote_hub.md
  • src/adapters/qoder/adapter.ts
  • src/adapters/qoder/scaffold-guard.ts
  • src/claude/agents-inject.ts
  • src/claude/desktop-3p.ts
  • src/claude/gateway-cache.ts
  • src/claude/inbound.ts
  • src/cli.ts
  • src/cli/account-api.ts
  • src/cli/account-auth.ts
  • src/cli/account-extended.ts
  • src/cli/account.ts
  • src/cli/capabilities.ts
  • src/cli/claude-agent-startup-sync.ts
  • src/cli/claude.ts
  • src/cli/config-command.ts
  • src/cli/connect.ts
  • src/cli/dispatch.ts
  • src/cli/doctor.ts
  • src/cli/ensure-desired-integrations.ts
  • src/cli/gui-pair-client.ts
  • src/cli/help.ts
  • src/cli/hub.ts
  • src/cli/index.ts
  • src/cli/launcher-context.ts
  • src/cli/models-runtime.ts
  • src/cli/observe.ts
  • src/cli/registry.ts
  • src/cli/status.ts
  • src/cli/version-skew.ts
  • src/client/catalog-compatibility.ts
  • src/client/connect.ts
  • src/client/hub-client.ts
  • src/client/hub-state.ts
  • src/clients/config-export/zcode.ts
  • src/codex/account-runtime-state.ts
  • src/codex/account-store.ts
  • src/codex/account-usability.ts
  • src/codex/auth-api.ts
  • src/codex/auth-context.ts
  • src/codex/catalog/effort.ts
  • src/codex/catalog/parsing.ts
  • src/codex/catalog/provider-fetch.ts
  • src/codex/catalog/sync.ts
  • src/codex/codex-write-lock.ts
  • src/codex/desired-state.ts
  • src/codex/inject-coordination.ts
  • src/codex/inject.ts
  • src/codex/loopback-target.ts
  • src/codex/quota-auto-refresh.ts
  • src/codex/quota.ts
  • src/codex/routing.ts
  • src/codex/runtime.ts
  • src/codex/sync.ts
  • src/codex/warmup.ts
  • src/combos/index.ts
  • src/combos/resolve.ts
  • src/config.ts
  • src/config/pending-teardown.ts
  • src/grok/status.ts
  • src/integrations/config-io.ts
  • src/lib/bun-runtime.ts
  • src/lib/errors.ts
  • src/lib/gui-pair-capability.ts
  • src/lib/local-destinations.ts
  • src/lib/package-tree-integrity.ts
  • src/lib/privacy.ts
  • src/lib/process-control.ts
  • src/lib/service-secrets.ts
  • src/lib/test-home-guard.ts
  • src/oauth/health.ts
  • src/oauth/index.ts
  • src/oauth/token-guardian.ts
  • src/providers/google-ai-studio-model-discovery.ts
  • src/providers/opencode-go-transport.ts
  • src/providers/opencode-zen-rate-limit.ts
  • src/providers/quota.ts
  • src/providers/registry.ts
  • src/remote/hub-state.ts
  • src/server/auth-cors.ts
  • src/server/chat-completions.ts
  • src/server/chat-native.ts
  • src/server/claude-messages.ts
  • src/server/hub-state.ts
  • src/server/images.ts
  • src/server/index.ts
  • src/server/management-api.ts
  • src/server/management/api-access.ts
  • src/server/management/config-routes.ts
  • src/server/management/cursor-integration-routes.ts
  • src/server/management/logs-usage-routes.ts
  • src/server/management/model-rows.ts
  • src/server/management/oauth-account-routes.ts
  • src/server/management/provider-routes.ts
  • src/server/management/request-history-routes.ts
  • src/server/management/route-registry.ts
  • src/server/management/shared.ts
  • src/server/proxy-liveness.ts
  • src/server/request-decompress.ts
  • src/server/request-log-conversation.ts
  • src/server/request-log.ts
  • src/server/responses/codex-auth-error.ts
  • src/server/responses/codex-ws-exchange.ts
  • src/server/responses/codex-ws-wire.ts
  • src/server/responses/compact.ts
  • src/server/responses/context-overflow.ts
  • src/server/responses/core.ts
  • src/server/responses/policy-fallback.ts
  • src/server/search.ts
  • src/server/system-env-shell.ts
  • src/server/system-env.ts
  • src/service.ts
  • src/types.ts
  • src/types/accounts.ts
  • src/types/config.ts
  • src/types/provider.ts
  • src/update/badge.ts
  • src/update/index.ts
  • src/update/install-detection.d.mts
  • src/update/install-detection.mjs
  • src/update/job.ts
  • src/update/pnpm-global-install.d.mts
  • src/update/pnpm-global-install.mjs
  • src/update/pnpm-invocation.d.mts
  • src/update/pnpm-invocation.mjs
  • src/update/registry-integrity.d.mts
  • src/update/registry-integrity.mjs
  • src/update/transactional-install.d.mts
  • src/update/transactional-install.mjs
  • src/update/tray-update-plan.mjs
  • src/vision/plan.ts
  • src/vision/routed-describe.ts
  • src/web-search/ollama-executor.ts
  • src/web-search/passthrough-bridge.ts
  • structure/01_runtime.md
  • structure/02_config-and-codex-home.md
  • structure/04_transports-and-sidecars.md
  • structure/09_client-integrations.md
  • tests/adapters/anthropic/anthropic-image-retry-e2e.test.ts
  • tests/adapters/google/google-models-listing.test.ts
  • tests/ci-workflows/docs-provider-billing-claims.test.ts
  • tests/ci-workflows/docs-readme-translation-parity.test.ts
  • tests/ci-workflows/docs-remote-hub-claims.test.ts
  • tests/ci-workflows/install-scripts.test.ts
  • tests/claude-integration/claude-agents-inject-client.test.ts
  • tests/claude-integration/claude-cli.test.ts
  • tests/claude-integration/claude-gateway-cache.test.ts
  • tests/claude-integration/claude-inbound.test.ts
  • tests/cli/cli-account.test.ts
  • tests/cli/cli-capabilities.test.ts
  • tests/cli/cli-config-show-client.test.ts
  • tests/cli/cli-connect-readiness.test.ts
  • tests/cli/cli-dispatch.test.ts
  • tests/cli/cli-models-free-only.test.ts
  • tests/cli/cli-observe-logs.test.ts
  • tests/cli/cli-status-hub-state.test.ts
  • tests/cli/cli-status-json.test.ts
  • tests/cli/cli-version-skew.test.ts
  • tests/cli/hub-gated-local-clients.test.ts
  • tests/cli/hub-invite.test.ts
  • tests/cli/ocx-launcher-runtime.test.ts
  • tests/cli/ocx-launcher-source.test.ts
  • tests/clients/client-catalog-compatibility.test.ts
  • tests/clients/client-connect.test.ts
  • tests/clients/client-hub-state.test.ts
  • tests/clients/desktop-3p.test.ts
  • tests/clients/integrations-writer.test.ts
  • tests/clients/sync-client-integrations.test.ts
  • tests/codex-integration/catalog-free-pricing-status.test.ts
  • tests/codex-integration/catalog-gated-native-suppression-reason.test.ts
  • tests/codex-integration/catalog-zero-credit-picker.test.ts
  • tests/codex-integration/codex-account-store.test.ts
  • tests/codex-integration/codex-account-unusable-reason.test.ts
  • tests/codex-integration/codex-auth-api.test.ts
  • tests/codex-integration/codex-auth-context.test.ts
  • tests/codex-integration/codex-catalog.test.ts
  • tests/codex-integration/codex-cli-update-launcher-policy.test.ts
  • tests/codex-integration/codex-convergence-account-selectors.test.ts
  • tests/codex-integration/codex-inject-integration.test.ts
  • tests/codex-integration/codex-pool-plan-exclusion.test.ts
  • tests/codex-integration/codex-quota-auto-refresh.test.ts
  • tests/codex-integration/codex-quota-parser-parity.test.ts
  • tests/codex-integration/codex-quota-prime.test.ts
  • tests/codex-integration/codex-runtime.test.ts
  • tests/codex-integration/doctor.test.ts
  • tests/codex-integration/reserve-catalog.test.ts
  • tests/codex-integration/token-guardian.test.ts
  • tests/codex-integration/warmup.test.ts
  • tests/config/client-config-export.test.ts
  • tests/config/settings-stream-mode.test.ts
  • tests/fixtures/test-layout-expected.json
  • tests/gui/models-free-filter.test.ts
  • tests/gui/rate-limit-reset-credits.test.ts
  • tests/lib/local-destinations.test.ts
  • tests/lib/privacy-mask-account.test.ts
  • tests/lib/process-control-graceful.test.ts
  • tests/oauth/oauth-accounts-api.test.ts
  • tests/oauth/oauth-health.test.ts
  • tests/oauth/oauth-status-privacy.test.ts
  • tests/preload.ts
  • tests/providers/cursor/cursor-integration-status.test.ts
  • tests/providers/opencode-go-session-header.test.ts
  • tests/providers/opencode-zen-rate-limit.test.ts
  • tests/providers/provider-connection-test.test.ts
  • tests/providers/provider-registry-parity.test.ts
  • tests/providers/qoder-scaffold-guard.test.ts
  • tests/providers/xai/grok-lifecycle.test.ts
  • tests/providers/xai/grok-status.test.ts
  • tests/providers/xai/grok-sync.test.ts
  • tests/providers/zcode-client.test.ts
  • tests/providers/zhipu-bigmodel-responses-quota.test.ts
  • tests/responses/responses-context-overflow.test.ts
  • tests/responses/responses-pool-refresh-attribution.test.ts
  • tests/responses/responses-shadow-intercept.test.ts
  • tests/responses/ws-failure-stage.test.ts
  • tests/responses/ws-upstream.test.ts
  • tests/server/agent-task-recovery.test.ts
  • tests/server/api-access-endpoints.test.ts
  • tests/server/api-key-attribution.test.ts
  • tests/server/config.test.ts
  • tests/server/loopback-companion-client-targets.test.ts
  • tests/server/loopback-listener-admission.test.ts
  • tests/server/loopback-listener-integration.test.ts
  • tests/server/management-api-logs-metrics.test.ts
  • tests/server/reserve-ingress.test.ts
  • tests/server/server-management-auth.test.ts
  • tests/server/server-request-body-size.test.ts
  • tests/server/system-env.test.ts
  • tests/server/v1-hub-state.test.ts
  • tests/service/launchd-repair.test.ts
  • tests/service/live-service-manager-guard.test.ts
  • tests/service/service-secrets.test.ts
  • tests/service/service.test.ts
  • tests/service/stale-state-purge.test.ts
  • tests/service/winsw.test.ts
  • tests/update/update-badge.test.ts
  • tests/update/update-job.test.ts
  • tests/update/update-pnpm.test.ts
  • tests/update/update-stop-first.test.ts
  • tests/update/update-tree-ownership.test.ts
  • tests/usage/request-decompress.test.ts
  • tests/usage/request-log.test.ts
  • tests/vision/vision-routed.test.ts
  • tests/web-search/web-search-passthrough-bridge.test.ts

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

@github-actions github-actions Bot changed the title release: promote verified 2.52.0-preview.20260911 product tree to preview [WRONG BRANCH] release: promote verified 2.52.0-preview.20260911 product tree to preview Sep 11, 2026
@github-actions

github-actions Bot commented Sep 11, 2026

Copy link
Copy Markdown
Contributor

⏳ DRAFT

  • wrong target branch (preview); retarget to dev. UI screenshot required.

What to do

  • Retarget this PR to dev — all contributions go to dev.
  • Add a screenshot of the UI change to the PR description.

Its title has been prefixed with [WRONG BRANCH].
This pull request is being kept as a draft automatically. Once every issue above is resolved, it will be marked ready for review again.

@github-actions
github-actions Bot marked this pull request as draft September 11, 2026 11:08

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: c1af92596a

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +1444 to +1447
const prompt = discoveredPricingRate(pricing.prompt ?? pricing.input);
const completion = discoveredPricingRate(pricing.completion ?? pricing.output);
if (prompt === undefined || completion === undefined) return "unknown";
return prompt === 0 && completion === 0 ? "free" : "paid";

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Treat auxiliary charges as paid in the free filter

When a provider publishes zero prompt/completion rates but a positive auxiliary rate such as request, image, or web_search, this returns free. Both the CLI and dashboard trust pricingStatus for their Free-only filters, so users can select a model explicitly presented as free and still incur per-request or tool charges. Inspect the additional published charge dimensions before returning free, treating any positive recognized rate as paid.

Useful? React with 👍 / 👎.

Comment on lines +503 to +504
if (terminalType === "response.failed" || terminalType === "response.incomplete") {
return { kind: "end", searches: [] };

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Close bridge search cells before forwarding failure

When the opt-in passthrough bridge receives a web_search call followed by response.failed or response.incomplete, this discards this.searches and takes the ordinary end path. The caller therefore forwards the terminal without emitting searchEndFrames, leaving Codex's opened “Searching the web” cell spinning under the failed turn. Close each intercepted search cell before emitting the upstream failure terminal, as the explicit kind === "fail" path already does.

Useful? React with 👍 / 👎.

@lidge-jun
lidge-jun marked this pull request as ready for review September 11, 2026 11:17
@lidge-jun
lidge-jun merged commit 69207f1 into preview Sep 11, 2026
31 of 33 checks passed
@github-actions
github-actions Bot marked this pull request as draft September 11, 2026 11:18
@lidge-jun

Copy link
Copy Markdown
Owner Author

리뷰 · 우선순위 76 / 80

이 PR은 새 기능을 더하는 작업이 아닙니다. 이미 dev에서 감사해 둔 2.51.0 제품 트리를 미리보기 채널 preview로 올리는 출구입니다. 기준선(프리즈)은 42fcf9a0a(머지 #4269, main-refresh 거절 문장이 authentication 부분 문자열에 걸리지 않도록 고친 tip)이고, 승격 머지 커밋 c1af92596의 부모는 a433d39d9(이전 preview, 2.49.0-preview.20260909)와 그 프리즈입니다. 로컬에서 git diff 42fcf9a0a origin/pr-4273를 다시 재면 바뀌는 파일은 package.json 한 줄뿐입니다. 버전만 2.51.02.52.0-preview.20260911입니다. 본문이 말한 “안정 승격과 같은 바이트, 버전 문자열만 다르다”는 주장은 맞습니다. 프리즈 트리 SHA는 51f40e5c…이고, 승격 헤드 트리는 버전 blob만 달라 e9107e03…입니다.

지금 dev HEAD는 dd9a2906b입니다. #4270이 package.json2.52.0으로 열어 둔 상태라서, 현재 dev tip은 프리즈보다 버전 숫자 한 칸 앞입니다. 그래서 이 컷은 지금 dev tip 전체를 그대로 미는 게 아니라, 감사 대상이었던 2.51.0 트리를 preview에 고정하면서 채널 이름만 2.52.0-preview.20260911로 붙이는 일입니다. origin/preview는 아직 2.49.0-preview.20260909이고, origin/main·npm latest는 2.50.0입니다. 짝인 안정 승격은 #4271(main, 2.51.0)입니다.

왜 버전이 2.51.0-preview2.51.1-preview가 아니라 2.52.0-preview.*이냐면, MAINTAINERS.mdscripts/version-line.tsnextPreviewRelease가 그렇게 고르기 때문입니다. dev가 이미 2.52.0이므로 preview는 “다음에 오는 코어”를 미리 보여 주는 이름이어야 합니다. 그리고 vX.Y.0-preview.*를 찍으면 현재 패치 라인(2.51.x)은 끝난다고 문서에 적혀 있습니다. 이후 수정은 2.51.1이 아니라 2.52.0으로 갑니다. release.ymlassert-ahead2.52.02.52.0-preview.*보다 앞선다고 보기 때문에, 이번 preview 컷을 위해 dev를 또 올릴 필요는 없습니다. 본문이 그 결정을 기록으로 남긴 것은 맞습니다.

preview 대비 디프가 1278파일·수만 줄로 크게 보이는 이유는 2.49.0-preview 이후 dev에만 쌓여 있던 제품·문서 커밋이 한꺼번에 보이기 때문입니다(로컬 기준 preview→헤드 약 285커밋). 여기서 각 버그를 다시 라인 리뷰할 단계는 아닙니다. 출구 체크는 (1) 프리즈 대비 버전 한 줄만 다른지, (2) 채널 버전이 *-preview.* 형태인지, (3) 이 PR·프리즈 CI, (4) 머지 후 push-event CI·service-lifecycle, (5) release.yml dry-run → live입니다.

게이트 쪽은 이전 preview 승격(#4010 2.48, #3928 2.47, #4116 2.49 등)과 같은 패턴입니다. enforce-target이 빨갛고 제목에 [WRONG BRANCH]가 붙고 봇이 draft를 유지한 것은 “기여는 dev로” 규칙이 preview 타깃을 막아서입니다. preview 채널 출구는 원래 preview가 맞습니다. 봇 안내대로 dev로 리타깃하면 이번 승격이 깨집니다. maintainer-sponsored 라벨·admin merge·draft 해제로 넘기는 운영이 반복돼 왔습니다. types.ts/config.ts 대형 분리 캠페인과 충돌하는 내용도 승격 범위에는 없습니다.

한 가지 빠진 점은 #4271과 같습니다. 본문은 여섯 레인 회귀 감사 증거를 devlog/_plan/260911_251_regression_audit_release/에 두었다고 적었는데, 프리즈·이 승격 헤드·현재 origin/dev 어디에도 그 경로가 없습니다. 트리에는 예전 사이클의 devlog/_plan/260910_250_regression_audit_release/만 실려 있습니다. 또한 프리즈 42fcf9a0a의 push Cross-platform CI는 cancelled/집계 failure였습니다. L1 직전 tip b550d24e1 push CI는 success였고, 프리즈와의 제품 차이는 그 두 파일뿐입니다. 이 PR의 pull-request CI는 리뷰 시점 기준 enforce-target만 fail이고 대부분 pass, 집계 ci는 아직 pending입니다. release.yml이 요구하는 것은 머지 후 브랜치 push-event 초록입니다.

경로 base=preview / enforce-target 실패 / 제목 [WRONG BRANCH] / auto-draft - preview 채널 승격의 의도된 타깃입니다. dev로 리타깃하지 마세요.
경로 git diff 42fcf9a0a HEADpackage.json 한 줄 - 로컬에서 재확인했습니다. 발행 직전에도 한 번 더 보면 됩니다.
경로 package.json 2.52.0-preview.20260911 - origin/preview2.49.0-preview.20260909, dev2.52.0, 안정 짝 #4271은 2.51.0. *-preview.* 형태와 assert-ahead 전제는 맞습니다.
경로 MAINTAINERS.md / nextPreviewRelease - 2.52.0-preview 선택은 dev가 이미 2.52.0인 상태와 맞고, 찍는 순간 2.51.x 패치 라인을 닫습니다. 의도인지 한 번만 확인하면 됩니다.
경로 devlog/_plan/260911_251_regression_audit_release/ - 본문이 가리킨 251 감사 패킷이 프리즈/승격/dev 트리에 없습니다. 250 패킷만 있습니다.
경로 프리즈 push CI 42fcf9a0a - cancelled/집계 failure. 머지 전·후에 push-event 초록을 새로 확보해야 합니다.
경로 이 PR pull-request CI / enforce-target - 타깃 게이트만 의도적으로 빨갛고, 집계 ci는 리뷰 시점 pending. PR 런만으로는 release.yml 전제가 아닙니다.
경로 짝 #4271 - 같은 프리즈의 main 승격이 열려 있습니다. preview 완충을 먼저 둘지, 둘을 같은 컷으로 묶을지 정해야 합니다.

메인테이너의 판단이 필요한 지점

  • draft를 풀고 maintainer-sponsored를 붙이거나 admin merge로 enforce-target을 넘길지
  • 2.52.0-preview로 2.51.x 패치 라인을 닫는 결정을 그대로 갈지(본문·MAINTAINERS와 일치)
  • [WRONG BRANCH] release: promote verified 2.51.0 product tree to main #4271(main/2.51.0)보다 preview를 먼저 머지·배포할지, 같은 컷으로 묶을지
  • 프리즈 push CI가 cancelled인 채로 믿을지, 아니면 머지 직전/직후 push-event 초록을 필수 게이트로 둘지
  • 본문이 가리킨 260911_251_… 감사 패킷을 저장소에 나중에라도 남길지(지금은 경로가 없음)
  • 머지 직후 dry-run → live → preview 태그·npm @bitkyc08/opencodex preview 배포를 누가 눈으로 확인할지

너의 추천
프리즈 대비 버전 한 줄·채널 이름·#4270 선행 조건은 맞습니다. 봇의 retarget-to-dev 안내는 무시하세요. draft 해제 후 CI(특히 머지 커밋의 push-event) 초록을 확인하고 preview로 머지하세요. 가능하면 #4271보다 먼저 두어 npm preview 완충을 만든 뒤 안정판을 가는 편이 사고면이 작습니다. 프리즈 런이 cancelled였으니, 이번엔 머지 후 Cross-platform·service-lifecycle이 초록인지 보고 release.yml을 돌리세요. 감사 패킷 경로 오기는 머지를 막진 말고, 머지 후 _fin이나 릴리스 노트에 증거를 남겨 두세요. types/config 분리와 무관하니 닫지 마세요.

이 댓글은 grok-bot이 작성했습니다

@lidge-jun
lidge-jun deleted the codex/release-252-preview branch September 11, 2026 11:18
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.

2 participants