fix: put the settings card on the Plugins page with a browser half
Release / release (push) Successful in 6s

The `volatile()` markers made the Host serve the namespace, and that was as
far as it went: the Plugins page does not build a card from a `Config` schema.
It draws only what browser halves register into the slots it declares, which is
why dsh-slopo, dsh-recall and dsh-context all ship a `client/` — and why this
plugin, with two served fields, still showed nothing.

The card registers into `plugins.bundle.config` while
`configForms.whileServed` reports the namespace served. The two keys are
deliberately different strings and that is the trap in the file: the settings
document is filed under the profile entry id (`facet-policy`) while the card is
keyed by the package name (`dsh-facet`). Every sibling plugin happens to name
them identically. Binding the form to the wrong one yields a card that renders,
saves, and writes nowhere, so `test/client.test.js` pins both, holds the card's
field list to the schema's volatile fields, and refuses to register at all when
the namespace is not served.
This commit is contained in:
NotExpectedYet committed 2026-09-26 07:39:57 +01:00
1 parent e860ac2989
commit 1be3a67b97
4 files changed
+563 -7

No files matched your search

+11
View File
@@ -14,6 +14,9 @@
"types": "./lib/types/guard.d.ts",
"default": "./lib/guard.js"
},
"./client": {
"default": "./client/client.js"
},
"./cordis.patch.yml": "./cordis.patch.yml",
"./presets/facet.patch.yml": "./presets/facet.patch.yml",
"./package.json": "./package.json"
@@ -21,6 +24,7 @@
"files": [
"index.js",
"lib",
"client",
"presets",
"cordis.patch.yml",
"README.md"
@@ -40,6 +44,13 @@
"./cordis.patch.yml",
"./presets/facet.patch.yml"
]
},
"client": {
"platform": "web",
"inject": [
"@deepseek-ai/dsh-client-ui-settings",
"@deepseek-ai/dsh-client-ui-plugin-manager"
]
}
},
"keywords": [