Skip to content

sync: port upstream plan fold and per-device provider settings (#5558–#5580) - #217

Merged
cursor[bot] merged 22 commits into
mainfrom
codex/sync-20260808-l3-plans-providers-a13c
Aug 8, 2026
Merged

sync: port upstream plan fold and per-device provider settings (#5558–#5580)#217
cursor[bot] merged 22 commits into
mainfrom
codex/sync-20260808-l3-plans-providers-a13c

Conversation

@aaditagrawal

Copy link
Copy Markdown
Owner

L3/7 of the 2026-08-08 upstream sync stack. Stacked on L2 (#216).

What lands

Fork deviations preserved

  • ChatView keeps rateLimitThreads / RateLimitsView after plan-fold ChatView surgery
  • Provider settings extract keeps fork multi-driver catalog / instance traits / custom models

Verification

vp check and vp run typecheck pass after restack onto current L2.

Stacked below L4. Review bottom-up after L1–L2.

Open in Web Open in Cursor 

@coderabbitai

coderabbitai Bot commented Aug 8, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 7339054e-5036-49d8-bc56-328e264b7396

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

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@cursor

cursor Bot commented Aug 8, 2026

Copy link
Copy Markdown

@coderabbitai review

@cursor
cursor Bot marked this pull request as draft August 8, 2026 07:27
@aaditagrawal
aaditagrawal marked this pull request as ready for review August 8, 2026 07:30
t3dotgg and others added 19 commits August 8, 2026 07:37
…ut an origin remote (pingdotgg#5556)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…otes (pingdotgg#5547)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…k log (pingdotgg#5559)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…ic error (pingdotgg#5557)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: t3-turbo-simulation <simulation@t3turbo.local>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Theo Browne <me@t3.gg>
… bottom (pingdotgg#5566)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: aaditagrawal <aaditagrawal@users.noreply.github.com>
…rovider update (pingdotgg#5570)

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
…tgg#5558)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
(cherry picked from commit a8cd2ad)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
(cherry picked from commit 48aa875)
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
(cherry picked from commit 95305c3)
t3dotgg and others added 3 commits August 8, 2026 07:38
…pingdotgg#5563)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
(cherry picked from commit b98a0f0)
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
(cherry picked from commit 3ffe84f)
@cursor
cursor Bot force-pushed the codex/sync-20260808-l2-pagination-reconnect-a13c branch from 4be7789 to 96d0a9b Compare August 8, 2026 07:39
@cursor
cursor Bot force-pushed the codex/sync-20260808-l3-plans-providers-a13c branch from 3b3c449 to cd88dd2 Compare August 8, 2026 07:39

@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: 3b3c449df3

ℹ️ 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 +1979 to +1982
} else if (!conflictsWithActiveTurn) {
if (event.type === "turn.plan.updated") {
threadPlanProgress.recordPlanProgress(thread.id, event.payload.plan);
} else if (event.type === "turn.completed" || event.type === "turn.aborted") {

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 Clear plan progress when steering starts a replacement turn

When steering causes a provider such as OpenCode to start a replacement turn without completing the superseded one—the scenario explicitly handled earlier in this function—the accepted turn.started still has conflictsWithActiveTurn === true, so this branch neither clears nor replaces the old thread-level plan progress. Until the replacement turn emits its own plan update, the shell and sidebar therefore label the new work with the superseded turn’s current step; clear progress when conflictingTurnStartIsPendingTurnStart is accepted, or associate progress with its turn ID.

AGENTS.md reference: AGENTS.md:L25-L25

Useful? React with 👍 / 👎.

Comment on lines +681 to +683
// Plans rewrite in place: compare the snapshot's identity fields so an
// unchanged plan keeps its row reference (virtualization stability).
return a.createdAt === bp.createdAt && a.turnPlan.plan === bp.turnPlan.plan;

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 Preserve plan identity across unrelated activity updates

When any new activity arrives after a thread has accumulated plan rows, deriveTurnPlans reconstructs every ActivePlanState, so a.turnPlan.plan === bp.turnPlan.plan is false even when that plan’s source activity did not change. This defeats the row-stability layer and rerenders every historical plan chip throughout a live activity stream; compare stable source activity identity or reuse the previous plan objects instead of relying on newly allocated plan-state references.

Useful? React with 👍 / 👎.

Comment on lines +1179 to +1181
const [expanded, setExpanded] = useState(false);
const { steps } = row.turnPlan.plan;
const completedCount = steps.filter((step) => step.status === "completed").length;

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 Render the plan explanation in the folded row

For a turn.plan.updated event with a non-null explanation, the replacement row reads and renders only steps, leaving the retained ActivePlanState.explanation inaccessible even after expansion. The removed plan sidebar displayed this provider-supplied context, so folding a plan now silently loses information such as the rationale for a Codex plan update; include the explanation in the expanded chip.

Useful? React with 👍 / 👎.

@cursor
cursor Bot changed the base branch from codex/sync-20260808-l2-pagination-reconnect-a13c to main August 8, 2026 07:48
@cursor
cursor Bot merged commit dad0b6a into main Aug 8, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XXL 1,000+ effective changed lines (test files excluded in mixed PRs). vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants