Skip to content

sync: merge upstream/main (38 commits, multi-provider SPI)#77

Merged
aaditagrawal merged 1 commit intomainfrom
sync/upstream-2026-05-04
May 5, 2026
Merged

sync: merge upstream/main (38 commits, multi-provider SPI)#77
aaditagrawal merged 1 commit intomainfrom
sync/upstream-2026-05-04

Conversation

@aaditagrawal
Copy link
Copy Markdown
Owner

Summary

Major upstream sync: merges 38 commits from pingdotgg/t3code and adopts upstream's new multi-provider SPI wholesale, while porting all 4 fork-added providers (Amp, Copilot, GeminiCli, Kilo) onto the new ProviderDriver architecture.

Highlights

  • New SPI adopted: ProviderInstanceRegistry, ProviderDriver, BUILT_IN_DRIVERS, declarative providerDriverMeta.ts.
  • Fork providers ported: Amp, Copilot, GeminiCli, Kilo each get a Drivers/*Driver.ts + Layers/*Provider.ts snapshot pair, registered in builtInDrivers.ts.
  • Migrations reconciled: 026 (CanonicalizeModelSelectionOptions), 027/028 (instance ID columns), 029 (fork backfill).
  • Fork drift recovered: monochrome icons + selected quality-of-life additions kept on a case-by-case basis.
  • TextGeneration safety: GeminiCliTextGeneration now returns a graceful "not supported" failure (only non-interactive Gemini mode auto-approves tool calls — unsafe for headless commit/PR/branch generation).
  • Kilo lifecycle: KiloTextGeneration routes through KiloServerManager.getOrStartServer so the spawned server child is killed on scope close.
  • Effect TaggedError: CopilotProvider auth probe now uses Data.TaggedError instead of raw Error (resolves Effect language-service warning).

Conflicts resolved

All 87 merge conflicts resolved using a tiered partition approach (LIGHT/HIGH).

Test plan

  • bun typecheck — 12/12 packages pass
  • bun lint — clean
  • bun run test — 987/987 web tests pass; server tests pass
  • Adversarial Codex review — both HIGH findings addressed (Gemini headless yolo, Kilo server leak)
  • Manual smoke test all 8 providers (codex, copilot, claudeAgent, cursor, opencode, geminiCli, amp, kilo)

Adopts upstream's pluggable ProviderDriver SPI from pingdotgg#2277. Ports fork's
4 extra providers (Amp, Copilot, GeminiCli, Kilo) onto the new
architecture and restores fork's monochrome + editor icons that drifted
during resolution.

Major upstream changes:
- feat: Multi-Provider support (pingdotgg#2277) — branded ProviderDriverKind +
  ProviderInstanceId, scope-managed drivers, AddProviderInstanceDialog UI
- feat: pluggable VCS driver foundation (pingdotgg#2435) + GitLab (pingdotgg#2462) +
  Bitbucket/Azure DevOps (pingdotgg#2473) + remote repo publish (pingdotgg#2482)
- feat: Hosted Frontend, Tailscale Integration, SSH Launcher (pingdotgg#2361)
- 30+ mobile/UX/infra commits

Fork extras on new SPI:
- AmpDriver: per-instance AmpServerManager (usage stats per instance)
- CopilotDriver: per-session turn tracking via closure-owned Map;
  copilotCliPath + sanitized desktop env preserved
- GeminiCliDriver: text generation gracefully fails (Gemini CLI's only
  non-interactive mode is --approval-mode yolo which auto-executes tool
  calls in the workspace; chat/sessions still work)
- KiloDriver: text generation routes through manager.getOrStartServer
  so the spawned `kilo serve` child is owned by the manager and killed
  on scope close (regression tests added)

DB migrations: 026 (canonicalize ModelSelection.options), 027 + 028
(provider_instance_id columns), 029 (fork-side backfill for amp/
copilot/geminiCli/kilo rows).

Cleanup: removed shadow @anthropic-ai/claude-agent-sdk.d.ts +
copilot-sdk.d.ts that hid real SDK types; deleted dead per-provider
helpers superseded by providerDriverMeta (customModels.ts,
gitTextGeneration.ts, providerModelOptions.ts, composerProviderRegistry,
lib/threadProvider.ts); migrated stale ProviderKind references to
fork-local apps/web/src/providerKind.ts.

Verification: bun typecheck = 0 errors across all 8 packages;
KiloServerManager tests 4/4 passing.
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 5, 2026

Important

Review skipped

Too many files!

This PR contains 300 files, which is 150 over the limit of 150.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 9f1d6147-c356-4ed4-aefc-3915fb77f318

📥 Commits

Reviewing files that changed from the base of the PR and between a63852e and 2b9845d.

📒 Files selected for processing (300)
  • .docs/remote-architecture.md
  • .github/VOUCHED.td
  • .gitignore
  • .plans/19-remote-endpoints-hosted-static.md
  • .plans/19-version-control-phase-1-vcs-driver-foundation.md
  • .plans/20-version-control-phase-2-source-control-provider-foundation.md
  • .plans/README.md
  • REMOTE.md
  • apps/desktop/package.json
  • apps/desktop/src/clientPersistence.test.ts
  • apps/desktop/src/clientPersistence.ts
  • apps/desktop/src/desktopSettings.test.ts
  • apps/desktop/src/desktopSettings.ts
  • apps/desktop/src/main.ts
  • apps/desktop/src/preload.ts
  • apps/desktop/src/serverExposure.test.ts
  • apps/desktop/src/serverExposure.ts
  • apps/desktop/src/sshEnvironment.test.ts
  • apps/desktop/src/sshEnvironment.ts
  • apps/desktop/src/tailscaleEndpointProvider.test.ts
  • apps/desktop/src/tailscaleEndpointProvider.ts
  • apps/server/integration/OrchestrationEngineHarness.integration.ts
  • apps/server/integration/TestProviderAdapter.integration.ts
  • apps/server/integration/fixtures/providerRuntime.ts
  • apps/server/integration/orchestrationEngine.integration.test.ts
  • apps/server/integration/providerService.integration.test.ts
  • apps/server/package.json
  • apps/server/src/ampServerManager.ts
  • apps/server/src/checkpointing/Errors.ts
  • apps/server/src/checkpointing/Layers/CheckpointDiffQuery.test.ts
  • apps/server/src/checkpointing/Layers/CheckpointDiffQuery.ts
  • apps/server/src/checkpointing/Layers/CheckpointStore.test.ts
  • apps/server/src/checkpointing/Layers/CheckpointStore.ts
  • apps/server/src/checkpointing/Services/CheckpointStore.ts
  • apps/server/src/cli-config.test.ts
  • apps/server/src/cli.test.ts
  • apps/server/src/cli.ts
  • apps/server/src/config.ts
  • apps/server/src/environment/Layers/ServerEnvironment.test.ts
  • apps/server/src/geminiCliServerManager.test.ts
  • apps/server/src/geminiCliServerManager.ts
  • apps/server/src/git/GitManager.test.ts
  • apps/server/src/git/GitManager.ts
  • apps/server/src/git/GitWorkflowService.test.ts
  • apps/server/src/git/GitWorkflowService.ts
  • apps/server/src/git/Layers/ClaudeTextGeneration.test.ts
  • apps/server/src/git/Layers/CopilotTextGeneration.ts
  • apps/server/src/git/Layers/CursorTextGeneration.test.ts
  • apps/server/src/git/Layers/GitCore.test.ts
  • apps/server/src/git/Layers/GitHubCli.test.ts
  • apps/server/src/git/Layers/GitHubCli.ts
  • apps/server/src/git/Layers/GitStatusBroadcaster.ts
  • apps/server/src/git/Layers/OpenCodeTextGeneration.test.ts
  • apps/server/src/git/Layers/RoutingTextGeneration.ts
  • apps/server/src/git/Layers/SessionTextGeneration.test.ts
  • apps/server/src/git/Layers/SessionTextGeneration.ts
  • apps/server/src/git/Services/CopilotTextGeneration.ts
  • apps/server/src/git/Services/GitCore.ts
  • apps/server/src/git/Services/GitHubCli.ts
  • apps/server/src/git/Services/GitManager.ts
  • apps/server/src/git/Services/GitStatusBroadcaster.ts
  • apps/server/src/git/Services/SessionTextGeneration.ts
  • apps/server/src/git/Utils.ts
  • apps/server/src/keybindings.ts
  • apps/server/src/kiloServerManager.test.ts
  • apps/server/src/kiloServerManager.ts
  • apps/server/src/observability/Metrics.test.ts
  • apps/server/src/orchestration/Layers/CheckpointReactor.test.ts
  • apps/server/src/orchestration/Layers/CheckpointReactor.ts
  • apps/server/src/orchestration/Layers/OrchestrationEngine.test.ts
  • apps/server/src/orchestration/Layers/ProjectionPipeline.test.ts
  • apps/server/src/orchestration/Layers/ProjectionPipeline.ts
  • apps/server/src/orchestration/Layers/ProjectionSnapshotQuery.test.ts
  • apps/server/src/orchestration/Layers/ProjectionSnapshotQuery.ts
  • apps/server/src/orchestration/Layers/ProviderCommandReactor.test.ts
  • apps/server/src/orchestration/Layers/ProviderCommandReactor.ts
  • apps/server/src/orchestration/Layers/ProviderRuntimeIngestion.test.ts
  • apps/server/src/orchestration/Layers/ProviderRuntimeIngestion.ts
  • apps/server/src/orchestration/commandInvariants.test.ts
  • apps/server/src/orchestration/decider.delete.test.ts
  • apps/server/src/orchestration/decider.projectScripts.test.ts
  • apps/server/src/orchestration/projector.test.ts
  • apps/server/src/orchestration/redactEvent.ts
  • apps/server/src/persistence/Layers/OrchestrationEventStore.test.ts
  • apps/server/src/persistence/Layers/ProjectionRepositories.test.ts
  • apps/server/src/persistence/Layers/ProjectionThreadSessions.ts
  • apps/server/src/persistence/Layers/ProviderSessionRuntime.ts
  • apps/server/src/persistence/Migrations.ts
  • apps/server/src/persistence/Migrations/026_CanonicalizeModelSelectionOptions.test.ts
  • apps/server/src/persistence/Migrations/026_CanonicalizeModelSelectionOptions.ts
  • apps/server/src/persistence/Migrations/027_028_ProviderInstanceIdColumns.test.ts
  • apps/server/src/persistence/Migrations/027_ProviderSessionRuntimeInstanceId.ts
  • apps/server/src/persistence/Migrations/028_ProjectionThreadSessionInstanceId.ts
  • apps/server/src/persistence/Migrations/029_BackfillForkProviderInstanceIds.test.ts
  • apps/server/src/persistence/Migrations/029_BackfillForkProviderInstanceIds.ts
  • apps/server/src/persistence/Services/ProjectionThreadSessions.ts
  • apps/server/src/persistence/Services/ProviderSessionRuntime.ts
  • apps/server/src/project/Layers/RepositoryIdentityResolver.ts
  • apps/server/src/provider/Drivers/AmpDriver.ts
  • apps/server/src/provider/Drivers/ClaudeDriver.ts
  • apps/server/src/provider/Drivers/ClaudeHome.test.ts
  • apps/server/src/provider/Drivers/ClaudeHome.ts
  • apps/server/src/provider/Drivers/CodexDriver.ts
  • apps/server/src/provider/Drivers/CodexHomeLayout.test.ts
  • apps/server/src/provider/Drivers/CodexHomeLayout.ts
  • apps/server/src/provider/Drivers/CopilotDriver.ts
  • apps/server/src/provider/Drivers/CopilotSettings.ts
  • apps/server/src/provider/Drivers/CursorDriver.ts
  • apps/server/src/provider/Drivers/GeminiCliDriver.ts
  • apps/server/src/provider/Drivers/KiloDriver.ts
  • apps/server/src/provider/Drivers/OpenCodeDriver.ts
  • apps/server/src/provider/Errors.ts
  • apps/server/src/provider/Layers/AmpAdapter.test.ts
  • apps/server/src/provider/Layers/AmpAdapter.ts
  • apps/server/src/provider/Layers/AmpProvider.ts
  • apps/server/src/provider/Layers/ClaudeAdapter.test.ts
  • apps/server/src/provider/Layers/ClaudeAdapter.ts
  • apps/server/src/provider/Layers/ClaudeProvider.ts
  • apps/server/src/provider/Layers/CodexAdapter.test.ts
  • apps/server/src/provider/Layers/CodexAdapter.ts
  • apps/server/src/provider/Layers/CodexProvider.ts
  • apps/server/src/provider/Layers/CodexSessionRuntime.ts
  • apps/server/src/provider/Layers/CopilotAdapter.test.ts
  • apps/server/src/provider/Layers/CopilotAdapter.ts
  • apps/server/src/provider/Layers/CopilotProvider.ts
  • apps/server/src/provider/Layers/CursorAdapter.test.ts
  • apps/server/src/provider/Layers/CursorAdapter.ts
  • apps/server/src/provider/Layers/CursorProvider.test.ts
  • apps/server/src/provider/Layers/CursorProvider.ts
  • apps/server/src/provider/Layers/GeminiCliAdapter.test.ts
  • apps/server/src/provider/Layers/GeminiCliAdapter.ts
  • apps/server/src/provider/Layers/GeminiCliProvider.ts
  • apps/server/src/provider/Layers/KiloAdapter.test.ts
  • apps/server/src/provider/Layers/KiloAdapter.ts
  • apps/server/src/provider/Layers/KiloProvider.ts
  • apps/server/src/provider/Layers/OpenCodeAdapter.test.ts
  • apps/server/src/provider/Layers/OpenCodeAdapter.ts
  • apps/server/src/provider/Layers/OpenCodeProvider.test.ts
  • apps/server/src/provider/Layers/OpenCodeProvider.ts
  • apps/server/src/provider/Layers/ProviderAdapterConformance.test.ts
  • apps/server/src/provider/Layers/ProviderAdapterRegistry.test.ts
  • apps/server/src/provider/Layers/ProviderAdapterRegistry.ts
  • apps/server/src/provider/Layers/ProviderEventLoggers.ts
  • apps/server/src/provider/Layers/ProviderInstanceRegistryHydration.ts
  • apps/server/src/provider/Layers/ProviderInstanceRegistryLive.test.ts
  • apps/server/src/provider/Layers/ProviderInstanceRegistryLive.ts
  • apps/server/src/provider/Layers/ProviderRegistry.test.ts
  • apps/server/src/provider/Layers/ProviderRegistry.ts
  • apps/server/src/provider/Layers/ProviderService.test.ts
  • apps/server/src/provider/Layers/ProviderService.ts
  • apps/server/src/provider/Layers/ProviderSessionDirectory.test.ts
  • apps/server/src/provider/Layers/ProviderSessionDirectory.ts
  • apps/server/src/provider/Layers/ProviderSessionReaper.test.ts
  • apps/server/src/provider/Layers/copilotTurnTracking.test.ts
  • apps/server/src/provider/Layers/copilotTurnTracking.ts
  • apps/server/src/provider/Layers/scopedSafeTeardown.test.ts
  • apps/server/src/provider/Layers/scopedSafeTeardown.ts
  • apps/server/src/provider/ProviderDriver.ts
  • apps/server/src/provider/ProviderInstanceEnvironment.test.ts
  • apps/server/src/provider/ProviderInstanceEnvironment.ts
  • apps/server/src/provider/Services/AmpAdapter.ts
  • apps/server/src/provider/Services/ClaudeAdapter.ts
  • apps/server/src/provider/Services/ClaudeProvider.ts
  • apps/server/src/provider/Services/CodexAdapter.ts
  • apps/server/src/provider/Services/CodexProvider.ts
  • apps/server/src/provider/Services/CopilotAdapter.ts
  • apps/server/src/provider/Services/CursorAdapter.ts
  • apps/server/src/provider/Services/CursorProvider.ts
  • apps/server/src/provider/Services/GeminiCliAdapter.ts
  • apps/server/src/provider/Services/KiloAdapter.ts
  • apps/server/src/provider/Services/OpenCodeAdapter.ts
  • apps/server/src/provider/Services/OpenCodeProvider.ts
  • apps/server/src/provider/Services/ProviderAdapter.ts
  • apps/server/src/provider/Services/ProviderAdapterRegistry.ts
  • apps/server/src/provider/Services/ProviderInstanceRegistry.ts
  • apps/server/src/provider/Services/ProviderInstanceRegistryMutator.ts
  • apps/server/src/provider/Services/ProviderRegistry.ts
  • apps/server/src/provider/Services/ProviderService.ts
  • apps/server/src/provider/Services/ProviderSessionDirectory.ts
  • apps/server/src/provider/acp/AcpAdapterSupport.test.ts
  • apps/server/src/provider/acp/AcpAdapterSupport.ts
  • apps/server/src/provider/acp/AcpCoreRuntimeEvents.test.ts
  • apps/server/src/provider/acp/AcpCoreRuntimeEvents.ts
  • apps/server/src/provider/acp/AcpNativeLogging.ts
  • apps/server/src/provider/acp/AcpSessionRuntime.ts
  • apps/server/src/provider/acp/CursorAcpSupport.test.ts
  • apps/server/src/provider/acp/CursorAcpSupport.ts
  • apps/server/src/provider/builtInDrivers.ts
  • apps/server/src/provider/builtInProviderCatalog.ts
  • apps/server/src/provider/claude-agent-sdk.d.ts
  • apps/server/src/provider/copilot-sdk.d.ts
  • apps/server/src/provider/makeManagedServerProvider.test.ts
  • apps/server/src/provider/opencodeRuntime.ts
  • apps/server/src/provider/providerKind.ts
  • apps/server/src/provider/providerSnapshot.test.ts
  • apps/server/src/provider/providerSnapshot.ts
  • apps/server/src/provider/providerStatusCache.test.ts
  • apps/server/src/provider/providerStatusCache.ts
  • apps/server/src/provider/testUtils/providerAdapterRegistryMock.ts
  • apps/server/src/provider/unavailableProviderSnapshot.ts
  • apps/server/src/server.test.ts
  • apps/server/src/server.ts
  • apps/server/src/serverRuntimeStartup.test.ts
  • apps/server/src/serverRuntimeStartup.ts
  • apps/server/src/serverSettings.test.ts
  • apps/server/src/serverSettings.ts
  • apps/server/src/sourceControl/AzureDevOpsCli.test.ts
  • apps/server/src/sourceControl/AzureDevOpsCli.ts
  • apps/server/src/sourceControl/AzureDevOpsSourceControlProvider.test.ts
  • apps/server/src/sourceControl/AzureDevOpsSourceControlProvider.ts
  • apps/server/src/sourceControl/BitbucketApi.test.ts
  • apps/server/src/sourceControl/BitbucketApi.ts
  • apps/server/src/sourceControl/BitbucketSourceControlProvider.test.ts
  • apps/server/src/sourceControl/BitbucketSourceControlProvider.ts
  • apps/server/src/sourceControl/GitHubCli.test.ts
  • apps/server/src/sourceControl/GitHubCli.ts
  • apps/server/src/sourceControl/GitHubSourceControlProvider.test.ts
  • apps/server/src/sourceControl/GitHubSourceControlProvider.ts
  • apps/server/src/sourceControl/GitLabCli.test.ts
  • apps/server/src/sourceControl/GitLabCli.ts
  • apps/server/src/sourceControl/GitLabSourceControlProvider.test.ts
  • apps/server/src/sourceControl/GitLabSourceControlProvider.ts
  • apps/server/src/sourceControl/SourceControlDiscovery.test.ts
  • apps/server/src/sourceControl/SourceControlDiscovery.ts
  • apps/server/src/sourceControl/SourceControlProvider.ts
  • apps/server/src/sourceControl/SourceControlProviderDiscovery.ts
  • apps/server/src/sourceControl/SourceControlProviderRegistry.test.ts
  • apps/server/src/sourceControl/SourceControlProviderRegistry.ts
  • apps/server/src/sourceControl/SourceControlRepositoryService.test.ts
  • apps/server/src/sourceControl/SourceControlRepositoryService.ts
  • apps/server/src/sourceControl/azureDevOpsPullRequests.ts
  • apps/server/src/sourceControl/bitbucketPullRequests.ts
  • apps/server/src/sourceControl/gitHubPullRequests.ts
  • apps/server/src/sourceControl/gitLabMergeRequests.ts
  • apps/server/src/textGeneration/AmpTextGeneration.ts
  • apps/server/src/textGeneration/ClaudeTextGeneration.test.ts
  • apps/server/src/textGeneration/ClaudeTextGeneration.ts
  • apps/server/src/textGeneration/CodexTextGeneration.test.ts
  • apps/server/src/textGeneration/CodexTextGeneration.ts
  • apps/server/src/textGeneration/CopilotTextGeneration.ts
  • apps/server/src/textGeneration/CursorTextGeneration.test.ts
  • apps/server/src/textGeneration/CursorTextGeneration.ts
  • apps/server/src/textGeneration/GeminiCliTextGeneration.ts
  • apps/server/src/textGeneration/KiloTextGeneration.ts
  • apps/server/src/textGeneration/OpenCodeTextGeneration.test.ts
  • apps/server/src/textGeneration/OpenCodeTextGeneration.ts
  • apps/server/src/textGeneration/TextGeneration.test.ts
  • apps/server/src/textGeneration/TextGeneration.ts
  • apps/server/src/textGeneration/TextGenerationPolicy.ts
  • apps/server/src/textGeneration/TextGenerationPresets.ts
  • apps/server/src/textGeneration/TextGenerationPrompts.test.ts
  • apps/server/src/textGeneration/TextGenerationPrompts.ts
  • apps/server/src/textGeneration/TextGenerationUtils.ts
  • apps/server/src/vcs/GitVcsDriver.test.ts
  • apps/server/src/vcs/GitVcsDriver.ts
  • apps/server/src/vcs/GitVcsDriverCore.test.ts
  • apps/server/src/vcs/GitVcsDriverCore.ts
  • apps/server/src/vcs/VcsDriver.ts
  • apps/server/src/vcs/VcsDriverRegistry.test.ts
  • apps/server/src/vcs/VcsDriverRegistry.ts
  • apps/server/src/vcs/VcsProcess.ts
  • apps/server/src/vcs/VcsProjectConfig.test.ts
  • apps/server/src/vcs/VcsProjectConfig.ts
  • apps/server/src/vcs/VcsProvisioningService.test.ts
  • apps/server/src/vcs/VcsProvisioningService.ts
  • apps/server/src/vcs/VcsStatusBroadcaster.test.ts
  • apps/server/src/vcs/VcsStatusBroadcaster.ts
  • apps/server/src/vcs/testing/VcsDriverContractHarness.ts
  • apps/server/src/workspace/Layers/WorkspaceEntries.test.ts
  • apps/server/src/workspace/Layers/WorkspaceEntries.ts
  • apps/server/src/workspace/Layers/WorkspaceFileSystem.test.ts
  • apps/server/src/ws.ts
  • apps/web/index.html
  • apps/web/src/appSettings.test.ts
  • apps/web/src/appSettings.ts
  • apps/web/src/authBootstrap.test.ts
  • apps/web/src/clientPersistenceStorage.test.ts
  • apps/web/src/clientPersistenceStorage.ts
  • apps/web/src/components/AnimatedHeight.tsx
  • apps/web/src/components/AppSidebarLayout.tsx
  • apps/web/src/components/BranchToolbar.logic.test.ts
  • apps/web/src/components/BranchToolbar.logic.ts
  • apps/web/src/components/BranchToolbar.tsx
  • apps/web/src/components/BranchToolbarBranchSelector.tsx
  • apps/web/src/components/BranchToolbarEnvModeSelector.tsx
  • apps/web/src/components/BranchToolbarEnvironmentSelector.tsx
  • apps/web/src/components/ChatView.browser.tsx
  • apps/web/src/components/ChatView.logic.test.ts
  • apps/web/src/components/ChatView.logic.ts
  • apps/web/src/components/ChatView.tsx
  • apps/web/src/components/CommandPalette.logic.test.ts
  • apps/web/src/components/CommandPalette.logic.ts
  • apps/web/src/components/CommandPalette.tsx
  • apps/web/src/components/CommandPaletteResults.tsx
  • apps/web/src/components/ComposerPromptEditor.tsx
  • apps/web/src/components/DiffPanel.tsx
  • apps/web/src/components/GitActionsControl.browser.tsx
  • apps/web/src/components/GitActionsControl.logic.test.ts
  • apps/web/src/components/GitActionsControl.logic.ts
  • apps/web/src/components/GitActionsControl.tsx

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
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch sync/upstream-2026-05-04

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 and usage tips.

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XXL 1,000+ effective changed lines (test files excluded in mixed PRs). labels May 5, 2026
@aaditagrawal aaditagrawal merged commit 9aee240 into main May 5, 2026
6 of 8 checks passed
aaditagrawal added a commit that referenced this pull request May 5, 2026
PR #79's install fix made these visible. Five distinct issues, all from
PR #77's manual reconciliation of upstream's multi-provider SPI:

1. ProjectionSnapshotQuery.listThreadRows had a fork-added WHERE clause
   filtering by `json_extract(model_selection_json, '$.provider')` — but
   upstream's new SPI stores `$.instanceId` instead. The filter dropped
   every thread silently, so projection_threads was always empty in the
   snapshot and every integration-engine test hung waiting for projections
   that would never arrive. Removing the filter (matches upstream).

2. Migration test bounds were off-by-two. Fork's filenames 026/027/028/029
   stayed put but were registered as IDs 28/29/30/31 (because fork's old
   023/024 displaced them). The tests still passed numeric IDs matching the
   filenames, so they ran the canonicalize migration before its deps
   existed and blew up with `projection_thread_sessions has no column
   named provider_instance_id`.

3. CodexAdapter native-flush regex /NTIVE: .../ was missing the leading
   `A` (re-introduced by the merge from a stale upstream revision; we
   already fixed it once in PR #75 review). Restoring /NATIVE: .../.

4. ProviderRegistry.test asserted only the 4 upstream providers, but
   BUILT_IN_DRIVERS now contains all 8 (incl. fork's amp/copilot/
   geminiCli/kilo). Updated the expected list.

Local: `bunx vitest run integration/orchestrationEngine.integration.test.ts`
goes from 11 failed/1 skipped → 11 passed/1 skipped.
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.

1 participant