fix(client-ui-plugin-config): declare the browser half under dsh.client
Merging master's rename of the client manifest field left this package on the old `dshClient` name. The row still composed and its empty node half still activated, but the browser roster scan never matched it, so the whole settings section vanished with no error anywhere. verify-cordis-config now requires a packages/client package's "./client" export and its dsh.client declaration to agree in both directions; the composition file cannot tell a surface plugin from a Host plugin, so the manifests are where this is checkable. The check is scoped to that group because a Host package's "./client" export is the typed wire face its browser consumers import, not a plugin the roster serves.
This commit is contained in:
@@ -45,3 +45,5 @@ A user edits the shell's command timeout and output cap, the agent loop's parall
|
||||
Two costs are real. Adding a fourth plugin still requires an entry in the apiproxy allowlist, so the page's reach is a Host decision rather than a plugin's. And the plugins the web deployment moved into the agent plane — the file tools, the skills, compaction, the todo tool — appear nowhere here, which is most of what a user might expect to find; their configuration remains the preset editor's.
|
||||
|
||||
The bash and pwsh executors now expose `config` as a getter over a source thunk rather than a readonly field. Every read site was already per-call, so nothing else changed, but a subclass that captured `this.config` at construction would silently pin the composition entry.
|
||||
|
||||
`verify-cordis-config` gained one check, paid for by this branch: merging master's rename of the client manifest field (`dshClient` → `dsh.client`) left this package declaring the old name, and the whole section vanished from the browser with no error anywhere — the row composed, the empty node half activated, and the browser roster scan simply never matched it. Nothing could catch that, because the composition file cannot tell a surface plugin from a Host plugin: the difference lives in the manifest. The gate now requires a `packages/client` package's `./client` export and its `dsh.client` declaration to agree in both directions. The check is scoped to that group because a Host package's `./client` export is the typed wire face its browser consumers import, not a plugin the roster serves.
|
||||
|
||||
Reference in New Issue
Block a user