dsh-at-file
FSMargoo/dsh-at-fileCodex 风格的 `@file` 文件引用,输入框里直接搜索并引用工作区文件。
在设置弹窗中增加「插件设置」导航,将各插件的设置页与卡片统一收纳到可拖拽排序的顶部标签页中。
Renamed from
dsh-settings-hub; the RPC namespacesettingsHuband legacy data migration paths stay compatible.
English | 中文
A pure relay plugin for DSH that adds one Plugin settings nav row to the settings dialog and gathers every custom plugin's settings content into draggable top tabs, persisting the tab order to a JSON file.
The plugin never modifies any plugin's registration, component, or settings document. It only:
settings.section pages that are not DSH builtin sections
(general / models / plugins / agent-presets) — e.g. dsh-at-file,
dsh-market, dsh-status-rotator, dsh-notification, dsh-better-sidebar;settings.general.item rows contributed by plugins
(e.g. dsh-peak-indicator);settings.plugin.item cards contributed by plugins
(e.g. dsh-peak-indicator, dsh-client-auto-continue, dshmarket).data/order.json inside the deployed plugin folder and restored on the
next load.t
locale seat, inject business face, store seat, child renderSlot
recursion) with per-entry error boundaries — semantically identical to the
settings shell.slots._host) is wrapped in a Proxy that
filters entriesOf/entriesOfSlot. Plugin section rows disappear from the
settings nav, plugin general rows from the General page, and plugin cards
from the Plugins page — while the registrations themselves stay intact.dsh-plugInOne/
├── package.json # dsh.client.platform: web + dsh.bundle.patch
├── cordis.patch.yml # loader insertion
├── dsh.plugin.json
├── lib/index.js # host half: settingsHub/loadOrder + saveOrder (JSON file)
└── lib/client.js # client bundle (hand-written, no build step)
node <DSH_HOME>/profiles/node_modules/@deepseek-ai/dsh/lib/bin.js plugin --profile web add "file:<repo path>"
Restart DSH afterwards (the plugin roster is loaded at boot), then hard-refresh the page (Ctrl+R).
If pnpm rejects the install because of its supply-chain policy (
minimumReleaseAge), run pnpm directly inside the profile with the policy relaxed and add the plugin todsh.profile.bundlesmanually:pnpm add "file:<repo path>" --config.minimum-release-age=0
<plugin folder>\data\order.json
(e.g. ~\.dsh\profiles\web\node_modules\dsh-plugInOne\data\order.json).settings.section,
settings.general.item, settings.plugin.item) and the slot renderer host —
DSH ≥ 0.1.1-rc.2.lib/client.js:
BUILTIN_SETTINGS_SECTION_IDS, CORE_GENERAL_ITEM_IDS,
CORE_PLUGIN_CARD_KEYS. If the deployment adds another builtin page, keep
them in sync.market vs dsh-market); add an alias if you want
them merged.hostFace/_host
structure, the plugin loses hiding and aggregation but the aggregation row
still shows content and the original seats remain untouched — it cannot
break the page.slots._host
Proxy and the prototype patch only take effect on a fresh page load, so
hard-refresh after editing.