paperclip/server/src/__tests__
Devin Foley a7b45938b7
Let sandbox providers declare shell defaults (#5114)
## Thinking Path

> - Paperclip orchestrates AI agents for zero-human companies
> - Agents execute in sandboxed remote environments served by pluggable
sandbox
>   providers (E2B today, more later)
> - Today every sandbox command runs under `sh -lc` regardless of what
the
>   provider's container actually ships
> - That misses bash-only shell init on E2B (which ships bash) and
prevents
> future providers from declaring a different default — there's no way
for a
>   provider to say "I have bash, use it"
> - This PR adds a `shellCommand` field to sandbox execution targets so
providers
> can declare their preferred shell ("bash" for E2B), threads it through
the
> sandbox-managed-runtime client, callback bridge, and execution-target
shell
>   helper, and validates the value at the lease-metadata boundary
> - The benefit is that sandbox commands run under the right shell on
the right
> provider, and adding new sandbox providers only needs to declare a
shell
>   preference

## What Changed

- Added `packages/adapter-utils/src/sandbox-shell.ts` exporting
`preferredShellForSandbox(shellCommand)` (returns `"bash"` if input is
`"bash"`,
  else `"sh"`)
- Added `shellCommand?: "bash" | "sh" | null` to
`AdapterSandboxExecutionTarget`
  and `CommandManagedRuntimeSpec`; threaded it through
`runAdapterExecutionTargetShellCommand`,
`prepareAdapterExecutionTargetRuntime`,
  and `startAdapterExecutionTargetPaperclipBridge`
- `createCommandManagedRuntimeClient`, `prepareCommandManagedRuntime`,
and
`createCommandManagedSandboxCallbackBridgeQueueClient` now take an
optional
  `shellCommand` and use `preferredShellForSandbox` to pick the shell
- `startSandboxCallbackBridgeServer` accepts a `shellCommand` for its
server
  startup, readiness probe, and stop hook
- E2B sandbox plugin declares `shellCommand: "bash"` in `leaseMetadata`
- `resolveEnvironmentExecutionTarget` reads `shellCommand` from lease
metadata
  (validating against `"bash" | "sh" | null`)
- `environment-runtime.ts` adds `"shellCommand"` to
`INTERNAL_PLUGIN_SANDBOX_CONFIG_KEYS`
so the field round-trips through internal plugin config without leaking
to
  external plugin metadata
- Updated tests in `command-managed-runtime.test.ts`,
  `execution-target-sandbox.test.ts`, `sandbox-callback-bridge.test.ts`,
  `environment-execution-target.test.ts`

## Verification

- `pnpm --filter @paperclipai/adapter-utils test`
- `pnpm --filter @paperclipai/server test --
environment-execution-target`
- `pnpm --filter @paperclipai/sandbox-providers-e2b test`
- Manual QA: boot a Paperclip instance, create an E2B-backed
environment, run a
claude_local agent against it, and confirm the run completes (verifies
bash
  shell semantics flow through the callback bridge end-to-end)

## Risks

- E2B sandbox commands now run under `bash -lc` instead of `sh -lc`.
Bash is a
strict superset for the commands we issue (no busybox-only flags in our
shell
scripts), so risk is low. The shellCommand field is opt-in via lease
metadata —
  providers that don't declare it stay on `sh`.
- New optional field on `CommandManagedRuntimeSpec` and
`AdapterSandboxExecutionTarget`.
  Consumers ignoring the field retain previous behaviour (sh).
- Lease metadata now carries an additional field. Existing leases
without
`shellCommand` resolve to `null` and fall back to sh — backwards
compatible.

## Model Used

- OpenAI GPT-5.4 (reasoning effort: high) via Codex CLI
- Provider: OpenAI
- Used to author the code changes in this PR

## Checklist

- [x] I have included a thinking path that traces from project context
to this change
- [x] I have specified the model used (with version and capability
details)
- [x] I have checked ROADMAP.md and confirmed this PR does not duplicate
planned core work
- [x] I have run tests locally and they pass
- [x] I have added or updated tests where applicable
- [ ] If this change affects the UI, I have included before/after
screenshots — N/A (no UI changes)
- [ ] I have updated relevant documentation to reflect my changes — N/A
- [x] I have considered and documented any risks above
- [x] I will address all Greptile and reviewer comments before
requesting merge
2026-05-03 12:19:35 -07:00
..
helpers test(worktree): address embedded postgres helper review feedback 2026-03-26 11:56:05 -05:00
access-service.test.ts [codex] Add access cleanup and user profile page (#4088) 2026-04-20 06:10:20 -05:00
access-validators.test.ts feat: implement multi-user access and invite flows (#3784) 2026-04-17 09:44:19 -05:00
acpx-local-adapter-environment.test.ts Add ACPX local adapter runtime (#4893) 2026-04-30 19:57:05 -05:00
acpx-local-execute.test.ts Add ACPX local adapter runtime (#4893) 2026-04-30 19:57:05 -05:00
acpx-local-skill-sync.test.ts Add ACPX local adapter runtime (#4893) 2026-04-30 19:57:05 -05:00
activity-routes.test.ts [codex] Stabilize tests and local maintenance assets (#4423) 2026-04-24 15:11:42 -05:00
activity-service.test.ts [codex] Add runtime lifecycle recovery and live issue visibility (#4419) 2026-04-24 15:50:32 -05:00
adapter-model-refresh-routes.test.ts [codex] Improve transient recovery and Codex model refresh (#4383) 2026-04-24 09:40:40 -05:00
adapter-models.test.ts [codex] Improve transient recovery and Codex model refresh (#4383) 2026-04-24 09:40:40 -05:00
adapter-registry.test.ts Add cheap model profiles for local adapters (#4881) 2026-04-30 15:32:04 -05:00
adapter-routes-authz.test.ts [codex] Stabilize tests and local maintenance assets (#4423) 2026-04-24 15:11:42 -05:00
adapter-routes.test.ts Add ACPX local adapter runtime (#4893) 2026-04-30 19:57:05 -05:00
adapter-session-codecs.test.ts Add ACPX local adapter runtime (#4893) 2026-04-30 19:57:05 -05:00
agent-adapter-validation-routes.test.ts [codex] Stabilize tests and local maintenance assets (#4423) 2026-04-24 15:11:42 -05:00
agent-auth-jwt.test.ts fix(agent-auth): fall back to BETTER_AUTH_SECRET when PAPERCLIP_AGENT_JWT_SECRET is absent 2026-04-05 19:10:00 +00:00
agent-cross-tenant-authz-routes.test.ts [codex] Stabilize tests and local maintenance assets (#4423) 2026-04-24 15:11:42 -05:00
agent-instructions-routes.test.ts [codex] Stabilize tests and local maintenance assets (#4423) 2026-04-24 15:11:42 -05:00
agent-instructions-service.test.ts fix: address latest Greptile runtime review 2026-03-23 19:43:50 -05:00
agent-live-run-routes.test.ts [codex] Surface live run comment context (#4957) 2026-05-01 10:44:11 -05:00
agent-permissions-routes.test.ts [codex] Raise agent heartbeat concurrency default (#4954) 2026-05-01 10:42:56 -05:00
agent-shortname-collision.test.ts Auto-deduplicate agent shortname on join request approval 2026-03-06 13:54:58 -06:00
agent-skill-contract.test.ts Add unmanaged skill provenance to agent skills 2026-03-18 14:21:50 -05:00
agent-skills-routes.test.ts Add ACPX local adapter runtime (#4893) 2026-04-30 19:57:05 -05:00
app-hmr-port.test.ts Fix execution workspace runtime lifecycle 2026-03-14 09:35:35 -05:00
app-private-hostname-gate.test.ts [codex] harden authenticated routes and issue editor reliability (#3741) 2026-04-15 08:41:15 -05:00
app-vite-dev-routing.test.ts [codex] fix worktree dev dependency ergonomics (#3743) 2026-04-15 09:47:29 -05:00
approval-routes-idempotency.test.ts [codex] Stabilize tests and local maintenance assets (#4423) 2026-04-24 15:11:42 -05:00
approvals-service.test.ts Fix approvals service idempotency test 2026-03-10 15:05:19 -05:00
assets.test.ts [codex] Stabilize tests and local maintenance assets (#4423) 2026-04-24 15:11:42 -05:00
attachment-types.test.ts Allow arbitrary issue attachments 2026-04-06 21:24:12 -05:00
auth-routes.test.ts [codex] Stabilize tests and local maintenance assets (#4423) 2026-04-24 15:11:42 -05:00
auth-session-route.test.ts feat: implement multi-user access and invite flows (#3784) 2026-04-17 09:44:19 -05:00
authz-company-access.test.ts feat: implement multi-user access and invite flows (#3784) 2026-04-17 09:44:19 -05:00
better-auth.test.ts fix(auth): trust allowed hostname port variants on detected listen port (#4554) 2026-04-26 15:40:39 -07:00
board-mutation-guard.test.ts [codex] Harden execution reliability and heartbeat tooling (#3679) 2026-04-14 13:34:52 -05:00
budgets-service.test.ts Fix budget incident resolution edge cases 2026-03-16 16:48:13 -05:00
claude-local-adapter-environment.test.ts Add dedicated environment settings page and test-in-environment (#4798) 2026-04-29 15:56:13 -07:00
claude-local-adapter.test.ts [codex] Retry max-turn exhausted heartbeats (#5096) 2026-05-03 11:30:48 -05:00
claude-local-execute.test.ts [codex] Retry max-turn exhausted heartbeats (#5096) 2026-05-03 11:30:48 -05:00
claude-local-skill-sync.test.ts Add unmanaged skill provenance to agent skills 2026-03-18 14:21:50 -05:00
cleanup-removal-service.test.ts [codex] Improve transient recovery and Codex model refresh (#4383) 2026-04-24 09:40:40 -05:00
cli-auth-routes.test.ts [codex] Stabilize tests and local maintenance assets (#4423) 2026-04-24 15:11:42 -05:00
codex-local-adapter-environment.test.ts test(codex): move OPENAI_API_KEY stub to beforeEach for all tests 2026-03-24 12:33:11 -07:00
codex-local-adapter.test.ts Add username log censor setting 2026-03-20 08:50:00 -05:00
codex-local-execute.test.ts Add sandbox callback bridge for remote environment API access (#4801) 2026-04-29 16:37:34 -07:00
codex-local-skill-injection.test.ts [codex] Harden create-agent skill governance (#4422) 2026-04-24 14:15:28 -05:00
codex-local-skill-sync.test.ts [codex] Harden create-agent skill governance (#4422) 2026-04-24 14:15:28 -05:00
companies-route-path-guard.test.ts Add feedback voting and thumbs capture flow 2026-04-02 09:11:49 -05:00
company-branding-route.test.ts [codex] Stabilize tests and local maintenance assets (#4423) 2026-04-24 15:11:42 -05:00
company-portability-routes.test.ts [codex] Stabilize tests and local maintenance assets (#4423) 2026-04-24 15:11:42 -05:00
company-portability.test.ts [codex] Raise agent heartbeat concurrency default (#4954) 2026-05-01 10:42:56 -05:00
company-skills-detail.test.ts [codex] Speed up company skill detail loading (#4380) 2026-04-24 07:37:13 -05:00
company-skills-routes.test.ts [codex] Stabilize tests and local maintenance assets (#4423) 2026-04-24 15:11:42 -05:00
company-skills-service.test.ts [codex] Reject stale company skill refreshes (#4601) 2026-04-27 13:19:38 -05:00
company-skills.test.ts Fix imported GitHub skill file paths 2026-03-23 16:57:38 -05:00
company-user-directory-route.test.ts feat: implement multi-user access and invite flows (#3784) 2026-04-17 09:44:19 -05:00
costs-service.test.ts Add workflow interaction cancellation and issue cost summaries (#4862) 2026-04-30 13:57:25 -05:00
cursor-local-adapter-environment.test.ts Add cursor sandbox support and fix SSH workspace sync (#4803) 2026-04-29 16:12:06 -07:00
cursor-local-adapter.test.ts Humanize run transcripts across run detail and live surfaces 2026-03-11 10:35:41 -05:00
cursor-local-execute.test.ts Add cursor sandbox support and fix SSH workspace sync (#4803) 2026-04-29 16:12:06 -07:00
cursor-local-skill-injection.test.ts feat(cursor): export skill injection helper and document auto-behaviors 2026-03-05 08:35:59 -06:00
cursor-local-skill-sync.test.ts Namespace company skill identities 2026-03-16 18:27:20 -05:00
dashboard-service.test.ts [codex] Harden heartbeat scheduling and runtime controls (#4223) 2026-04-21 12:24:11 -05:00
dev-runner-output.test.ts Guard dev health JSON parsing 2026-04-06 21:23:33 -05:00
dev-runner-paths.test.ts [codex] Add backup endpoint and dev runtime hardening (#4087) 2026-04-20 06:08:55 -05:00
dev-runner-worktree.test.ts fix(dev-runner): tighten worktree env bootstrap 2026-04-11 08:35:53 -05:00
dev-server-status.test.ts Guard dev health JSON parsing 2026-04-06 21:23:33 -05:00
dev-watch-ignore.test.ts Harden dev-watch excludes for nested UI outputs 2026-03-26 12:35:19 -05:00
documents-service.test.ts [codex] Add run liveness continuations (#4083) 2026-04-20 06:01:49 -05:00
documents.test.ts feat(issues): add issue documents and inline editing 2026-03-13 21:30:48 -05:00
environment-config.test.ts Generalize sandbox provider core for plugin-only providers (#4449) 2026-04-24 18:03:41 -07:00
environment-execution-target.test.ts Let sandbox providers declare shell defaults (#5114) 2026-05-03 12:19:35 -07:00
environment-live-ssh.test.ts Add SSH environment support (#4358) 2026-04-23 19:15:22 -07:00
environment-probe.test.ts Generalize sandbox provider core for plugin-only providers (#4449) 2026-04-24 18:03:41 -07:00
environment-routes.test.ts Generalize sandbox provider core for plugin-only providers (#4449) 2026-04-24 18:03:41 -07:00
environment-run-orchestrator.test.ts Add sandbox callback bridge for remote environment API access (#4801) 2026-04-29 16:37:34 -07:00
environment-runtime-driver-contract.test.ts Add sandbox environment support (#4415) 2026-04-24 12:15:53 -07:00
environment-runtime.test.ts Improve E2B plugin configuration UX and fix execution timeouts (#4802) 2026-04-29 17:12:30 -07:00
environment-selection-route-guards.test.ts [codex] Split backend control-plane QoL slice (#4700) 2026-04-28 16:46:45 -05:00
environment-service.test.ts Add SSH environment support (#4358) 2026-04-23 19:15:22 -07:00
environment-test-harness.test.ts Add sandbox environment support (#4415) 2026-04-24 12:15:53 -07:00
error-handler.test.ts fix(server): attach raw Error to res.err and avoid pino err key collision 2026-03-07 15:19:03 -06:00
execution-workspace-policy.test.ts Add SSH environment support (#4358) 2026-04-23 19:15:22 -07:00
execution-workspaces-routes.test.ts [codex] Stabilize tests and local maintenance assets (#4423) 2026-04-24 15:11:42 -05:00
execution-workspaces-service.test.ts Add SSH environment support (#4358) 2026-04-23 19:15:22 -07:00
express5-auth-wildcard.test.ts [codex] Stabilize tests and local maintenance assets (#4423) 2026-04-24 15:11:42 -05:00
feedback-service.test.ts [codex] Add runtime lifecycle recovery and live issue visibility (#4419) 2026-04-24 15:50:32 -05:00
feedback-share-client.test.ts Restore feedback trace export fixes 2026-04-03 15:59:42 -05:00
forbidden-tokens.test.ts Redact current user in comments and token checks 2026-03-11 22:17:21 -05:00
gemini-local-adapter-environment.test.ts Fix Gemini local execution and diagnostics 2026-03-14 21:36:05 -05:00
gemini-local-adapter.test.ts [codex] Retry max-turn exhausted heartbeats (#5096) 2026-05-03 11:30:48 -05:00
gemini-local-execute.test.ts [codex] Retry max-turn exhausted heartbeats (#5096) 2026-05-03 11:30:48 -05:00
gemini-local-skill-sync.test.ts Namespace company skill identities 2026-03-16 18:27:20 -05:00
health-dev-server-token.test.ts [codex] Add backup endpoint and dev runtime hardening (#4087) 2026-04-20 06:08:55 -05:00
health.test.ts feat: implement multi-user access and invite flows (#3784) 2026-04-17 09:44:19 -05:00
heartbeat-active-run-output-watchdog.test.ts [codex] Add runtime lifecycle recovery and live issue visibility (#4419) 2026-04-24 15:50:32 -05:00
heartbeat-comment-wake-batching.test.ts [codex] Add runtime lifecycle recovery and live issue visibility (#4419) 2026-04-24 15:50:32 -05:00
heartbeat-context-summary.test.ts [codex] harden heartbeat run summaries and recovery context (#3742) 2026-04-15 09:48:39 -05:00
heartbeat-dependency-scheduling.test.ts [codex] Split backend control-plane QoL slice (#4700) 2026-04-28 16:46:45 -05:00
heartbeat-issue-liveness-escalation.test.ts [codex] Harden issue recovery reliability (#4875) 2026-04-30 16:44:28 -05:00
heartbeat-list.test.ts [codex] Improve agent runtime recovery and governance (#4086) 2026-04-20 06:19:48 -05:00
heartbeat-local-environment.test.ts Add local environment lifecycle (#4297) 2026-04-22 20:07:41 -07:00
heartbeat-model-profile.test.ts Add cheap model profiles for local adapters (#4881) 2026-04-30 15:32:04 -05:00
heartbeat-plugin-environment.test.ts Add sandbox environment support (#4415) 2026-04-24 12:15:53 -07:00
heartbeat-process-recovery.test.ts [codex] Recover productive terminal continuations (#4956) 2026-05-01 11:57:23 -05:00
heartbeat-project-env.test.ts [codex] Harden execution reliability and heartbeat tooling (#3679) 2026-04-14 13:34:52 -05:00
heartbeat-retry-scheduling.test.ts [codex] Retry max-turn exhausted heartbeats (#5096) 2026-05-03 11:30:48 -05:00
heartbeat-run-log.test.ts [codex] Harden execution reliability and heartbeat tooling (#3679) 2026-04-14 13:34:52 -05:00
heartbeat-run-summary.test.ts [codex] Add run liveness continuations (#4083) 2026-04-20 06:01:49 -05:00
heartbeat-runtime-state.test.ts Fix runtime state race, workspace sync, plugin startup, and orphaned leases (#4804) 2026-04-29 16:37:10 -07:00
heartbeat-stale-queue-invalidation.test.ts [codex] Retry max-turn exhausted heartbeats (#5096) 2026-05-03 11:30:48 -05:00
heartbeat-start-lock.test.ts [codex] Add runtime lifecycle recovery and live issue visibility (#4419) 2026-04-24 15:50:32 -05:00
heartbeat-workspace-session.test.ts Add sandbox environment support (#4415) 2026-04-24 12:15:53 -07:00
hire-hook.test.ts fix(adapters): honor paused overrides and isolate UI parser state 2026-04-04 14:04:33 -05:00
http-log-policy.test.ts [codex] Add backup endpoint and dev runtime hardening (#4087) 2026-04-20 06:08:55 -05:00
inbox-dismissals.test.ts Persist non-issue inbox dismissals 2026-04-09 06:16:05 -05:00
instance-database-backups-routes.test.ts [codex] Add backup endpoint and dev runtime hardening (#4087) 2026-04-20 06:08:55 -05:00
instance-settings-routes.test.ts [codex] Add configurable liveness auto-recovery controls (#4587) 2026-04-27 08:46:44 -05:00
invite-accept-existing-member.test.ts feat: implement multi-user access and invite flows (#3784) 2026-04-17 09:44:19 -05:00
invite-accept-gateway-defaults.test.ts Remove legacy OpenClaw adapter and keep gateway-only flow 2026-03-07 18:50:25 -06:00
invite-accept-replay.test.ts Remove legacy OpenClaw adapter and keep gateway-only flow 2026-03-07 18:50:25 -06:00
invite-create-route.test.ts [codex] Stabilize tests and local maintenance assets (#4423) 2026-04-24 15:11:42 -05:00
invite-expiry.test.ts feat: implement multi-user access and invite flows (#3784) 2026-04-17 09:44:19 -05:00
invite-join-grants.test.ts feat: implement multi-user access and invite flows (#3784) 2026-04-17 09:44:19 -05:00
invite-join-manager.test.ts Assign invite-joined agents to company CEO 2026-03-06 11:22:24 -06:00
invite-list-route.test.ts feat: implement multi-user access and invite flows (#3784) 2026-04-17 09:44:19 -05:00
invite-logo-route.test.ts feat: implement multi-user access and invite flows (#3784) 2026-04-17 09:44:19 -05:00
invite-onboarding-text.test.ts Fix SSH callback URL selection for LAN and private networks (#4799) 2026-04-29 15:56:17 -07:00
invite-summary-route.test.ts [codex] Stabilize tests and local maintenance assets (#4423) 2026-04-24 15:11:42 -05:00
invite-test-resolution-route.test.ts [codex] Add runtime lifecycle recovery and live issue visibility (#4419) 2026-04-24 15:50:32 -05:00
issue-activity-events-routes.test.ts [codex] Split backend control-plane QoL slice (#4700) 2026-04-28 16:46:45 -05:00
issue-agent-mutation-ownership-routes.test.ts [codex] Split backend control-plane QoL slice (#4700) 2026-04-28 16:46:45 -05:00
issue-attachment-routes.test.ts [codex] Split backend control-plane QoL slice (#4700) 2026-04-28 16:46:45 -05:00
issue-blocker-attention.test.ts [codex] Harden issue recovery reliability (#4875) 2026-04-30 16:44:28 -05:00
issue-closed-workspace-routes.test.ts [codex] Split backend control-plane QoL slice (#4700) 2026-04-28 16:46:45 -05:00
issue-comment-cancel-routes.test.ts [codex] Split backend control-plane QoL slice (#4700) 2026-04-28 16:46:45 -05:00
issue-comment-reopen-routes.test.ts [codex] Split backend control-plane QoL slice (#4700) 2026-04-28 16:46:45 -05:00
issue-continuation-summary.test.ts [codex] Add run liveness continuations (#4083) 2026-04-20 06:01:49 -05:00
issue-dependency-wakeups-routes.test.ts [codex] Split backend control-plane QoL slice (#4700) 2026-04-28 16:46:45 -05:00
issue-document-restore-routes.test.ts [codex] Split backend control-plane QoL slice (#4700) 2026-04-28 16:46:45 -05:00
issue-execution-policy-routes.test.ts [codex] Add issue monitor liveness controls (#4988) 2026-05-03 08:58:53 -05:00
issue-execution-policy.test.ts [codex] Add issue monitor liveness controls (#4988) 2026-05-03 08:58:53 -05:00
issue-feedback-routes.test.ts [codex] Split backend control-plane QoL slice (#4700) 2026-04-28 16:46:45 -05:00
issue-goal-fallback.test.ts Seed onboarding project and issue goal context 2026-03-24 11:48:59 -05:00
issue-liveness.test.ts Cancel stale queued heartbeats when issue graph changes (PAP-2314) (#4534) 2026-04-26 21:17:38 -05:00
issue-monitor-scheduler.test.ts [codex] Add issue monitor liveness controls (#4988) 2026-05-03 08:58:53 -05:00
issue-references-service.test.ts Add first-class issue references (#4214) 2026-04-21 10:02:52 -05:00
issue-stale-execution-lock-routes.test.ts [codex] Fix stale issue execution run locks (#4258) 2026-04-22 10:43:38 -05:00
issue-telemetry-routes.test.ts [codex] Split backend control-plane QoL slice (#4700) 2026-04-28 16:46:45 -05:00
issue-thread-interaction-routes.test.ts Add workflow interaction cancellation and issue cost summaries (#4862) 2026-04-30 13:57:25 -05:00
issue-thread-interactions-service.test.ts Add workflow interaction cancellation and issue cost summaries (#4862) 2026-04-30 13:57:25 -05:00
issue-tree-control-routes.test.ts [codex] Split backend control-plane QoL slice (#4700) 2026-04-28 16:46:45 -05:00
issue-tree-control-service-unit.test.ts [codex] Add issue subtree pause, cancel, and restore controls (#4332) 2026-04-23 14:51:46 -05:00
issue-tree-control-service.test.ts [codex] Split backend control-plane QoL slice (#4700) 2026-04-28 16:46:45 -05:00
issue-update-comment-wakeup-routes.test.ts [codex] Split backend control-plane QoL slice (#4700) 2026-04-28 16:46:45 -05:00
issue-workspace-command-authz.test.ts [codex] Split backend control-plane QoL slice (#4700) 2026-04-28 16:46:45 -05:00
issues-checkout-wakeup.test.ts Cut over OpenClaw adapter to strict SSE streaming 2026-03-05 15:54:55 -06:00
issues-goal-context-routes.test.ts [codex] Split backend control-plane QoL slice (#4700) 2026-04-28 16:46:45 -05:00
issues-service.test.ts Fix runtime state race, workspace sync, plugin startup, and orphaned leases (#4804) 2026-04-29 16:37:10 -07:00
issues-user-context.test.ts Normalize derived issue timestamps to avoid 500s 2026-03-06 09:03:27 -06:00
join-request-dedupe.test.ts feat: implement multi-user access and invite flows (#3784) 2026-04-17 09:44:19 -05:00
json-schema-secret-refs.test.ts Generalize sandbox provider core for plugin-only providers (#4449) 2026-04-24 18:03:41 -07:00
llms-routes.test.ts [codex] Stabilize tests and local maintenance assets (#4423) 2026-04-24 15:11:42 -05:00
log-redaction.test.ts Add username log censor setting 2026-03-20 08:50:00 -05:00
logger-tz.test.ts [codex] Harden execution reliability and heartbeat tooling (#3679) 2026-04-14 13:34:52 -05:00
monthly-spend-service.test.ts Fix budget auth and monthly spend rollups 2026-03-16 15:41:48 -05:00
normalize-agent-mention-token.test.ts test(issues): shorten mid-token entity test comment 2026-03-24 15:39:59 +02:00
openclaw-gateway-adapter.test.ts Clarify issue-scoped comment wake prompts 2026-04-04 18:14:19 -05:00
openclaw-invite-prompt-route.test.ts [codex] Stabilize tests and local maintenance assets (#4423) 2026-04-24 15:11:42 -05:00
opencode-local-adapter-environment.test.ts Address PR feedback: keep testEnvironment non-destructive, warn on swallowed errors 2026-03-07 15:50:14 -05:00
opencode-local-adapter.test.ts Humanize run transcripts across run detail and live surfaces 2026-03-11 10:35:41 -05:00
opencode-local-skill-sync.test.ts Namespace company skill identities 2026-03-16 18:27:20 -05:00
paperclip-env.test.ts Fix SSH callback URL selection for LAN and private networks (#4799) 2026-04-29 15:56:17 -07:00
paperclip-skill-utils.test.ts feat: add paperclip-dev skill with optional bundled skill support (#3854) 2026-04-26 11:06:13 -07:00
pi-local-adapter-environment.test.ts Improve Pi adapter diagnostics 2026-03-14 21:11:06 -05:00
pi-local-execute.test.ts fix(pi-local): prepend installed skill bin/ dirs to child PATH (#4331) 2026-04-23 10:15:10 -05:00
pi-local-skill-sync.test.ts Namespace company skill identities 2026-03-16 18:27:20 -05:00
plugin-database.test.ts [codex] Add plugin orchestration host APIs (#4114) 2026-04-20 08:52:51 -05:00
plugin-dev-watcher.test.ts Tighten plugin dev file watching 2026-03-14 12:07:04 -05:00
plugin-environment-driver-seam.test.ts Add sandbox environment support (#4415) 2026-04-24 12:15:53 -07:00
plugin-orchestration-apis.test.ts [codex] Add plugin orchestration host APIs (#4114) 2026-04-20 08:52:51 -05:00
plugin-routes-authz.test.ts [codex] Stabilize tests and local maintenance assets (#4423) 2026-04-24 15:11:42 -05:00
plugin-scoped-api-routes.test.ts [codex] Stabilize tests and local maintenance assets (#4423) 2026-04-24 15:11:42 -05:00
plugin-sdk-orchestration-contract.test.ts [codex] Add plugin orchestration host APIs (#4114) 2026-04-20 08:52:51 -05:00
plugin-telemetry-bridge.test.ts Add plugin telemetry bridge capability 2026-04-02 10:47:29 -05:00
plugin-worker-manager.test.ts Add plugin framework and settings UI 2026-03-13 16:22:34 -05:00
private-hostname-guard.test.ts [codex] Harden execution reliability and heartbeat tooling (#3679) 2026-04-14 13:34:52 -05:00
productivity-review-service.test.ts [codex] Bound productivity review recovery loops (#4948) 2026-05-01 08:32:04 -05:00
project-goal-telemetry-routes.test.ts [codex] Stabilize tests and local maintenance assets (#4423) 2026-04-24 15:11:42 -05:00
project-routes-env.test.ts [codex] Stabilize tests and local maintenance assets (#4423) 2026-04-24 15:11:42 -05:00
project-shortname-resolution.test.ts feat: deduplicate project shortnames on create and update 2026-03-07 08:59:34 -06:00
quota-windows-service.test.ts feat(costs): add billing, quota, and budget control plane 2026-03-16 15:11:01 -05:00
quota-windows.test.ts fix: Anthropic subscription quota always shows 100% used (#3589) 2026-04-15 06:44:26 -05:00
README.md [codex] Add runtime lifecycle recovery and live issue visibility (#4419) 2026-04-24 15:50:32 -05:00
recovery-classifiers.test.ts [codex] Add issue monitor liveness controls (#4988) 2026-05-03 08:58:53 -05:00
redaction.test.ts Add ACPX local adapter runtime (#4893) 2026-04-30 19:57:05 -05:00
routine-run-telemetry.test.ts Address Greptile telemetry review comments 2026-04-03 14:11:11 -05:00
routines-e2e.test.ts [codex] Stabilize tests and local maintenance assets (#4423) 2026-04-24 15:11:42 -05:00
routines-routes.test.ts [codex] Add workspace routine run tab (#4958) 2026-05-01 11:58:15 -05:00
routines-service.test.ts [codex] Add workspace routine run tab (#4958) 2026-05-01 11:58:15 -05:00
run-continuations.test.ts [codex] Recover productive terminal continuations (#4956) 2026-05-01 11:57:23 -05:00
run-liveness.test.ts [codex] Add runtime lifecycle recovery and live issue visibility (#4419) 2026-04-24 15:50:32 -05:00
runtime-api.test.ts Fix SSH callback URL selection for LAN and private networks (#4799) 2026-04-29 15:56:17 -07:00
sandbox-provider-runtime.test.ts Generalize sandbox provider core for plugin-only providers (#4449) 2026-04-24 18:03:41 -07:00
server-startup-feedback-export.test.ts Fix SSH callback URL selection for LAN and private networks (#4799) 2026-04-29 15:56:17 -07:00
setup-supertest.ts [codex] Stabilize tests and local maintenance assets (#4423) 2026-04-24 15:11:42 -05:00
shared-telemetry-events.test.ts feat: implement multi-user access and invite flows (#3784) 2026-04-17 09:44:19 -05:00
sidebar-preferences-routes.test.ts [codex] Stabilize tests and local maintenance assets (#4423) 2026-04-24 15:11:42 -05:00
storage-local-provider.test.ts fix: storage S3 stream conversion, API client FormData support, and attachment API 2026-02-20 10:33:10 -06:00
telemetry-client-flush.test.ts fix: harden heartbeat and adapter runtime workflows 2026-04-10 22:26:21 -05:00
ui-branding.test.ts Add worktree UI branding 2026-03-13 11:12:43 -05:00
user-profile-routes.test.ts [codex] Add structured issue-thread interactions (#4244) 2026-04-21 20:15:11 -05:00
vite-html-renderer.test.ts [codex] Add backup endpoint and dev runtime hardening (#4087) 2026-04-20 06:08:55 -05:00
work-products.test.ts Address remaining Greptile workspace review 2026-03-17 10:12:44 -05:00
workspace-runtime-routes-authz.test.ts [codex] Split backend control-plane QoL slice (#4700) 2026-04-28 16:46:45 -05:00
workspace-runtime-service-authz.test.ts [codex] harden authenticated routes and issue editor reliability (#3741) 2026-04-15 08:41:15 -05:00
workspace-runtime.test.ts [codex] Stabilize tests and local maintenance assets (#4423) 2026-04-24 15:11:42 -05:00
worktree-config.test.ts Tighten publicBaseUrl port rewriting (#4553) 2026-04-26 14:29:22 -07:00

Server Tests

Server tests that need a real PostgreSQL process must use ./helpers/embedded-postgres.ts instead of constructing embedded-postgres directly.

The shared helper creates a throwaway data directory and a reserved-safe loopback port for each test database. This protects the live Paperclip control-plane Postgres from server vitest runs; see PAP-2033 for the incident that introduced this guard.