[WRONG BRANCH] release: promote 2.47.0 to main - #3929
Conversation
chore(release): open dev at 2.47.0 before releasing 2.46.0
… first call Routed models in Codex code mode learned apply_patch argument shape, the marker rule, the isolate import ban and session_id polling only by failing (xai/grok-4.6, 2026-09-07). State them once in exec-tool-result-normalize.ts beside the echo rule and inject at the three existing code-mode sites: shared nudge, Cursor guidance, native routed Responses instructions.
…a host failure string Post-hoc half of the host contract. Exec-bridge results carrying "expects a string input", "The first/last line of the patch must be", or "Unsupported import in exec" gain one recovery line on the native routed Responses, Kiro and Cursor result paths. Responses and Kiro additionally require the verified code-mode catalog; Cursor matches the exact exec name under its opencodex-responses provider and keeps its isError policy. Flat shell bridges, foreign namespaces, whitespace/failed-wrapper grouping and replayed annotations are untouched.
Document the pre-call nested-helper contract and post-hoc host-failure annotation in the transports SoT and the Codex integration guide. This change does not rewrite model JavaScript or patch payloads.
fix(code-mode): state the host contract for nested helpers and annotate host failures
(cherry picked from commit e5bbd79) Co-authored-by: Ingwannu <186453546+Ingwannu@users.noreply.github.com>
`debugProviderDiagnostic` already returns early when provider debug is off, but its argument object is built by the caller first. The Kiro request path therefore ran `new TextEncoder().encode(body).length` over the entire serialized request body on every request, including when diagnostics were disabled, and then discarded the result inside the callee. Wrap the diagnostic call in `isDebugEnabled()` so the details are only constructed when they can actually be emitted. `src/adapters/openai-chat.ts` already guards its diagnostics the same way. The regression asserts that building a request performs no `TextEncoder` encode over the serialized payload while diagnostics are off; it fails without the guard and passes with it. (cherry picked from commit d5d711a) Co-authored-by: luvs01 <27862058+luvs01@users.noreply.github.com>
… [skip ci] Carries PR #3840 (head 9a21452, 5 commits squashed onto current dev): gpt-6-astra, Grok and MAI models on GitHub Copilot default to the Responses wire instead of Chat Completions, which returned unsupported_api_for_model. Docs scope the per-wire model lists and the discovery fallback test covers legacy overrides. (carried from #3840) Co-authored-by: chilung-cgu <215337896+chilung-cgu@users.noreply.github.com>
…ate reads [skip ci] Resolves the maintainer objection on #3837 (discussion_r3945935220): the shared setup cleared only OCX_DEBUG_FRAMES, so an inherited OCX_DEBUG=1 or a runtime debug override made the encoder-spy test fail legitimately. Snapshot OCX_DEBUG, OCX_DEBUG_FRAMES and the runtime override in beforeEach, clear them, and restore the exact previous values in afterEach. Co-authored-by: luvs01 <27862058+luvs01@users.noreply.github.com>
(cherry picked from commit 8ef77f7) Co-authored-by: luvs01 <27862058+luvs01@users.noreply.github.com>
…er marker in the same delta [skip ci] Resolves the unresolved major finding on #3843 (discussion_r3946034145): lastIndexOf selected the later START, its END made the whole-string strip pair the first START with that END, and the malformed text vanished. Walk START-delimited segments independently so a superseded or over-bound span is emitted verbatim and only a bounded trailing span is held for the next delta. Co-authored-by: luvs01 <27862058+luvs01@users.noreply.github.com>
…ip ci] (cherry picked from commit 73abec9) Co-authored-by: luvs01 <27862058+luvs01@users.noreply.github.com>
GET and PUT /api/sidecar-settings return webSearch.model/backend/stream flags but omitted webSearch.enabled, so the dashboard could not tell whether the sidecar master switch was off. Serialize the effective value (unset reads as enabled) on both responses. Reimplements #2033 on current dev (the original branch is 1364 commits behind and its test moved to tests/vision/ under the test-layout split). Co-authored-by: louis-tepe <161487332+louis-tepe@users.noreply.github.com>
docs(devlog): make CI completion check fail closed (carry #3532)
fix(copilot): route Responses-only GPT, Grok and MAI models correctly (carry #3840)
fix(kiro): gate request diagnostics behind the debug check (carry #3837)
fix(responses): bound the streaming citation marker span (carry #3843)
fix(providers): refuse keychain restore across provider ownership (carry #3845)
fix(management): expose the effective web-search sidecar enabled state (reimplements #2033)
(cherry picked from commit 0da9f2c) Co-authored-by: terrytan95 <10609214+terrytan95@users.noreply.github.com>
(cherry picked from commit 5d01860) Co-authored-by: terrytan95 <10609214+terrytan95@users.noreply.github.com>
…ption for canonical URLs (cherry picked from commit 3830862) Co-authored-by: hualiny <82697947+hualiny@users.noreply.github.com>
Co-authored-by: hualiny <82697947+hualiny@users.noreply.github.com>
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Team Run ID: ⛔ Files ignored due to path filters (2)
📒 Files selected for processing (260)
📝 WalkthroughWalkthroughThis release train bundles many independent changes: code-mode host-contract guidance and recovery annotations, operator-pinned reasoning effort, custom usage time windows, manual per-model pricing, a routed model picker order editor, OAuth login cancellation, an OrcaRouter provider, subagent fallback chains, a Codex Desktop authless toggle, quota auto-refresh hardening, translator-budget accounting for reasoning envelopes, sidecar/citation-marker bounding, Mihomo IPv6 handling, startup-health snapshots, and sponsorship documentation. ChangesFeature Implementation
Devlog Planning Records
Documentation Updates
Release Workflow and Sponsorship Infra
Estimated code review effort: 5 (Critical) | ~180 minutes Sequence Diagram(s)sequenceDiagram
participant Model
participant Adapter as Responses/Kiro/Cursor Adapter
participant HostContractLib as exec-tool-result-normalize
Model->>Adapter: exec tool call fails (host error)
Adapter->>HostContractLib: annotateCodeModeHostFailure(text)
HostContractLib-->>Adapter: text + [recovery: ...] hint
Adapter-->>Model: annotated tool result
sequenceDiagram
participant CLI_GUI as CLI or GUI
participant LogsUsageRoutes
participant UsageAggregateCache
CLI_GUI->>LogsUsageRoutes: GET /api/usage?since&until
LogsUsageRoutes->>LogsUsageRoutes: parseUsageTimeWindow
LogsUsageRoutes->>UsageAggregateCache: getFilteredUsageAggregate(filter, window)
UsageAggregateCache-->>LogsUsageRoutes: windowed summary (customWindow:true)
LogsUsageRoutes-->>CLI_GUI: report with since/until echoed
sequenceDiagram
participant User
participant AddProviderModal
participant useAddProviderOAuth
participant OAuthCancellationBarrier
participant Server
User->>AddProviderModal: request new provider login
AddProviderModal->>useAddProviderOAuth: cancelLoginOAuth(previous)
useAddProviderOAuth->>OAuthCancellationBarrier: cancelOAuthLogin(apiBase, provider)
OAuthCancellationBarrier->>Server: POST /api/oauth/login/cancel
Server-->>OAuthCancellationBarrier: cancelled
useAddProviderOAuth->>Server: start new login
✨ Finishing Touches 💡 1🛠️ Fix failing CI checks 💡
📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
✅ Deterministic PR hygiene checks passed. |
⏳ DRAFT
What to do
Its title has been prefixed with |
리뷰 · 우선순위 67 / 80이 PR은 같은 2.47.0 후보를 main 대비 diff 가 큰 이유도 동일합니다. 2.47 트레인 전체가 main 에 없던 내용으로 보이기 때문입니다. 출구 체크는 (1) #3927 회귀가 이미 경로 PR base=main / title [WRONG BRANCH] - 안정 채널 승격의 의도된 main 타깃이다. 봇의 dev-only 가정과 충돌한다. 메인테이너의 판단이 필요한 지점
너의 추천 이 댓글은 grok-bot이 작성했습니다 |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Summary
Promote the 2.47.0 release candidate to main for 2.47.0. The owner explicitly authorized preview/main promotions and publication after independent Astra PABCD regression validation.
This promotion depends on #3927 landing on dev. The prepared tree matches reviewed candidate 48ab3e1 exactly except package.json version. Dev was moved to 2.48.0 via #3925. Sponsor placement PRs #3914/#3915 are excluded.
Verification
GUI verification (mocked failure path, unchanged component tree)
Checklist
Final candidate recheck: 48ab3e1. Main-relative pinned React Doctor scanned 44 changed files with no issues; independent UI guard review passed 109 tests and two sentinel/cache probes. Browser smoke was refreshed on this exact source with the five fault/retry scenarios plus blank/valid poll input. All displayed screenshots now label the final candidate.
Promotion target-check disposition: enforce-target is expected to reject main/preview because its ALLOWED_BASES contains only dev and its only coded exception is a stacked child. The repository AGENTS.md explicitly permits maintainer release promotions and the owner requested these two targets. As with preceding release PRs #3851/#3852, this is an explicitly authorized admin PR-only promotion exception. The failing target-policy check is NOT reported as passing; all runtime/security/release gates still must pass. No checks, branch protections, or target branches are modified to hide it.
Summary by CodeRabbit
New Features
Bug Fixes
Documentation
Chores