Repository navigation
Conversation
merge dev into preview for the v2.33.0-preview.20260825 release (api-usage oracle fix)
…w-2340 [WRONG BRANCH] release: promote dev to preview for v2.34.0-preview.20260827
# Conflicts: # package.json
…w-2350 [WRONG BRANCH] promote dev onto preview for v2.35.0-preview
…w-23600829 [WRONG BRANCH] release: v2.36.0-preview.20260829
`preview` carries its own release-bump commits (`release: v2.36.0-preview.20260829`), which are not on `dev`, so the promotion cannot fast-forward: `package.json` is the only conflicting path. Resolved to the version this train publishes, `2.36.0-preview.20260830`, which moves the `preview` channel forward from the 20260829 tip. Every other path takes `dev` (`bb6a6fbdf`) unchanged.
…w-23600830 [WRONG BRANCH] promote dev onto preview for v2.36.0-preview.20260830
# Conflicts: # package.json
…ks up the ReDoS fix)
…w-23800831 [WRONG BRANCH] promote dev onto preview for v2.38.0-preview.20260831
…23900901 # Conflicts: # package.json
[WRONG BRANCH] promote dev onto preview for v2.39.0-preview.20260901
…w-24000902 release: promote dev to preview for v2.40.0-preview.20260902
…rkflow call (lidge-jun#3262) Both v2.40.0 release dispatches (33615174183 preview, 33615177849 main) died at startup_failure: a workflow_call cannot grant its callee more than the calling job holds, and dev-version-bump.yml's job declares contents+pull- requests write. lidge-jun#3129 wired the call but never dispatched a release, so this is its first live run. The caller job now declares exactly the callee's two permissions; no other job in release.yml gains anything. Co-authored-by: jun <jun@lidge.dev> (cherry picked from commit 7ce0ba5)
…w-relfix release: carry the release.yml permissions fix onto preview for v2.40.0-preview.20260902
Brings the reviewed dev head (81a1fc1) onto preview. The only conflict is package.json's version, resolved to the preview channel's next version rather than to either side: preview carried 2.40.0-preview.20260902 and dev carries 2.41.0, and neither is what this publish is. The 37-commit delta since v2.40.0 is reviewed per-commit in devlog/_plan/260903_muse_release_train/011_review_ledger.md.
…w-2410-v2 [WRONG BRANCH] release: v2.41.0-preview.20260903
…w-2410-v3 [WRONG BRANCH] release: refresh preview onto the audit-clean dev head for v2.41.0-preview.20260903
v2.41.0 published from main while this promotion was in flight, so the preview line has to move past it: a 2.41.0-preview version is now BEHIND a released one, which tests/release-version-line.test.ts refuses and npm would refuse after it. dev moved to 2.42.0 in lidge-jun#3354, the automatic post-release bump. Preview follows the same line at 2.42.0-preview.20260903, which is the conflict resolution here: neither side's value, because neither is what this publish is. Also brings the three CI timing-flake fixes from lidge-jun#3351, which is what preview CI failed on twice at 491ffcf. Preflight: 2.42.0-preview.20260903 unpublished on npm, no v2.42.0* tag, no GitHub release, and it moves preview forward from 2.40.0-preview.20260902.
…w-2410-v4 [WRONG BRANCH] release: v2.42.0-preview.20260903
…w-2420-badges [WRONG BRANCH] release: promote dev onto preview for the main-account badge fix
…view preview had diverged from main: it carried 28 merge commits main did not have, while main carried 23 preview did not, so preview could not fast-forward. The divergence was history only - the sole CONTENT difference between the two branches was the package.json version line. This merge takes main (48f8186, the v2.42.0 release commit) into preview and resolves the tree to main's content, so preview now matches the released tree exactly apart from its own prerelease version line. The version could not stay at 2.42.0-preview.20260903: v2.42.0 has published, and compareReleaseTags ranks that prerelease BEHIND its own stable release (-1), which is what tests/release-version-line.test.ts fails on. preview opens the next prerelease line at 2.43.0-preview.20260904, matching dev's 2.43.0.
…w-2430 [WRONG BRANCH] chore(release): promote main v2.42.0 onto preview and open 2.43.0-preview
….82.0 [WRONG BRANCH] release: 2.82.0
….83.0-r2 [WRONG BRANCH] release: 2.83.0
[WRONG BRANCH] release: 2.84.0
…-2.85.0 [WRONG BRANCH] release: 2.85.0
…-2.86.0 [WRONG BRANCH] release: promote dev 494c50d to main as 2.86.0
…-2.87.0 release: promote dev de315e7 to main as 2.87.0
…-2.88.0 [WRONG BRANCH] release: promote dev 7761e04 to main as 2.88.0
…-2.89.0 release: promote dev 52c326b to main as 2.89.0
|
⏳ DRAFT
What to do
Review readiness checklist
0/4 boxes ticked. This pull request was already a draft. Its draft status will be preserved after every issue above is resolved. |
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: trueNo actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
📝 Walkthrough
Merge Risk: ⚪ Minimal · up to
|
Ingwannu
left a comment
There was a problem hiding this comment.
[P2] Preserve the cancellation owner contract and successful outcomes — src/oauth/login-flow-state.ts:308–312.
The new !active branch drops any existing row, including a successful terminal flow and a stale pending flow whose controller has been replaced. Internal Codex cancellation interprets true as evidence that its actual live controller was cancelled; changing that boolean meaning allows a stale Codex flow to report a successful cancellation. The existing tests/codex-integration/codex-auth-cancel-ownership.test.ts covers that boundary. A completed code-login result/account receipt also needs to remain readable rather than disappearing on a later cancel.
The same issue already has Draft #7379 on dev, whose initial broad CI caught exactly this shared-caller regression. Its public-endpoint opt-in now preserves the internal boolean and successful outcome, and current-head CI is green. Please coordinate against that candidate; no code from this PR was carried into it.
Also retarget/rebase to dev (this PR currently targets main), register the new test in both layout maps, isolate/reset its global flow state, and update the owning flow contract. This is scoped static feedback at b304f12; no independent local run or merge approval of this new branch is claimed.
Summary
Fixes #7378.
When an interactive OAuth login attempt is interrupted, cancelled, or fails,
loginState.get(provider)retains a settled state (done: true) with the terminal error message.Previously,
cancelLoginFlow(provider, flowId)contained the check:Because of this guard, calling
cancelLoginFlow(such as viaPOST /api/oauth/login/cancelfrom the dashboard modal close/cancel button) had no effect once the flow reachedexisting.done === true. As a consequence,getLoginStatus(provider)permanently returnederror: st?.erroron every poll, displaying a persistent red error banner in the dashboard UI and masking an otherwise healthy authenticated provider pool until the process was restarted.Changes
src/oauth/login-flow-state.ts, allowcancelLoginFlowto dismiss a settled (!active && existing) flow viadropLoginFlow(flowKey). This cleans up the latched terminal error from memory.tests/oauth/oauth-cancel-clears-transient-error.test.tsverifying that canceling after a settled terminal error successfully clearsstatus.errorand resetsstatus.done.Verification
bun test tests/oauth/oauth-cancel-clears-transient-error.test.ts(pass)bun test tests/oauth/oauth-manual-code.test.ts(pass)Review readiness checklist
This PR stays in draft until every box below is ticked. Tick all four boxes once the requirements are met:
Required local validation passed; commands, results, and any full-suite exception are documented.
I pushed my PR to a recent dev commit (at most 10 behind; a maintainer may still ask for the exact tip before merge).
I resolved all correct Codex and CodeRabbit findings.
My PR is ready for review.
Summary by CodeRabbit