#16600

Support relocatable native ACP harness manifests

Openjoeywangzrwants to merge intofrom

Description

Let native ACP sidecars launch bundled runtimes directly instead of requiring a Windows wrapper executable.

Keep explicit overrides and mounted manifests first. Before using built-in defaults, discover warp-harness.<harness>.json in absolute PATH directories. Existing bare program names still resolve under usr/local/bin.

Programs and arguments with the explicit ${SIDECAR_ROOT}/ prefix resolve relative to the manifest directory. Other arguments remain literal. Prefixed paths must name files inside the sidecar; traversal and symlink escapes are rejected. The project working directory does not change.

This client support must ship before the manifest-based Windows sidecar in https://github.com/warpdotdev/warp-agent-docker/pull/285. That change and its dependent Codex layers remain in the sidecar repository.

Review focus: discovery precedence and the explicit path-prefix contract. No environment-variable expansion or shell interpolation is added.

Linked Issue

Follow-up to Kevin's launcher review on the sidecar PR linked above.

  • The linked issue is labeled ready-to-spec or ready-to-implement. No standalone issue is linked.
  • Where appropriate, screenshots or a short video of the implementation are included below. Not applicable to this non-UI change.

Testing

  • cargo nextest run -p warp --lib -E 'test(harness::acp::manifest::tests) | test(harness::acp::bridge::tests)' --no-fail-fast: all 20 selected tests passed.
  • Added a Unix process integration test covering relocated manifest discovery, executable and adapter paths with spaces, literal arguments, project cwd, an initialize exchange, and EOF shutdown through the real ACP bridge. Its isolated local run passed in 0.480 seconds.
  • cargo clippy -p warp --lib --tests -- -D warnings: passed.
  • Formatted edited Rust files using the repository's formatter settings; whitespace checks passed.

Native Windows process startup/shutdown and a real bundled Node/Claude adapter remain unverified. The integration fixture uses a local shell-backed runtime, not the production adapter.

  • I have manually tested my changes locally with ./script/run. Not run; validation used the targeted process and manifest tests above.

Agent Mode

  • Warp Agent Mode - This PR was created via Warp's AI Agent Mode

CHANGELOG-NONE

Conversation: https://staging.warp.dev/conversation/e4833956-23f7-4fb6-befb-215fa0f12193 Plan: https://staging.warp.dev/drive/notebook/STsPbOGDlR63LK2dZM1tzR

Co-Authored-By: Warp agent@warp.dev

Activity

7
warp-agent-staging[bot]9d ago

@joeywangzr The failed Warp CI run is on this PR's current head. May this factory diagnose the failure, commit fixes, and push to this same branch?

An explicit yes also opts this PR into automatic handling of future CI failures. I won't open a replacement PR or merge. Please reply here with your decision and mention @warp-staging-factory; I won't change code without your consent.

View in factory

warp-for-oss[bot]9d ago

@joeywangzr

I'm starting a first review of this pull request.

You can view the conversation on Warp.

I completed the review and no human review was requested for this pull request.

Comment /warp-agent-review on this pull request to retrigger a review (up to 3 times on the same pull request).

Powered by Oz

warp-for-oss[bot]reviewed9d ago
warp-for-oss[bot]9d ago

Overview

This PR adds relocatable native ACP harness manifest support by discovering harness-specific manifests from absolute PATH entries after explicit overrides and mounted sidecars, resolving explicit ${SIDECAR_ROOT}/ paths relative to the selected manifest directory, and preserving the existing bare-program fallback under usr/local/bin. The implementation rejects traversal, absolute-path, missing-file, and symlink-escape cases, and the added unit and Unix bridge coverage exercise discovery precedence, relocation, literal arguments, path validation, working directory behavior, and EOF shutdown.

Concerns

  • No blocking concerns found. No approved or repository spec context was available for a spec-drift comparison beyond the attached "No approved or repository spec context" note.

Verdict

Found: 0 critical, 0 important, 0 suggestions

Approve

Comment /warp-agent-review on this pull request to retrigger a review (up to 3 times on the same pull request).

Powered by Oz