feat(adapters): add DeepSeek Harness (dsh) plugin source adapter - #2266
Merged
Conversation
Add a runtime-free sibling adapter that statically projects DeepSeek Harness (dsh) plugin packages — package.json `dsh.bundle.patch` / `dsh.profile.bundles` and the referenced `cordis.patch.yml` entries — as projection-only PluginSourceRefs. It does not execute Cordis plugins. - Add PluginSourceKind::DeepSeekHarnessCompatible - Route managed packages by adapter "dsh_compatible" in bitfun-core plugin_runtime composition; allow projection-only activation - Register the crate in core-boundary layout, manifest, and feature rules
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.
Summary
Adds a runtime-free sibling adapter that statically projects DeepSeek Harness (
dsh) managed packages into BitFun's plugin-source model, following the existing OpenCode static-preview boundary.dsh packages may declare a bundle (
dsh.bundle.patch→ a Cordis patch list), a profile (dsh.profile.bundles→ an ordered bundle-layer list), or both roles.What this does
bitfun-dsh-adapterandPluginSourceKind::DeepSeekHarnessCompatible.adapter: "dsh_compatible"packages through Product Assembly while preserving the existing OpenCode activation policy.group: true/configentries;dsh.bundle.patchas the DSH manifest contract does, normalizes./..package-relative segments, and blocks package escapes.!!jstagged scalars.All projections remain
ProjectionOnly. This adapter does not execute Cordis plugins, install npm packages, or invoke a localdshCLI. Cordis rows can mount services that later register model-facing tools inside dsh, but static row metadata is not an executable BitFun provider candidate, so this adapter exposes no BitFun dispatch targets.Verification
cargo test --locked -p bitfun-dsh-adapter --test dsh_source_adapter— 15 passedcargo test --locked -p bitfun-core --no-default-features --features plugin-runtime --lib plugin_runtime::tests— 9 passedcargo test --locked -p bitfun-runtime-ports --no-default-features --features plugin-runtime --test plugin_runtime_contracts— 15 passedcargo clippy --locked -p bitfun-dsh-adapter --all-targets --no-deps -- -D warningspnpm run check:core-boundaries:test— 118 passedpnpm run check:core-boundariespnpm run check:repo-hygienepnpm install --frozen-lockfilepnpm run desktop:dev— Vite returned HTTP 200 andtarget/debug/bitfun-desktopstarteddsh web --port 3081from the current dsh repository — returned HTTP 200Remote scenarios
Exercised locally for managed-package discovery, static projection, activation gating, and product assembly. Remote workspace, Remote Control, Peer Device Mode, and Detached Dispatch were not exercised; this change adds no remote I/O, host execution, dialog, or transport path, so the local checks are not evidence for those scenarios.