feat(grok): add Grok CLI provider via ACP#2809
Conversation
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ 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 |
ApprovabilityVerdict: Needs human review This PR introduces a complete new provider integration (Grok via ACP) with ~3700 lines of new code across multiple new files including adapters, drivers, text generation, and UI changes. New features of this scope introducing new user-facing capabilities and provider integrations require human review. Additionally, there are unresolved high-severity review comments. You can customize Macroscope's approvability policy. Learn more. |
30e7372 to
a58e850
Compare
|
was looking for this, would really appreciate if it's tested well and merged to main soon. |
|
Thanks for pushing this forward. I think the concurrency comments are valid and not really Grok-specific; they belong at the shared ACP adapter boundary. A safe shape is:
I opened #2932 with that shape for review. It extracts Cursor/Grok into a shared |
| "", | ||
| ].join("\n"), | ||
| ); | ||
| chmodSync(targetBinaryPath, 0o755); |
There was a problem hiding this comment.
Stale env baked in launcher
High Severity
On macOS dev, the launcher shell script embeds export lines for VITE_DEV_SERVER_URL, T3CODE_PORT, and the derived T3CODE_DESKTOP_PROTOCOL_CALLBACK_URL when the bundle is built. Launcher reuse skips rewriting that script, so those exports override fresher values from dev-electron.mjs and can point Electron and cloud auth callbacks at the wrong host or port.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit c4dc41a. Configure here.
| export function requestRelayClientInstallConfirmation(version: string): Promise<boolean> { | ||
| if (state.status !== "idle") { | ||
| return Promise.reject(new Error("A relay client installation is already in progress.")); | ||
| } | ||
|
|
||
| publish({ status: "confirming", version }); | ||
| return new Promise<boolean>((resolve) => { | ||
| resolveConfirmation = resolve; | ||
| }); | ||
| } |
There was a problem hiding this comment.
🟠 High cloud/relayClientInstallDialog.ts:48
In requestRelayClientInstallConfirmation, publish() is called before resolveConfirmation is assigned. Since publish() synchronously invokes all listeners, if any listener calls respondToRelayClientInstallConfirmation() synchronously, that function checks resolveConfirmation (still null or stale) and returns early without resolving. The returned Promise then hangs forever. Consider assigning resolveConfirmation before calling publish().
-export function requestRelayClientInstallConfirmation(version: string): Promise<boolean> {
- if (state.status !== "idle") {
- return Promise.reject(new Error("A relay client installation is already in progress."));
- }
-
- publish({ status: "confirming", version });
- return new Promise<boolean>((resolve) => {
- resolveConfirmation = resolve;
- });
-}🤖 Copy this AI Prompt to have your agent fix this:
In file @apps/web/src/cloud/relayClientInstallDialog.ts around lines 48-57:
In `requestRelayClientInstallConfirmation`, `publish()` is called before `resolveConfirmation` is assigned. Since `publish()` synchronously invokes all listeners, if any listener calls `respondToRelayClientInstallConfirmation()` synchronously, that function checks `resolveConfirmation` (still `null` or stale) and returns early without resolving. The returned Promise then hangs forever. Consider assigning `resolveConfirmation` before calling `publish()`.
Evidence trail:
apps/web/src/cloud/relayClientInstallDialog.ts lines 48-57 (requestRelayClientInstallConfirmation): publish() on line 53 before resolveConfirmation assignment on line 55. Lines 30-35 (publish): synchronously invokes all listeners. Lines 59-62 (respondToRelayClientInstallConfirmation): returns early if !resolveConfirmation.
Wires the Grok CLI (https://x.ai/cli) into the existing ACP runtime so X Premium / SuperGrok users get a first-class provider. - GrokDriver registered through builtInDrivers - GrokProvider / GrokAdapter handle session lifecycle, event streams, and model switching via session/set_model - GrokAcpSupport probes auth methods and drives the xai.api_key flow - GrokTextGeneration adds Grok as an option (not a default) for git commit/branch generation - grok-build registered as the only Grok model id (only one currently exposed by the CLI) - UI: Grok icon, provider selector entry, settings driver metadata, provider icon mapping Defaults are unchanged: Codex remains the default provider. Closes pingdotgg#2808
- Use crypto-backed UUIDs and normalize ACP callback failures - Fix chat composer refs and browser secret record updates - Tighten runtime catalog hydration test setup
- Use provider-supplied approval option IDs when responding - Keep streaming if native notification logging fails
c4dc41a to
ba88d9a
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
There are 2 total unresolved issues (including 1 from previous review).
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 2fb6598. Configure here.
Use the repo test harness imports and launch mock ACP agents with the current runtime so CI does not depend on undeclared vitest or bun PATH availability.
#99) * fix: maintain reasoning selections for multiple providers (pingdotgg#2760) * [codex] Bump Effect to beta.73 and migrate compatibility APIs (pingdotgg#2840) Co-authored-by: codex <codex@users.noreply.github.com> * Add Claude Opus 4.8 support (pingdotgg#2849) * Migrate TypeScript checks to Effect TSGo (pingdotgg#2851) * Extract collection performance refactors from mobile stack (pingdotgg#2854) Co-authored-by: codex <codex@users.noreply.github.com> * Extract independent web cleanup from mobile stack (pingdotgg#2855) Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: codex <codex@users.noreply.github.com> * Ensure Electron runtime is installed in release workflow (pingdotgg#2861) * T3 Code Mobile [WIP] (pingdotgg#2013) Co-authored-by: codex <codex@users.noreply.github.com> Co-authored-by: Julius Marminge <julius@macmini.local> Co-authored-by: Yash Singh <saiansh2525@gmail.com> * chore: add vendored reference repo subtree sync tooling (pingdotgg#2902) Co-authored-by: codex <codex@users.noreply.github.com> * Use HttpApi for Environment APIs & standardize authn/authz (pingdotgg#2858) Co-authored-by: codex <codex@users.noreply.github.com> * chore: add Alchemy reference repo subtree (pingdotgg#2918) Co-authored-by: codex <codex@users.noreply.github.com> * fix(desktop): Include standard Linux AppImage icons for Niri/Noctalia (pingdotgg#2915) * Probe Cursor models via list_available_models (pingdotgg#2428) Co-authored-by: codex <codex@users.noreply.github.com> Co-authored-by: Julius Marminge <julius@mac.lan> * Migrate workspace to Vite+ and pnpm (pingdotgg#2899) Co-authored-by: Julius Marminge <julius@mac.lan> Co-authored-by: Cursor Agent <cursoragent@cursor.com> * test(web): CI stability - prebundle react-dom client for browser tests (pingdotgg#2928) * fix(ssh): Surface redacted stdout for failed commands (pingdotgg#2920) * fix(desktop): Preserve SSH HTTP auth status (pingdotgg#2923) Co-authored-by: Julius Marminge <jmarminge@gmail.com> * fix: build web before desktop release packaging (pingdotgg#2934) Co-authored-by: Julius Marminge <julius@mac.lan> * ci: let setup-vp install dependencies (pingdotgg#2936) Co-authored-by: Julius Marminge <julius@mac.lan> * fix(release): surface desktop packaging subprocess output (pingdotgg#2937) Co-authored-by: Julius Marminge <julius@mac.lan> * chore: setup eas ci (pingdotgg#2911) Co-authored-by: Julius Marminge <julius@mac.lan> * fix(release): use workspace electron-builder for desktop packaging (pingdotgg#2938) Co-authored-by: Julius Marminge <julius@mac.lan> * [codex] remove duplicated pnpm root config (pingdotgg#2939) Co-authored-by: Julius Marminge <julius@mac.lan> * fix(release): install dependency closures in partial jobs (pingdotgg#2941) Co-authored-by: Julius Marminge <julius@mac.lan> * [codex] split ci workflow jobs (pingdotgg#2940) Co-authored-by: Julius Marminge <julius@mac.lan> * [codex] fix mobile native static analysis source discovery (pingdotgg#2942) Co-authored-by: Julius Marminge <julius@mac.lan> * fix(release): preserve desktop artifact arch (pingdotgg#2943) Co-authored-by: Julius Marminge <julius@mac.lan> * [codex] Fix desktop packaging patched dependencies (pingdotgg#2944) Co-authored-by: codex <codex@users.noreply.github.com> * [codex] Filter staged desktop patched dependencies (pingdotgg#2945) Co-authored-by: codex <codex@users.noreply.github.com> * fix(release): install hosted web workspace closure (pingdotgg#2949) * fix(cli): bundle patched diff parser dependency (pingdotgg#2957) Co-authored-by: Julius Marminge <julius@mac.lan> * Prevent settings layout shifts with scrollbar gutters (pingdotgg#2960) * [codex] fix release finalize install (pingdotgg#2961) Co-authored-by: Julius Marminge <julius@mac.lan> * fix(source-control): handle self-hosted GitLab, multi-account GitHub auth & azure devops web url (pingdotgg#2480) Co-authored-by: Julius Marminge <julius@mac.lan> * [codex] Avoid shell for Node executable spawns (pingdotgg#2952) Co-authored-by: Julius Marminge <julius@mac.lan> * [codex] Avoid shell for Windows environment probe (pingdotgg#2951) Co-authored-by: Julius Marminge <julius@mac.lan> * fix(composer): support spaces in file mentions (pingdotgg#2625) * [codex] Avoid shell for system executables (pingdotgg#2950) Co-authored-by: Julius Marminge <julius@mac.lan> * feat(relay): Add managed relay tunnels and APN service (pingdotgg#2837) Co-authored-by: codex <codex@users.noreply.github.com> * Restructure documentation into topical folders (pingdotgg#2963) * move * dont fail if env-file is unspecified * fallback to None when RELAY_DOMAIN is unset * implicit install from vp * forward args directly * bump alchemy to fix absolute drizzle schema out * bump alchemy to fix drizzle schema out attempt 2 * Migrate tests to vite-plus test APIs (pingdotgg#2964) * remove `vp staged` * publish deploy status on relay deploy workflow * Use pnpm for server publish workflow (pingdotgg#2966) * Rename function for publishing arguments to vp pm (pingdotgg#2967) * Remove duplicate 'publish' argument in CLI script * Refactor recoverable Effect fallbacks to orElseSucceed (pingdotgg#2968) * document vp instead of mise * link * cleanup * tip * we support cursor, duhhh * include @latest * fix(cloud): use Electron fetch for proxying Clerk IPC requests (pingdotgg#2973) * fix: handle Claude Agent SDK 0.3.x system messages to stop runtime-warning flood (pingdotgg#2872) Co-authored-by: Julius Marminge <julius0216@outlook.com> * "claude system message" instead of "runtime warning" when using 4.8 from claude code (pingdotgg#2972) * fix(desktop): stop looping macOS TCC permission prompts (pingdotgg#2745) Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Julius Marminge <jmarminge@gmail.com> * Annotate relay error spans with schema fields (pingdotgg#2976) * [codex] Enrich relay authorization diagnostics (pingdotgg#2977) Co-authored-by: codex <codex@users.noreply.github.com> * [codex] Extract infrastructure, telemetry, and test tooling (pingdotgg#2994) Co-authored-by: codex <codex@users.noreply.github.com> * feat(grok): add Grok CLI provider via ACP (pingdotgg#2809) Co-authored-by: Julius Marminge <julius0216@outlook.com> * [codex] Fix main CI Effect test runtimes (pingdotgg#3008) Co-authored-by: codex <codex@users.noreply.github.com> * Add Claude Fable 5 model (pingdotgg#3009) Co-authored-by: codex <codex@users.noreply.github.com> * chore(release): prepare v0.0.26 * [codex] Rebrand T3 Cloud as T3 Connect (pingdotgg#3011) Co-authored-by: codex <codex@users.noreply.github.com> * Fix Clerk browser test mock (pingdotgg#3013) Co-authored-by: codex <codex@users.noreply.github.com> * chore(release): prepare v0.0.27 * Bundle DM Sans and JetBrains Mono fonts instead of Google Fonts (pingdotgg#3014) Co-authored-by: ss <ss@barekey.dev> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com> * Mute icons in labeled controls and suppress popup focus rings (pingdotgg#3015) Co-authored-by: ss <ss@barekey.dev> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com> * Polish dialog/alert surfaces and unauthenticated provider banner (pingdotgg#3016) Co-authored-by: ss <ss@barekey.dev> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com> * fix(marketing) : marketing showing wrong icons on linux (pingdotgg#2696) Co-authored-by: Julius Marminge <julius0216@outlook.com> * Misc markdown styling improvements (pingdotgg#3017) Co-authored-by: ss <ss@barekey.dev> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com> Co-authored-by: codex <codex@users.noreply.github.com> Co-authored-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: cursor[bot] <206951365+cursor[bot]@users.noreply.github.com> --------- Co-authored-by: Adam Buchweitz <312235+adambuchweitz@users.noreply.github.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: codex <codex@users.noreply.github.com> Co-authored-by: Ibrahim Elkamali <126423069+Marve10s@users.noreply.github.com> Co-authored-by: Theo Browne <me@t3.gg> Co-authored-by: Julius Marminge <julius@macmini.local> Co-authored-by: Yash Singh <saiansh2525@gmail.com> Co-authored-by: Mike Olson <mwolson@member.fsf.org> Co-authored-by: Julius Marminge <julius@mac.lan> Co-authored-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: Julius Marminge <jmarminge@gmail.com> Co-authored-by: Guilherme Vieira <46866023+GuilhermeVieiraDev@users.noreply.github.com> Co-authored-by: Abdul Azeez <abdulazeez44@gmail.com> Co-authored-by: Peter Hozák <peter.hozak@gmail.com> Co-authored-by: Ishan <ishansachu1@gmail.com> Co-authored-by: Milosz Jankiewicz <25470423+Jaaneek@users.noreply.github.com> Co-authored-by: t3-code[bot] <269035359+t3-code[bot]@users.noreply.github.com> Co-authored-by: ss <ss@barekey.dev> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com> Co-authored-by: Ruzbyte <104939854+ruzbyte@users.noreply.github.com> Co-authored-by: cursor[bot] <206951365+cursor[bot]@users.noreply.github.com> Co-authored-by: aaditagrawal <tech@aaditagrawal.com>
…MIT ONLY, DO NOT SQUASH (#100) * fix: maintain reasoning selections for multiple providers (pingdotgg#2760) * [codex] Bump Effect to beta.73 and migrate compatibility APIs (pingdotgg#2840) Co-authored-by: codex <codex@users.noreply.github.com> * Add Claude Opus 4.8 support (pingdotgg#2849) * Migrate TypeScript checks to Effect TSGo (pingdotgg#2851) * Extract collection performance refactors from mobile stack (pingdotgg#2854) Co-authored-by: codex <codex@users.noreply.github.com> * Extract independent web cleanup from mobile stack (pingdotgg#2855) Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: codex <codex@users.noreply.github.com> * Ensure Electron runtime is installed in release workflow (pingdotgg#2861) * T3 Code Mobile [WIP] (pingdotgg#2013) Co-authored-by: codex <codex@users.noreply.github.com> Co-authored-by: Julius Marminge <julius@macmini.local> Co-authored-by: Yash Singh <saiansh2525@gmail.com> * chore: add vendored reference repo subtree sync tooling (pingdotgg#2902) Co-authored-by: codex <codex@users.noreply.github.com> * Use HttpApi for Environment APIs & standardize authn/authz (pingdotgg#2858) Co-authored-by: codex <codex@users.noreply.github.com> * chore: add Alchemy reference repo subtree (pingdotgg#2918) Co-authored-by: codex <codex@users.noreply.github.com> * fix(desktop): Include standard Linux AppImage icons for Niri/Noctalia (pingdotgg#2915) * Probe Cursor models via list_available_models (pingdotgg#2428) Co-authored-by: codex <codex@users.noreply.github.com> Co-authored-by: Julius Marminge <julius@mac.lan> * Migrate workspace to Vite+ and pnpm (pingdotgg#2899) Co-authored-by: Julius Marminge <julius@mac.lan> Co-authored-by: Cursor Agent <cursoragent@cursor.com> * test(web): CI stability - prebundle react-dom client for browser tests (pingdotgg#2928) * fix(ssh): Surface redacted stdout for failed commands (pingdotgg#2920) * fix(desktop): Preserve SSH HTTP auth status (pingdotgg#2923) Co-authored-by: Julius Marminge <jmarminge@gmail.com> * fix: build web before desktop release packaging (pingdotgg#2934) Co-authored-by: Julius Marminge <julius@mac.lan> * ci: let setup-vp install dependencies (pingdotgg#2936) Co-authored-by: Julius Marminge <julius@mac.lan> * fix(release): surface desktop packaging subprocess output (pingdotgg#2937) Co-authored-by: Julius Marminge <julius@mac.lan> * chore: setup eas ci (pingdotgg#2911) Co-authored-by: Julius Marminge <julius@mac.lan> * fix(release): use workspace electron-builder for desktop packaging (pingdotgg#2938) Co-authored-by: Julius Marminge <julius@mac.lan> * [codex] remove duplicated pnpm root config (pingdotgg#2939) Co-authored-by: Julius Marminge <julius@mac.lan> * fix(release): install dependency closures in partial jobs (pingdotgg#2941) Co-authored-by: Julius Marminge <julius@mac.lan> * [codex] split ci workflow jobs (pingdotgg#2940) Co-authored-by: Julius Marminge <julius@mac.lan> * [codex] fix mobile native static analysis source discovery (pingdotgg#2942) Co-authored-by: Julius Marminge <julius@mac.lan> * fix(release): preserve desktop artifact arch (pingdotgg#2943) Co-authored-by: Julius Marminge <julius@mac.lan> * [codex] Fix desktop packaging patched dependencies (pingdotgg#2944) Co-authored-by: codex <codex@users.noreply.github.com> * [codex] Filter staged desktop patched dependencies (pingdotgg#2945) Co-authored-by: codex <codex@users.noreply.github.com> * fix(release): install hosted web workspace closure (pingdotgg#2949) * fix(cli): bundle patched diff parser dependency (pingdotgg#2957) Co-authored-by: Julius Marminge <julius@mac.lan> * Prevent settings layout shifts with scrollbar gutters (pingdotgg#2960) * [codex] fix release finalize install (pingdotgg#2961) Co-authored-by: Julius Marminge <julius@mac.lan> * fix(source-control): handle self-hosted GitLab, multi-account GitHub auth & azure devops web url (pingdotgg#2480) Co-authored-by: Julius Marminge <julius@mac.lan> * [codex] Avoid shell for Node executable spawns (pingdotgg#2952) Co-authored-by: Julius Marminge <julius@mac.lan> * [codex] Avoid shell for Windows environment probe (pingdotgg#2951) Co-authored-by: Julius Marminge <julius@mac.lan> * fix(composer): support spaces in file mentions (pingdotgg#2625) * [codex] Avoid shell for system executables (pingdotgg#2950) Co-authored-by: Julius Marminge <julius@mac.lan> * feat(relay): Add managed relay tunnels and APN service (pingdotgg#2837) Co-authored-by: codex <codex@users.noreply.github.com> * Restructure documentation into topical folders (pingdotgg#2963) * move * dont fail if env-file is unspecified * fallback to None when RELAY_DOMAIN is unset * implicit install from vp * forward args directly * bump alchemy to fix absolute drizzle schema out * bump alchemy to fix drizzle schema out attempt 2 * Migrate tests to vite-plus test APIs (pingdotgg#2964) * remove `vp staged` * publish deploy status on relay deploy workflow * Use pnpm for server publish workflow (pingdotgg#2966) * Rename function for publishing arguments to vp pm (pingdotgg#2967) * Remove duplicate 'publish' argument in CLI script * Refactor recoverable Effect fallbacks to orElseSucceed (pingdotgg#2968) * document vp instead of mise * link * cleanup * tip * we support cursor, duhhh * include @latest * fix(cloud): use Electron fetch for proxying Clerk IPC requests (pingdotgg#2973) * fix: handle Claude Agent SDK 0.3.x system messages to stop runtime-warning flood (pingdotgg#2872) Co-authored-by: Julius Marminge <julius0216@outlook.com> * "claude system message" instead of "runtime warning" when using 4.8 from claude code (pingdotgg#2972) * fix(desktop): stop looping macOS TCC permission prompts (pingdotgg#2745) Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Julius Marminge <jmarminge@gmail.com> * Annotate relay error spans with schema fields (pingdotgg#2976) * [codex] Enrich relay authorization diagnostics (pingdotgg#2977) Co-authored-by: codex <codex@users.noreply.github.com> * [codex] Extract infrastructure, telemetry, and test tooling (pingdotgg#2994) Co-authored-by: codex <codex@users.noreply.github.com> * feat(grok): add Grok CLI provider via ACP (pingdotgg#2809) Co-authored-by: Julius Marminge <julius0216@outlook.com> * [codex] Fix main CI Effect test runtimes (pingdotgg#3008) Co-authored-by: codex <codex@users.noreply.github.com> * Add Claude Fable 5 model (pingdotgg#3009) Co-authored-by: codex <codex@users.noreply.github.com> * chore(release): prepare v0.0.26 * [codex] Rebrand T3 Cloud as T3 Connect (pingdotgg#3011) Co-authored-by: codex <codex@users.noreply.github.com> * Fix Clerk browser test mock (pingdotgg#3013) Co-authored-by: codex <codex@users.noreply.github.com> * chore(release): prepare v0.0.27 * Bundle DM Sans and JetBrains Mono fonts instead of Google Fonts (pingdotgg#3014) Co-authored-by: ss <ss@barekey.dev> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com> * Mute icons in labeled controls and suppress popup focus rings (pingdotgg#3015) Co-authored-by: ss <ss@barekey.dev> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com> * Polish dialog/alert surfaces and unauthenticated provider banner (pingdotgg#3016) Co-authored-by: ss <ss@barekey.dev> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com> * fix(marketing) : marketing showing wrong icons on linux (pingdotgg#2696) Co-authored-by: Julius Marminge <julius0216@outlook.com> * Misc markdown styling improvements (pingdotgg#3017) Co-authored-by: ss <ss@barekey.dev> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com> Co-authored-by: codex <codex@users.noreply.github.com> Co-authored-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: cursor[bot] <206951365+cursor[bot]@users.noreply.github.com> * Model picker UI Improvements, Virtualize Model List (pingdotgg#3021) Co-authored-by: ss <ss@barekey.dev> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com> * Provider env vars table and reworked accent color picker (pingdotgg#3026) Co-authored-by: ss <ss@barekey.dev> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com> * Polish branch picker trigger, scroll fade, and list layout (pingdotgg#3024) Co-authored-by: ss <ss@barekey.dev> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com> Co-authored-by: Cursor Agent <cursoragent@cursor.com> * Polish web context menu fallback and sidebar icon actions (pingdotgg#3025) Co-authored-by: ss <ss@barekey.dev> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com> * Composer polish: focus ring, send/stop buttons, command menu, context meter, answer panel (pingdotgg#3018) Co-authored-by: ss <ss@barekey.dev> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com> Co-authored-by: codex <codex@users.noreply.github.com> * Extract changed files card with compact aligned diff stats (pingdotgg#3023) Co-authored-by: ss <ss@barekey.dev> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com> Co-authored-by: codex <codex@users.noreply.github.com> * ci: fix vp test invocation (-r and --filter are mutually exclusive) --------- Co-authored-by: Adam Buchweitz <312235+adambuchweitz@users.noreply.github.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: codex <codex@users.noreply.github.com> Co-authored-by: Ibrahim Elkamali <126423069+Marve10s@users.noreply.github.com> Co-authored-by: Theo Browne <me@t3.gg> Co-authored-by: Julius Marminge <julius@macmini.local> Co-authored-by: Yash Singh <saiansh2525@gmail.com> Co-authored-by: Mike Olson <mwolson@member.fsf.org> Co-authored-by: Julius Marminge <julius@mac.lan> Co-authored-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: Julius Marminge <jmarminge@gmail.com> Co-authored-by: Guilherme Vieira <46866023+GuilhermeVieiraDev@users.noreply.github.com> Co-authored-by: Abdul Azeez <abdulazeez44@gmail.com> Co-authored-by: Peter Hozák <peter.hozak@gmail.com> Co-authored-by: Ishan <ishansachu1@gmail.com> Co-authored-by: Milosz Jankiewicz <25470423+Jaaneek@users.noreply.github.com> Co-authored-by: t3-code[bot] <269035359+t3-code[bot]@users.noreply.github.com> Co-authored-by: ss <ss@barekey.dev> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com> Co-authored-by: Ruzbyte <104939854+ruzbyte@users.noreply.github.com> Co-authored-by: cursor[bot] <206951365+cursor[bot]@users.noreply.github.com> Co-authored-by: aaditagrawal <tech@aaditagrawal.com>
Co-authored-by: Julius Marminge <julius0216@outlook.com>


What Changed
#2808
Add Grok Build via ACL
Why
Grok Build was recently released and its accessible via X Premium Subs and Supergrok Subs
UI Changes
Checklist
Note
Medium Risk
Large new provider surface (child processes, ACP, xAI extensions) plus new orchestration rules for model switching; well covered by tests but touches turn-start paths.
Overview
Adds Grok as a first-party provider:
GrokDriverruns the Grok CLI over ACP (grok agent stdio), with health checks, ACP model discovery, a fullGrokAdapter(sessions, turns, permissions, xAIask_user_question), and headlessGrokTextGenerationfor git/thread helpers.Grok is flagged with
requiresNewThreadForModelChange. The serverProviderCommandReactorrejects mid-thread model switches when that flag is set; the web composer mirrors this with a warning toast viagetStartedThreadModelChangeBlockReason.Contracts/settings gain
GrokSettings, default modelgrok-build, and optionalrequiresNewThreadForModelChangeon provider snapshots. UI adds Grok to the picker (icon, settings, “new” badge). Tests and the ACP mock agent are extended for Grok models, custom approval option IDs, and xAI extensions.Reviewed by Cursor Bugbot for commit 2fb6598. Bugbot is set up for automated code reviews on this repo. Configure here.
Note
Add Grok as a CLI provider via ACP with full text generation and session management
makeGrokTextGeneration.GrokAdapterandGrokProvidermodules wiring the Grok CLI (grok agent stdio) into the existing provider infrastructure, with auth method selection based onXAI_API_KEYpresence.ask_user_questionrequest/response handling andsession/set_modelfor per-session model switching.requiresNewThreadForModelChangeat both the server (ProviderCommandReactor) and UI (ChatView) layers, surfacing a toast warning or aProviderAdapterRequestError.requiresNewThreadForModelChange) will rejectthread.turn.startwhen the model changes mid-session; users must start a new chat to switch models.Macroscope summarized 1aa7fc2.