Group of 2 You'll notice
No documentation found
Plugin hooks.json no longer has a top-level surface field; each Client element now names its own module, and multiple surfaceModules can load at once
What
- The
hooks.jsonschema for plugins no longer accepts a top-levelsurfacekey. Instead, eachClientelement in the config must name its own module. Using the oldsurfacefield now produces a hard schema error. - The runtime error shown when a plugin has no drawable Client now checks
surfaceModulesfrom the hooks module's own exports, instead of looking for asurfaceentry inhooks.json. - The code that resolves a plugin's hooks module used to also resolve and validate a separate
surfacepath (checking for path traversal and that the file exists) and store it assurfacePath; that check is now removed, and the code just setsmodulePath. - Elsewhere, the surface-environment loader was changed from loading a single
surfacemodule to loading an array ofsurfaceModules, and its logging now lists all the loaded module names instead of just one.
Why
This lets a plugin provide multiple UI-drawing ('surface') modules instead of just one, with each Client referencing its own module directly rather than all of them sharing a single top-level surface path.
Names in the bundlesurfaceModules