{
  "$schema": "./whats-new.schema.json",
  "entries": [
    {
      "id": "steadier-team-projects",
      "version": "1.4.2",
      "date": "2026-09-16",
      "kind": "fix",
      "title": "Steadier team projects",
      "summary": "Large projects (over a hundred canvases) stay connected, the desktop app no longer freezes after switching canvases back and forth, and an open canvas always shows the newest change — including photo edits — instead of sometimes lagging one behind.",
      "surface": "design-ui"
    },
    {
      "id": "history-on-a-team-project",
      "version": "1.4.1",
      "date": "2026-09-16",
      "kind": "fix",
      "title": "Your project history, from the status bar",
      "summary": "On a project you were invited to, the status bar now opens the project history — every change with who made it, and Undo on the ones that are yours. It was only reachable from the View menu before.",
      "surface": "design-ui"
    },
    {
      "id": "design-system-on-every-desktop",
      "version": "1.4.0",
      "date": "2026-09-16",
      "kind": "improvement",
      "title": "Your team’s design system on your desktop too",
      "summary": "When you open a team project on the desktop, its design system now appears in the Design System section — tokens, specimens and all — the same as on the machine that made it. Specimens someone adds show up for everyone.",
      "surface": "design-ui"
    },
    {
      "id": "sync-reliability-sept",
      "version": "1.4.0",
      "date": "2026-09-16",
      "kind": "fix",
      "title": "Steadier syncing in shared projects",
      "summary": "Renaming a folder no longer makes you miss a teammate’s later edits to the canvases inside it; replacing an image keeps showing the new one on your screen; a file the workspace can’t store right now is named in the Sync panel and delivers by itself when it can; and a too-big file you remove stops being reported.",
      "surface": "design-ui"
    },
    {
      "id": "edits-follow-moves",
      "version": "1.4.0",
      "date": "2026-09-16",
      "kind": "improvement",
      "title": "Your edit follows a canvas a teammate moved",
      "summary": "If a teammate moves a canvas — or renames its folder — while you are editing it offline, your change now lands at the canvas’s new place for everyone instead of waiting for review. Deleting a canvas you were editing still asks you what to keep.",
      "surface": "design-ui"
    },
    {
      "id": "edit-own-comments",
      "version": "1.4.0",
      "date": "2026-09-16",
      "kind": "feature",
      "title": "Fix a typo in your own comment",
      "summary": "Open a comment you wrote and choose Edit — change the text and save; everyone sees the new wording and the replies stay. On a Maude Cloud project in the browser, your comments and replies now carry your name instead of the workspace’s.",
      "surface": "design-ui"
    },
    {
      "id": "live-canvases-long-sessions",
      "version": "1.3.1",
      "date": "2026-09-15",
      "kind": "fix",
      "title": "Canvases stay live in long sessions",
      "summary": "A canvas open in your browser on a Maude Cloud project kept working for about 15 minutes and then quietly stopped showing teammates’ changes until you reloaded the page — it now stays live however long you work. And editing a design system’s tokens.css restyles every open canvas that uses it, straight away.",
      "surface": "design-ui"
    },
    {
      "id": "team-access-and-presence",
      "version": "1.3.1",
      "date": "2026-09-15",
      "kind": "fix",
      "title": "Lost access? Maude asks you to sign in again",
      "summary": "If an owner removes your access or your sign-in expires, the Sync panel now tells you to sign in again — instead of \"check your connection\" — and keeps your changes on this computer until you do. Signing in again sends them. And when a teammate closes a canvas, their avatar and cursor now leave everyone else’s screen straight away.",
      "surface": "design-ui"
    },
    {
      "id": "comment-tool-and-live-tree",
      "version": "1.3.1",
      "date": "2026-09-15",
      "kind": "fix",
      "title": "The Comment tool works from the toolbar; new images and folders show up for everyone at once",
      "summary": "Picking Comment in the canvas toolbar now lets you click an element to comment — before, only the C key did. An image saved next to your canvases appears in the file tree straight away, on your machine and your teammates’. A folder you create or move outside Maude, or move in the tree, reaches the team in seconds instead of on the next launch.",
      "surface": "design-ui"
    },
    {
      "id": "inspector-keeps-number-types",
      "version": "1.3.1",
      "date": "2026-09-15",
      "kind": "fix",
      "title": "Editing a number in the inspector keeps it a number",
      "summary": "Changing a value like an artboard height or a video’s length used to turn it into text in the canvas source — some components then misread it. Numbers and on/off values now stay what they were, and leaving a value unchanged no longer rewrites the file.",
      "surface": "design-ui"
    },
    {
      "id": "artboard-rename-and-files",
      "version": "1.3.0",
      "date": "2026-09-15",
      "kind": "feature",
      "title": "Rename artboards on the canvas; manage notes and images in the tree",
      "summary": "Double-click an artboard’s name to rename it — everyone on the project sees the new name. Notes, styles, images and videos beside your canvases now have their own ⋯ menu: Rename…, Move to… and Delete. A file a canvas still uses is not moved or deleted from under it; Maude names the canvas that uses it instead.",
      "surface": "design-ui"
    },
    {
      "id": "cloud-connect-starts-syncing",
      "version": "1.3.0",
      "date": "2026-09-15",
      "kind": "fix",
      "title": "Connecting a project to Maude Cloud starts syncing right away again",
      "summary": "Connect used to link the project and then ask you to restart Maude before anything synced. It syncs immediately now, a project that is not linked no longer greets you with a stale “Working offline” note, and a large video upload survives a dropped connection instead of failing.",
      "surface": "design-ui"
    },
    {
      "id": "file-tree-rename-duplicate",
      "version": "1.3.0",
      "date": "2026-09-15",
      "kind": "feature",
      "title": "Rename and duplicate canvases and folders from the file tree",
      "summary": "The ⋯ menu on a canvas now offers Rename… and Duplicate, and folders can be renamed in place. Teammates see the new name immediately — a canvas they have open follows the rename. Menus near the bottom of a long tree now open upward instead of off-screen, and after ⌘D the copy is what stays selected.",
      "surface": "design-ui"
    },
    {
      "id": "open-team-project-no-folder",
      "version": "1.3.0",
      "date": "2026-09-15",
      "kind": "feature",
      "title": "Open your team’s project in one step",
      "summary": "Invited to a project? Choose “Open a project you were invited to”, sign in to Maude Cloud or your team’s server with your email, pick the project and start designing — no folder to choose, no token, no Git. Maude keeps the project’s copy for you and lists it under “Open a team project…”.",
      "surface": "design-ui"
    },
    {
      "id": "reliable-project-saving",
      "version": "1.3.0",
      "date": "2026-09-15",
      "kind": "feature",
      "title": "Every change saved, shared and undoable",
      "summary": "In projects that save through accepted revisions, the status says “Saving…” until your team’s project has your change, History lists each action with its author, Undo takes back only your own action, two people changing the same thing end with the later change instead of a conflict, an unfinished AI edit waits for your decision, and large videos upload and download resumably.",
      "surface": "design-ui"
    },
    {
      "id": "share-link-deeplink",
      "version": "1.3.0",
      "date": "2026-09-15",
      "kind": "feature",
      "title": "Share a link to any canvas",
      "summary": "Copy a link that opens a canvas or file in the browser or Maude. After signing in, return to the shared file; links to another local project ask before switching.",
      "learnMore": "https://maude.sh/docs/share-links",
      "surface": "design-ui",
      "tour": [
        {
          "target": "[data-testid=\"share-btn\"]",
          "title": "Share this file",
          "body": "Copy a web link, an app link, or a link for this Mac. You can also share another file from its row menu.",
          "placement": "bottom",
          "canvas": true
        }
      ]
    },
    {
      "id": "native-codex-shared-workflows",
      "version": "1.3.0",
      "date": "2026-09-15",
      "kind": "feature",
      "title": "Use Maude workflows in Codex",
      "summary": "Install Maude’s design and flow plugins natively in Codex and use the shared workflows alongside Claude Code. The new guide covers setup, dependencies and the browser requirements for working with Design Studio.",
      "learnMore": "https://maude.sh/docs/codex",
      "surface": "design-ui"
    },
    {
      "id": "shared-toast-stack-export-errors",
      "version": "1.3.0",
      "date": "2026-09-15",
      "kind": "improvement",
      "title": "Notifications stack and clear themselves",
      "summary": "Export updates, canvas messages and Undo now share a stack that expands when you hover or use the keyboard. Notifications dismiss automatically; long export errors stay short, with the complete message available on demand in export history.",
      "surface": "design-ui"
    },
    {
      "id": "source-sync-preserves-valid-canvases",
      "version": "1.3.0",
      "date": "2026-09-15",
      "kind": "fix",
      "title": "Safer canvas source syncing",
      "summary": "Sync now holds incoming canvas code with syntax errors or duplicate declarations and warns you in the Sync panel. Concurrent edits preserve more unchanged code, and recovery copies help you recover local work when a conflicting update is held.",
      "surface": "design-ui"
    },
    {
      "id": "sticky-notes-take-a-second-line",
      "version": "1.3.0",
      "date": "2026-09-15",
      "kind": "fix",
      "title": "Sticky notes take a second line",
      "summary": "Shift+Enter in a sticky note could look like it did nothing. A note never grew, and its text is clipped at the card's edge, so on a full note the new line was inserted and then hidden — notes now grow as you type and keep that height. Opening a note from the keyboard selects all of its text so you can retype it, and Shift+Enter used to replace the lot; it now adds a line instead, while typing still replaces. And on a project synced to a workspace, what you have typed into an open note is no longer overwritten mid-keystroke when a collaborator edits the same note.",
      "surface": "design-ui"
    },
    {
      "id": "pdf-export-print-safe-text",
      "version": "1.2.0",
      "date": "2026-09-04",
      "kind": "feature",
      "title": "PDF exports a print shop will actually accept",
      "summary": "A colour font or a faux-italic could come out of a PDF export in a form printers reject — the file looked perfect on screen, and you only found out when the print shop refused it. Maude now checks the fonts on every PDF export and warns you, by name, when one of them would fail preflight. Under Text you can also ask it to verify the fonts are properly embedded, or convert all text to curves so there is nothing left to break — bleed, crop marks and photo resolution all come through untouched.",
      "surface": "design-ui"
    },
    {
      "id": "seed-progress-you-can-watch",
      "version": "1.2.0",
      "date": "2026-09-04",
      "kind": "improvement",
      "title": "You can watch a large project sync",
      "summary": "Linking a big project used to be a black box: the Sync panel counted files it had moved but never how many there were, so \"1 412\" looked the same whether it was a quarter done or finished — and `maude design status` reported only canvases, so a project with hundreds of files still on their way could read as fully synced. Now every surface shows the same thing: how many of how many have arrived, what is waiting, and what is stuck and why. The panel has a progress bar, `maude design status` has a files line (and a `--watch` mode), and the desktop app puts the count in the window title and tells you once when it finishes. Files the workspace will never take — something over its size limit, or an hourly upload allowance that is used up — now say so by name instead of retrying forever.",
      "surface": "design-ui"
    },
    {
      "id": "images-arrive-again",
      "version": "1.2.0",
      "date": "2026-09-04",
      "kind": "fix",
      "title": "Images arrive again on linked projects",
      "summary": "On a project synced with a workspace, images and other project files could quietly never arrive — broken placeholders on the canvas while the Sync panel still said everything was synced. When a workspace asks Maude to slow down, it now waits as long as it was asked instead of retrying straight into the same wall, and the Sync panel says so in plain words: syncing is paused for a moment, nothing is lost, the rest arrives when the pause lifts.",
      "surface": "design-ui"
    },
    {
      "id": "comments-stop-disappearing",
      "version": "1.2.0",
      "date": "2026-09-04",
      "kind": "fix",
      "title": "Comments stop disappearing",
      "summary": "On a project linked to a hub, a comment you had just added could vanish a few seconds later, leaving only the first one on the canvas — with nothing to undo and no sign anything had gone wrong. A new comment now reaches the shared project before it is written to disk, and Maude will not overwrite a comment it has not seen yet, so what you write stays put.",
      "surface": "design-ui"
    },
    {
      "id": "comments-stop-duplicating",
      "version": "1.2.0",
      "date": "2026-09-04",
      "kind": "fix",
      "title": "Comments stop duplicating, and resolve works",
      "summary": "On a project linked to a hub, a comment could come back two, four, then eight times, and clicking resolve appeared to do nothing — every copy had to be dealt with separately, and new ones kept arriving. Maude now recognises the copies as one comment, so they collapse back to a single pin, and resolving or deleting one clears all of it. A project that already filled up with duplicates repairs itself the next time you open it.",
      "surface": "design-ui"
    },
    {
      "id": "synced-canvases-stop-duplicating",
      "version": "1.2.0",
      "date": "2026-09-04",
      "kind": "fix",
      "title": "Synced canvases stop duplicating themselves",
      "summary": "On a project linked to a hub, a canvas could come back with its whole contents pasted onto itself — twice, sometimes more — which broke the build and left the canvas unopenable. It happened when two people (or your machine and the hub) first picked up the same canvas at the same moment. Maude now recognises that exact shape and collapses it back to one copy, on the styles as well as the body. Moving a canvas into another folder also fixes up its imports instead of breaking them.",
      "surface": "design-ui"
    },
    {
      "date": "2026-09-04",
      "id": "sync-recovers-after-the-workspace-sleeps",
      "kind": "fix",
      "summary": "If you left Maude alone for a while, your cloud workspace went to sleep and syncing quietly stopped — the indicator still said it was connected, and only pressing Resync got it moving again. Maude now notices when the connection has gone quiet, brings it back on its own, and only reports canvases as synced once they really are.",
      "surface": "design-ui",
      "title": "Sync comes back on its own",
      "version": "1.2.0"
    },
    {
      "date": "2026-09-04",
      "id": "long-chats-no-longer-freeze",
      "kind": "fix",
      "summary": "In a project with a long chat history, Maude could slow to a crawl and stop responding for many minutes while using enormous amounts of memory — often needing a force-quit. Screenshots the agent took were being stored inside the chat history at full size, and every chat you opened re-read all of it. Chats now stay small and are read in fixed-size pieces, so a long history costs the same as a short one.",
      "surface": "design-ui",
      "title": "Long chats no longer freeze Maude",
      "version": "1.2.0"
    },
    {
      "id": "canvas-media-plays-on-linux",
      "version": "1.0.10",
      "date": "2026-08-26",
      "kind": "fix",
      "title": "Canvas video and audio work on Linux",
      "summary": "Opening a canvas with video or audio on Linux could take the whole view down with no message — once because the GStreamer plugins it needs are optional on most distros, and again because the GPU video path faults on AMD graphics. The .deb now pulls those plugins in, Maude steers around the AMD fault by itself, and if the plugins are missing anyway it tells you, with the exact install command for your distro.",
      "learnMore": "https://maude.sh/docs/desktop#media-playback-on-linux",
      "surface": "design-ui"
    },
    {
      "id": "a-stopped-server-says-so",
      "version": "1.0.10",
      "date": "2026-08-26",
      "kind": "fix",
      "title": "A stopped server now says so",
      "summary": "If the server behind your project stopped for good, Maude used to leave the window sitting there — nothing loading, nothing saving, and no reason given. Now it tells you which project stopped, confirms your files on disk are untouched, and offers Try again. A one-off crash hours into a session also no longer counts against the give-up limit the way a genuine restart loop does.",
      "surface": "design-ui"
    },
    {
      "id": "exports-match-what-you-see",
      "version": "1.0.8",
      "date": "2026-08-24",
      "kind": "improvement",
      "title": "Exports now match what you see",
      "summary": "Cloud and in-browser exports are now faithful to your canvas across every format — fonts, photo filters and duotones, gradients and full-bleed images all come through, and PNG, SVG, PPTX, PDF and HTML export fully self-contained. Video (MP4, WebM, GIF) now exports reliably from a hosted workspace too.",
      "surface": "design-ui"
    },
    {
      "id": "instant-exports-in-your-browser",
      "version": "1.0.7",
      "date": "2026-08-23",
      "kind": "feature",
      "title": "Instant exports, right in your browser",
      "summary": "In a hosted workspace, PNG and SVG of the artboard you're looking at — and the whole PPTX deck — now export straight from your browser in seconds. No render service, no waiting for a container to wake up. Video and PDF still render on the service, which now warms up the moment you open the export dialog.",
      "surface": "design-ui"
    },
    {
      "id": "cloud-exports-actually-arrive",
      "version": "1.0.6",
      "date": "2026-08-23",
      "kind": "fix",
      "title": "Cloud exports actually arrive",
      "summary": "Exporting from a hosted or self-hosted workspace no longer times out after a long wait. The render service was mangling the page it captured before it ever loaded; that's fixed, so PNG, PDF, PPTX and video exports now finish and download like they should.",
      "surface": "design-ui"
    },
    {
      "id": "invite-links-open-a-welcome-page",
      "version": "1.0.4",
      "date": "2026-08-21",
      "kind": "fix",
      "title": "Invite links open a welcome page",
      "summary": "Someone you invite to a self-hosted workspace used to open the link and see a screen of raw data. Now they get a welcome page: their email is already filled in, they choose a password, and one click drops them straight into the studio in their browser — no download, no setup. Expired or already-used links say so in plain words. And if they signed in with your identity provider instead, the People view now has Approve: one click creates their account and links that sign-in, no password to invent.",
      "surface": "design-ui"
    },
    {
      "id": "export-from-the-cloud-studio",
      "version": "1.0.1",
      "date": "2026-08-20",
      "kind": "feature",
      "surface": "design-ui",
      "title": "Export works in the cloud studio now",
      "summary": "Exporting a canvas to PNG, PDF, PPTX, ZIP or video from a project open in your browser used to fail. Now it runs as a background job — kick it off, keep working, and download it from the notifications when it's done. Where a workspace has no render service configured, the formats that need one say so and point you at the desktop app; ZIP always works."
    },
    {
      "id": "your-sync-controls-are-in-the-app-now",
      "version": "1.0.1",
      "date": "2026-08-20",
      "kind": "feature",
      "surface": "design-ui",
      "title": "Sync settings, consent and a Trash you can find",
      "summary": "The Sync panel now holds the controls that used to mean editing a config file by hand: turn file sync or delete propagation on and off, choose how first-link conflicts resolve, and see per-file delivery. A first-time notice asks before a workspace starts mirroring your whole design folder, and deleted or replaced files land in a Trash section you can restore from or clear — no more hunting for a hidden folder."
    },
    {
      "id": "moving-a-canvas-reaches-every-machine",
      "version": "1.0.0",
      "date": "2026-08-20",
      "kind": "fix",
      "surface": "design-ui",
      "title": "Moving a canvas reaches every machine",
      "summary": "Moving a canvas into a folder now shows up everywhere, instead of only on the machine that moved it. Canvases made on one machine also stop arriving blank or reverting when you edit them somewhere else."
    },
    {
      "id": "durable-backups-for-every-file",
      "version": "1.0.0",
      "date": "2026-08-20",
      "kind": "improvement",
      "surface": "design-ui",
      "title": "Every file in a cloud project is backed up now",
      "summary": "Cloud-hosted projects now keep a durable copy of every file — design-system stylesheets, shared modules, fonts, and images anywhere in the folder, not just top-level assets. A project that restarts in the cloud comes back whole instead of missing its styling."
    },
    {
      "id": "the-whole-design-folder-syncs",
      "version": "1.0.0",
      "date": "2026-08-20",
      "kind": "feature",
      "surface": "design-ui",
      "title": "Your whole design folder syncs now",
      "summary": "A linked project mirrors everything in .design/ both ways — design-system stylesheets, READMEs, fonts, images — not just the canvases. Before, a teammate opening the project got every canvas and none of the styling it depended on."
    },
    {
      "id": "deleting-a-file-deletes-it-everywhere",
      "version": "1.0.0",
      "date": "2026-08-20",
      "kind": "feature",
      "surface": "design-ui",
      "title": "Delete a file and it stays deleted",
      "summary": "Removing a file now removes it for everyone, instead of it quietly coming back on the next sync. If more than a handful go at once — a branch switch, a bad restore — sync pauses and the Sync panel says what it was about to do; nothing is removed until you agree. Anything it does remove is moved to a trash folder on both machines rather than deleted."
    },
    {
      "id": "repo-owned-or-hub-owned",
      "version": "1.0.0",
      "date": "2026-08-20",
      "kind": "improvement",
      "surface": "design-ui",
      "title": "One owner for your design folder",
      "summary": "A project is either committed to your repo or mirrored by your hub — never both, which used to let a git pull and a sync undo each other. Switching either way takes one command and never moves a file off your disk. Linking also asks, once, whether that hub may send shared code to this machine."
    },
    {
      "id": "history-follows-the-cloud",
      "version": "1.0.0",
      "date": "2026-08-20",
      "kind": "fix",
      "title": "History shows what the cloud is saving",
      "summary": "When a folder is connected to Maude Cloud, the History tab now lists the cloud's saved versions instead of your machine's — headed by the cloud project's name, and you can open a canvas at any of them, including versions that only ever existed in the cloud. If the cloud can't be reached it says so, with a Retry, rather than looking empty. While the cloud is saving, the app also stops keeping a separate account of the folder: no unsaved marks in the tree, no draft switcher. Disconnect and it all returns live. Your own git is untouched.",
      "surface": "design-ui"
    },
    {
      "id": "canvas-zoom-and-selection-feel",
      "version": "1.0.0",
      "date": "2026-08-20",
      "kind": "improvement",
      "title": "Zooming and drawing feel right",
      "summary": "The mouse wheel and trackpad pinch now move the zoom about twice as far per notch, closer to the canvas tools you already use. Ink you draw scales with the zoom in the browser the way it always did in the desktop app, and the resize handles around a selection now follow a pan or zoom live instead of sitting where the shape used to be until you let go.",
      "surface": "design-ui"
    },
    {
      "id": "cloud-canvases-heal-themselves",
      "version": "1.0.0",
      "date": "2026-08-20",
      "kind": "fix",
      "title": "The cloud stops needing a reload",
      "summary": "A file that arrives in the cloud now shows up in an open tab by itself. Before, the bytes landed but nothing told the page, so a picture stayed a broken frame until you reloaded by hand — it looked like sync had failed when it had already finished.",
      "surface": "design-ui"
    },
    {
      "id": "instant-asset-sync",
      "version": "0.60.7",
      "date": "2026-08-16",
      "kind": "improvement",
      "title": "Pictures sync in seconds",
      "summary": "A picture you drop on a canvas is pushed by itself the moment it lands, and the other side fetches it the moment the reference arrives — seconds end to end, instead of waiting for the next full sweep or polling tick.",
      "surface": "design-ui"
    },
    {
      "id": "assets-arrive-and-heal",
      "version": "0.60.6",
      "date": "2026-08-15",
      "kind": "fix",
      "title": "Dropped images reach every machine, live",
      "summary": "A picture added on one machine now arrives on your others while you watch: the cloud serves it the moment it has it, and a broken-image frame heals in place when the file lands — no reload needed.",
      "surface": "design-ui"
    },
    {
      "id": "preview-edit-mode-toggle",
      "version": "0.60.6",
      "date": "2026-08-15",
      "kind": "feature",
      "title": "Preview, Edit and Present in one switch",
      "summary": "Canvases open in Edit — clicking selects right away, like Figma. A new three-way switch in the toolbar flips to Preview (the mock is live and clickable; comments and drawing still work) or straight into Presentation.",
      "surface": "design-ui"
    },
    {
      "id": "desktop-splash-recovers-itself",
      "version": "0.60.6",
      "date": "2026-08-15",
      "kind": "fix",
      "title": "No more getting stuck on “Starting…”",
      "summary": "The desktop app could go black and sit on the startup screen for good — often right after a command finished — with a force-quit as the only way out. It now finds its way back on its own, in about a second, and keeps your session instead of losing it.",
      "surface": "desktop"
    },
    {
      "id": "annotations-survive-cold-start",
      "version": "0.60.5",
      "date": "2026-08-14",
      "kind": "fix",
      "title": "Your drawings survive a cloud restart",
      "summary": "Stickers, drawings and dropped images on the canvas no longer vanish after the cloud restarts, and a freshly added image now reaches your other machines instead of showing a broken frame. Annotations keep their own edit time now, and an empty record can never silently replace real strokes.",
      "surface": "design-ui"
    },
    {
      "id": "self-contained-asset-sweep",
      "version": "0.60.5",
      "date": "2026-08-14",
      "kind": "fix",
      "title": "Asset upload works on a clean machine",
      "summary": "The desktop app uploads your project images with its own bundled runtime, so the upload no longer fails with an executable-not-found error on machines without developer tools installed.",
      "surface": "design-ui"
    },
    {
      "id": "continuous-sync-discovery",
      "version": "0.60.3",
      "date": "2026-08-13",
      "kind": "fix",
      "title": "A new canvas shows up everywhere, on its own",
      "summary": "Make a canvas in the cloud and it arrives on your desktop; make one on your desktop and it is live in the cloud, with cursors, straight away. Until now each side only looked for new canvases when it started up, so whichever end you had not restarted lately simply never saw them.",
      "surface": "design-ui"
    },
    {
      "id": "cloud-keeps-its-images",
      "version": "0.60.3",
      "date": "2026-08-13",
      "kind": "fix",
      "title": "Your cloud project keeps its images",
      "summary": "After the cloud moved your project between machines, photographs could come back as grey boxes and the only fix was re-uploading everything from your laptop. The cloud now restores those files itself, from the copy it already had.",
      "surface": "design-ui"
    },
    {
      "id": "sync-resync-button",
      "version": "0.60.0",
      "date": "2026-08-12",
      "kind": "feature",
      "title": "Resync your project without restarting Maude",
      "summary": "The Sync panel has a Resync button: one press re-checks everything against the cloud — every canvas and every file — instead of quitting and reopening. Uploads now run on their own too, so a failed upload stays a failed upload: Maude keeps working, the panel says what happened, and you can stop one part-way without leaving anything half-sent."
    },
    {
      "id": "figma-offline-fig-import",
      "version": "0.60.0",
      "date": "2026-08-12",
      "kind": "feature",
      "title": "Import a Figma file with no Figma account",
      "summary": "Drag in a .fig or .jam you exported and Maude reads it entirely offline — no token, no network, no seat. Images travel inside the file, so nothing expires and nothing is rate-limited. If the export is from a Figma version Maude does not recognise, it says so rather than guessing at the geometry."
    },
    {
      "id": "cloud-asset-push-completes",
      "version": "0.59.0",
      "date": "2026-08-12",
      "kind": "fix",
      "title": "Every asset reaches the cloud, in one go",
      "summary": "A project with a lot of images, fonts and video used to trickle a handful of files to the cloud per boot and never catch up. Now the whole set uploads in one pass, and a file the hub refuses is named with the real reason instead of a bare error code.",
      "surface": "design-ui"
    },
    {
      "id": "figma-explode-artboard",
      "version": "0.59.0",
      "date": "2026-08-12",
      "kind": "feature",
      "title": "Make an imported Figma artboard editable",
      "summary": "A Figma page imports as faithful pictures of your frames. Now you can pick one artboard and turn it into real, editable layout — Maude asks Figma's own Dev Mode for that frame's resolved design and converts it locally, so you get flex boxes and live text instead of an image. Needs the Figma desktop app open on the same file, with Dev Mode on.",
      "surface": "design-ui"
    },
    {
      "id": "figma-import-fidelity-fixes",
      "version": "0.59.0",
      "date": "2026-08-12",
      "kind": "fix",
      "title": "Figma imports keep their fonts and their board",
      "summary": "Three things a real migration surfaced: text in imported frames fell back to a serif when the font wasn't installed, an imported FigJam board landed dark inside screen chrome instead of on white paper, and a slow render check could quietly drop every image in a large import. Imported files now look like the ones you imported.",
      "surface": "design-ui"
    },
    {
      "id": "canvas-perf-benchmark",
      "version": "0.59.0",
      "date": "2026-08-12",
      "kind": "improvement",
      "title": "Measure a canvas's pan/zoom performance",
      "summary": "A new `maude design perf` command drives a scripted pan and zoom over a canvas and reports frame timings plus how much React work the gesture caused — with a delta against your previous run, so a change is either faster or it isn't. It can measure Chrome or Safari (WebKit, the engine the desktop app uses), and `/design:smoke --perf` folds it into a smoke sweep. Under the hood, pan and zoom no longer re-render the canvas tree while you're moving: on a 128-artboard canvas that removed about 90% of the renders a gesture used to trigger.",
      "surface": "design-ui"
    },
    {
      "id": "video-export-degraded-visible",
      "version": "0.59.0",
      "date": "2026-08-12",
      "kind": "fix",
      "title": "A video export tells you when it's missing audio",
      "summary": "If an MP4/WebM export can't get audio — an unsupported media element, or the fast renderer had to fall back to a frame-by-frame capture — the export no longer quietly reports \"done\" with a clean checkmark. The Exports panel now shows a degraded pill and a completion toast explaining exactly what was dropped and how to fix it, and it's recorded in your export history too.",
      "surface": "design-ui"
    },
    {
      "id": "sync-panel-per-file",
      "version": "0.59.0",
      "date": "2026-08-12",
      "kind": "feature",
      "title": "Watch your project sync, file by file",
      "summary": "Click the hub sync chip in the status bar to open the new Sync panel: every canvas with its own live state (syncing, synced, or refused and why), plus your images and fonts as they upload to the cloud. “Is my work actually up there?” now has a per-file answer.",
      "surface": "design-ui",
      "tour": [
        {
          "target": "[data-testid=\"open-sync\"]",
          "title": "Per-file sync progress",
          "body": "The hub sync chip is now a button — click it to see every canvas and asset move to the cloud, and which ones need attention.",
          "placement": "top"
        }
      ]
    },
    {
      "id": "cloud-brand-assets-and-steady-link",
      "version": "0.59.0",
      "date": "2026-08-12",
      "kind": "fix",
      "title": "Brand logos load in the cloud (and a steadier status bar)",
      "summary": "Your design system's own logos, signs, fonts and photos now show up in the cloud copy instead of grey placeholders — the last piece of \"the cloud copy matches your desktop\". And the desktop status bar no longer flickers to \"reconnecting\" when you step away for a minute; an idle link stays live.",
      "surface": "design-ui"
    },
    {
      "id": "cloud-sync-matches-your-desktop",
      "version": "0.58.3",
      "date": "2026-08-11",
      "kind": "fix",
      "title": "The cloud copy matches your desktop",
      "summary": "A project you connect to the cloud now looks exactly like it does on your machine: no duplicated files, every canvas opens instead of breaking, and your images show up instead of grey boxes. The cloud picker says \"Connected\" for the project this folder is linked to, with a Disconnect right there — and once you're connected, the cloud saves every change automatically, so there's one place your work is saved, not two.",
      "surface": "design-ui"
    },
    {
      "id": "cloud-link-self-renews",
      "version": "0.58.3",
      "date": "2026-08-11",
      "kind": "fix",
      "title": "Cloud sync keeps itself signed in",
      "summary": "A workspace you connect to the cloud stays synced — the session refreshes itself in the background instead of quietly expiring after a few hours and stranding your canvases on \"connecting…\". If a link ever can't sync for a few minutes it now says so and points you to reconnect, instead of spinning forever.",
      "surface": "design-ui"
    },
    {
      "id": "figma-import",
      "version": "0.58.3",
      "date": "2026-08-11",
      "kind": "feature",
      "title": "Bring your Figma work in",
      "summary": "Paste a Figma link and get the real thing, not a picture of it: design frames become editable canvases, a FigJam board becomes your whiteboard with its sticky notes and arrows still attached, and your colour and text styles become design tokens. Add a Figma access token once in Settings to get started.",
      "surface": "design-ui"
    },
    {
      "id": "sync-carries-the-path",
      "version": "0.58.2",
      "date": "2026-08-08",
      "kind": "fix",
      "title": "Canvases arrive in the folder you made",
      "summary": "A canvas you create in a nested folder now shows up on your other machine — and in the cloud — in that same folder, instead of quietly landing somewhere the file tree never listed. Connecting a project to an empty folder brings the whole thing down with its structure intact.",
      "surface": "design-ui"
    },
    {
      "id": "release-version-visible",
      "version": "0.58.0",
      "date": "2026-08-07",
      "kind": "improvement",
      "title": "See which version of Maude you are running",
      "summary": "The Studio status bar now shows the running version, and the hub admin header shows it beside the bundle hash — so you can tell what you are on without digging. In the cloud it is the same chip, because the cloud serves the same Studio.",
      "surface": "design-ui"
    },
    {
      "id": "cloud-connect-tells-you-what-happened",
      "version": "0.57.0",
      "date": "2026-08-07",
      "kind": "fix",
      "title": "Connecting a cloud project tells you what happened",
      "summary": "The line you see after Connect is now live and true: it moves from Connecting, through Syncing 40 of 75, to Synced — and names any canvases that came down from the project. Every outcome says what to do next, so a refused connection tells you to reconnect instead of sitting on “syncing” forever.",
      "surface": "design-ui"
    },
    {
      "id": "acp-turn-notifications",
      "version": "0.57.0",
      "date": "2026-08-07",
      "kind": "feature",
      "title": "Get notified when a background chat finishes",
      "summary": "Maude now sends a real notification when a chat finishes or needs your input — even in a project you're not currently viewing. The notification never shows what was said, only which project needs you.",
      "surface": "design-ui"
    },
    {
      "id": "cloud-projects-save-themselves",
      "version": "0.56.0",
      "date": "2026-08-06",
      "kind": "fix",
      "title": "Cloud projects save themselves",
      "summary": "A project open in Maude Cloud now records every edit as you make it — from a browser tab or from the app — so there is nothing to save by hand. The browser panel that used to ask you to Save and Publish is now simply History, showing what was already kept. Drawn annotations are stored where they are read from again, so they survive a reload.",
      "surface": "design-ui"
    },
    {
      "id": "desktop-cloud-live-pairing",
      "version": "0.56.0",
      "date": "2026-08-06",
      "kind": "feature",
      "title": "Desktop and browser now meet live in the cloud",
      "summary": "Open a Maude Cloud project in the app and in a browser tab at the same time, and you now see each other — cursors, edits, everything, live. Rolling out to pilot projects first.",
      "surface": "design-ui"
    },
    {
      "id": "gemma-scout-ollama-easy-install",
      "version": "0.56.0",
      "date": "2026-08-06",
      "kind": "improvement",
      "title": "Easier Gemma scout setup — Ollama supported",
      "summary": "Scene-aware keyframes' Gemma scout now also runs on Ollama — one app and `ollama pull gemma3:4b`, no Python required. The Settings card hands you copy/paste install commands for both runtimes and unlocks itself automatically once one is installed.",
      "surface": "design-ui"
    },
    {
      "id": "cloud-connect-browser-open-and-decision-modal",
      "version": "0.55.0",
      "date": "2026-08-05",
      "kind": "fix",
      "title": "Signing in opens your browser again",
      "summary": "Signing in to Maude Cloud from the app used to go nowhere — the browser never opened, the dialog claimed it had, and you were left holding a code. It opens now, straight to the page with your code already filled in, and the address is always there to click or copy if it doesn't. \"Open in Maude\" also asks a clearer question: it names the folder you have open and the cloud project it would connect it to, says exactly what syncs, and warns you if the two don't look like the same thing.",
      "surface": "design-ui"
    },
    {
      "id": "activity-says-why-we-looked",
      "version": "0.55.0",
      "date": "2026-08-05",
      "kind": "improvement",
      "title": "Your project's activity says why we looked",
      "summary": "The activity page for a cloud project used to show that the platform touched it. Now it shows the reason given at the time, in plain words — and it includes the platform-wide checks that sweep every project, which were previously the only ones you could not see.",
      "surface": "design-ui"
    },
    {
      "id": "your-own-place-in-a-shared-project",
      "version": "0.54.0",
      "date": "2026-08-04",
      "kind": "improvement",
      "title": "A shared project keeps your place",
      "summary": "Open a cloud project and you land on a canvas, not an empty pane, with one line telling you what you can do there. Your open canvas and your pan and zoom are now yours alone — a teammate moving around no longer moves you. And reading a project no longer means reading it blind: reviewers can open the Inspector and Layers panels, which quietly refused to appear before.",
      "surface": "design-ui"
    },
    {
      "id": "the-real-studio-in-your-browser",
      "version": "0.54.0",
      "date": "2026-08-04",
      "kind": "feature",
      "title": "The full studio, in your browser",
      "summary": "A cloud project opened in a browser now gives you the same application as the desktop — Files, Layers, Inspector, search, the toolbar and the live status — and your designs look like your designs: photographs, logos and webfonts load on the canvas. The browser tab also names the account you are signed in as, and lets you sign out.",
      "surface": "design-ui"
    },
    {
      "id": "design-system-component-styles-load",
      "version": "0.54.0",
      "date": "2026-08-04",
      "kind": "fix",
      "title": "Design-system styles render on canvases",
      "summary": "Canvases in a project with a bootstrapped design system were drawing without their component styles — buttons, cards, inputs and the rest fell back to unstyled defaults. They render correctly again, on the desktop as well as in the browser.",
      "surface": "design-ui"
    },
    {
      "id": "cloud-live-collaboration-connects",
      "version": "0.54.0",
      "date": "2026-08-04",
      "kind": "fix",
      "title": "Live collaboration works in the browser",
      "summary": "Opening a cloud project in two browsers now actually collaborates: you see each other's cursors with names, annotations and comments appear live for everyone, and every change is saved to the project. Before, the live channel never connected — selections crossed over anonymously and annotations silently stayed on the machine that drew them.",
      "surface": "design-ui"
    },
    {
      "id": "bug-reports-see-the-maude-window",
      "version": "0.53.2",
      "kind": "improvement",
      "title": "Bug reports now show the Maude window",
      "summary": "Report a bug used to attach only the artboard, so anything wrong with Maude itself — the menus, the sidebar, a panel — was never in the picture. It now captures the whole window too, and you can attach your own screenshot for whatever a fresh capture can't show, like an open menu or a stuck spinner.",
      "surface": "design-ui",
      "date": "2026-08-03"
    },
    {
      "id": "open-your-project-in-a-browser",
      "version": "0.53.0",
      "date": "2026-08-02",
      "kind": "feature",
      "title": "Open your project in a browser — early access",
      "summary": "Send a teammate a link and they open the project in their browser, signed in with their Maude account and with the rights their role gives them. This first release shows a simplified view: the full Maude Studio — Files, Layers, Inspector, search — and your project's own images and fonts are coming next.",
      "surface": "design-ui"
    },
    {
      "id": "viewer-means-viewer",
      "version": "0.53.0",
      "date": "2026-08-02",
      "kind": "feature",
      "title": "A viewer sees no editing tools at all",
      "summary": "Invite someone as a viewer and the editing simply is not there — not greyed out, not hidden, absent — in the browser and in the app alike. They can look, comment and download, which is what the role has always promised.",
      "surface": "design-ui"
    },
    {
      "id": "design-sync-pull-request",
      "version": "0.53.0",
      "date": "2026-08-02",
      "kind": "feature",
      "title": "Sync your designs into your own repo as a pull request",
      "summary": "Point Maude at a GitHub repository and choose what lands: the whole workspace as a backup on its own branch, or your design folder inside your working repo — as a normal pull request you review and merge. Each choice says what it will do before you save it.",
      "surface": "design-ui"
    },
    {
      "id": "desktop-opens-again",
      "version": "0.52.2",
      "date": "2026-08-02",
      "kind": "fix",
      "title": "The desktop app opens again",
      "summary": "0.51.1 launched to an empty window on every project — the app booted fine and the interface simply never drew. It only broke inside the desktop shell, which is why a browser and a dev build both looked healthy. Fixed, and the release now refuses to ship an app whose interface does not come up.",
      "surface": "desktop"
    },
    {
      "id": "manual-timeline-editor",
      "version": "0.52.0",
      "date": "2026-08-02",
      "kind": "feature",
      "title": "Edit video on the timeline, like iMovie",
      "summary": "Split, trim, retime, crop, grade, and lay clips across stacked layers right on the timeline — drag to reorder, drop to make a new layer, add transitions, drop AI placeholder clips, and pin comments to an exact frame with the C tool.",
      "surface": "design-ui"
    },
    {
      "id": "report-a-bug-from-the-app",
      "version": "0.52.0",
      "date": "2026-08-02",
      "kind": "feature",
      "title": "Report a bug without leaving Maude",
      "summary": "Hit a problem? Help › Report a Bug… files it for you — with a screenshot of your canvas you can black-out before sending, and a review screen where you choose exactly what gets attached. The report lands on the public Maude issue tracker; screenshots and logs stay in a private space only maintainers can open.",
      "surface": "design-ui",
      "tour": [
        {
          "target": "[data-tour=\"help\"]",
          "title": "Report a bug",
          "body": "Open Help › Report a bug… whenever something breaks — a screenshot and the details maintainers need are gathered for you, and nothing is sent until you approve it.",
          "placement": "bottom"
        }
      ]
    },
    {
      "id": "maude-deeplink-open-in-app",
      "version": "0.51.0",
      "date": "2026-07-30",
      "kind": "feature",
      "title": "Open a cloud project straight from the browser",
      "summary": "Press “Open in Maude” on your project’s page and the app opens it signed in — a one-time link, nothing to copy. The app always asks before connecting, and viewers get a working “View in the browser” door instead of a dead button.",
      "surface": "design-ui"
    },
    {
      "id": "maude-cloud-signin-attach",
      "version": "0.50.0",
      "date": "2026-07-30",
      "kind": "feature",
      "title": "Sign in to Maude Cloud from the studio",
      "summary": "The sidebar footer now signs you into Maude Cloud with a short code — no pasted addresses or keys — and connects this project to your cloud workspace in one click.",
      "surface": "design-ui"
    },
    {
      "id": "file-tree-move-and-folders",
      "version": "0.50.0",
      "date": "2026-07-30",
      "kind": "feature",
      "title": "Organize your files — folders, drag & drop, move",
      "summary": "The file tree is a real file explorer now. Create folders from the header or right-click a canvas or folder for Move to… / New folder here / Delete folder — or just drag a canvas (or a whole folder) onto another folder, including back out to the top level. Every history, comment, annotation, and camera position moves with it, and every move shows an Undo toast.",
      "surface": "design-ui"
    },
    {
      "id": "figma-smart-select",
      "version": "0.47.0",
      "date": "2026-07-21",
      "kind": "feature",
      "title": "Click to select, like Figma",
      "summary": "Your mock now opens live — click a button or link to actually try it. When you want to edit, press V: a plain click selects the object under your cursor, ⌘-click reaches the deepest element, double-click drills in one level, and Enter / Shift+Enter / Tab walk the layer tree. The toolbar's first two tools are Browse (live) and Select (V). The Layers panel grew up too: wrapper groups show at their real depth, component instances render purple with their component's name, you can lock a layer (locked layers can't be selected or dragged on the canvas), double-click a layer's name to rename it, and the tree auto-reveals whatever you pick on the canvas. And when a flex layout fights your manual tweaks, right-click the container → \"Convert children to absolute position\" freezes every child where it sits so you can drag them freely (one undo reverts it) — or convert a whole artboard at once (right-click the artboard, or when switching its kind to Digital/Print). And when a component instance needs its own look, hit Detach on the Inspector's Shared badge — edits stay local to that one instance. Text editing got Figma's exact rhythm too: drilling down to a text layer selects all of it (ready to overwrite), and once you're in, a click places the cursor, a double-click grabs a word, and a triple-click grabs everything.",
      "surface": "design-ui"
    },
    {
      "id": "acp-safe-defaults-and-attention-notifications",
      "version": "0.47.0",
      "date": "2026-07-21",
      "kind": "improvement",
      "title": "Fewer prompts in chat, and a nudge when you're needed",
      "summary": "The assistant chat now runs common design-workflow actions — browser checks, your own local dev-server requests, reading files, and web search — without asking every time. And when a chat is waiting on your approval or an answer, Maude now sends a system notification so you don't miss it.",
      "surface": "design-ui"
    },
    {
      "id": "web-artboards",
      "version": "0.47.0",
      "date": "2026-07-21",
      "kind": "feature",
      "title": "Web artboards — breakpoints, duplicate, and a grid editor",
      "summary": "Set an artboard's kind to Web and it becomes a responsive viewport: a small chip shows its current breakpoint, and \"Duplicate at width…\" (right-click or the Inspector) clones it at Mobile/Tablet/Laptop/Desktop widths for reflow testing. Grid containers also get a new Grid section in the Inspector — define columns and rows with px/%/fr/em/auto units, drag the gutters directly on the canvas, and place children into specific cells.",
      "surface": "design-ui"
    },
    {
      "id": "scene-aware-video-analyze",
      "version": "0.46.0",
      "date": "2026-07-18",
      "kind": "feature",
      "title": "Analyze a video — picture and sound — in one command",
      "summary": "Run /design:video-analyze on a clip and Maude reads it end to end: it picks keyframes at real scene changes and action beats (not a blind frame rate), transcribes the audio, and writes a summary with shots, on-screen text, mood, and the best moment to use. A new Settings → Video section lets you choose the analysis engine and, on Apple Silicon, download an optional local Gemma model for smarter shot detection.",
      "surface": "design-ui"
    },
    {
      "id": "print-artboards",
      "version": "0.46.0",
      "date": "2026-07-18",
      "kind": "feature",
      "title": "Design flyers, posters, and business cards — print-ready",
      "summary": "Give a print artboard a real paper size (A4, Letter, business card, and more) and it resolves to the correct bleed-inclusive dimensions automatically. Toggle bleed/trim/margin guides from the View menu while you work, then export a 300–600 DPI PNG or a print-ready PDF with correct page boxes and crop/registration marks.",
      "surface": "design-ui",
      "learnMore": "https://maude.sh/docs/design/print"
    },
    {
      "id": "artboard-kinds-foundation",
      "version": "0.46.0",
      "date": "2026-07-18",
      "kind": "feature",
      "title": "Artboards now know what they are",
      "summary": "Give any artboard a kind — Digital, Print, Web, or Video — from the Inspector or the right-click menu, and it gets its own chrome. New generic layout guides (columns, rows, grid) can be toggled on from the View menu for any artboard. Print- and web-specific tools land in follow-up releases.",
      "surface": "design-ui"
    },
    {
      "id": "acp-ask-user-question",
      "version": "0.45.2",
      "date": "2026-07-15",
      "kind": "feature",
      "title": "Claude can ask you real questions in chat",
      "summary": "When Claude needs a decision from you mid-task, it can now ask directly — a multi-choice or free-text form appears right in the chat panel, the same AskUserQuestion picker you'd see in the Claude Code CLI, instead of falling back to plain text.",
      "surface": "design-ui",
      "tour": [
        {
          "target": "[data-testid=\"chat-elicit-prompt\"]",
          "title": "Claude asking you something",
          "body": "Pick an option, type your own answer, or Skip — Cancel aborts whatever Claude was about to do with your answer.",
          "placement": "top"
        }
      ]
    },
    {
      "id": "acp-live-capabilities",
      "version": "0.45.2",
      "date": "2026-07-15",
      "kind": "feature",
      "title": "Model, mode & permission controls in chat",
      "summary": "Switch models, effort, and permission mode right from the chat panel — pulled live from your own Claude Code install, never a fixed list. Pick Manual to approve each tool action yourself, or Bypass for hands-off editing; plus grouped tool calls, message Copy/Retry, and a context-usage meter.",
      "surface": "design-ui",
      "tour": [
        {
          "target": "[data-testid=\"chat-mode-picker\"]",
          "title": "Live from your Claude Code",
          "body": "Model, effort, and permission mode are pulled straight from your own Claude Code install — pick Manual to approve each action, or Bypass for hands-off editing.",
          "placement": "top"
        }
      ]
    },
    {
      "id": "bring-your-brand",
      "version": "0.44.0",
      "date": "2026-07-14",
      "kind": "feature",
      "title": "Bring your existing brand into Maude",
      "summary": "Have a logo already? Upload it from the Quick setup checklist and Maude pulls out its color palette (and any recognizable font names) to seed a new design system — nothing is applied automatically, you confirm every choice during setup. Works with SVG logos; safety-checked before anything touches your project.",
      "surface": "design-ui",
      "tour": [
        {
          "target": "[data-testid=\"onboarding-bring-brand\"]",
          "title": "Bring my existing brand",
          "body": "Upload a logo SVG to seed a new design system's colors and fonts from it."
        }
      ]
    },
    {
      "id": "inspector-designer-mode",
      "version": "0.44.0",
      "date": "2026-07-14",
      "kind": "feature",
      "title": "A Figma-friendly view of the CSS panel",
      "summary": "The Inspector now speaks two languages. Advanced keeps the real CSS property names; Designer regroups the exact same controls into Figma-familiar sections — Fill, Stroke, Corner radius, Auto layout, Effects, Opacity, Text — and relabels the rows, so you can style without thinking in CSS. Flip between them from the small toggle in the panel's top-right corner, or set a default in Settings → Appearance. Same live edits underneath, and a value set in one view reads back correctly in the other. New in both views: Blur and Blend controls, plus a single 9-point pad for auto-layout alignment.",
      "surface": "design-ui",
      "tour": [
        {
          "target": "[data-tour=\"cp-mode\"]",
          "title": "Advanced or Designer",
          "body": "Toggle the CSS panel between raw property names and Figma-style vocabulary. Your choice is remembered — you can also set it in Settings → Appearance.",
          "placement": "left",
          "inspector": true,
          "tab": "css",
          "requireSelection": true
        }
      ]
    },
    {
      "id": "watch-the-intro",
      "version": "0.44.0",
      "date": "2026-07-14",
      "kind": "feature",
      "title": "Watch the intro, right inside Maude",
      "summary": "There's now a short product showreel (about a minute and a half) you can watch without leaving the app — Help → Watch the intro, or the same button on the welcome screen the first time you open Maude. It walks through the whole loop: a design system built from a conversation, the infinite canvas, pointing and commenting to direct an AI edit, live multiplayer, and shipping the result. Also lands as its own canvas (Maude Explainer) if you want to open it in the canvas browser like anything else.",
      "surface": "design-ui",
      "tour": [
        {
          "target": "[data-tour=\"help\"]",
          "title": "Watch the intro",
          "body": "Help → Watch the intro plays the full showreel without leaving Maude."
        }
      ]
    },
    {
      "id": "bulk-media-insert",
      "version": "0.44.0",
      "date": "2026-07-14",
      "kind": "feature",
      "title": "Insert several photos at once",
      "summary": "The media picker now supports multi-select — pick several photos (or a mix of photos, videos, and audio) in one go instead of one at a time. Choose whether they land inside your artboard or float on the canvas as annotations; the picker figures out the sensible default (video and audio always go on the canvas, since only images can drop into an artboard) and lets you switch. Dragging several files from Finder onto the canvas at once is also more reliable now — every dropped file lands, even in a large batch.",
      "surface": "design-ui"
    },
    {
      "id": "ai-video-generation",
      "version": "0.44.0",
      "date": "2026-07-14",
      "kind": "feature",
      "title": "Generate video clips for your reels",
      "summary": "The BYOK generator now makes video. Bring your own Google key and generate a clip with Veo — a text prompt (\"slow drone push over an alpine lake at dawn\"), or seed it from a still you already generated so the clip matches your hero's look. The clip lands in your assets like any other footage, and Maude treats it as first-class: when you build a reel it watches the generated clip alongside your real footage and places it as a beat, so you can fill a missing shot without hand-sourcing one. Video takes a few minutes and runs in the background — you'll get the finished clip when it's ready. Add your key under File → Settings — AI generation (⌘,); it stays on your machine.",
      "surface": "design-ui"
    },
    {
      "id": "ai-audio-generation",
      "version": "0.44.0",
      "date": "2026-07-14",
      "kind": "feature",
      "title": "Generate music, voiceover & subtitles",
      "summary": "The BYOK generator now does audio. Bring your own ElevenLabs key and generate a music bed, sound effects, or a text-to-speech voiceover — one key covers the whole stack — and the track lands in your assets ready to drop under a reel. Before you spend credits on a music or SFX track, Maude searches audio you've already made (and your own ElevenLabs history — re-downloading it costs nothing) and offers a match to reuse. Subtitles are free and need no key at all: `maude design transcribe` runs whisper.cpp locally on any clip and writes word-timed SRT/VTT captions. Local setup is one click — Settings → Subtitles → Download model — and Maude auto-converts video containers (no ffmpeg wrangling) and picks the model for you. You pick the subtitle engine — local whisper, ElevenLabs Scribe, or Groq — in Settings; it's an explicit choice, so Maude never silently switches to a paid cloud engine behind your back. In a reel, generated music/voiceover become layered audio tracks (the music ducks under the voice) and the subtitles become a caption track that renders right on the video. Add your keys under File → Settings — AI generation (⌘,); they're stored only on your machine.",
      "surface": "design-ui"
    },
    {
      "id": "ai-media-generation",
      "version": "0.44.0",
      "date": "2026-07-14",
      "kind": "feature",
      "title": "Generate images with your own AI key",
      "summary": "Bring your own Google (Nano Banana) API key and generate images right inside Maude — and the image lands straight on your canvas, not in a dead-end dialog. Use the Generate action (⌘K → \"Generate with AI\"), the command line, or just ask in the chat panel (\"generate a hero image of a mountain lake\"); the finished picture drops onto the artboard you're looking at. Add your key under File → Settings — AI generation (⌘,); it's stored only on your machine, sent straight to the provider, and never touches a canvas or your git history. Want to change a generated image? Ask to edit it (\"make the sky purple\") for a fresh AI-edited version, or fine-tune it in the Photo tab — every result is a normal asset you can place, edit, and export. Audio and video generation are on the way.",
      "surface": "design-ui",
      "tour": [
        {
          "target": "[data-tour=\"menubar-file\"]",
          "title": "AI generation settings",
          "body": "Open File → Settings — AI generation (⌘,) to add your provider key, then Generate with AI from the ⌘K palette.",
          "placement": "bottom"
        }
      ]
    },
    {
      "id": "photo-editor",
      "version": "0.43.0",
      "date": "2026-07-10",
      "kind": "feature",
      "title": "Edit photos right on the canvas",
      "summary": "A new Photo tab in the Inspector lets you tune any photo on your canvas — brightness, contrast, saturation, exposure, hue, sepia, grayscale, duotone, grain, pattern overlays, and vignette/reveal masks — with a live preview, whether it's an image you placed in an artboard or one you dropped/pasted onto the canvas. One click removes the background entirely (runs in your browser, no upload). Reach it from the Inspector's Photo tab or right-click \"Edit Photo…\". Every edit is also scriptable headlessly via /design:photo, so an agent can tune a photo without touching a slider.",
      "surface": "design-ui",
      "tour": [
        {
          "target": "[data-tour=\"inspector-tabs\"]",
          "title": "Photo tab",
          "body": "Select any photo on the canvas and a Photo tab appears here — adjustments, duotone, grain, pattern, masks, and one-click background removal.",
          "placement": "bottom"
        }
      ]
    },
    {
      "id": "footage-analysis-director-reel",
      "version": "0.43.0",
      "date": "2026-07-10",
      "kind": "feature",
      "title": "Turn a folder of clips into a cut — Maude watches your footage first",
      "summary": "New /design:reel: point Maude at a folder of raw video (or the clips already on your canvas) and it actually WATCHES the footage first — pulling keyframes from each clip to find the good shots and read its character — then directs them like an editor into a graphics-laden cut with titles and transitions, ready to scrub on the Timeline and export to MP4. It can use several moments from one clip, orders them so they tell a story, and needs no extra install (frames are decoded in the browser, no ffmpeg). Analysis is vision-only; drop in a music track and it rides under the finished cut.",
      "surface": "design-ui"
    },
    {
      "id": "ssh-remote-publish-and-pr-flow",
      "version": "0.43.0",
      "date": "2026-07-10",
      "kind": "feature",
      "title": "Share to a protected branch — via a pull request",
      "summary": "On a GitHub project, \"Add to Shared version\" now pushes your draft and opens a pull request into main, so it works even when main is protected and a direct push would be rejected — the pull-request link opens right from the dialog. Publishing and getting the latest now work on SSH remotes too, and a blue \"Get latest\" button appears in the dock the moment a teammate's work is ahead, so you're nudged to pull without hunting for it.",
      "surface": "design-ui"
    },
    {
      "id": "unified-text-editing",
      "version": "0.43.0",
      "date": "2026-07-10",
      "kind": "feature",
      "title": "Edit any text on the canvas, inline",
      "summary": "Every kind of text on the canvas now edits the same predictable way — click to place a blinking caret, type, Enter to confirm, Shift+Enter for a new line — across an element's copy, shape and sticky labels, standalone text, and section titles. Text that's filled in from a list or variable (like cards built from data) is now editable in place too: double-click and change the words directly, and it's traced back to the right source. Only genuinely computed text still sends you to chat or /design:edit.",
      "surface": "design-ui"
    },
    {
      "id": "whiteboard-annotation-improvements",
      "version": "0.43.0",
      "date": "2026-07-10",
      "kind": "feature",
      "title": "Bulk resize, sticky authors & fun stickers",
      "summary": "Select several stickies, shapes or images together and resize the whole group proportionally with live corner handles, instead of one at a time. Sticky notes now show who drew them with a name badge. Text editing got a real pass: a visible blinking caret everywhere you edit text, double-click places the caret where you clicked instead of selecting everything, hovering text shows a text cursor, and a new shape or sticky auto-focuses so you can start typing immediately. Also new: a searchable, FigJam-style sticker picker with genuinely fun (not emoji) bundled sticker packs, and /design:board now understands generation requests like \"make me a team sprint retro\" directly.",
      "surface": "design-ui"
    },
    {
      "id": "background-export-notification-center",
      "version": "0.42.0",
      "date": "2026-07-09",
      "kind": "feature",
      "title": "Exports now run in the background",
      "summary": "Hitting Export no longer locks up the dialog until the render finishes — it closes right away and a new Exports button in the menubar tracks progress, with a toast when it's ready and a Download/Save button. Multiple exports can run at once, so a quick PNG doesn't have to wait behind a slow PDF or video. Also fixes a bug where exporting every artboard on a canvas separately could scramble some of the pages.",
      "surface": "design-ui",
      "tour": [
        {
          "target": "[data-tour=\"exports\"]",
          "title": "Exports run in the background",
          "body": "Kick off an export and keep working — this button shows progress and lights up when it's ready to download or save.",
          "placement": "bottom"
        }
      ]
    },
    {
      "id": "desktop-intel-mac-support",
      "version": "0.41.0",
      "date": "2026-07-08",
      "kind": "improvement",
      "title": "Desktop app now runs on Intel Macs",
      "summary": "The macOS desktop app was Apple-Silicon-only — it now ships as a universal binary, so Intel Mac users can download and run it natively too, no Rosetta workaround needed.",
      "learnMore": "https://maude.sh/desktop",
      "surface": "design-ui"
    },
    {
      "id": "element-editing-robustness",
      "version": "0.41.0",
      "date": "2026-07-08",
      "kind": "feature",
      "title": "Edit elements like Figma or Webflow",
      "summary": "Selecting an element now opens the Inspector automatically, and drag handles let you resize it directly on the canvas (corner + edge, Shift to lock aspect, Alt to resize from center) — artboards get free-hand resize too. Delete an element with the Del key or the right-click menu, or insert a new div, text, or image straight into the artboard; add a whole new empty artboard from a Desktop/Laptop/Tablet/Mobile preset. The Inspector gained Position (with a constraints-style inset box), Transform, and Media sections (object-fit, aspect ratio), plus on-canvas dragging for padding and gaps. Swap a photo or video (or a background image) from a built-in asset picker. Editing now works on design-system specimens too, not just your UI canvases. A shared component always tells you plainly whether an edit is local to this artboard or shared across every place it's used, and moving one instance never drags the others along. Rounding it out: keyboard nudge + tree navigation, Cmd+D duplicate, copy/paste style, align and distribute a multi-selection, deep-select + \"Select layer\" for nested/overlapping elements, Alt-hover distance measurement, a free-hand rotate handle, and a proper Fixed/Hug/Fill sizing control for flex layouts. Every one of these is undoable with Cmd+Z.",
      "surface": "design-ui"
    },
    {
      "id": "whiteboard-ai-toolkit",
      "version": "0.41.0",
      "date": "2026-07-08",
      "kind": "feature",
      "title": "The Assistant now reads and draws on your whiteboard",
      "summary": "Sketch stickies, shapes, and arrows on a canvas and the Assistant understands not just which artboard a note sits on, but which button or element it's pointing at. Ask it to pin a note next to something specific, and it'll drop it right there with an arrow pointing at it — no guessing coordinates. It can also lay out a whole tidy board for you: a sprint retro, a kanban, a week of social posts, a roadmap, a brainstorm, a user-flow diagram — just ask.",
      "surface": "design-ui"
    },
    {
      "id": "timeline-clip-editing",
      "version": "0.40.0",
      "date": "2026-07-05",
      "kind": "feature",
      "title": "Hand-edit your video comps on the timeline",
      "summary": "After the Assistant generates a video, fine-tune it yourself. On the timeline you can drag a clip to move it, drag its right edge to trim (both snap to second-ticks and neighbour clip edges; hold Alt to drag freely), drop a video / image / audio file to add a clip, raise or lower a clip's stacking, swap a clip's footage (⇄), or remove a clip (×). Right-click any clip for the same menu — replace, move, hide, or remove — and hide keeps a clip in place while it stops rendering. Clips that layer a background over a title expand into per-layer rows, so you can see and replace the video separately from its caption. Transition-based showreels reorder and accept dropped clips too. Keyboard shortcuts help: Space plays/pauses, arrows step frames (Shift = a second), Home/End jump to the ends, and . / , hop between keyframes. Prefer to start from footage? Drop video/audio clips anywhere on the canvas as reference chips, then File then Assemble dropped clips into video builds a real, editable comp in one click. Editing is multi-comp-safe — a change always lands on the clip you meant, never one in another composition. And inline text / CSS tweaks you make on the canvas now actually stick.",
      "surface": "design-ui"
    },
    {
      "id": "video-comp-remotion",
      "version": "0.40.0",
      "date": "2026-07-05",
      "kind": "feature",
      "title": "Design videos & animations, right in the canvas",
      "summary": "A canvas artboard can now be a real motion composition (powered by Remotion) — scrub it in the built-in player, drop clips and music onto it, direct edits from the Assistant (\"turn this into an animation\", \"join these 4 clips with a crossfade\"), and export the artboard as MP4 or GIF. Rendered by Maude's own capture engine — no extra install, no native downloads. Remotion is free for individuals and teams of up to 3; larger orgs need their own Remotion license.",
      "surface": "design-ui"
    },
    {
      "id": "file-tree-live-config-reload",
      "version": "0.40.0",
      "date": "2026-07-05",
      "kind": "fix",
      "title": "New design systems show up in the file tree instantly",
      "summary": "Bootstrapping a design system from the Assistant (or editing your design config by hand) now updates the file tree live — new canvas groups and their files appear as they're created, no server restart needed.",
      "surface": "design-ui"
    },
    {
      "id": "acp-chat-cross-restart-resume",
      "version": "0.39.1",
      "date": "2026-07-03",
      "kind": "fix",
      "title": "The Assistant remembers your conversation after a restart",
      "summary": "Killed the app to grab an update, or restarted the dev server mid-chat? The Assistant now picks up the actual conversation where you left off instead of quietly starting fresh while the old messages just sat there.",
      "surface": "design-ui"
    },
    {
      "id": "acp-chat-image-thumbnails",
      "version": "0.39.0",
      "date": "2026-07-03",
      "kind": "feature",
      "title": "See images right in the chat",
      "summary": "Images now show up as thumbnails in the Assistant panel — paste a screenshot into the box and it appears in your message, and when Claude points to an image it made (like a /design:screenshot capture) that shows up too. Click any thumbnail to open it full-size in a lightbox.",
      "surface": "design-ui"
    },
    {
      "id": "acp-context-hardening",
      "version": "0.38.0",
      "date": "2026-07-03",
      "kind": "feature",
      "title": "The Assistant keeps your canvas in view",
      "summary": "Selection now sticks per canvas: pick an element, switch to another canvas and back, and it's still selected — no more losing your place. Every message you send to the Assistant carries the canvas and element you had chosen, frozen at send time and shown as a chip above the box, so switching canvases while Claude works never leaves it guessing what you meant. And a fresh chat already knows it's running inside the Maude studio, so you can just say \"make this bigger\" and go.",
      "surface": "design-ui"
    },
    {
      "id": "acp-composer-paste-and-send",
      "version": "0.38.0",
      "date": "2026-07-03",
      "kind": "feature",
      "title": "Paste, copy, and send in the Assistant",
      "summary": "Copy and paste now work in the desktop app, and Enter sends your message (Shift+Enter for a new line). Paste a file path, a link, or an image straight from your clipboard and it becomes a tidy chip — with a line underneath showing exactly what each chip will send, so nothing hidden reaches Claude. A pasted screenshot is saved with the chat and Claude reads it on send.",
      "surface": "design-ui"
    },
    {
      "id": "slash-command-autocomplete",
      "version": "0.38.0",
      "date": "2026-07-03",
      "kind": "feature",
      "title": "Slash-command autocomplete in the Assistant",
      "summary": "In the Assistant chat, type \"/\" to see the design and flow commands your Claude actually has — filter as you type, pick with the keyboard or a click (it prefills, never sends). A command that exists lights up as a pill right inside the box, so you don't have to remember the exact names.",
      "surface": "design-ui"
    },
    {
      "id": "drag-to-reorder",
      "version": "0.38.0",
      "date": "2026-07-03",
      "kind": "feature",
      "title": "Drag to reorder elements",
      "summary": "Rearrange a canvas by hand. Drag the element itself on the canvas — drop on the top/left half to go above, the bottom/right half to go below, or the middle of a box to drop inside it — and the layout reflows LIVE while you hold, Figma-style, with the neighbours gliding into place; Esc puts it back. Or drag in the Layers panel, which now mirrors the canvas both ways as you move. Even instances of the same reusable component (a board's columns, repeated cards) reorder now. Every reorder rewrites your .tsx source and undoes with ⌘Z / redoes with ⌘⇧Z. Keyboard: with the panel focused, ↑/↓ walk the selection, Alt+↑/↓ move within the parent, Alt+Shift+↑/↓ move across.",
      "surface": "design-ui"
    },
    {
      "id": "new-project-menu-and-local",
      "version": "0.37.0",
      "date": "2026-07-01",
      "kind": "feature",
      "title": "Start a project from the menu — or fully local",
      "summary": "New Project… is now in the File menu (⌘N), not just onboarding. And you can create a project on This computer only — a plain local git repo with no GitHub and no remote, that you can publish later. It works even when you're signed out.",
      "surface": "design-ui"
    },
    {
      "id": "desktop-onboarding-fixes",
      "version": "0.36.2",
      "date": "2026-06-30",
      "kind": "fix",
      "title": "A smoother first run",
      "summary": "Onboarding got a polish. If you're already signed in, the GitHub step now says Continue instead of asking you to sign in again, and your signed-in status shows reliably. Cancelling the sign-in code screen frees the button right away, “Merge this branch → main” shows progress while it runs, and a brand-new project opens to a starter canvas instead of an empty workspace.",
      "surface": "design-ui"
    },
    {
      "id": "git-native-switcher",
      "version": "0.36.0",
      "date": "2026-06-30",
      "kind": "feature",
      "title": "The version switcher now speaks Git",
      "summary": "The bottom-left switcher uses plain Git names now — your branches by name, main as the default branch everyone shares, and a one-click “Merge this branch → main.” It opens instantly even on repos with hundreds of branches (it uses your installed Git when you have it), and “Pull a local copy” lists every repo you can reach on GitHub — including ones shared through your team or organization.",
      "surface": "design-ui"
    },
    {
      "id": "remote-drafts-in-switcher",
      "version": "0.36.0",
      "date": "2026-06-30",
      "kind": "feature",
      "title": "Open any draft, including your team's",
      "summary": "The version switcher now shows drafts that live on your team's shared remote — not only the ones already on this computer. They're marked “from your team,” and picking one downloads it for you. Hit Refresh to pull in a draft someone just made, search to find one in a long list, and your most recently worked-on drafts sort to the top. Works whether your project connects over SSH or HTTPS.",
      "surface": "design-ui"
    },
    {
      "id": "desktop-ai-chat-fix",
      "version": "0.32.1",
      "date": "2026-06-24",
      "kind": "fix",
      "title": "AI chat now opens in the desktop app",
      "summary": "If the Assistant panel said AI editing wasn't ready even when Claude Code and the plugins were all installed, that's fixed. The desktop app now includes everything the chat needs and runs on your own installed Claude — open the Assistant (the ✦ in the menubar, or ⌘⇧A) and it just works.",
      "surface": "design-ui"
    },
    {
      "id": "ai-editing-readiness-check",
      "version": "0.32.0",
      "date": "2026-06-24",
      "kind": "feature",
      "title": "See what AI editing needs",
      "summary": "The welcome screen and the Assistant panel now show whether AI editing is ready — and if Claude Code, the maude CLI, or the Maude plugins are missing, they hand you the exact step to fix it. Check it any time under Help → Check AI editing readiness.",
      "surface": "design-ui"
    },
    {
      "id": "native-desktop-app",
      "version": "0.31.0",
      "date": "2026-06-23",
      "kind": "feature",
      "title": "Maude is now a desktop app",
      "summary": "Install Maude for macOS or Windows — download, open, sign in with GitHub, and start designing, with no terminal at any step. It keeps itself up to date in the background: when a new version is ready you'll see “Maude updated · restart to apply,” and one click puts you on the latest. No npm, no command line.",
      "learnMore": "https://maude.sh/desktop",
      "surface": "design-ui"
    },
    {
      "id": "native-acp-chat-sidepanel",
      "version": "0.31.0",
      "date": "2026-06-23",
      "kind": "feature",
      "title": "Chat with Claude inside Maude",
      "summary": "Open the Assistant panel (the ✦ in the menubar, or ⌘⇧A) and ask Claude for an edit, a critique, or a new screen — it changes the canvas while you watch, no terminal needed. It runs on your own installed Claude on your Pro/Max subscription: no login inside Maude, never metered API billing. Open several chats and work on different things at once — each runs in the background, so switching never interrupts a running one, and a switcher shows which chats are running, open, or saved (start a new one or delete an old one). Chats are saved per project and reopen with their history. Pick the model and effort, watch what Claude is doing live, and get a notification when a turn finishes while you're looking elsewhere. Native app only.",
      "surface": "design-ui"
    },
    {
      "id": "branch-scoped-live-multiplayer",
      "version": "0.31.0",
      "date": "2026-06-23",
      "kind": "feature",
      "title": "Work together, live, in the same version",
      "summary": "When you and a teammate are in the same shared version, you now collaborate live — you see each other's cursors, annotations, comments, and each other's canvas changes as they happen, like Figma. Your canvas list shows only the version you're in, so there's no clutter; switch to a teammate's draft to join them. When someone — or the AI agent — is editing a canvas, a soft badge in their colour gives you a heads-up so you don't step on each other (it's never a lock, and you can always keep working). The AI's \"is editing\" cue now reaches everyone on the team, new canvases show up instantly in a second tab and via Get latest for teammates, and live updates now slot in seamlessly without the presence avatars blinking.",
      "surface": "design-ui"
    },
    {
      "id": "native-onboarding-switcher-collab-tour",
      "version": "0.31.0",
      "date": "2026-06-23",
      "kind": "feature",
      "title": "Get started & switch projects — no terminal",
      "summary": "Open Maude for the first time and a friendly setup walks you in: sign in with GitHub to open or create a shared project, pick a local folder, or connect to a team hub — no terminal, ever. A new switcher at the bottom of the sidebar lets you jump between projects and between the Shared version and your own drafts, all in plain words. Happy with a draft? \"Add this draft to the Shared version\" folds it in, publishes, and tidies up in one click. And a re-openable \"How sharing works\" tour teaches the simple Save changes locally → Publish for everyone → Pull changes cycle — with a picture showing that being in a canvas together just happens, automatically.",
      "surface": "design-ui"
    },
    {
      "id": "present-mode-and-chrome-toggles",
      "version": "0.31.0",
      "date": "2026-06-23",
      "kind": "feature",
      "title": "Presentation Mode — just your artboards",
      "summary": "View ▸ Presentation Mode now clears everything but your work: the menubar, sidebar, and panels disappear along with the mini-map, zoom controls, tool palette, annotations, and comment pins — leaving a clean canvas perfect for a screenshot or a demo. Press Esc or the floating Exit button to bring it all back. The presentation button in the canvas toolbar enters it too. Prefer to hide just the floating extras? Two new View toggles — Minimap and Zoom controls — switch those off on their own. Nothing is lost: leaving Presentation Mode restores exactly what you had.",
      "surface": "design-ui"
    },
    {
      "id": "sign-in-with-github",
      "version": "0.31.0",
      "date": "2026-06-23",
      "kind": "feature",
      "title": "Sign in with GitHub — projects without the terminal",
      "summary": "Sign in with GitHub right from the account bar (just enter a short code — your access stays in your computer's keychain). Start a New project and Maude creates a private GitHub project and opens it; Pull a local copy brings down one of your projects to a folder you choose; Share invites a teammate by username. Publish and Get latest now use your sign-in directly, and you'll get a nudge when a teammate has shared new work. If you both changed the same canvas, Get latest opens a visual resolver — Keep mine, theirs, or both (both saves your version as a copy, so nothing is ever lost) — and finishes the merge for you.",
      "surface": "design-ui"
    },
    {
      "id": "changes-panel-canvas-grouping",
      "version": "0.31.0",
      "date": "2026-06-23",
      "kind": "improvement",
      "title": "A cleaner Changes panel, grouped by canvas",
      "summary": "Panning or zooming a canvas no longer counts as a change to save — the Changes panel now reflects your actual work, not your mouse. And changes are grouped by canvas: each one lists its supporting files (Layout & settings, Annotations) tucked underneath, so a single checkbox saves a canvas and everything that travels with it as one unit.",
      "surface": "design-ui"
    },
    {
      "id": "in-ui-git-layer",
      "version": "0.31.0",
      "date": "2026-06-23",
      "kind": "feature",
      "title": "See, save & publish — no terminal",
      "summary": "A new Changes panel (View ▸ Changes, or ⌘⇧G) shows exactly what you've changed, with live colour-coded badges right in the file tree. Save a version with a message, Publish it to share with your team, or Get the latest they published — all in plain language, never a command line. And when a canvas changed, compare a real rendered before & after: both sides live with locked zoom & pan, an overlay wipe, and a simple Keep mine / theirs / both picker so nothing is ever lost. Open History to browse every saved version of a canvas and preview any one of them — and pick which past version to compare against, right in the diff.",
      "surface": "design-ui"
    },
    {
      "id": "in-canvas-token-editor",
      "version": "0.30.0",
      "date": "2026-06-12",
      "kind": "feature",
      "title": "A real token editor, right in the canvas",
      "summary": "The Inspector's CSS tab grew into a Figma-style design-token editor. Numeric fields carry a property glyph and scrub left/right to change; spacing fields take Webflow-style modifiers. Any value can bind to a design-system Variable through a searchable popover that shows where the token is defined — and it resolves the right system in multi-DS projects. One unified colour picker now drives every colour field, fill and border alike, with Custom and Variables tabs. Values you've set stand out while untouched rows recede, so the diff is scannable at a glance.",
      "surface": "design-ui",
      "tour": [
        {
          "target": "[data-tour='inspector-tabs']",
          "inspector": true,
          "tab": "css",
          "title": "Inspect · Layers · CSS",
          "body": "Here's the Inspector — opened to its CSS tab. It reads and writes your maude design system itself, not a generic :root. Three tabs: Inspect, Layers, CSS.",
          "placement": "left"
        },
        {
          "target": "[data-tour='css-panel']",
          "inspector": true,
          "tab": "css",
          "requireSelection": true,
          "title": "Your real element, live",
          "body": "Hold ⌘ and click any element in the canvas. The CSS panel fills with its real, editable properties — and every change writes back to the source on blur, no AI round-trip.",
          "placement": "left"
        },
        {
          "target": ".st-cp-row",
          "inspector": true,
          "tab": "css",
          "requireSelection": true,
          "title": "Figma-style property rows",
          "body": "Each row leads with a property glyph. Drag a numeric field left or right to scrub the value, or just type it; spacing fields accept Webflow-style modifiers.",
          "placement": "left"
        },
        {
          "target": ".st-cp-tokbtn",
          "inspector": true,
          "tab": "css",
          "requireSelection": true,
          "title": "Bind to a design token",
          "body": "Click a field's token chip for the Variables popover — Custom for a literal, Variables for the design system's tokens. Search the list; each Variable shows its provenance. One unified colour picker drives every colour field, fill and border alike.",
          "placement": "left"
        },
        {
          "target": ".st-cp-sechd-row",
          "inspector": true,
          "tab": "css",
          "requireSelection": true,
          "title": "Scannable, resettable",
          "body": "Values you've set stand out; untouched rows recede so the difference from the default reads at a glance. The leading dot on each row carries both its status and its reset.",
          "placement": "left"
        }
      ]
    },
    {
      "id": "in-canvas-direct-edit",
      "version": "0.30.0",
      "date": "2026-06-12",
      "kind": "feature",
      "title": "Edit the canvas directly — text & layers",
      "summary": "Double-click any text to retype it in place — the new copy is written straight back to the source, no AI round-trip. The Layers tab is a browsable tree with type icons: click a layer to select it in the canvas, hover to highlight, and toggle any layer's visibility from its row. Together with the CSS token editor, small tweaks no longer need a command.",
      "surface": "design-ui",
      "tour": [
        {
          "target": "[data-tour='inspector-tabs']",
          "inspector": true,
          "tab": "layers",
          "requireSelection": true,
          "title": "Browsable layers",
          "body": "⌘-click an element, then this Layers tab shows the artboard's elements as a tree with type icons — click a row to select it in the canvas, hover to highlight.",
          "placement": "left"
        },
        {
          "target": ".st-layer-eye",
          "inspector": true,
          "tab": "layers",
          "requireSelection": true,
          "title": "Toggle visibility",
          "body": "The eye on each layer row hides or shows that element while you work — handy for seeing what sits underneath. Double-click any text in the canvas to retype it in place too.",
          "placement": "left"
        }
      ]
    },
    {
      "id": "studio-chrome-polished-end-to-end",
      "version": "0.30.0",
      "date": "2026-06-12",
      "kind": "feature",
      "title": "Studio chrome, polished end to end",
      "summary": "The whole browser feels hand-finished now. Drag the file and inspector panels to resize them (or nudge with the arrow keys — your widths are remembered), watch a calm skeleton while a canvas compiles, and press ? for a full keyboard-shortcuts cheat sheet. Collaborator cursors and Claude's own cursor now match the design system, annotations snap to the dot grid as you drag, and focus rings, tooltips and scrollbars are consistent throughout. The View menu's Layers and Zoom are wired up, and a shortcut clash is gone — the inspector is ⌘⇧I, so I stays free for the canvas highlighter.",
      "surface": "design-ui"
    },
    {
      "id": "hub-sync-cold-start-safety",
      "version": "0.30.0",
      "date": "2026-06-12",
      "kind": "feature",
      "title": "Hub sync that can't eat your work",
      "summary": "Boot two machines or checkouts linked to the same hub in any order — your local canvas work is safe. When both sides changed the same canvas, Maude keeps a copy of each, takes the newer one, and tells you exactly how to bring back the other; a clean catch-up just updates quietly. The sync status is honest now too: you can see which canvases are synced, pending, or rejected, and why.",
      "surface": "design-ui"
    },
    {
      "id": "canvas-annotations-figjam-v3",
      "version": "0.30.0",
      "date": "2026-06-12",
      "kind": "feature",
      "title": "Annotations grew up: diagram on the canvas",
      "summary": "Marquee-select strokes and just drag them, group with ⌘G, copy/paste, align and reorder. Shapes rotate (hover near a corner), resize from edges with size-matching guides, hold text (double-click any shape), and switch kind — square, circle, diamond, triangle — right from the toolbar. Arrows snap to shapes and re-route as you move things, and the new Section tool (⇧S) frames a region that moves with its content. AI tools can read the board and draw on it too.",
      "surface": "design-ui",
      "tour": [
        {
          "target": ".dc-tool-palette",
          "title": "New tools in the palette",
          "body": "Section (⇧S) frames a region; the Shape tool's primitives can all hold text now — select a shape and press Enter to type."
        }
      ]
    },
    {
      "id": "studio-full-functionality",
      "version": "0.29.0",
      "date": "2026-06-08",
      "kind": "feature",
      "title": "The studio is fully wired now",
      "summary": "Everything in the chrome is live: the top bar shows the real zoom + artboard count, the status bar always shows hub-sync, and your avatar (plus Claude when it's editing) appears in the menubar. The ⌘K palette grew real Canvas/Tools commands (New canvas, Export, Handoff, Draw), there's a proper Export & handoff dialog (PNG/PDF/SVG/HTML/shadcn/ZIP) right in the shell, and a new display-only Inspector panel (Inspect · Layers · CSS) reads any element you ⌘-click.",
      "surface": "design-ui",
      "tour": [
        {
          "target": "[data-tour='status']",
          "title": "Live status, finally",
          "body": "Zoom, artboard count, presence and hub-sync now reflect the real state — no more static placeholders.",
          "placement": "bottom"
        },
        {
          "target": "[data-tour='inspector']",
          "inspector": true,
          "title": "Inspector",
          "body": "Opened from View → Inspector (I). ⌘-click an element to read its position, size, ancestry and markup — and now edit its CSS against your tokens, live.",
          "placement": "left"
        }
      ]
    },
    {
      "id": "draw-animation-lottie",
      "version": "0.29.0",
      "date": "2026-06-08",
      "kind": "feature",
      "title": "Animate draw marks → ship one Lottie",
      "summary": "/design:draw now handles motion briefs (morph, pulse, blink) and proves the animation is actually live. /design:to-lottie productionizes it into one Lottie that plays 1:1 on web and React Native.",
      "surface": "design-ui"
    },
    {
      "id": "studio-maude-ds-redesign",
      "version": "0.29.0",
      "date": "2026-06-08",
      "kind": "feature",
      "title": "The studio, redesigned in maude",
      "summary": "The canvas browser chrome is now built in the maude design system itself — a dark-first studio shell with a branded menubar + real dropdowns, a collapsible file-tree sidebar with a rail, a cohesive bottom context bar, a maude-styled comments panel, and a clean light handoff. New: a ⌘K command palette for jumping to the design-system view, comments, theme, reload, and help. The in-canvas chrome (tools, minimap, selection halos) was re-skinned to the same indigo accent so the whole surface reads as one product.",
      "surface": "design-ui",
      "tour": [
        {
          "target": "[data-tour='brand']",
          "title": "Built in maude",
          "body": "The studio chrome now dogfoods the maude DS — one cohesive material across the menubar, sidebar, canvas and status bar.",
          "placement": "bottom"
        },
        {
          "target": "[data-tour='menus']",
          "title": "Press ⌘K",
          "body": "A command palette jumps you to the design-system view, comments, theme toggle, reload, and help — no mouse needed.",
          "placement": "bottom"
        }
      ]
    },
    {
      "id": "annotation-tooling-polish",
      "version": "0.29.0",
      "date": "2026-06-08",
      "kind": "improvement",
      "title": "Richer annotations — highlighter, lists & text shortcuts",
      "summary": "Annotations got a full polish pass: a new highlighter tool (translucent marker with multiply blend), dashed strokes on shapes, FigJam-style sticky corner, multi-line text with Enter, italic/underline/lists, and Cmd+B/I/U formatting shortcuts that work the same way in sticky notes, shapes, and the text tool.",
      "surface": "design-ui",
      "tour": [
        {
          "target": "[data-tour='viewport']",
          "canvas": true,
          "title": "New: Highlighter",
          "body": "Open a canvas and press P to enter annotate mode, then pick the Highlighter from the toolbar — a translucent marker whose overlapping strokes darken with multiply blend. Sticky notes, shapes and text all take Cmd+B/I/U too.",
          "placement": "auto"
        }
      ]
    },
    {
      "id": "canvas-media-images-links",
      "version": "0.29.0",
      "date": "2026-06-08",
      "kind": "feature",
      "title": "Drop images & paste links onto the canvas",
      "summary": "Drag a screenshot from your desktop — or paste a clipboard image or a URL — straight onto the canvas. Images sit alongside your annotations; links render as a tidy preview chip you can open in one click.",
      "surface": "design-ui"
    },
    {
      "id": "in-app-whats-new-tour",
      "version": "0.29.0",
      "date": "2026-06-08",
      "kind": "feature",
      "title": "What's New, right in the canvas browser",
      "summary": "The Maude UI now tells you what shipped — a dismissible notice plus a panel you can reopen from the menubar. Each closed-out feature adds an entry automatically.",
      "surface": "design-ui",
      "tour": [
        {
          "target": "[data-tour='whatsnew']",
          "title": "Your What's New badge",
          "body": "This ✦ badge lights up when a new maude version ships features. Click it any time to reopen this panel."
        },
        {
          "target": "[data-tour='help']",
          "title": "Tours live in Help too",
          "body": "Open Help to replay the full \"how Maude works\" walkthrough whenever you want."
        }
      ]
    },
    {
      "id": "canvas-create-delete-from-browser",
      "version": "0.28.1",
      "date": "2026-06-03",
      "kind": "feature",
      "title": "Create & delete canvases from the browser",
      "summary": "Spin up a blank brief-board straight from the file tree (+ board) and remove canvases without leaving the UI — no /design:new round-trip needed.",
      "learnMore": "https://github.com/1aGh/maude#readme",
      "surface": "design-ui"
    },
    {
      "id": "canvas-activity-overlay",
      "version": "0.28.0",
      "date": "2026-06-02",
      "kind": "feature",
      "title": "Live canvas activity overlay",
      "summary": "See at a glance which artboard Claude (or a teammate) is editing — a soft rim + badge highlights the active canvas and fades when work settles.",
      "surface": "design-ui"
    },
    {
      "id": "draw-as-code-svg-agent",
      "version": "0.28.0",
      "date": "2026-05-30",
      "kind": "feature",
      "title": "Draw production SVGs as code",
      "summary": "/design:draw generates logos, icons, and diagrams through a deterministic geometry engine — no hand-guessed path data — and proofs them across the 16/24/48/256 verify ladder.",
      "surface": "design-ui"
    },
    {
      "id": "self-hostable-hub-sync",
      "version": "0.27.0",
      "date": "2026-05-28",
      "kind": "feature",
      "title": "Self-hostable hub + live file sync",
      "summary": "Run your own Maude hub and co-edit canvases with bidirectional file sync, offline-aware status, and conflict handling.",
      "surface": "design-ui"
    },
    {
      "id": "zero-install-desktop-design",
      "version": "0.38.0",
      "date": "2026-07-03",
      "kind": "feature",
      "title": "Design just works in the desktop chat",
      "summary": "With only Claude Code installed, /design:* commands auto-load in the chat (nothing to install), and design critics can now see your artboards — a screenshot engine is bundled and provisions its browser on first use.",
      "surface": "design-ui"
    }
  ]
}
