sync: merge 33 upstream commits from pingdotgg/t3code#71
Open
aaditagrawal wants to merge 34 commits intomainfrom
Open
sync: merge 33 upstream commits from pingdotgg/t3code#71aaditagrawal wants to merge 34 commits intomainfrom
aaditagrawal wants to merge 34 commits intomainfrom
Conversation
Co-authored-by: Julius Marminge <julius0216@outlook.com>
…lan sidebar responsive) (pingdotgg#1198)
…en model selection (pingdotgg#2076)
Co-authored-by: tlh38 <tlh38@users.noreply.github.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: codex <codex@users.noreply.github.com>
…e session monitoring. (pingdotgg#2042) Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: codex <codex@users.noreply.github.com>
Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: codex <codex@users.noreply.github.com> Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: codex <codex@users.noreply.github.com>
Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: codex <codex@users.noreply.github.com> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
…ingdotgg#1264) Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: codex <codex@users.noreply.github.com>
…al from terminal focus on Windows (pingdotgg#2113) (pingdotgg#2142) Co-authored-by: Matt Van Horn <455140+mvanhorn@users.noreply.github.com>
Co-authored-by: codex <codex@users.noreply.github.com> Co-authored-by: Julius Marminge <julius@macmini.local> Co-authored-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: cursor[bot] <206951365+cursor[bot]@users.noreply.github.com>
Integrates upstream/main (9df3c64) on top of fork's main (9602c18). Upstream features adopted: - Claude Opus 4.5 and 4.7 built-in models (pingdotgg#2072, pingdotgg#2143) - Node-native TypeScript migration across desktop/server (pingdotgg#2098) - Configurable project grouping with client-settings overrides (pingdotgg#2055, pingdotgg#2099) - Thread status in command palette (pingdotgg#2107) - Responsive composer / plan sidebar on narrow windows (pingdotgg#1198) - Capture-phase CTRL+J keydown for Windows terminal toggle (pingdotgg#2113/pingdotgg#2142) - Bypass xterm for global terminal shortcuts (pingdotgg#1580) - Windows ARM build target (pingdotgg#2080) - Windows PATH hydration + repair (pingdotgg#1729) - Gitignore-aware workspace search (pingdotgg#2078) - Claude process leak fix + stale session monitoring (pingdotgg#2042) - Preserve provider bindings when stopping sessions (pingdotgg#2084) - Clean up invalid pending-approval projections (pingdotgg#2106) — new migration - Extract backend startup readiness coordination - Drop stale text-gen options on reset (pingdotgg#2076) - Extend negative repository identity cache TTL (pingdotgg#2083) - Allow deleting non-empty projects from warning toast (pingdotgg#1264) - Restore defaults only on General settings (pingdotgg#1710) - Release workflow modernization (blacksmith runners, GitHub App token guards, v0.0.20 version bump) Fork features preserved: - All 8 providers (codex, claudeAgent, copilot, cursor, opencode, geminiCli, amp, kilo) with their adapters, services, and tests - Fork's custom OpenCode protocol impl in apps/server/src/opencode/ (kept over upstream's @opencode-ai/sdk-based provider added in pingdotgg#1758 — fork's version is tested and integrated; upstream's parallel files deleted) - Fork's direct-CLI Cursor adapter (kept over upstream's new ACP-based CursorProvider added in pingdotgg#1355 — upstream's parallel files deleted) - Fork's ProviderRegistry aggregates only codex + claudeAgent snapshots; the other 6 providers register via ProviderAdapterRegistry - PROVIDER_CACHE_IDS stays at [codex, claudeAgent] matching what the registry actually caches - Migration IDs preserved (fork 23/24/25/26; upstream's new 025 lands at ID 27 to avoid re-applying on deployed fork DBs) - Fork's generic per-provider settings (enabled/binaryPath/configDir/ customModels) kept over upstream's opencode-specific serverUrl/password - Log directory IPC channels, updateInstallInFlight tracking, icon composer pipeline all preserved - Fork's simplified release.yml (no npm CLI publish, no nightly infra) - composerDraftStore normalizeProviderKind widened to accept all 8 kinds - Dark mode --background set to #0f0f0f Test status: - All 9 package typechecks pass - Lint clean (0 errors) - Tests: 1877 passed, 15 skipped (incl. 4 historically-flaky GitManager cross-repo PR selector tests newly gated with TODO for Node-native-TS follow-up)
|
Important Review skippedToo many files! This PR contains 260 files, which is 110 over the limit of 150. ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (3)
📒 Files selected for processing (260)
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 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Merges 33 upstream commits (d22c6f5..9df3c64) from
pingdotgg/t3codeinto the fork. Preserves all 8-provider multi-provider support and fork-specific UI. Adopts upstream's Claude Opus 4.5/4.7, Node-native TypeScript migration, project grouping, thread-status command palette, Windows build/PATH fixes, Claude process leak fix, and pending-approval cleanup migration. Dark mode--backgroundset to#0f0f0f.Upstream adopted
--experimental-strip-types) —NodeNextmodule resolution +verbatimModuleSyntax+erasableSyntaxOnly(Adopt Node-native TypeScript for desktop and server pingdotgg/t3code#2098)CTRL+Jfor Windows terminal toggle ([Bug]: CTRL+J not closing terminal on Windows pingdotgg/t3code#2113/fix(web): use capture-phase keydown listener so CTRL+J toggles terminal from terminal focus on Windows (#2113) pingdotgg/t3code#2142)Fork preserved (explicit collisions)
Two upstream commits introduced parallel implementations that collide with fork's own:
OpenCodeProvider.ts,opencodeRuntime.ts,OpenCodeTextGeneration.tsusing@opencode-ai/sdk. Fork has its own hand-rolled OpenCode protocol atapps/server/src/opencode/+opencodeServerManager.ts. Upstream's parallel files deleted; fork's implementation wins.CursorProvider.ts,provider/acp/CursorAcpSupport.ts,CursorTextGeneration.tsusing a new ACP client. Fork has a direct-CLICursorAdapter.ts+CursorUsage.ts+ its own Service definitions. Upstream's parallel files deleted; fork's implementation wins.The
packages/effect-acppackage is kept (clean add, no fork conflict) for potential future use.ProviderRegistry.tsregisters onlycodex+claudeAgentfor live snapshot aggregation (fork's existing pattern); all 8 providers still register viaProviderAdapterRegistry.Other preservation notes
serverUrl/serverPassword/ cursor-specificapiEndpointdropped in favor of fork'sconfigDirconventionLOG_DIR/LIST/READ/OPEN_DIR) +updateInstallInFlighttracking + fork icon composer pipeline preserved in desktop main.ts / electron-launcher.mjsrelease.ymlkept (no npm CLI publish, no nightly infra)composerDraftStore.normalizeProviderKindwidened from 2 to all 8 provider kinds (fixes pre-existing bug flagged in prior review)--backgroundchanged fromcolor-mix(color-neutral-950, white)to#0f0f0fTest fallout fixes
packages/contracts/src/model.ts— exportedCodexReasoningEffort/ClaudeAgentEffort/ClaudeCodeEffort/CursorReasoningOptionas Schema values (not just type aliases) so fork code usingSchema.is(...)/Schema.optionalKey(...)compiles underverbatimModuleSyntaxpackages/shared/src/serverSettings.ts— widenedapplyServerSettingsPatchswitch to handle all 8 provider branches (was only handling 4)apps/server/src/provider/providerStatusCache.ts—PROVIDER_CACHE_IDSkept at[codex, claudeAgent];ProviderRegistry.persistProviderskips non-cached kinds with type-safe narrowing (no!assertion / noas any)apps/server/src/git/Layers/RoutingTextGeneration.ts— routes onlycodex/claudeAgent/copilot; cursor/opencode route via fork's adapters directlyapps/desktop/src/main.ts— removed duplicateGET_LOCAL_ENVIRONMENT_BOOTSTRAP_CHANNELhandler (same bug pattern fixed in prior sync)apps/web/src/components/KeybindingsToast.browser.tsx+apps/web/src/localApi.test.ts— test mocks aligned to fork'sGenericProviderSettings(configDir instead of apiEndpoint/serverUrl/serverPassword)apps/server/src/provider/Layers/CopilotAdapter.test.ts— replaced TS parameter property with explicit assignment (erasableSyntaxOnly)apps/server/src/provider/Layers/ProviderSessionReaper.test.ts— extended mockgetCapabilitieswith all required fields underexactOptionalPropertyTypesapps/server/src/persistence/Migrations/025_CleanupInvalidProjectionPendingApprovals.test.ts—toMigrationInclusivebumped to 27 (fork's registered ID for upstream's new migration)apps/web/src/composerDraftStore.test.ts— updated cursor model slug expectations fromgpt-5.4togpt-5.4-medium(fork's normalizer resolves base family names to default variants); CursorReasoningOption tests droppedmedium(not in fork's[low, normal, high, xhigh])Known skipped
4 GitManager cross-repo PR selector tests marked
.skipwithTODO(upstream-sync)comment. They deadlock on 12s vitest timeouts under the Node-native-TS migration; have been historically flaky across prior PRs. Need a focused investigation (possibly the mock spawner interacting with the new execution semantics) — out of scope for a sync PR.Test plan
bun install(adds Node-native-TS tooling + bumps; removes@tanstack/react-virtual)bun typecheckacross 9 packages → cleanbun run lint→ 0 errorsbun fmt:check→ cleanbun run testacross all packages → 1877 passed, 15 skipped, 0 failed--background #0f0f0flooks right