ClipSpacesClipSpaces Docs
Back to app

All releases

AI can now edit the board

Added

  • AI board actions. The Ask AI chat can now create and arrange things on the space, not just talk about it: text notes, sticky notes, diagram shapes, frames, stickers, link cards (through the normal unfurl flow), labeled connections between cards, plus moving and — only when explicitly asked — deleting existing cards. Works with every configured provider: the model ends its reply with a fenced ```actions JSON block (no native tool-calling needed), the server extracts and validates it, and the canvas applies the sanitized batch. Replies that changed the board show a "Board updated · N changes" badge in the chat.
  • Server-side action validation (lib/ai/actions.ts, new; covered by tests/ai-actions.test.ts). Every batch is sanitized before it reaches the client: http(s)-only link URLs, moves/deletes/connection endpoints scoped to the requesting board's card ids (or refs minted in the same batch), numeric clamps on coordinates/sizes, length caps on strings, and a hard cap of 30 actions per reply. Viewers never get an apply hook, so read-only spaces stay read-only.

Changed

  • AI chat prompt now includes a compact CURRENT LAYOUT block (card geometry + the user's view center, sent from the panel) so the model can place new cards sensibly; connections it draws pick the facing handles like a human drag would. Chat output budget raised from 500 to 1200 tokens (override with AI_CHAT_MAX_TOKENS) so action JSON doesn't truncate.
  • applyAIActions on the canvas handle (previously dormant) was rebuilt around the shared action vocabulary and is now wired: AIPanel → page shell → canvas, editors only.