sync: port upstream snooze, Opus 5, diff/fast-mode polish (#4309–#4488)#187
Conversation
|
Warning Review limit reached
Next review available in: 45 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (89)
✨ Finishing Touches🧪 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 |
96acf51 to
cd8bb31
Compare
55fd2fd to
c5bfaff
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 55fd2fd431
ℹ️ 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".
| const carryRuntimeMode = | ||
| carrySourceComposer?.runtimeMode ?? | ||
| carrySourceShell?.runtimeMode ?? | ||
| carrySourceDraft?.runtimeMode ?? | ||
| null; |
There was a problem hiding this comment.
Normalize carried modes for the destination provider
When a user views a Droid thread in medium-access and creates a thread in another environment where that Droid instance is unavailable, the composer falls back to an available provider but this carried runtime mode remains. If that provider is Codex, runtimeModeToThreadConfig handles the unsupported value via its default branch and launches with danger-full-access, so a draft shown as Medium access can execute unsandboxed. Carry the mode only when the source instance is available in the destination, or normalize it after selecting the actual destination provider.
AGENTS.md reference: AGENTS.md:L20-L25
Useful? React with 👍 / 👎.
| const homePath = config.homePath.trim(); | ||
| if (homePath.length > 0) { | ||
| return path.resolve(expandHomePath(homePath)); |
There was a problem hiding this comment.
Resolve custom Claude homes with the shared config logic
For supported legacy homePath values that do not end in .claude, such as ~/.claude-work, makeClaudeEnvironment points Claude at ~/.claude-work/.claude, but this resolver scans ~/.claude-work/skills. Consequently, the new picker omits every user skill for such custom Claude instances. Reuse resolveClaudeConfigDir so discovery and the spawned runtime interpret homePath identically.
AGENTS.md reference: AGENTS.md:L64-L66
Useful? React with 👍 / 👎.
| const roots: ReadonlyArray<{ directory: string; scope: ClaudeSkillScope }> = [ | ||
| { directory: path.join(configDirPath, "skills"), scope: "user" }, | ||
| ...(cwd ? [{ directory: path.join(cwd, ".claude", "skills"), scope: "project" as const }] : []), |
There was a problem hiding this comment.
Discover project skills from the active project
When the active thread belongs to any project or worktree other than the server startup directory, this project root is wrong: ClaudeDriver passes the global ServerConfig.cwd, and the resulting provider snapshot is reused by every composer. A thread in project B therefore offers project A's skills and omits B's, and selecting one can insert a skill name that Claude cannot load in B. Project-scoped discovery needs the active thread/project cwd rather than the instance-global startup cwd.
Useful? React with 👍 / 👎.
| react-native-keyboard-controller@1.21.13: 20be72c84d74253acdcfefbc6defe36dc396944f1a44cab2bdd0e3cd572ae008 | ||
| react-native-nitro-modules@0.35.9: 825622aae63a8fb5b904f3c77908a0e216261d727ea171709f2c0b6088422675 | ||
| react-native-screens@4.25.2: 282d02fa85a8a643548a27565dedd92bd3a729742be5c0371b0c4f6d07e33ce3 | ||
| react-native-screens@4.25.2: 47a07b0849ebf1ae454be3cb9fde7700c763584afa403d381e11e06e36187de8 |
There was a problem hiding this comment.
Regenerate the lockfile from the fork manifests
The regenerated lockfile no longer matches the committed manifests: the server importer omits @cursor/sdk, @factory/droid-sdk, @github/copilot, and @github/copilot-sdk; the web importer omits @clerk/clerk-js, @tanstack/react-query, and ghostty-web; and the desktop importer omits electron-builder-squirrel-windows. This line also records 47a07b… for the unchanged react-native-screens patch whose SHA-256 is still 282d02…. pnpm install --help defines frozen mode as failing when an update is needed and says it is enabled by default in CI, so clean CI and release installs stop before checks or builds. Regenerate the complete lockfile from the fork's manifests and patches.
AGENTS.md reference: AGENTS.md:L20-L24
Useful? React with 👍 / 👎.
| const [autoExpanded] = useState(() => | ||
| shouldAutoExpandChangedFiles(checkpointFiles, isLatestTurn), | ||
| ); |
There was a problem hiding this comment.
Reevaluate auto-collapse as checkpoint diffs grow
Checkpoint summaries are replaced repeatedly during an active turn as mid-turn diff updates arrive, but this initializer freezes the expansion decision from the first nonempty update. A turn that begins with one small file therefore mounts expanded and stays expanded when later updates grow beyond the five-file or 200-line limits, leaving the full large tree rendering during streaming—the case this auto-collapse feature is meant to protect. Recompute the automatic state while there is no persisted user override, including when the size threshold is crossed.
AGENTS.md reference: AGENTS.md:L56-L62
Useful? React with 👍 / 👎.
| "medium-access": { | ||
| label: "Medium access", | ||
| description: "Allow reversible commands, ask before riskier actions.", | ||
| icon: ShieldIcon, |
There was a problem hiding this comment.
Restrict Medium access to Droid
Adding medium-access to this global configuration also adds it to runtimeModeOptions = Object.keys(runtimeModeConfig), so the composer now offers Medium access for Codex and every other provider, not just Droid. If a Codex user selects it, the server's runtimeModeToThreadConfig has no matching case and falls through to the full-access default (approvalPolicy: "never", danger-full-access), contradicting the UI's promise that risky actions will ask. Filter runtime modes by the selected provider and make the server reject or safely normalize unsupported values.
AGENTS.md reference: AGENTS.md:L20-L24
Useful? React with 👍 / 👎.
cd8bb31 to
9d696af
Compare
c5bfaff to
abed4de
Compare
9d696af to
2e9f062
Compare
bec79cc to
0c6d680
Compare
2e9f062 to
5f5d894
Compare
0c6d680 to
6ee0847
Compare
5f5d894 to
3430790
Compare
6ee0847 to
546c056
Compare
3430790 to
a8bf47e
Compare
546c056 to
93fefe9
Compare
a8bf47e to
a541930
Compare
93fefe9 to
e4eba2b
Compare
a541930 to
bc182d4
Compare
e4eba2b to
fee7a54
Compare
bc182d4 to
8a7286f
Compare
fee7a54 to
352772a
Compare
8a7286f to
022a22e
Compare
352772a to
c8cba99
Compare
022a22e to
4ff5f4f
Compare
c8cba99 to
9550391
Compare
4ff5f4f to
7280a5b
Compare
9550391 to
8999239
Compare
7280a5b to
70796b6
Compare
9dff3b3 to
414665c
Compare
6a463a4 to
669de38
Compare
414665c to
d6ec630
Compare
669de38 to
2819489
Compare
d6ec630 to
bf87160
Compare
…losed PR (pingdotgg#4309) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> (cherry picked from commit 193e3c6)
(cherry picked from commit 6ef7aa8)
(cherry picked from commit ce467da)
Co-authored-by: codex <codex@users.noreply.github.com> (cherry picked from commit 67a7b1a)
…able (pingdotgg#4409) (cherry picked from commit 51672b6)
…otgg#4411) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> (cherry picked from commit 2f41c07)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com> (cherry picked from commit fc3f78f)
…otgg#4414) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> (cherry picked from commit 6b9a598)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: maria <maria@kuuro.net> (cherry picked from commit 202e560)
(cherry picked from commit 5d17354) Co-authored-by: aaditagrawal <aaditagrawal@users.noreply.github.com>
(cherry picked from commit 15e875a)
Co-authored-by: codex <codex@users.noreply.github.com> (cherry picked from commit a7ee309)
Co-authored-by: codex <codex@users.noreply.github.com> (cherry picked from commit ece0508)
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> Co-authored-by: Theo Browne <me@t3.gg> (cherry picked from commit 41a430a)
(cherry picked from commit 38cfc25)
…dotgg#4488) Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> (cherry picked from commit 5719e8a)
Keep fork-only medium-access in RuntimeMode alongside upstream Auto. Update presentation maps and drop obsolete provider kind from slug helper. Co-authored-by: aaditagrawal <aaditagrawal@users.noreply.github.com>
Keep WSL node-pty on bullseye glibc, pin releases to the fork, and stop hard-requiring upstream relay/npm publish. Scope Auto vs Medium access by provider, normalize carried modes on new threads, and fix Claude/Droid type regressions from the restack. Co-authored-by: aaditagrawal <aaditagrawal@users.noreply.github.com>
bf87160 to
093e193
Compare
Align patchedDependencies hashes (react-native-screens) and importer entries with the current workspace patches so frozen CI installs succeed. Co-authored-by: aaditagrawal <aaditagrawal@users.noreply.github.com>
Port upstream snooze, Opus 5, Clerk upgrade, diff/fast-mode, and late polish onto the fork.
Includes fork adaptations:
Stacked after #186 (now merged). Merge base is
main.