ClipSpacesClipSpaces Docs
Back to app

All releases

Agent mode, durable AI history & auto-layout

Added

  • Agent mode. The AI panel can now go full screen (robot icon in the header): chat on the left, a live read-only picture of the board on the right (new components/SpaceMiniView.tsx — cards as tinted tiles, connections as lines, auto-fitted and refreshed as the agent works). On narrow screens the preview stacks above the chat. Toggle back to the compact popover any time; the compact popover also gained an expand/shrink button for reading long threads.
  • Auto-layout. "Auto-arrange board" in the canvas right-click menu tidies the whole space: cards joined by connections get a proper left→right flow layout (dagre), everything else falls into a grid below, frames and their members stay put, and the result is re-centered where the cards already were. The AI can invoke the same thing via a new auto_layout action — and is told to finish larger diagrams with it.
  • Durable chat history. Threads are never wiped anymore: re-briefing a changed board appends a new briefing instead of deleting the conversation (the server-side thread delete is gone), and local (non-cloud) spaces now keep their thread in localStorage too — so the record of what was done, and what fell short, survives reloads everywhere. Same-role turns are folded before sending so providers that require alternating roles don't reject the longer histories.

Fixed

  • Raw JSON leaking into the chat. Two real bugs: the action-block parser used lazy bracket matching that broke on ] inside a label, and only scrubbed blocks tagged ```actions — models routinely tag them ```json. The extractor now inspects every fenced block's content, parses action arrays regardless of tag, strips action-looking blocks from the prose even when malformed/truncated, and appends an honest "didn't come through cleanly" note instead of showing broken JSON under confident prose. Completely UNFENCED action arrays (models sometimes skip the code fences) are parsed and stripped too. The chat also scrubs blocks at render time, which cleans up previously saved messages.
  • Flow connections not connecting. Models often list create_connection before the shapes it joins; validation and apply were single-pass, so those connections were silently dropped. Both are two-pass now — refs are collected from the whole batch before any endpoint is resolved.
  • Clustered/overlapping AI placement. New cards are collision-nudged apart on arrival (existing cards included), and the placement prompt is much stricter about reading CURRENT LAYOUT and minimum spacing.