Repository navigation
Merge upstream/main (42160f2925): sync 230 upstream commits, preserve Cline, Freebuff, cloud runtimes and OpenCode providers - #10
Merged
Conversation
…dotgg#17223) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Yash Singh <saiansh2525@gmail.com>
…ingdotgg#17843) Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…g#17724) Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com>
… full-access MCP grants (pingdotgg#17772) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…pull request (pingdotgg#12223) Co-authored-by: t3-code[bot] <269035359+t3-code[bot]@users.noreply.github.com> Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com> Co-authored-by: Julius Marminge <jmarminge@gmail.com> Signed-off-by: Loïs Postula <lois@postu.la>
…slug (pingdotgg#17739) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ngdotgg#17746) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…finitions (pingdotgg#17756) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…tions (pingdotgg#17757) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…host resolvers (pingdotgg#17770) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ot GitHub (pingdotgg#17774) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…dotgg#17860) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…tgg#17898) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…artial (pingdotgg#17761) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…the thread (pingdotgg#17764) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…17896) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ith a GitCafe token (pingdotgg#17901) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ingdotgg#17858) Co-authored-by: Yash Singh <saiansh2525@gmail.com>
…ingdotgg#17714) Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com>
…page (pingdotgg#18666) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ingdotgg#16554) Co-authored-by: PR Batch Tester <agent@local.test> Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
… you to a new draft (pingdotgg#18672) Co-authored-by: PR Batch Tester <agent@local.test> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ct (pingdotgg#18824) Co-authored-by: PR Batch Tester <agent@local.test> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…stead of crash-looping (pingdotgg#15925) Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Co-authored-by: PR Batch Tester <agent@local.test>
… resync after a downgrade (pingdotgg#15937) Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com> Co-authored-by: PR Batch Tester <agent@local.test>
… MCP servers (pingdotgg#17058) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Yash Singh <saiansh2525@gmail.com>
…ught (pingdotgg#18887) Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com>
…ingdotgg#18878) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…is offline (pingdotgg#18698) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…18853) Co-authored-by: SAPHID <saphid@users.noreply.github.com> Co-authored-by: GPT-6.1 Sol <noreply@openai.com>
…gdotgg#18709) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
pingdotgg#18900) Co-authored-by: Pawel Mikolajczuk <pmikolajczuk@atlassian.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Syncs 230 upstream commits (merge base 98beed1) into the fork while keeping its Cline, Freebuff, cloud-runtime and OpenCode-provider features. Conflict resolutions: - pnpm-workspace allowBuilds: kept both the fork's `protobufjs` and upstream's vendored react-native-enriched-markdown tarball. - provider-acp AcpAdapterV2Flavor: kept the fork's `supportsMcpTooling` and adopted upstream's schema-derived `clientCapabilitiesMeta` type. - contracts/shared serverSettings: kept the fork's ProviderInstanceConfigMapPatch and CloudRuntimeConfigMapPatch alongside upstream's sourceControlHosts, which retires the legacy `github` patch field. - server/serverSettings: ported the fork's OpenCode provider API keys and cloud credential cleanup onto upstream's schema-driven mapSettingsSecrets walker, which replaces the hand-rolled per-field secret handling. - serverSettings tests: kept the fork's OpenCode secret lifecycle tests and upstream's generic secret-lifecycle tests. - ClaudeAdapterV2: kept the fork's cloud spawnClaudeCodeProcess on top of upstream's uninterruptible query startup and setMcpServers registration. - web Icons: kept the fork's Freebuff and Cline marks; dropped ComputerUseAppIcon, which upstream replaced with a local BrowserAppIcon. Integration fixes: - unsupportedTextGeneration: added generateReviewGuide for upstream's widened ProviderTextGeneration interface. - Removed the now-unused DEFAULT_TEXT_GENERATION_MODEL_BY_PROVIDER import.
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configuration
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.
Upstream version synchronized
Merges
pingdotgg/t3codemain@42160f2925into the fork.42160f292598beed1a22(the tip merged in by PR #9)The local checkout was first verified against
origin/main(ee93219009) before any work;mainwas not modified. An earlier attempt had a merge in progress against a stale upstream tip (511d20c6f2, 31 commits behind), which was aborted in favour of one clean merge against the true target.Important upstream changes incorporated
mapSettingsSecretshelper (apps/server/src/settingsSecrets.ts) instead of hand-rolled per-field code. Replaces ~250 lines of bespoke logic for provider config, provider environment, source-control host tokens and usage-limit keys.#17901). The legacygithub/bitbucketsettings keys are retired in favour of per-host definitions undersourceControlHosts, with a migration that moves stored secrets to their new names.query()is now started underEffect.uninterruptibleMask, registers MCP servers throughqueryRuntime.setMcpServerswith a registration timeout, and closes the CLI if anything before the session is handed out fails.clientCapabilitiesMetais now schema-typed (InitializeRequest["clientCapabilities"]["_meta"]) rather thanRecord<string, boolean>.ProviderTextGenerationgainedgenerateReviewGuide, andresolveReviewGuideModelSelection/resolveSourceControlWriterModelSelectionnow choose a review-guide writer.fallbackTextGenerationModelSelectionreturns a fullModelSelectioninstead of a driver kind, resolving the model internally.TEXT_GENERATION_FALLBACK_DRIVERSenumerates the drivers eligible for titles, commit messages and PR descriptions.ComputerUseAppIconin favour of a localBrowserAppIcon(#18865), and moved@ff-labs/fff-nodeto0.11.0plus aneffect-acppackage split.@effect/*4.0.2 and the vendoredreact-native-enriched-markdowntarball.Conflicts encountered and how they were resolved
12 files conflicted. Each was investigated on both sides rather than taken wholesale.
pnpm-workspace.yamlprotobufjs: truetoallowBuilds; upstream added the vendoredreact-native-enriched-markdowntarball. Both are still needed (protobufjsarrives via@grpc/proto-loader←@daytona/sdk), so both were kept, alphabetically ordered.packages/provider-acp/.../adapter.tssupportsMcpTooling(used by Cline and Freebuff, which ignore the MCP servers T3 registers) and adopted upstream's tighterclientCapabilitiesMetatype. Verified upstream's own consumers pass boolean-valued_meta, so the narrower type is safe.packages/contracts/src/settings.tsProviderInstanceConfigMapPatch(per-entry patches that tolerate older clients omittingexecutionTarget) andCloudRuntimeConfigMapPatch, and adopted upstream'ssourceControlHosts.packages/shared/src/serverSettings.tsProviderInstanceConfigimport — itsmergeProviderInstancePatchesis what preservesexecutionTargetwhen a client omits it. Upstream only stopped needing the type, it did not remove it.apps/server/src/serverSettings.ts(7 hunks)apps/server/src/serverSettings.test.tspackages/shared/src/serverSettings.test.tssourceControlHosts.packages/contracts/src/settings.test.tsCloudRuntimeConfig/FreebuffSettings, upstream'sCommandId).Adapters/ClaudeAdapterV2.tsuninterruptibleMask+setMcpServersstartup, and preserved the fork'sspawnClaudeCodeProcess(the cloud sandbox spawner) inside the SDK options it builds. Both are valid: upstream's own test also passesspawnClaudeCodeProcessviaoptions.apps/web/src/components/Icons.tsxFreebuffIconandClineIcon. DroppedComputerUseAppIcon, which upstream intentionally deleted and replaced with a localBrowserAppIconinMessagesTimeline.tsx; nothing referenced it any more, so keeping it would have been dead code.apps/server/scripts/acp-mock-agent.tshangSetConfigOptionstall and adopted upstream'sfailSetModeConfigOptioncondition.ThreadSettingsSheet.tsx(mobile)The
serverSettings.tssecret-handling portUpstream replaced the fork's hand-rolled secret code with the generic walker. The fork's two fork-specific behaviours do not live in any settings schema, so the generic pass cannot see them; both were re-attached as explicit layers on top of upstream's machinery:
config.providers.<id>.apiKey, a nested blob behind the driver's ownapiKeyRedactedmarker, hidden from the generic driver form. Redaction, materialization and write/removal planning are preserved as a dedicated pass (redactOpenCodeProviderInstanceSecrets,withOpenCodeProviderKeys,persistedSettings) around upstream's walker.settings.json. The removal of a runtime's credential when the runtime is deleted or its vendor/endpoint identity changes is preserved unchanged.The obsolete per-field code upstream replaced (
providerEnvironmentSecretName,usageLimitSourceSecretName,BITBUCKET_SECRET_NAMES,gitHubTokenSecretName,redactSecret,redactProviderEnvironmentVariableand the localSECRET_REDACTED) was removed as dead. Upstream'smigrateLegacySourceControlSettingsalready covers the legacygithub/bitbucketmigration, so no duplicate was left behind.How fork functionality was preserved or adapted
All 152 fork-touched files survive, and every fork feature is still registered and reachable, not merely present:
packages/cloud-runtimeworkspace,CloudRuntimeService,VendorAdapter,CloudExecutionSpawner, credential naming,CloudClaudeSpawner, and the web/mobile cloud-runtime settings screens. Upstream never had this package, so it merged with no conflict.fork-ci.yml,fork-docker.yml,fork-preview-windows.yml,Dockerfile, server test shard weights.Two adaptations worth calling out:
ModelSelectionfromfallbackTextGenerationModelSelection, which changes the calling convention. Adopting upstream's version is safe becausefreebuffis absent fromTEXT_GENERATION_FALLBACK_DRIVERS, so it can never be selected — the protection now holds structurally rather than through a guard. Verified this rather than assuming it.uninterruptibleMaskflow so a remote Claude process is still spawned throughmakeCloudClaudeSpawnerwhile MCP registration and CLI cleanup behave as upstream intends.Additional compatibility fixes required by the update
apps/server/src/textGeneration/unsupportedTextGeneration.tsdid not implement upstream's newgenerateReviewGuide, which broke the server typecheck. Added it, and updated the user-facing error detail to mention review guides.DEFAULT_TEXT_GENERATION_MODEL_BY_PROVIDERimport fromserverSettings.ts, which became unused once upstream's fallback-selection call shape was adopted.@daytona/*minimumReleaseAgeExcludeentries survived the merge. Upstream dropped Daytona from that list; had the merge taken upstream's deletion, the fork's@daytona/sdkdependency would have lost its release-age exemption while still being present in the lockfile.ComputerUseAppIconas the dead code upstream's deletion left behind.Validation performed
pnpm install --no-frozen-lockfile@daytona/sdkandprotobufjsretained)vp run -r --concurrency-limit 2 typecheckvp run --filter @t3tools/contracts --filter @t3tools/shared --filter @t3tools/provider-acp typecheckvp lint --report-unused-disable-directivesvp fmt --checkserverSettings.test.ts,shared/serverSettings,contracts/settingsnode scripts/sync-third-party-license-notices.ts --checkKnown-failing tests, all pre-existing and environmental
These are not caused by this merge; each was verified.
apps/server/src/provider/ClineProvider.test.ts— 5 tests time out spawning the fake CLI. Verified pre-existing: checked out the pre-merge fork (ee93219009) in a separate worktree with its own install and got the identical 5 failures with identical timings.apps/server/src/sourceControl/SourceControlDiscovery.test.ts— 2 tests. AmbientGH_TOKEN/GH_HOSTin this environment makes real auth probing fail. Verified: the file passes 3/3 with those variables unset.apps/server/src/terminal/Manager.test.ts— 1 test.preserves non-notFound cwd stat failuresrelies onchmod 000blocking a stat, which root (uid 0) bypasses.node scripts/export-brand-icons.ts --checkrequires macOS Icon Composer; unavailable on Linux.Review notes
🤖 Generated with opencode/space-bunny-free (opencode, Space Bunny Free model)