dsh-webui-perf
awa-123-cw
DeepSeek Harness WebUI 性能优化开关插件:长代码流式渲染/历史加载/高亮缓存优化,设置面板一键开关(with official-package patches)
PROJECT TOPICS
PROJECT README
dsh-packer is a configuration packer plugin for DeepSeek Harness (DSH). It packs your local Agent assets into zip archives, module by module, for two purposes:
Version v0.1.0 · MIT License
| Module | Contents | Migrate preset | Share preset |
|---|---|---|---|
skills |
Skills (including the memory-mechanism skill), under ~/.dsh/skills |
✅ | ✅ |
sessions |
Session records (.zstd format), under ~/.dsh/sessions |
✅ | ❌ |
profiles |
Profile configs (excluding node_modules), under ~/.dsh/profiles |
✅ | ❌ |
settings |
Global settings (settings.yaml) |
✅ | ❌ |
presets |
Agent presets (.agent-presets) |
✅ | ❌ |
memory |
Memory data (DSH_MEMORY_ROOT or ~/.dsh/memory, excluding backups/) |
✅ | ❌ |
skills is checked; sessions and memory data are automatically excluded. Personal skill subdirectories are also excluded when sharing.manifest.json (schemaVersion + SHA-256 fingerprints) → diff report → pick a conflict strategy: overwrite / skip / merge (merge appends, never overwrites).README.md explaining the pack contents is attached automatically.Install as a local bundle from the project directory:
dsh plugin add . # add the local bundle
# or, during development
pnpm link
Then add dsh-packer to the dsh.profile.bundles list of your profile. Restart DSH and open the Settings → "Config Packer" tab (or use the /pack command).
/pack create.--dry-run to preview without generating a zip).~/.dsh/packs); share packs get an automatic README.md./pack restore <zip>).manifest.json is validated (schemaVersion + SHA-256 fingerprints)./pack command reference/pack list # list existing packs (time/size/modules/note)
/pack create [--modules skills,memory] [--mode migrate|share] [--note note] [--dry-run]
/pack create --share # --share is shorthand for --mode share
/pack restore <zip-path> [--strategy overwrite|skip|merge]
/pack scan # privacy-scan every packable module
Details:
list — shows generated packs with creation time, size, modules and note.create — without --modules, modules are chosen by the mode preset (migrate = all; share = Skills only). --dry-run only previews the file list and scan results; no zip is generated.restore — import zip → validate → diff report → apply with the chosen strategy. Files identical to the pack are skipped automatically under every strategy.scan — runs the privacy scan over every packable module and reports sensitive traces.Package notes are written at pack time and shown in the package list. In the Settings tab you can also delete or rename packages.
.credentials.yaml and .anonymous-user-id are skipped in every module's file walk.api_key, secret, password, token, bearer, authorization assignments)/pack scan or --dry-run.manifest.json for integrity checks on restore.@deepseek-ai/dsh-* 0.1.0-rc.5 or later (peer deps: @deepseek-ai/cordis ^4.0.1, @deepseek-ai/dsh-tools, @deepseek-ai/dsh-session)tar.exe (bsdtar/libarchive); macOS ships bsdtar as tar. No npm native modules are used.The zip won't open / looks corrupted?
Packs are standard zip archives created by the system bsdtar — Windows Explorer and common unzip tools can open them. If a pack fails validation, do not hand-edit its contents (that breaks the SHA-256 fingerprints in manifest.json); regenerate it with /pack create. Check ~/.dsh/packs (or your DSH_PACKS_DIR) with /pack list to see what is there.
Manifest validation fails on restore?
Usually one of: the zip was not created by dsh-packer (no manifest.json inside), manifest.json is missing or its schemaVersion is incompatible with the current version, or the pack was modified after creation. Redistribute the original pack or regenerate it.
My share pack got blocked — what now?
Share mode is deliberately strict: any hit (absolute path, user-profile path, suspected credential, nickname, …) aborts the pack with an error. Run /pack scan to see which files match, clean or replace the sensitive content, then retry. For personal backups you can use migrate mode (report-only), but never distribute such packs to others.
How does the merge strategy work?
For text files, the pack's content is appended to the target file behind a separator comment — existing content is never overwritten. Non-text files fall back to overwrite. Files already identical to the pack are skipped under every strategy.
Where are packs stored?
~/.dsh/packs by default, overridable via the DSH_PACKS_DIR environment variable.
MIT
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。