Skip to content

feat: dsh-side install channel — zero bili commands for dsh users (#949) - #950

Merged
ranxianglei merged 2 commits into
masterfrom
2026-09-18_dsh-bundle-install
Sep 18, 2026
Merged

ranxianglei merged 2 commits into
masterfrom
2026-09-18_dsh-bundle-install

Conversation

@ranxianglei

Copy link
Copy Markdown
Owner

Fixes #949

What

dsh plugin --profile <name> add billion-context installs the npm package into the profile via pnpm; dsh reads the package's dsh.bundle.patch manifest declaration and mounts it as a bundle layer automatically — same plugin, same behavior as bili plugin install dsh, but the user never runs a bili command.

  • exports["./dsh"] -> ./dist/agent/dsh-native.js (new public subpath, like ./server)
  • manifest "dsh": {"bundle": {"patch": "./dsh.bundle.patch.yml"}} + the yml in files (insert bili-native + compaction-basic auto:false)
  • Mutual exclusion (hard requirement): cordis rejects duplicate loader entry ids across layers, so a bundle-installed profile must not also receive the managed block / --patch overlay. dshBundleInstalled() detects profiles whose manifest lists billion-context in dsh.profile.bundles; install/remove skip them with pointers to the dsh-side commands, plugin status reports them, and dshNativeInstalled() (the bili dsh launcher overlay gate) recognizes them
  • README / README.zh-CN: new lane documented (tables + dsh sections)

Verified end-to-end (dsh 0.1.5-rc.2, local tarball via dsh plugin add)

  1. pnpm installs into the profile; dsh reconciles dsh.profile.bundles += billion-context
  2. --dump-config shows the billion-context layer: bili-native insert + compaction patched auto:false
  3. live boot: plugin tree loads, bili-native self-spawns the proxy (bili.log acp-proxy listening), parent-pid watchdog flushes on teardown
  4. bili plugin install dsh + plugin status correctly skip/report the bundle profile

Known interaction (documented, not ours to fix)

dsh resolves bundle dirs from the dsh-install anchor first; on machines with a global billion-context <=0.1.119 (no declaration yet) that copy shadows the profile one and dsh treats it as a plain dependency. Self-heals once the global install is >= this release; pure dsh users (no global bili — the target audience) resolve the profile copy directly.

Preflight

  • npm run typecheck OK
  • npm test 1881 pass / 0 fail / 2 skip (dsh suite 10->14: bundle detection + skip/report roundtrip)
  • npm run build OK; npm pack --dry-run shows dsh.bundle.patch.yml in the tarball

Note: needs release >=0.1.120 to be usable from the npm registry.

…lion-context' (#949)

- exports["./dsh"] -> dist/agent/dsh-native.js; manifest dsh.bundle.patch
  declaration; dsh.bundle.patch.yml bundled (insert bili-native +
  compaction-basic auto:false)
- dshBundleInstalled(): profile manifests listing billion-context in
  dsh.profile.bundles are skipped by install/remove (cordis rejects
  duplicate entry ids across layers) with pointers to the dsh-side
  commands; status reports bundle installs; dshNativeInstalled() (the
  'bili dsh' launcher overlay gate) recognizes them
- README/README.zh-CN: dsh-side install lane
- verified end-to-end against dsh 0.1.5-rc.2: pnpm install, bundle
  reconcile, --dump-config layer stack, live boot self-spawning the proxy
  (bili.log) + parent-pid watchdog teardown
@github-actions

github-actions Bot commented Sep 18, 2026 •

Copy link
Copy Markdown
Contributor

📦 Built Package Artifact

Branch: 2026-09-18_dsh-bundle-install (83e1265)

Option A — Install from npm PR tag (recommended)

npm install -g billion-context@pr-950

Each push to this PR publishes a new version under the pr-950 npm tag.

Option B — Download artifact

  1. Download the artifact from the Actions run
  2. Extract the tarball and install:
tar xzf billion-context-pr950.tgz
npm install -g package

Install instructions are refreshed on each push.

@ranxianglei

Copy link
Copy Markdown
Owner Author

🤖 Powered by ework · qwen3.8-27b

[bot] 🏷 收到,开始核对 PR #950(分支 2026-09-18_dsh-bundle-install,commit 8eca91f)。分支基于最新 master(0 落后),diff 干净:6 个文件 +118/-8。正在跑 typecheck / test / build 并核对互斥逻辑与 CI 状态,完成后回贴结论。

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.

dsh-side one-command install: ship a dsh bundle patch so dsh plugin add billion-context works without knowing bili

1 participant