Repository navigation
Conversation
Add `dsh plugin --profile <name> export <package> [--out <dir>]` and `dsh plugin --profile <name> export-manifest [--out <file>]`, backed by a new app-boot core (dependency-spec classification, source resolution, `pnpm pack` runner) so CLI and host share one implementation. Serve the same tarball over HTTP via GET/HEAD /api/plugin.export (`harniverse.administer` capability): streams the pack output with a size ceiling (pluginExportMaxBytes, default 128 MiB), cleans its temp directory on close/abort, and never echoes host paths in errors. Add the Settings > Plugins export button (per-module busy/done/error status) using the downloads manager, and document the feature across the apiproxy/app-boot/ui READMEs, publish guide, API and config catalogs, with a bilingual Agent Note.
Regenerate the Cordis catalog artifact and the module graph after the DownloadsApi surface change, document the exported `PluginPackResult` type and `pluginExportProfileDir` params, and reflow the bilingual Agent Note to the required header and one-paragraph-per-line format.
Mirror the apiproxy -> app-boot edge and dependency-table row into the Chinese module graph, and re-record the note and graph pair states after the Agent Note reflow.
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
dsh plugin --profile <name> export <package> [--out <dir>]packs a profile dependency into a tarball viapnpm pack(source directory preferred forlink:/file:installs, installed copy otherwise);export-manifestprints the packable set as JSON. Shared core lives in@deepseek-ai/dsh-app-boot(plugin-export.ts) so CLI and host use one implementation.GET/HEAD /api/plugin.export?package=<name>under theharniverse.administercapability: temp-dir pack, streamed download with a size ceiling (pluginExportMaxBytes, default 128 MiB → 413), cleanup on close/abort, and errors that never echo host paths.Test plan
plugin-export.spec.ts— spec classification, source resolution, pack runner (fake spawner), 15 testsplugin-export.spec.ts— realpnpm packintegration, arg validation, provenance, manifest JSON, 11 testsplugin-export.spec.ts— download happy path, ceiling 413, abort/cleanup, no-dependencies 404, schema rejections; rpc-map capability row; session-export config defaults updatedhostBasearmsDSH_SNAPSHOT=replayweb e2e 95 files / 344 passed (hmr-live excluded locally — known cold-start-only limitation, green in CI)