Repository navigation
Add ACP stdio support to DSCODE - #7
Merged
Merged
Conversation
Expose source and npm installations to ACP clients through the native DSH bridge, preserving DSCODE tools, custom providers, client approvals, and launcher lifecycle handling while reserving stdout for protocol frames. Preserve native tool-result identity in custom-provider requests, as required by the real ACP tool-call integration probe. Add unit and runtime coverage, package and Hub verification, and synchronized user documentation. Validation: npm run check, the documentation checker, and source and locally installed ACP protocol probes passed. Editor-specific compatibility and the full Docker/Hub lifecycle were not tested locally.
Resolve documentation conflicts while retaining the current Desktop guides and release history. Keep ACP under Unreleased and reuse the native tool-result serialization now provided upstream instead of retaining duplicate code. Documentation and lint checks passed. Node 22 targeted regressions and Linux unit and runtime integration checks passed; full platform checks are continuing.
GitHub runners failed before tests on Docker Hub token timeouts and anonymous pull rate limits. Pull the same official Node 22 Bookworm image from ECR Public instead. Verified that both sources resolve to the same image index digest and that the end-to-end Docker image builds successfully with the mirror.
4 tasks done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed
Add
dscode acpto source and npm installations, using DSH's native ACP stdio bridge with the DSCODE agent preset, saved or explicit model selection, custom providers, and client-mediated tool approvals. Include packaging and protocol verification, a user guide, and matching English and Chinese README entries.Why
ACP clients need a non-terminal entry point to use DSCODE's tools and provider configuration. This transport disables terminal-only services, reserves stdout for protocol frames, and preserves installation locks and process cleanup.
The branch incorporates current
main(0.7.35), including its Desktop changes and account-test fix. Custom-provider regressions verify the native tool-result handling already supplied by upstream across Chat Completions, Responses, and Anthropic formats.Linux CI now pulls the same official Node 22 Bookworm image through the ECR Public mirror: Docker Hub returned both 504 token timeouts and 429 pull-limit errors before tests could start. The image index digest was verified to match, and the mirror build passed locally and in GitHub Actions.
Checks run
npm run lintnpm run checkon Node 22.19.0 and Node 24.19.0 — 1,087 unit tests, 80.16% complete source line coverage, integration and package checks, and 63 offline evaluation tests passed.node scripts/check-docs.mjs— clean.npm run test:e2e— all seven steps passed locally on Linux arm64, including installed ACP, Hub installation, agent execution, failed upgrade, and rollback.npm run test:browserandnpm run eval:browser -- --self-test— passed with real isolated Chrome and local fixtures.The ACP probe covers initialization, custom API response, DSCODE tool calls, allow/reject permissions, cancellation, session list/resume/close, and EOF shutdown. Unit tests also cover argument parsing, preset composition, model selection, launcher routing, signals, and cleanup. GitHub Actions separately checks macOS Node 22/24 and Linux amd64.
Notes
This reuses the pinned native bridge and its advertised capabilities. It retains the
deepseek-harness-acpidentity and does not add session loading with transcript replay, modes, slash commands, client filesystem/terminal delegation, or interactive question forms. Specific editor compatibility and paid model endpoints have not been tested.Hub verification and publication receipts now require the installed ACP protocol probe. This PR does not bump the version or publish packages.