Skip to content

Active development — do not use in production yet. Build-in-public project. First stable release: v1.0.0. Expect breaking changes, missing features and rough edges before then.

kandown
117 releases

Changelog

2026-09-04

v0.53.0· 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. The board itself gains colored category group blocks and a drag interaction that finally feels physical.

Added

  • Colored category group blocks: when a stack of same-category tasks is expanded, the whole group is wrapped in a rounded block carrying the category's chip color, with a single centered category label and collapse chevron at the top instead of a repeated chip on every card. Folded stacks peek a single ghost card wearing the category border color, so groups are recognizable at a glance in both board and list views; list view frames expanded groups with the colored border only, keeping rows readable.
  • Border hierarchy on solo cards: a card with a category wears that category's border color, a titled card without subtasks wears its title color, an untitled card gets the stronger neutral border, and cards with subtasks keep the quiet hairline. Groups (2px borders) and solo cards (1.5px) are distinguishable at a glance.
  • Drag tilt with a soft landing: dragging a board card now uses a rotated drag ghost (the card under the cursor is tilted 3 degrees while the original stays untouched), and on release the card settles back to level over 400ms.
  • Agent hook daemon endpoint: POST /api/tasks/<id>/agent on the daemon forwards the full task to KANDOWN_AGENT_HOOK_URL (already surfaced in the UI as "Send to Agent"). Strictly opt-in: no env var, no route. Lets any IDE, bot or bb integration receive a task with its complete Markdown and reply with a result (for example a thread id).
  • The kandown bb plugin (integrations/bb/): a standalone bb plugin that runs the board inside bb. A Kandown sidebar entry switches bb's main area to a full kanban view; a back arrow returns to normal bb. All operations shell out to the kandown CLI over the same Markdown task files (create, move, assign, update with reslug, archive), plus a bb kandown command for agents. Deliberately outside the pnpm workspace so it cannot affect bb's own build.
  • kandown plugin <sub>, the authoring surface next to the administrative kandown extension <sub>: create, build, check, dev, brief, publish, plus aliases for list, enable, disable, install, guide and purge.
  • kandown plugin create <id> --kind field|panel|gate|sync|command|full writes 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> bundles index.ts and web.tsx with 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> --json validates 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 a fix sentence 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.
  • bb kandown --model <id> chooses the harness model before starting a task from the board embedded in bb.
  • docs/EXTENSIONS-AGENT.md, the plugin authoring contract, generated from src/lib/extensions/types.ts by pnpm extension-brief and embedded in the CLI bundle. pnpm extension-brief:check runs in pnpm verify and fails on drift.
  • POST /api/extensions/reload, the daemon endpoint behind the hot reload.

Fixed

  • The App/Board view toggle is visible again in the bb plugin's toolbar (a toolbar refactor had dropped it).

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.
  • esbuild is now a runtime dependency, required by kandown plugin build.