Changelog
vUnreleased· Plugin Forge
The plugin system gains an authoring loop designed for coding agents: scaffold, bundle, validate, hot reload, publish. Everything an agent needs to write a kandown plugin unattended now comes out of one command, and the contract it reads is generated from the extension types so it can never drift from the runtime.
Added
kandown plugin <sub>, the authoring surface next to the administrativekandown extension <sub>:create,build,check,dev,brief,publish, plus aliases forlist,enable,disable,install,guideandpurge.kandown plugin create <id> --kind field|panel|gate|sync|command|fullwrites a plugin that already builds and already passes every check, and prints the full authoring contract to stdout so an agent picks it up in context.kandown plugin create <id> --from "<goal>"hands the scaffold, the contract and the working order to the coding agent already installed on the machine (--agent <id>to choose one). kandown never calls a model itself.kandown plugin build <id>bundlesindex.tsandweb.tsxwith esbuild into the self-contained JavaScript the browser can execute, with React kept external and a hard error when a panel bundle imports it anyway.kandown plugin check <id> --jsonvalidates a plugin against a synthetic in-memory board: manifest, entry, registered contributions, permissions declared versus called, bundle freshness, one render of every panel, a dispatch of every gate, sync and command, and a frontmatter round-trip. Every failure carries afixsentence written as an instruction, so an agent can iterate to green on its own.kandown plugin dev <id>watches the plugin directory and, on every save, rebuilds, revalidates and pushes a hot reload to every open board.kandown plugin publish <id>re-verifies and prints the community store entry.docs/EXTENSIONS-AGENT.md, the plugin authoring contract, generated fromsrc/lib/extensions/types.tsbypnpm extension-briefand embedded in the CLI bundle.pnpm extension-brief:checkruns inpnpm verifyand fails on drift.POST /api/extensions/reload, the daemon endpoint behind the hot reload.
Changed
- The extension host accepts an inspection load (
only,inspect) so the validator can report on a plugin that is not trusted or enabled yet, without persisting trust or touching the real board. - Web panels re-import their module after a reload instead of keeping the previously mounted bundle.
esbuildis now a runtime dependency, required bykandown plugin build.