Skip to content

Merge from upstream - #8

Merged
ar4ft merged 217 commits into
ar4ft:mainfrom
lidge-jun:main
Aug 26, 2026
Merged

Merge from upstream#8
ar4ft merged 217 commits into
ar4ft:mainfrom
lidge-jun:main

Conversation

@ar4ft

@ar4ft ar4ft commented Aug 26, 2026

Copy link
Copy Markdown
Owner

No description provided.

lidge-jun and others added 30 commits August 14, 2026 21:30
preview now carries the same tree as main and dev (36aed0b). The version
string is the only difference, which is what the release workflow requires:
preview publishes prerelease versions under the 'preview' dist-tag.

Before this, the preview channel was 12,065 lines behind dev and still shipped
the Compatibility Lab on every install's request path.
chore(preview): promote dev for the v2.20.0 line
[WRONG BRANCH] Merge dev into preview: Windows suite green
Merge dev into preview: ignore leftover test temp files
Merge main into preview: v2.24.2 release
Promote dev to preview: Wave 5 campaign (107 commits)
Promote dev to preview: CodeQL #87 ReDoS fix + closeout correction
Promote dev to preview: Wave 5 record corrections
Promote dev to preview: alert-precision record
Promote dev to preview: post-scan closing note
Promote dev to preview: final Wave 5 errata
Promote dev to preview: Wave 5 closing record
Promote dev to preview: v2.25.0 release train
promote: dev to preview for v2.26.0-preview.20260819
lidge-jun and others added 29 commits August 25, 2026 12:48
…window (#2526)

#1905 taught catalog sync never to raise a compaction threshold retained from
Codex. The rule is right, but the retained number was trusted even when sync
corrected the row's context window in the same pass.

An upstream entry arriving as 128k/115_200 whose window is then widened to 272k
kept the stale 115_200 — 42% of the real window — so every long turn compacted
early. CI caught it on macos and test 1/4 at 121c1fb.

A retained threshold only describes the window it arrived with. Capture the
incoming window before any override or cap rewrites the row, and trust the
retained value only when the window is unchanged; lower-is-policy still holds
there, which is what #1905 was protecting.
Docs-only roadmap for three operator-visibility defects that share one shape:
OpenCodex computes the truth and does not report it.

- 010 (#2457): the sidecar pair check collapses a five-member union into a
  two-arm ternary, so a submitted gemini backend is validated against the
  stored openai backend and the dashboard save 400s.
- 020 (#2411): collectStatus already computes routingKind and ships it in
  status --json, but the human renderer never prints it, so a healthy proxy
  reads green while nothing routes through it.
- 030 (#2412): a version-manager overwrite leaves a message-less ineligible
  verdict, and the CLI warns only when a message exists.

002 records the plan audit, including two amendments: WP4 must plumb messages
to every reachable silent ineligible return rather than only the one the
reporter hit, and WP3 must pin custom-local/unknown as intentionally silent.
…2492)

* fix(gui): inset the Claude account-pool warning and threshold field

`.card` carries no padding of its own — `.card-row`, `.card-sub` and
`.setting-row` each supply the 16px inset. The experimental warning box and
the threshold field are none of those, so in the Anthropic account-pool card
they rendered flush against the card border while the title row and the
rotation rows sat 16px in. Measured in the dashboard at 814px card width:
title 17px from the card edge, warning box and threshold input 1px.

The warning takes margin rather than padding: it draws its own border, so
padding insets only its text and leaves the border on the card edge. The
threshold field takes padding because the `.input` inside is full-width, so
the field owns the inset for the label, the control and the help line.

This is the same fix `.account-pool-strategy-card` already carries for the
Codex pool card, applied to the card that still had the gap. Moving the box
styles out of inline `style` is part of it: an inline `padding` outranks any
stylesheet rule, so leaving it there would keep the inset unreachable.

* fix(gui): keep the inset rationale in one place

The stylesheet rule, the test file header, and three per-assertion comments
each restated the same two facts — that `.card` has no padding and that the
warning box needs margin rather than padding. CodeRabbit's slop detector
flagged the repetition, and it was right: the explanation belongs on the CSS
rule, where the values it justifies live.

The test header now points at that rule and keeps only what is specific to
the test — why the assertions read source text rather than measuring, and
the browser measurements the contract is derived from. The comments that
survive per assertion are the ones the CSS does not carry: why the rule
regex is anchored, how a shorthand is read, and why an inline style would
silently disable the fix.
fix(gui): show the device code and authorization link on every login surface
fix(gui): render the login hint during a first-time provider add
feat(oauth): let the operator decline a proxy-side browser open
fix(oauth): read code and state from a redirect URL fragment
fix(oauth): never pair a code and state from different URL components
merge dev into preview for the v2.33.0-preview.20260825 release
…parity

fix(release): run the preflight suite in the same groups CI does
merge dev into preview for the v2.33.0-preview.20260825 release (release-gate parity)
…on-oracle

test(usage): stop asserting the overlay version against a moving oracle
# Conflicts:
#	package.json
[WRONG BRANCH] merge dev into main for the v2.33.0 release
@ar4ft
ar4ft merged commit a2d2ca4 into ar4ft:main Aug 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet