Skip to content

feat(providers): harden supported CLI updates - #57

Merged
slashdevcorpse merged 28 commits into
mainfrom
update-clis
Jul 22, 2026
Merged

feat(providers): harden supported CLI updates#57
slashdevcorpse merged 28 commits into
mainfrom
update-clis

Conversation

@slashdevcorpse

@slashdevcorpse slashdevcorpse commented Jul 21, 2026

Copy link
Copy Markdown
Owner

Summary

  • make supported provider CLI updates provenance-aware and channel-safe, including Command Code aliases and both Factory Droid npm identities, while keeping ambiguous channels fail-closed
  • serialize maintenance against live provider work, drain owned runtimes, and report updated, still-outdated, unchanged, and unverified outcomes truthfully
  • contain Windows provider processes with a shared native Job Object launcher and retain exact ownership through startup, teardown, and failure recovery
  • document supported update channels, Windows lock recovery, and troubleshooting
  • attest the packaged CLI and enforce native launcher, provider regression, and release workflow gates

Local verification

  • 55 changed server test files: 1,167 passed, 7 skipped
  • latest-main desktop shutdown/update-install tests: 91 passed
  • server connection-lifecycle tests: 19 passed
  • Windows launcher/package contracts: 55 passed
  • workflow/release contracts and dependency patch checks passed
  • Windows x64 native launcher build passed
  • production web and CLI build passed
  • the isolated rerun of the one cold-start Windows smoke timeout passed

The local Visual Studio installation does not include the ARM64 C++ component, so the arm64 launcher build and packaged publish dry-run remain required exact-head Windows CI gates.

Per repository instructions, bun fmt, bun lint, and bun typecheck were not run locally without explicit user authorization; the exact-head quality check remains a merge gate.

Summary by CodeRabbit

  • New Features

    • Expanded provider update outcomes (including unverified and still outdated) and improved UI messaging, manual command suggestions, and “Update all” summaries.
    • Added provider skill discovery support for a project root boundary.
    • Introduced stronger session shutdown behavior for ACP-backed sessions.
  • Bug Fixes

    • Prevented provider/CLI updates and retries unless runtime/provider process exit and ownership can be verified.
    • Improved Windows process supervision, shutdown/drain signaling, and path/command handling.
  • Documentation

    • Added the provider CLI updates runbook and conservative update contract.
  • Chores / Tests

    • Expanded CI and integration/regression coverage (including publish/runtime packaging verification).

@coderabbitai

coderabbitai Bot commented Jul 21, 2026

Copy link
Copy Markdown

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

This PR introduces conservative provider CLI update maintenance (gates, cross-process locks, owned-resource draining, target identity verification), Windows Job Object process containment for ACP/provider subprocesses with cooperative teardown, provider adapter ownership integration, verified packaged CLI publishing, and web-side update presentation with an accompanying runbook.

Changes

Provider Maintenance Coordination

Layer / File(s) Summary
Maintenance gate, owned resources, coordinator, cross-process lock
apps/server/src/provider/providerMaintenanceGate.*, providerMaintenanceOwnedResources.*, providerMaintenanceCommandCoordinator.*, providerMaintenanceCrossProcessLock.*, providerProcessOwnerTracker.*
Introduces exclusive maintenance admission gates, owned-resource drain coordination, per-target command locking, and OS-level cross-process locks with recovery semantics.
Target identity and update outcome resolution
providerMaintenance.*, providerUpdateOutcome.*, providerUpdateQuiescence.*
Resolves exact update target identity (paths, install source, channel evidence) and classifies/quiesces runtimes before applying updates.
ProviderHealth maintenance-gated status/update
provider/Layers/ProviderHealth.*
Threads maintenance gate and supervised process teardown into health probing, status commit, and one-click update execution.
ProviderService/discovery/registry gating
provider/Layers/ProviderService.*, ProviderDiscoveryService.*, ProviderAdapterRegistry.*, Services/ProviderService.ts, provider/runtimeLayer.*
Adds prepareForMaintenance and maintenance-gate wrapping across provider service, discovery, and adapter registry layers.
Text-generation/server layer wiring
git/Layers/OpenCodeTextGeneration.*, ProviderTextGeneration.*, git/runtimeLayer.*, serverLayers.*, main.ts, claudeCredentialKeepalive.ts, CodexTextGeneration.*
Threads maintenance gate/owned-resource coordinators into text-generation and server runtime layer construction.

Estimated code review effort: 5 (Critical) | ~150 minutes

ACP Process Ownership and Windows Job Containment

Layer / File(s) Summary
Process-tree snapshot capture and supervised teardown
terminal/processTreeKiller.*, provider/supervisedProcessTeardown.*, terminal/Layers/Manager.*
Captures stable process identities/groups and proves descendant exit via effect-based supervision with retryable teardown.
Windows Job launcher containment
native/windows-job-launcher/*, provider/windowsJobProcessSupervisor.*, provider/windowsProviderProcess.*, contract tests
Upgrades the Windows helper to protocol v2 with control-file drain acknowledgement and exact termination supervision.
ACP session runtime teardown and fixtures
provider/acp/AcpSessionRuntime.*, AcpSessionTeardown.*, AcpJsonRpcConnection.test.ts, AcpSdkConformance.test.ts, DroidSessionTeardownGate.*, containedClaudeSdkProcess.*, codexAppServerManager.*, opencodeRuntime.*, acp-conformance-agent.ts, acp-mock-agent.ts
Coordinates a single authoritative teardown outcome, cooperative stdio shutdown, and process ownership across ACP/Codex/OpenCode runtimes.

Estimated code review effort: 5 (Critical) | ~180 minutes

Provider Adapter Ownership Integration

Layer / File(s) Summary
Adapter process ownership and stopAll retries
provider/Layers/AntigravityAdapter.*, ClaudeAdapter.*, CommandCodeAdapter.*, CursorAdapter.*, GrokAdapter.*, OpenCodeAdapter.*, PiAdapter.*, DroidAdapter.*
Each adapter installs process supervision, retains owned processes on failure, and retries teardown/drain on stopAll.
Command resolution and skills/env boundaries
provider/acp/CursorAcpCommand.test.ts, cursorSkillsDiscovery.*, skillsCatalog.*, claudeProcessEnv.test.ts, commandCodeCliExecutable.*
Adds project-root boundary options, platform-derived path assertions, and stricter Windows shim resolution.

Estimated code review effort: 4 (Complex) | ~90 minutes

Packaged CLI Verification and Provider Update UI

Layer / File(s) Summary
CLI publish verification
scripts/cli.ts, cliPublishContract.*, tsdown.config.ts, patch file, dependency-security-pins.test.ts, workflow-contracts.*
Packs, isolated-installs, and statically verifies the patched Effect process-spawner is bundled before publish.
Provider update presentation
apps/web/src/providerUpdates.*, ProvidersSettingsPanel.tsx, __root.tsx, packages/contracts/src/server.ts, docs/provider-cli-updates.md, README.md
Normalizes update state literals and presentation, aggregates "Update all" toast messaging, and documents the update contract.

Estimated code review effort: 3 (Moderate) | ~40 minutes

Supporting Fixes and Regression Tests

Layer / File(s) Summary
Lifecycle lock, keybindings, Windows command-line fixes
persistence/DatabaseLifecycleLock.*, keybindings.test.ts, ProjectFaviconResolver.test.ts, editorAppIcons.test.ts, packages/shared/src/windowsProcess.*, integration tests
Hardens lock release de-duplication, adds Windows command-line quoting helpers, and normalizes CRLF in integration assertions.

Estimated code review effort: 2 (Simple) | ~20 minutes

Sequence Diagram(s)

sequenceDiagram
  participant ProviderHealth
  participant ProviderMaintenanceGate
  participant ProviderMaintenanceOwnedResources
  participant ProviderProcessOwnerTracker
  participant WindowsJobProcessSupervisor

  ProviderHealth->>ProviderMaintenanceGate: withExclusiveMaintenance(provider)
  ProviderMaintenanceGate->>ProviderMaintenanceOwnedResources: drainProviderResources
  ProviderMaintenanceOwnedResources->>ProviderProcessOwnerTracker: teardown owned processes
  ProviderProcessOwnerTracker->>WindowsJobProcessSupervisor: proveExit / requestStop
  WindowsJobProcessSupervisor-->>ProviderProcessOwnerTracker: drain acknowledgement
  ProviderProcessOwnerTracker-->>ProviderMaintenanceOwnedResources: teardown proven
  ProviderMaintenanceOwnedResources-->>ProviderMaintenanceGate: drained
  ProviderMaintenanceGate-->>ProviderHealth: run update command
Loading

Possibly related issues

Possibly related PRs

  • slashdevcorpse/synara#40: Coordinated changes to the Windows Job launcher protocol/control-file driven shutdown in the same launcher.cpp/launcher.config.json.
  • slashdevcorpse/synara#41: Updates the Windows Job Object smoke test to match the same protocol markers/termination behavior for containment.

Suggested reviewers: emanuele-web04

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 4.70% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title is concise and accurately reflects the main change: hardening supported provider CLI updates.
Description check ✅ Passed The description covers the main changes and local verification, though it omits the template's Why, UI Changes, and checklist sections.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

Comment @coderabbitai help to get the list of available commands.

@slashdevcorpse

Copy link
Copy Markdown
Owner Author

@greptile-apps

Comment thread apps/server/src/terminal/processTreeKiller.ts
Comment thread apps/server/src/provider/acp/AcpWindowsJob.ts Outdated
Comment thread apps/server/src/provider/Layers/ProviderHealth.ts
Comment thread apps/server/src/provider/providerMaintenance.ts

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🧹 Nitpick comments (2)
apps/server/src/provider/providerMaintenance.ts (1)

438-532: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Consider collapsing the near-identical npm/bun/pnpm global builders.

makeNpmGlobalProviderMaintenanceCapabilities, makeBunGlobalProviderMaintenanceCapabilities, and makePnpmGlobalProviderMaintenanceCapabilities share the same npmPackageName guard, canonicalInstallRoot guard, updatePathPrepend, and updateTarget wiring, differing only in updateArgs and the lockKey prefix. A single helper parameterized by (updateArgs, lockKeyPrefix) would remove the triplicated control flow and keep future changes in one place.

As per coding guidelines: "avoid duplicating logic across files and prefer reusable modules over local shortcuts."

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@apps/server/src/provider/providerMaintenance.ts` around lines 438 - 532, The
three global provider capability builders duplicate the same validation and
capability wiring. Extract a shared helper parameterized by the manager-specific
updateArgs and lock-key prefix, then have
makeNpmGlobalProviderMaintenanceCapabilities,
makeBunGlobalProviderMaintenanceCapabilities, and
makePnpmGlobalProviderMaintenanceCapabilities delegate to it while preserving
their distinct arguments and existing fallback behavior.

Source: Coding guidelines

apps/server/src/provider/Layers/ProviderService.ts (1)

307-319: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Extract the shared maintenance-busy wrapper into a reusable helper. All three sites wrap maintenanceGate.withOperation(...) and catchTag("ProviderMaintenanceBusyError", ...) to convert into a domain error — two of them produce an identical ProviderValidationError, and the third differs only in the target error type. Consider a single helper (e.g. exported from providerMaintenanceGate.ts) that takes a busy → error mapper, so the gating/translation logic lives in one place.

  • apps/server/src/provider/Layers/ProviderService.ts#L307-L319: replace withProviderOperation's inline catchTag body with the shared helper mapping to ProviderValidationError.
  • apps/server/src/provider/Layers/ProviderDiscoveryService.ts#L81-L91: replace withProviderDiscovery's duplicate catchTag body with the same shared helper mapping to ProviderValidationError.
  • apps/server/src/git/Layers/ProviderTextGeneration.ts#L55-L71: use the shared helper in runWithProviderMaintenance, passing a mapper that returns TextGenerationError.

As per coding guidelines: "Before adding functionality, check for shared logic that can be extracted; avoid duplicating logic across files and prefer reusable modules over local shortcuts."

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@apps/server/src/provider/Layers/ProviderService.ts` around lines 307 - 319,
Extract the shared maintenance-busy handling around
maintenanceGate.withOperation into a reusable helper, preferably in
providerMaintenanceGate.ts, accepting a busy-error mapper. Update
apps/server/src/provider/Layers/ProviderService.ts lines 307-319 and
apps/server/src/provider/Layers/ProviderDiscoveryService.ts lines 81-91 to use
it with ProviderValidationError mapping; update
apps/server/src/git/Layers/ProviderTextGeneration.ts lines 55-71 so
runWithProviderMaintenance uses the same helper with a TextGenerationError
mapper.

Source: Coding guidelines

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@apps/server/src/keybindings.test.ts`:
- Around line 871-875: Extend the failure test around acquireUseRelease to read
keybindingsConfigPath after the operation completes, then assert the restored
configuration still contains the original terminal.toggle rule. Keep the
existing Result.isFailure and failure-message assertions, and use the test’s
established config-reading/parsing helpers.

In `@apps/server/src/provider/opencodeRuntime.ts`:
- Around line 1225-1235: Update the OpenCodeRuntimeError detail in the
Scope.close failure branch after Scope.close(pooledServer.scope, Exit.void) to
describe local server scope finalization failure, rather than process-tree exit
proof failure. Keep the existing cause handling and closeFailure assignment
unchanged.

In `@apps/server/src/terminal/processTreeKiller.ts`:
- Around line 267-278: Update the Windows teardown validation around
readCurrentProcesses and ProcessTreeKiller.signal so it does not call the
synchronous captureProcessSnapshotSync path from normal cleanup. Propagate an
async signal/validation flow that reuses captureProcessSnapshotAsync, preserving
the existing PID filtering and snapshot-selection behavior while ensuring
SIGKILL validation does not block the event loop.

---

Nitpick comments:
In `@apps/server/src/provider/Layers/ProviderService.ts`:
- Around line 307-319: Extract the shared maintenance-busy handling around
maintenanceGate.withOperation into a reusable helper, preferably in
providerMaintenanceGate.ts, accepting a busy-error mapper. Update
apps/server/src/provider/Layers/ProviderService.ts lines 307-319 and
apps/server/src/provider/Layers/ProviderDiscoveryService.ts lines 81-91 to use
it with ProviderValidationError mapping; update
apps/server/src/git/Layers/ProviderTextGeneration.ts lines 55-71 so
runWithProviderMaintenance uses the same helper with a TextGenerationError
mapper.

In `@apps/server/src/provider/providerMaintenance.ts`:
- Around line 438-532: The three global provider capability builders duplicate
the same validation and capability wiring. Extract a shared helper parameterized
by the manager-specific updateArgs and lock-key prefix, then have
makeNpmGlobalProviderMaintenanceCapabilities,
makeBunGlobalProviderMaintenanceCapabilities, and
makePnpmGlobalProviderMaintenanceCapabilities delegate to it while preserving
their distinct arguments and existing fallback behavior.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 0744089e-649c-4cbd-b305-0c1c7fb80a79

📥 Commits

Reviewing files that changed from the base of the PR and between 55166e0 and 8807fb1.

📒 Files selected for processing (101)
  • .github/workflows/ci.yml
  • README.md
  • apps/desktop/scripts/smoke-test-windows-job.windows.integration.test.mjs
  • apps/server/integration/orchestrationEngine.integration.test.ts
  • apps/server/scripts/acp-conformance-agent.ts
  • apps/server/scripts/acp-mock-agent.ts
  • apps/server/scripts/acp-windows-job-fixture.mjs
  • apps/server/scripts/acp-windows-job-native.cs
  • apps/server/scripts/acp-windows-job.ps1
  • apps/server/scripts/cli.ts
  • apps/server/scripts/cliPublishContract.test.ts
  • apps/server/scripts/cliPublishContract.ts
  • apps/server/src/editorAppIcons.test.ts
  • apps/server/src/git/Layers/CursorTextGeneration.test.ts
  • apps/server/src/git/Layers/OpenCodeTextGeneration.test.ts
  • apps/server/src/git/Layers/OpenCodeTextGeneration.ts
  • apps/server/src/git/Layers/ProviderTextGeneration.test.ts
  • apps/server/src/git/Layers/ProviderTextGeneration.ts
  • apps/server/src/git/runtimeLayer.test.ts
  • apps/server/src/git/runtimeLayer.ts
  • apps/server/src/keybindings.test.ts
  • apps/server/src/main.ts
  • apps/server/src/orchestration/Layers/CheckpointReactor.test.ts
  • apps/server/src/persistence/DatabaseLifecycleLock.test.ts
  • apps/server/src/persistence/DatabaseLifecycleLock.ts
  • apps/server/src/project/Layers/ProjectFaviconResolver.test.ts
  • apps/server/src/provider/Layers/CursorAdapter.ts
  • apps/server/src/provider/Layers/DroidAdapter.test.ts
  • apps/server/src/provider/Layers/DroidAdapter.ts
  • apps/server/src/provider/Layers/GrokAdapter.ts
  • apps/server/src/provider/Layers/OpenCodeAdapter.test.ts
  • apps/server/src/provider/Layers/OpenCodeAdapter.ts
  • apps/server/src/provider/Layers/ProviderAdapterRegistry.test.ts
  • apps/server/src/provider/Layers/ProviderAdapterRegistry.ts
  • apps/server/src/provider/Layers/ProviderDiscoveryService.test.ts
  • apps/server/src/provider/Layers/ProviderDiscoveryService.ts
  • apps/server/src/provider/Layers/ProviderHealth.test.ts
  • apps/server/src/provider/Layers/ProviderHealth.ts
  • apps/server/src/provider/Layers/ProviderService.test.ts
  • apps/server/src/provider/Layers/ProviderService.ts
  • apps/server/src/provider/Services/ProviderService.ts
  • apps/server/src/provider/acp/AcpAdapterSessionSupport.test.ts
  • apps/server/src/provider/acp/AcpJsonRpcConnection.test.ts
  • apps/server/src/provider/acp/AcpSdkConformance.test.ts
  • apps/server/src/provider/acp/AcpSessionRuntime.test.ts
  • apps/server/src/provider/acp/AcpSessionRuntime.ts
  • apps/server/src/provider/acp/AcpSessionRuntimeTestSupport.ts
  • apps/server/src/provider/acp/AcpSessionTeardown.test.ts
  • apps/server/src/provider/acp/AcpSessionTeardown.ts
  • apps/server/src/provider/acp/AcpWindowsJob.test.ts
  • apps/server/src/provider/acp/AcpWindowsJob.ts
  • apps/server/src/provider/acp/AcpWindowsJob.windows.integration.test.ts
  • apps/server/src/provider/acp/AcpWindowsJobTestSupport.ts
  • apps/server/src/provider/acp/CursorAcpCommand.test.ts
  • apps/server/src/provider/acp/DroidSessionTeardownGate.test.ts
  • apps/server/src/provider/acp/DroidSessionTeardownGate.ts
  • apps/server/src/provider/claudeCredentialKeepalive.ts
  • apps/server/src/provider/claudeProcessEnv.test.ts
  • apps/server/src/provider/cursorSkillsDiscovery.test.ts
  • apps/server/src/provider/cursorSkillsDiscovery.ts
  • apps/server/src/provider/opencodeRuntime.test.ts
  • apps/server/src/provider/opencodeRuntime.ts
  • apps/server/src/provider/providerMaintenance.test.ts
  • apps/server/src/provider/providerMaintenance.ts
  • apps/server/src/provider/providerMaintenanceCommandCoordinator.test.ts
  • apps/server/src/provider/providerMaintenanceCommandCoordinator.ts
  • apps/server/src/provider/providerMaintenanceCrossProcessLock.test.ts
  • apps/server/src/provider/providerMaintenanceCrossProcessLock.ts
  • apps/server/src/provider/providerMaintenanceGate.test.ts
  • apps/server/src/provider/providerMaintenanceGate.ts
  • apps/server/src/provider/providerMaintenanceOwnedResources.test.ts
  • apps/server/src/provider/providerMaintenanceOwnedResources.ts
  • apps/server/src/provider/providerUpdateOutcome.test.ts
  • apps/server/src/provider/providerUpdateOutcome.ts
  • apps/server/src/provider/providerUpdateQuiescence.test.ts
  • apps/server/src/provider/providerUpdateQuiescence.ts
  • apps/server/src/provider/runtimeLayer.ts
  • apps/server/src/provider/skillsCatalog.test.ts
  • apps/server/src/provider/skillsCatalog.ts
  • apps/server/src/provider/supervisedProcessTeardown.test.ts
  • apps/server/src/provider/supervisedProcessTeardown.ts
  • apps/server/src/serverLayers.test.ts
  • apps/server/src/serverLayers.ts
  • apps/server/src/terminal/Layers/Manager.test.ts
  • apps/server/src/terminal/processTreeKiller.test.ts
  • apps/server/src/terminal/processTreeKiller.ts
  • apps/server/tsdown.config.ts
  • apps/web/src/components/settings/ProvidersSettingsPanel.tsx
  • apps/web/src/providerUpdates.test.ts
  • apps/web/src/providerUpdates.ts
  • apps/web/src/routes/__root.tsx
  • docs/provider-cli-updates.md
  • packages/contracts/src/server.ts
  • packages/shared/src/commandCodeCliExecutable.test.ts
  • packages/shared/src/commandCodeCliExecutable.ts
  • packages/shared/src/windowsProcess.test.ts
  • packages/shared/src/windowsProcess.ts
  • patches/@effect%2Fplatform-node-shared@8881a9b.patch
  • scripts/lib/dependency-security-pins.test.ts
  • scripts/lib/workflow-contracts.test.ts
  • scripts/lib/workflow-contracts.ts

Comment thread apps/server/src/keybindings.test.ts
Comment thread apps/server/src/provider/opencodeRuntime.ts
Comment thread apps/server/src/terminal/processTreeKiller.ts

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All reported issues were addressed

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

Comment thread apps/server/scripts/acp-windows-job.ps1 Outdated
Comment thread apps/server/scripts/acp-windows-job.ps1 Outdated
Comment thread apps/server/scripts/cliPublishContract.ts Outdated
Comment thread apps/server/src/provider/acp/AcpSessionTeardown.ts Outdated
Comment thread apps/server/src/provider/providerMaintenanceCrossProcessLock.ts Outdated
Comment thread apps/server/src/provider/supervisedProcessTeardown.ts Outdated
Comment thread apps/server/scripts/acp-conformance-agent.ts Outdated
Comment thread apps/server/src/terminal/processTreeKiller.ts
Comment thread apps/server/src/provider/opencodeRuntime.ts Outdated
Comment thread apps/server/src/provider/providerMaintenance.ts Outdated
@greptile-apps

greptile-apps Bot commented Jul 21, 2026

Copy link
Copy Markdown

Too many files changed for review. (130 files found, 100 file limit)

Bypass the limit by tagging @greptile-apps to review.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (3)
apps/server/src/provider/Layers/ProviderService.ts (3)

1307-1319: 🗄️ Data Integrity & Integration | 🟠 Major | 🏗️ Heavy lift

Protect the provider-switch transaction before stopping the old session.

On the provider-switch path, previousAdapter.stopSession runs at Line [1368] before replacement startup obtains maintenance admission. If the gate is busy or latched, replacement startup fails and the restoration attempt at Lines [1381-1400] is gated and can fail again, leaving the previous runtime stopped while its binding still points to it. Acquire admission for the complete switch/rollback transaction, or provide a guaranteed restoration path before performing the destructive stop.

Also applies to: 1381-1399

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@apps/server/src/provider/Layers/ProviderService.ts` around lines 1307 - 1319,
Update the provider-switch flow around ProviderService.startSession so
maintenance admission is acquired before previousAdapter.stopSession and held
across replacement startup and rollback. Ensure the same admission covers
restoration in the failure path around the existing 1381-1399 logic, preventing
a busy or latched gate from leaving the old session stopped while its binding
still references it.

1463-1488: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Do not route maintenance failures through native-fork fallback.

The Effect.catch is outside withProviderOperation, so a maintenance-busy error converted to ProviderValidationError is treated like an ordinary native fork failure and converted to null. Move the fallback catch inside the adapter’s run effect, or explicitly rethrow gate-derived errors, so maintenance admission failures reach the caller.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@apps/server/src/provider/Layers/ProviderService.ts` around lines 1463 - 1488,
Keep maintenance admission failures from being converted into native-fork
fallback by moving the fallback catch inside the adapter.forkThread run effect,
before withProviderOperation handles the operation. Alternatively, explicitly
rethrow gate-derived ProviderValidationError errors while catching only native
fork failures, ensuring maintenance-busy errors reach the caller.

2369-2373: 🩺 Stability & Availability | 🟠 Major | 🏗️ Heavy lift

Re-arm idle teardown after temporary maintenance rejection.

When the gate is busy, withProviderOperation fails; stopIdleRuntimeSession only logs that failure and runRegisteredRuntimeIdleStop retires the generation without scheduling another timer. The idle runtime can therefore remain open indefinitely after maintenance ends. Treat temporary gate-busy failures as retryable/cancelled idle stops and preserve fail-closed behavior for latched failures.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@apps/server/src/provider/Layers/ProviderService.ts` around lines 2369 - 2373,
Update the idle-stop flow around stopIdleRuntimeSession and
runRegisteredRuntimeIdleStop so temporary gate-busy failures from
withProviderOperation are classified as retryable/cancelled and cause idle
teardown to be re-armed after maintenance ends. Preserve the existing
fail-closed behavior for latched failures, and ensure the
ProviderService.stopRuntimeSessionIfIdle operation reports the distinction
needed by the scheduler.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Outside diff comments:
In `@apps/server/src/provider/Layers/ProviderService.ts`:
- Around line 1307-1319: Update the provider-switch flow around
ProviderService.startSession so maintenance admission is acquired before
previousAdapter.stopSession and held across replacement startup and rollback.
Ensure the same admission covers restoration in the failure path around the
existing 1381-1399 logic, preventing a busy or latched gate from leaving the old
session stopped while its binding still references it.
- Around line 1463-1488: Keep maintenance admission failures from being
converted into native-fork fallback by moving the fallback catch inside the
adapter.forkThread run effect, before withProviderOperation handles the
operation. Alternatively, explicitly rethrow gate-derived
ProviderValidationError errors while catching only native fork failures,
ensuring maintenance-busy errors reach the caller.
- Around line 2369-2373: Update the idle-stop flow around stopIdleRuntimeSession
and runRegisteredRuntimeIdleStop so temporary gate-busy failures from
withProviderOperation are classified as retryable/cancelled and cause idle
teardown to be re-armed after maintenance ends. Preserve the existing
fail-closed behavior for latched failures, and ensure the
ProviderService.stopRuntimeSessionIfIdle operation reports the distinction
needed by the scheduler.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 82779cc1-918f-4575-a604-1717d2295c4e

📥 Commits

Reviewing files that changed from the base of the PR and between 06df0a3 and 958ab0f.

📒 Files selected for processing (4)
  • apps/server/src/provider/Layers/ProviderDiscoveryService.ts
  • apps/server/src/provider/Layers/ProviderService.ts
  • apps/server/src/provider/opencodeRuntime.test.ts
  • apps/server/src/provider/opencodeRuntime.ts
🚧 Files skipped from review as they are similar to previous changes (3)
  • apps/server/src/provider/opencodeRuntime.test.ts
  • apps/server/src/provider/Layers/ProviderDiscoveryService.ts
  • apps/server/src/provider/opencodeRuntime.ts

…-clis

# Conflicts:
#	apps/server/scripts/cli.ts
#	apps/server/src/provider/Layers/CursorAdapter.test.ts
#	apps/server/src/provider/Layers/ProviderHealth.test.ts
#	apps/server/src/provider/Layers/ProviderHealth.ts
#	apps/server/src/provider/acp/AcpSessionRuntime.ts
#	apps/server/src/provider/opencodeRuntime.test.ts
#	apps/server/src/provider/opencodeRuntime.ts
#	apps/server/src/provider/supervisedProcessTeardown.test.ts
#	apps/server/src/provider/supervisedProcessTeardown.ts
#	apps/server/src/terminal/Layers/Manager.test.ts
#	apps/server/src/terminal/Layers/Manager.ts
#	apps/server/src/terminal/processTreeKiller.test.ts
#	apps/server/src/terminal/processTreeKiller.ts
#	patches/@effect%2Fplatform-node-shared@8881a9b.patch
…-clis

# Conflicts:
#	scripts/lib/workflow-contracts.ts

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
.github/workflows/ci.yml (1)

92-99: 🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick win

Use a glob for report_path .github/workflows/ci.yml:92-99 The folded scalar turns these six paths into one space-separated string, but gha-mergify-ci expects a glob-style report_path. Replace this with a glob that matches all six reports so every JUnit file is picked up.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/ci.yml around lines 92 - 99, Update the report_path
configuration in the CI workflow to use a glob pattern matching all
test-report.junit.xml files across the relevant apps, packages, and scripts
directories, instead of listing paths as a folded space-separated scalar. Keep
test_step_outcome unchanged.
apps/server/native/windows-job-launcher/launcher.cpp (1)

128-136: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Trailing CR/LF trim only strips one character. message_length is const, so the loop body nulls system_message[message_length - 1] but the condition keeps re-checking that same (now \0) index and exits after one pass. System messages typically end with "\r\n", so only the \n is stripped and a stray \r survives into the message= field — which formatCodexCliVersionCheckFailure reads and can surface to users.

🐛 Proposed fix
-  if (message_length > 0 && system_message != nullptr) {
-    while (message_length > 0 &&
-           (system_message[message_length - 1] == L'\r' ||
-            system_message[message_length - 1] == L'\n')) {
-      system_message[message_length - 1] = L'\0';
-    }
-    std::fwprintf(stderr, L" message=%ls", system_message);
+  if (message_length > 0 && system_message != nullptr) {
+    DWORD trimmed_length = message_length;
+    while (trimmed_length > 0 &&
+           (system_message[trimmed_length - 1] == L'\r' ||
+            system_message[trimmed_length - 1] == L'\n')) {
+      system_message[--trimmed_length] = L'\0';
+    }
+    std::fwprintf(stderr, L" message=%ls", system_message);
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@apps/server/native/windows-job-launcher/launcher.cpp` around lines 128 - 136,
Update the trailing CR/LF trimming logic in the system-message handling block to
decrement the effective message length after each removed character, allowing
consecutive newline characters such as "\r\n" to be stripped. Preserve the
existing null termination and message output behavior in the surrounding
launcher flow.
🧹 Nitpick comments (1)
apps/server/scripts/cli.ts (1)

368-387: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Extract the shared "read dist bundles + verify patched spawner" block.

This read-directory → filter .mjs/.cjsreadFileStringEffect.try(assertPatchedEffectProcessSpawnerIsBundled) sequence is duplicated in verifyIsolatedPackageInstall (Lines 172-187). Extracting a small helper (e.g. verifyRuntimeBundlesIn(distDir)) would keep the two verification paths in sync and, as a side benefit, let the isolated-install path share the explicit empty-bundle guard (Line 371) that only exists here.

As per coding guidelines: "Before adding functionality, check for shared logic that can be extracted; avoid duplicating logic across files and prefer reusable modules over local shortcuts."

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@apps/server/scripts/cli.ts` around lines 368 - 387, Extract the duplicated
runtime-bundle verification sequence from verifyIsolatedPackageInstall and the
shown CLI flow into a shared helper such as verifyRuntimeBundlesIn(distDir).
Have the helper read and filter .mjs/.cjs bundles, reject an empty bundle set
with the existing CliError, load their contents, and invoke
assertPatchedEffectProcessSpawnerIsBundled while preserving the current error
handling; update both callers to use it.

Source: Coding guidelines

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@apps/server/src/provider/Layers/GrokAdapter.ts`:
- Around line 2350-2354: Update the cleanup effect in the Effect.addFinalizer
callback to use Effect.ensuring around stopAll, ensuring
PubSub.shutdown(runtimeEventPubSub) and managedNativeEventLogger?.close()
execute even when stopAll fails; preserve the existing teardown operations and
ordering.
- Around line 2342-2344: Update stopAll to reuse
stopCursorSessionsBestEffort(...) so every session is attempted even when one
stopSessionInternal call fails. Replace the finalizer cleanup’s Effect.tap with
Effect.ensuring, preserving PubSub and logger shutdown regardless of teardown
failure.

In `@apps/server/src/provider/Layers/ProviderHealth.test.ts`:
- Around line 117-126: Update makeCheckClaudeProviderStatus so
TEST_PROVIDER_PROCESS_OPTIONS is spread before options, allowing caller-supplied
process overrides to take precedence and matching
makeCheckCommandCodeProviderStatus.

In `@apps/server/src/provider/Layers/ProviderService.ts`:
- Around line 319-330: Update withProviderOperation so
withProviderMaintenanceOperation receives input.run directly instead of wrapping
it with Effect.result, allowing typed provider failures to reach the maintenance
gate’s onError latch; preserve the existing toValidationError mapping for busy
errors and the declared ProviderValidationError type.

---

Outside diff comments:
In @.github/workflows/ci.yml:
- Around line 92-99: Update the report_path configuration in the CI workflow to
use a glob pattern matching all test-report.junit.xml files across the relevant
apps, packages, and scripts directories, instead of listing paths as a folded
space-separated scalar. Keep test_step_outcome unchanged.

In `@apps/server/native/windows-job-launcher/launcher.cpp`:
- Around line 128-136: Update the trailing CR/LF trimming logic in the
system-message handling block to decrement the effective message length after
each removed character, allowing consecutive newline characters such as "\r\n"
to be stripped. Preserve the existing null termination and message output
behavior in the surrounding launcher flow.

---

Nitpick comments:
In `@apps/server/scripts/cli.ts`:
- Around line 368-387: Extract the duplicated runtime-bundle verification
sequence from verifyIsolatedPackageInstall and the shown CLI flow into a shared
helper such as verifyRuntimeBundlesIn(distDir). Have the helper read and filter
.mjs/.cjs bundles, reject an empty bundle set with the existing CliError, load
their contents, and invoke assertPatchedEffectProcessSpawnerIsBundled while
preserving the current error handling; update both callers to use it.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 1a81ce01-08b3-460f-936f-0012821e95fb

📥 Commits

Reviewing files that changed from the base of the PR and between 958ab0f and 97818c2.

📒 Files selected for processing (70)
  • .github/workflows/ci.yml
  • apps/server/native/windows-job-launcher/launcher.config.json
  • apps/server/native/windows-job-launcher/launcher.cpp
  • apps/server/scripts/acp-conformance-agent.ts
  • apps/server/scripts/cli.ts
  • apps/server/scripts/cliPublishContract.test.ts
  • apps/server/scripts/cliPublishContract.ts
  • apps/server/src/codexAppServerManager.test.ts
  • apps/server/src/codexAppServerManager.ts
  • apps/server/src/git/Layers/CodexTextGeneration.ownership.test.ts
  • apps/server/src/git/Layers/CodexTextGeneration.ts
  • apps/server/src/git/Layers/ProviderTextGeneration.ts
  • apps/server/src/main.ts
  • apps/server/src/provider/Layers/AntigravityAdapter.test.ts
  • apps/server/src/provider/Layers/AntigravityAdapter.ts
  • apps/server/src/provider/Layers/ClaudeAdapter.test.ts
  • apps/server/src/provider/Layers/ClaudeAdapter.ts
  • apps/server/src/provider/Layers/CommandCodeAdapter.test.ts
  • apps/server/src/provider/Layers/CommandCodeAdapter.ts
  • apps/server/src/provider/Layers/CursorAdapter.test.ts
  • apps/server/src/provider/Layers/CursorAdapter.ts
  • apps/server/src/provider/Layers/GrokAdapter.test.ts
  • apps/server/src/provider/Layers/GrokAdapter.ts
  • apps/server/src/provider/Layers/OpenCodeAdapter.test.ts
  • apps/server/src/provider/Layers/OpenCodeAdapter.ts
  • apps/server/src/provider/Layers/PiAdapter.test.ts
  • apps/server/src/provider/Layers/PiAdapter.ts
  • apps/server/src/provider/Layers/ProviderAdapterRegistry.test.ts
  • apps/server/src/provider/Layers/ProviderDiscoveryService.test.ts
  • apps/server/src/provider/Layers/ProviderDiscoveryService.ts
  • apps/server/src/provider/Layers/ProviderHealth.test.ts
  • apps/server/src/provider/Layers/ProviderHealth.ts
  • apps/server/src/provider/Layers/ProviderService.test.ts
  • apps/server/src/provider/Layers/ProviderService.ts
  • apps/server/src/provider/Services/ProviderService.ts
  • apps/server/src/provider/acp/AcpSdkConformance.test.ts
  • apps/server/src/provider/acp/AcpSessionRuntime.test.ts
  • apps/server/src/provider/acp/AcpSessionRuntime.ts
  • apps/server/src/provider/acp/AcpSessionTeardown.test.ts
  • apps/server/src/provider/acp/AcpSessionTeardown.ts
  • apps/server/src/provider/containedClaudeSdkProcess.test.ts
  • apps/server/src/provider/containedClaudeSdkProcess.ts
  • apps/server/src/provider/opencodeRuntime.test.ts
  • apps/server/src/provider/opencodeRuntime.ts
  • apps/server/src/provider/providerMaintenance.test.ts
  • apps/server/src/provider/providerMaintenance.ts
  • apps/server/src/provider/providerMaintenanceCrossProcessLock.test.ts
  • apps/server/src/provider/providerMaintenanceCrossProcessLock.ts
  • apps/server/src/provider/providerMaintenanceGate.test.ts
  • apps/server/src/provider/providerMaintenanceGate.ts
  • apps/server/src/provider/providerProcessOwnerTracker.test.ts
  • apps/server/src/provider/providerProcessOwnerTracker.ts
  • apps/server/src/provider/runtimeLayer.test.ts
  • apps/server/src/provider/runtimeLayer.ts
  • apps/server/src/provider/supervisedProcessTeardown.test.ts
  • apps/server/src/provider/supervisedProcessTeardown.ts
  • apps/server/src/provider/windowsJobLauncherSourceContract.test.ts
  • apps/server/src/provider/windowsJobProcessSupervisor.test.ts
  • apps/server/src/provider/windowsJobProcessSupervisor.ts
  • apps/server/src/provider/windowsProviderProcess.test.ts
  • apps/server/src/provider/windowsProviderProcess.ts
  • apps/server/src/provider/windowsProviderProcess.windows.test.ts
  • apps/server/src/provider/windowsProviderProcessOwnershipContract.test.ts
  • apps/server/src/serverLayers.test.ts
  • apps/server/src/serverLayers.ts
  • apps/server/src/terminal/Layers/Manager.test.ts
  • apps/server/src/terminal/Layers/Manager.ts
  • apps/server/src/terminal/processTreeKiller.test.ts
  • apps/server/src/terminal/processTreeKiller.ts
  • apps/web/src/routes/__root.tsx
🚧 Files skipped from review as they are similar to previous changes (18)
  • apps/server/src/provider/Services/ProviderService.ts
  • apps/server/src/provider/providerMaintenanceCrossProcessLock.test.ts
  • apps/server/src/provider/Layers/ProviderAdapterRegistry.test.ts
  • apps/web/src/routes/__root.tsx
  • apps/server/src/git/Layers/ProviderTextGeneration.ts
  • apps/server/src/provider/acp/AcpSessionTeardown.ts
  • apps/server/src/main.ts
  • apps/server/src/serverLayers.ts
  • apps/server/src/provider/providerMaintenanceCrossProcessLock.ts
  • apps/server/src/provider/Layers/ProviderDiscoveryService.ts
  • apps/server/src/terminal/processTreeKiller.test.ts
  • apps/server/src/provider/acp/AcpSessionRuntime.ts
  • apps/server/src/provider/Layers/OpenCodeAdapter.ts
  • apps/server/src/provider/supervisedProcessTeardown.ts
  • apps/server/src/provider/providerMaintenance.test.ts
  • apps/server/src/provider/providerMaintenance.ts
  • apps/server/src/provider/opencodeRuntime.ts
  • apps/server/src/provider/Layers/ProviderHealth.ts

Comment thread apps/server/src/provider/Layers/GrokAdapter.ts
Comment thread apps/server/src/provider/Layers/GrokAdapter.ts
Comment thread apps/server/src/provider/Layers/ProviderHealth.test.ts
Comment thread apps/server/src/provider/Layers/ProviderService.ts Outdated

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All reported issues were addressed across 7 files (changes from recent commits).

Tip: Review your code locally with the cubic CLI to iterate faster.

Re-trigger cubic

Comment thread apps/server/src/provider/stopSessionsBestEffort.ts

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@apps/server/src/provider/providerMaintenanceCrossProcessLock.ts`:
- Around line 417-460: Make the acquisition sequence in the provider maintenance
lock flow uninterruptible, including acquireDatabaseLifecycleLock and its
verification/release handling, so cancellation cannot leave a
DatabaseLifecycleLock held without cleanup. Prefer composing the child effect
directly or wrapping the relevant section in Effect.uninterruptible while
preserving the existing rejection-release behavior.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 9eb5bd1b-81fc-471e-a5f2-02728021ca53

📥 Commits

Reviewing files that changed from the base of the PR and between 97818c2 and 782fefc.

📒 Files selected for processing (31)
  • apps/server/scripts/cliPublishContract.test.ts
  • apps/server/scripts/cliPublishContract.ts
  • apps/server/src/codexAppServerManager.test.ts
  • apps/server/src/provider/Layers/AntigravityAdapter.ts
  • apps/server/src/provider/Layers/ClaudeAdapter.test.ts
  • apps/server/src/provider/Layers/ClaudeAdapter.ts
  • apps/server/src/provider/Layers/CommandCodeAdapter.ts
  • apps/server/src/provider/Layers/CursorAdapter.ts
  • apps/server/src/provider/Layers/GrokAdapter.ts
  • apps/server/src/provider/Layers/PiAdapter.test.ts
  • apps/server/src/provider/Layers/ProviderAdapterRegistry.test.ts
  • apps/server/src/provider/Layers/ProviderHealth.test.ts
  • apps/server/src/provider/Layers/ProviderService.test.ts
  • apps/server/src/provider/Layers/ProviderService.ts
  • apps/server/src/provider/containedClaudeSdkProcess.test.ts
  • apps/server/src/provider/providerMaintenance.test.ts
  • apps/server/src/provider/providerMaintenanceCommandCoordinator.test.ts
  • apps/server/src/provider/providerMaintenanceCrossProcessLock.test.ts
  • apps/server/src/provider/providerMaintenanceCrossProcessLock.ts
  • apps/server/src/provider/providerMaintenanceGate.ts
  • apps/server/src/provider/providerProcessOwnerTracker.test.ts
  • apps/server/src/provider/stopSessionsBestEffort.test.ts
  • apps/server/src/provider/stopSessionsBestEffort.ts
  • apps/server/src/provider/supervisedProcessTeardown.test.ts
  • apps/server/src/provider/supervisedProcessTeardown.ts
  • apps/server/src/provider/windowsJobProcessSupervisor.test.ts
  • apps/server/src/provider/windowsJobProcessSupervisor.ts
  • apps/server/src/terminal/Layers/Manager.test.ts
  • apps/server/src/terminal/processTreeKiller.test.ts
  • scripts/lib/super-synara-workflow-contract.test.ts
  • scripts/lib/super-synara-workflow-contract.ts
🚧 Files skipped from review as they are similar to previous changes (22)
  • apps/server/src/provider/Layers/ProviderAdapterRegistry.test.ts
  • apps/server/src/codexAppServerManager.test.ts
  • apps/server/scripts/cliPublishContract.ts
  • apps/server/scripts/cliPublishContract.test.ts
  • apps/server/src/provider/providerMaintenanceCommandCoordinator.test.ts
  • apps/server/src/provider/containedClaudeSdkProcess.test.ts
  • apps/server/src/provider/providerMaintenance.test.ts
  • apps/server/src/provider/providerProcessOwnerTracker.test.ts
  • apps/server/src/provider/Layers/PiAdapter.test.ts
  • apps/server/src/provider/Layers/ClaudeAdapter.test.ts
  • apps/server/src/provider/Layers/CommandCodeAdapter.ts
  • apps/server/src/provider/windowsJobProcessSupervisor.ts
  • apps/server/src/provider/windowsJobProcessSupervisor.test.ts
  • apps/server/src/terminal/Layers/Manager.test.ts
  • apps/server/src/provider/Layers/ClaudeAdapter.ts
  • apps/server/src/provider/providerMaintenanceGate.ts
  • apps/server/src/provider/Layers/AntigravityAdapter.ts
  • apps/server/src/provider/Layers/ProviderHealth.test.ts
  • apps/server/src/provider/supervisedProcessTeardown.ts
  • apps/server/src/terminal/processTreeKiller.test.ts
  • apps/server/src/provider/Layers/CursorAdapter.ts
  • apps/server/src/provider/Layers/ProviderService.ts

Comment thread apps/server/src/provider/providerMaintenanceCrossProcessLock.ts
@mergify

mergify Bot commented Jul 22, 2026

Copy link
Copy Markdown

Tick the box to add this pull request to the merge queue (same as @mergifyio queue).

  • Queue this pull request

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant