Changelog.

Every change to uistash, newest first. What shipped, what it does, and why you care. No "various improvements and bug fixes."

1.1.4 2026-08-11
  • The Stash button now only opens the Stash: it no longer deselects the folder you are in, so pressing it twice — or double-clicking it on the way back from Styles or Settings — keeps your folder.
  • The collapsed sidebar now keeps All items above the folder you are in, so you can go back to the whole Stash without expanding the sidebar first.
  • Collapsing and expanding the sidebar glides again, and still does not drag on a large Stash.
1.1.3 2026-08-11
  • Leaving Styles, Taste, or Settings and pressing Stash now returns you to the folder you were in, still selected, instead of dropping you back into All items.
  • Collapsing and expanding the sidebar is now instant instead of dragging on a large Stash.
1.1.2 2026-08-11
  • First run is now one calm decision per screen: uistash opens with the Engines it actually found on your Mac, then walks you through your Stash folder, your Engine and model, a real connection test, your first Reference, and connecting your agents.
1.1.1 2026-08-11
  • Quitting uistash now shuts it down completely, so opening it again always works instead of sometimes refusing to start.
1.1.0 2026-08-11
  • Founding price: the first 100 buyers get two years of updates instead of one, and the site can show how many founding spots are left.
  • Updates are now optional and receipt-key based: the app stays fully functional offline forever, while a saved key checks for versions included in your update window.
  • Long profile details in the built-in Mobile Account Settings Example now wrap cleanly on 320px screens instead of overflowing sideways.
  • The built-in Mobile Account Settings Example now exposes its root and Navigation correctly, so responsive and touch Checks can pass.
  • Destructive actions inside built-in Settings Forms now open their confirmation Dialog and return keyboard focus to the trigger when it closes.
  • Repeated Style browser Checks now use a fresh page each time, preventing later Candidates from stalling behind an earlier interactive fixture.
  • Changing an Import’s Category while it is scanning now rebuilds the task with matching measurements instead of mixing the old and new Category.
  • The app’s reported revision now changes when its packaged browser bridge changes, so diagnostics identify the exact build.
  • Restoring a Reference from history now reproduces that exact version instead of carrying newer untracked files into it.
  • Lift and Distill now publish only accepted output from an isolated Engine workspace; failures, timeouts, cancellation, and collateral writes leave the Stash unchanged.
  • Repeated Card Blueprints now give each Card its own accessible heading label instead of reusing one page-wide ID.
  • Temporary Style or Taste request failures now stay retryable instead of being cached as an empty Stash.
  • Sharing a Style after one of its member References changes now includes a new Style version, so the receiver installs the updated context.
  • When the license service says this Mac is no longer active, onboarding and Settings now say so clearly while uistash keeps working.
  • Styles now refresh their tokens, References, readiness, and digest after any committed Stash change instead of serving an older cached law.
  • Engine runs no longer crash the runner when the workspace file watcher hits a system resource error.
  • Gallery file requests now stay inside the active Stash, including when a Reference contains a symlink.
  • Pulling a Kept Style item over MCP now matches its declared output contract, so strict clients accept the exact source response.
  • Style Review is reachable again after a Candidate finishes, with its dependency order, Check findings, Refine action, and Keep controls.
  • Style Candidates now complete their real browser Check again, so passing builds can reach Review instead of failing every observation.
  • Cancelling an Import now waits for its Engine to stop, restores any existing References it touched, and discards the unfinished Result.
  • Reference card thumbnails now fill the preview band edge-to-edge — short sections and stage components no longer sit with empty space below them.
  • Inspector action buttons (Preview, Share, Open in new tab) and other stacked CTAs now match the touch height used by tabs and primary chrome controls.
  • The right panel now shows your stash at a glance when nothing is selected — how many references and styles you have, what categories they span, and when you last added one.
  • Collapsing the sidebar (or using the compact rail) now shows only your active folder as an icon under Stash — All items by default — and expanding the rail reveals the full tree.
  • Removed the Lift tool, which extracted a single component from a Reference into a standalone snippet. Lift files already in your library are left exactly where they are.
  • Queue is no longer a separate Stash folder — live Imports show in All items.
  • You can change a Reference’s Category in the inspector (Page, Section, Component, Mobile) so the lightbox framing matches what it actually is.
  • Website sections in the lightbox now sit centered in the stage instead of stuck to the top.
  • Phone References no longer need to draw their own iOS status bar and home indicator — the lightbox renders them (View → OS chrome → Show/Hide), so new imports carry just the app content.
  • Imports now detect whether a UI is dark or light from the source image and record it on the Reference, so dark UIs render with matching native details (scrollbars, form controls). Existing References with a retained Original were stamped automatically.
  • Removed Vibe search (the press-Enter semantic ranking with scores and a model call). Search is one thing again: instant name/tag/code search with why-it-matched lines.
  • Text fields signal focus the same way everywhere: no outline ring — the field’s fill shifts slightly instead.
  • Pressing rows, folders, rail items, tabs, and chips no longer shrinks their contents — the press state is a smooth fill deepen instead.
  • Folders now live under the Stash item in the sidebar instead of a separate column — more room for your library. The tree always starts with All items, folds away in other rooms, and folder creation lives on a right-click on Stash.
  • Import now suggests Category from the image shape (Mobile, Page, or Section), and marketing heroes / website sections filed as Components open as section sheets in the lightbox instead of specimen stages.
  • Phone screen References now open in a clear phone-shaped frame in the lightbox (instead of stretching edge to edge). Full pages and sections sit as a sheet at their real width and only shrink when they don’t fit — still scrollable inside.
  • Reference view in the lightbox is easier to read: Coded / Original uses a high-contrast toggle, and Stage background swatches have clearer spacing.
  • Needs review Trash in the lightbox now moves the Reference to the macOS Trash, same as before.
  • Needs review now decides in the lightbox: Keep, Refine, or Trash float under the Result; Refine expands for Engine and correction pins; the inspector stays a quiet Match summary.
  • Queue is now a system folder in Stash: live Imports and Engine work show as cards there, and clicking one opens Import options in the inspector — the old Queue page and History tab are gone.
  • Removed Imagine (Invent, Remix, and Image), including its sidebar, Settings (Figma token and Imagine defaults), and Queue entries. Existing Imagined References stay in Stash.
  • Queue and History now use one calm, grouped list with clearer states, compact progress, inline review, and a chronological run log.
  • Imports can run in parallel again: Settings → Parallel builds goes up to 3, Claude CLI (and similar multi-session Engines) can work several Queue items at once, and two builds no longer collide on the same Reference name.
  • Queue Needs review now shows Source and Result as a large side-by-side compare, so you can judge the generated Reference against the original before Keep, Refine, or Trash.
  • Removed Settings → Agents → Install a Kept Style and the local Style registry install path. Agents pull Kept items over MCP only; built-in Design system templates stay unavailable for now.
  • Styles opens instantly after the first load: the shelf and Style pages stay in memory and only refresh when you change a Style (create, add references, distill, Keep), instead of rebuilding everything on every visit.
  • Reload (⌘R) now stays on the page you were on — Styles, Settings, Queue, and the rest — without a quick flash of Stash first.
  • Copy for Figma now keeps a Reference’s own scripts running during capture, so interactive pieces (like Meeting Finder’s hour bars) paste with their visuals instead of an empty shell.
  • When an Import comes from a recording, the Engine is told the recording is there and which frame the visual check measures — so it can build the behaviour it sees without drifting from the frame you chose.
  • A Reference built from a recording can now learn its behaviour from that recording: uistash finds the states the design moves through and offers to make the Reference interactive.
  • You can now drop a screen recording (MP4 or MOV) into the Queue: it waits for you to pick a frame from a filmstrip, then continues as a normal Import.
  • Fixed Results losing their visuals when the design draws or styles itself from inside index.html: uistash ignored inline scripts and style blocks, and any page other than index.html, then removed the styles and colors it thought were unused — charts and drawn elements could come out blank, and Imports could fail asking you to define a token that was already defined.
  • A successful automatic repair is no longer thrown away over small token cleanups uistash can do itself — it tidies the repaired Result first, the same way it already tidies the original.
  • Fixed Imports failing with "Define --x" errors on designs that theme rows or variants with the same token: uistash was deleting those color tokens as unused and then failing the Result for the missing tokens.
  • Every Import now tells its Engine up front that referenced tokens must be defined in css/tokens.css, and every failed attempt saves a permanent error log with full diagnostics — including what a rejected repair actually changed.
  • Imports no longer fail when you edit or trash unrelated References while they build, and a failed automatic repair now reports what is actually still wrong instead of a stale list.
  • Settings → Engines lists every CLI and API provider in one place; open a row to enable, test, or add models.
  • Settings is reorganized into five sections — General, Engines, Workflow, Stash, and Agents — with Stash-like chrome and denser controls.
  • Settings matches the Stash page chrome: a Settings title bar, a Sections sidebar, and the same selection styling as Folders.
  • Removed Lab (experiments, blind studies, and related settings) — the workspace is Stash, Queue, Styles, and optional Taste.
  • Stash Folders nest like Eagle: expand/collapse, item counts, drag a folder onto another (or onto All items) to reparent, and right-click → New subfolder.
  • Styles are Foundations plus a Sources group: References as a shelf of cards, Activity for Checks, Guidance for distilled taste — no built-in Component catalog.
  • Stash sidebar drops the Unfiled row — All items plus your Folders is enough.
  • Removed the Stash Primitives folder and Improve Primitives cleanup job — Stash is back to References and Folders only.
  • Style Design system stages default to the Style’s light or dark surface, show missing-role warnings, and pick readable button label colors on primary fills.
  • Style Components open as design-system docs pages: shared stage background control, solid primary fill, variant and state cards, and View Code snippets.
  • Style Design system previews are instant shared templates skinned by the Style theme — no loading sandbox per Component, Block, or Example.
  • Style pages now use a Storybook-style navigator: left rail for Foundations, Components, Blocks, and Examples, with one focused preview stage.
  • Every Style now shows its Design system immediately: built-in Components, Blocks, and Examples styled from Foundations and preferences, with no Engine or Queue build required.
  • Build starter system now sends its bounded proposal to the selected Engine instead of failing before work begins.
  • Style standard previews now load trusted interactive content after the starter system exists instead of showing blank or misleading fallback canvases.
  • Stash toolbar actions now read in task order, with Sort presented as one cohesive control matching Filters and Layout preferences placed last.
  • Expanded and collapsed navigation now use the same aligned icon rail, row height, dividers, active treatment, and footer structure.
  • Settings fields, selectors, segmented choices, and row actions now share the same clear 32px control rhythm across every section.
  • Queue review refines the existing coded Reference from correction notes, reruns Match, and shows a full rebuild as one Queue item instead of exposing its internal parent and child records.
  • Images now use a full-canvas loading state, appear in Queue while running, support selectable versions, and add General and App icon Purposes.
  • Active Imports now show honest moving stages, one clear action, and readable Activity summaries with technical output tucked away.
  • Settings now replaces every Imagine room through one exclusive page transition, preventing stale views from stacking underneath it.
  • Imagine now starts with one Version, Image generation shows the selected Engine's own plan or price state, and Keep validates a complete Reference before saving it to Stash.
  • Settings now separates Engines from workflow Defaults, adds per-workflow model and supported effort choices, saves the default Image Engine, simplifies model and sound controls, and keeps Reference details out of Imagine.
  • Reference spotlight now uses one quiet header line with calmer navigation, grouped editing tools, and a focused More menu for secondary actions.
  • Imagine image generation is now a temporary session: Keep saves the chosen Image to Stash, leaving dismisses unkept work, and Grok Imagine joins the available Image Engines through the Grok CLI.
  • Imports that contain several mobile screens now explain the detected presentation, rebuild at the correct viewport, and let you choose the starting screen for a navigable Result while preserving the complete Original.
  • Stash now separates project Folders from flexible Filters, adds intelligent search, folder appearance controls and meaningful gallery layout options, and offers a collapsible labeled sidebar; Imagine now starts by asking whether you want a coded Reference or an image.
  • Images thumbnails now fill a horizontal grid, and Settings opens as its own navigable page instead of a modal.
  • Style details now lead with a clear setup and summary, References have visual previews and a focused picker, and Queue items share one calmer structure with secondary Import options tucked away.
  • Empty screens use quieter numbered guidance, Images starts with a blank prompt, and the Imagine and Images composer no longer covers content in small windows.
  • Imagine Keep no longer asks for a standing Approach note after you confirm the slug — Keep finishes with the toast.
  • Imagine Keep offers “Also add to this Style” when you invented from a Style — opt in to add the Kept Reference as a member.
  • Imports: when a dropped image shows several phone screens side by side, uistash detects them and asks — reproduce the whole composition or build one screen you navigate.
  • Imports: new experimental "Measured import" that reads the text and measures the parts of your image before the Engine builds, for more precise Results.
  • Styles shelf cards use a fixed square visual — Bayer motif when empty, reference covers tiled inside with hairline dividers (2-up or 2×2) when members have previews.
  • Imagine steer composer keeps Approach, Style, and Engine chips visible in the bar — same breakdown as Images, no collapsed Setup summary.
  • Imagine variant switcher matches the pixel shell — flat segmented V1/V2 track with hairline dividers and mono state marks (· … !), not round dots.
  • Imagine preview chrome shows prev, next, and expand icons again — stage tools no longer clip or hide the open-tab glyph.
  • Imagine variant thumbs sit in the preview chrome — meta, thumbnails, Keep, and expand share one top bar instead of a bottom strip competing with the composer.
  • Toasts anchor bottom-left, just right of the icon rail — no longer centered over the composer.
  • Imagine Keep shows one confirmation — the floating toast only, not a second green bar at the bottom.
  • Imagine Keep works again — engine invent artifacts with informal reference headers now promote to Stash with the full contract header instead of failing audit.
  • Imagine opens in interact mode — Point is off until you turn it on.
  • Imagine’s Point toggle stays readable on hover — off and on states no longer fade into the dark composer chrome.
  • Imagine’s Keep button sits on the preview chrome — not beside Re-imagine in the composer — and Point is a single toggle above steer instead of an Interact / Point switch.
  • Imagine’s steer placeholder aligns to the top-left of the prompt panel — no extra inset above the text.
  • Imagine no longer shows the empty state over an invent result — the preview stands alone once a variant is ready.
  • Selector lists left-align labels, show the check on the right, and tint the selected row to match the check color.
  • Toasts use sharp corners, canvas-deep fill, and a brand accent stripe — consistent with the rest of the shell.
  • Toast text no longer sits flush against the edges — internal padding matches the shell spacing scale.
  • Images keeps Purpose, Size, and Engine visible at all times; drop or paste reference images straight into the prompt field.
  • Every main room uses the same empty-state pattern — Bayer-dither illustration, title, lede, and numbered steps — on Stash, Queue, Styles, Imagine, Images, Taste, and the inspector.
  • The New style card on the Styles shelf reads like the other cards — title row, lede below, no awkward center wrap.
  • Engine work surfaces show structured trace lines and tool chips while jobs run; Images generation uses a canvas-style wait state with your prompt and elapsed time; Refine and Make interactive ask for your go-ahead before they start.
  • Queue uses neutral chrome (white in dark, black in light) instead of a feature green — it’s infrastructure, not a room with its own color.
  • Queue sits first in the left rail, above Stash.
  • Images and Imagine use shorter labels — the Generate button is just Generate, Setup hints stay quiet until needed, and empty states are one line.
  • Close sits on the left across lightboxes, Settings, Share, and other dialogs — same place as the Reference preview.
  • Dropping images while you’re in Images no longer starts an Import — they only go to Examples when you drop them there.
  • Opening a generated Image expands it full-viewport like Imagine — prev/next, prompt strip, Use as example, and Trash in the header.
  • Images is a new room next to Imagine: generate backgrounds, icons, and illustrations with GPT Image 2 on your Codex plan (or fal when you pick it). Images land in the library immediately — Trash what you don't want. An Image is not a Reference and is not Checked.
  • Engine work in the Queue can run in parallel when jobs use different Engines and do not touch the same Reference — Imagine on Kimi no longer blocks a Refine on Claude.
  • Multi-version Imagine respects how many concurrent jobs your Engine allows: it tries in parallel when safe, and if the Engine rate-limits it waits for a free slot and retries the rest automatically — you do not need to click Re-imagine.
  • Imagine can invent 1, 2, or 3 versions of the same ask on the first run — flip between them in the carousel. Re-imagine always adds one new take from the slide you’re on, not another batch of three.
  • Keeping an invent into the Stash marks it Imagined (its own smart folder) with a “via your imagination” source line — not a blank import.
  • Imagine invents free designs under your Approach: one button (Imagine → Re-imagine), a carousel of past tries, optional Style and Engine pickers, a steer box that shapes the next roll from the slide you’re on, and Keep to put the one you like in the Stash (notes that steered the thread can join Approach).
  • Stash thumbs and the preview scale to each Reference’s real canvas width (a score card is no longer a postage stamp in a fake 1440 frame). New imports are checked so the product box matches the declared canvas (pages and mobile), not a ballooned source-pixel board.
  • Reference preview no longer offers Fill / 1440 / 768 / 390 — the stage always fills edge to edge with the Reference’s own background, and canvas-sized artboards stay centered inside (including top spacing for components and generated invents; no gray side gutters).
  • Styles are just Styles now — no more "visual direction" vs "project style". New style only asks for a name. New component is available when the style has tokens to build with (from references or an attached token file), and stays greyed out with a plain reason when it does not. Attach token file is always available and reversible with Remove.
  • A rate-limited Engine no longer freezes your whole import Queue. The import that hit the limit still shows as rate limited so you can Retry it, but other imports and a fresh Start keep working — including when an older pause had stuck with no time to come back.
  • References your agents add now keep the original image alongside the coded rebuild.
  • Export a Style as a repo-ready pack — DESIGN.md, tokens, and an agents note, each stamped with the style's version.
  • Point & ask lets you edit a saved Reference by pointing at it: open a Reference, click the node you mean, and say the change in plain language — only that node is edited, everything else stays. Fork first (recommended) so the original is untouched, or edit in place, with undo for each change.
  • uistash now introduces itself as uistash to your agents (register the MCP as uistash; older design-references configs still work).
  • Simple Imports no longer pay a full-page budget: a small component uses a light timeout and fewer repair passes, while a mobile feed still gets the full budget — the Match bar stays the same either way.
  • Agents can now Check the UI they built against your Style before showing it to you: they submit the HTML/CSS and get back specific findings with file and line — a raw value your Style already tokenizes, a color that’s off your palette (with the nearest token and its usage rule), off-grid spacing — never a score. Deviations they made on purpose are labeled and kept separate, and rules earned from your saved references only apply once a Style has enough of them to speak for itself. Check now also compares the work against the references you actually keep — noting where a build diverges from what your examples share (a one-layer hard shadow where all your saved cards stack soft low-opacity ones, a corner radius or text weight none of them use) and naming the references it's citing; these are observations, never blockers or scores.
  • Ask an agent to use a Style and it now loads your real examples and each token’s usage rule first (not just prose), with a version stamp so it re-pulls when the style changes; every style also shows one honest readiness line — like “91 tokens · 8 components” or “too thin to teach an agent yet.”
  • Settings → License lets you paste a key, see how many of your 3 Macs are active, and free this Mac’s slot; when paid launch is on, first-run onboarding offers the same skippable step.
  • Search now reads the code inside your references — both the Stash search box in the app and search over MCP — so you can find shadows, blurs, gradients, and motion by what they're actually built with, not just their labels; the Stash search box also takes structured filters (like prop:backdrop-filter or shadow:layers>=2) and shows why each result matched, down to the file and line.
  • Imports give Engines more room to work: larger per-request output budgets, retries on flaky API blips, a 15-minute first-progress stall window (was 3), and no early stop when a model is cut mid-thought — only the correct entry folder and the Match/craft audit stay hard.
  • Removed Gemini CLI (legacy) from installed engines — Google Antigravity (agy) is the supported Google CLI path.
  • Settings Providers rows match Models — tall engine logos, corner status dots, and compact icon actions at switch height.
  • Settings rail is reorganized: Notifications holds Sounds, Advanced holds Prompts and Early features, and MCP shows status, connect copy, and a read-only tools inventory.
  • Right-click a manual Stash folder to set its color (nine swatches) or pick an icon from a curated Pixel set — smart category folders stay automatic.
  • Manual folder icons now stick after Change Icon… — the chosen Pixel glyph replaces the default folder outline in the folder row.
  • Stash sort sits beside vibe in the search row — no separate Sort label; New folder matches that wider right column.
  • Inspector empty state shows a sparse Bayer motif when nothing is selected — waiting field, not a blank panel.
  • Queue History job rows have clearer hierarchy and padding — kind and title first, Engine next, then tokens/duration/time with the status chip aligned as a group.
  • Stash gallery cards no longer show a color palette strip under the title — the grid reads lighter; palette still lives in the inspector.
  • Shift-click References in Stash to multi-select — the inspector shows a cover stack with Share, instead of a separate Select to share button.
  • uistash can update itself: “Check for Updates…” in the app menu, plus a daily background check, and updates are only accepted if they carry uistash's own signature.
  • The Mac app is now signed and notarized by Apple, so it opens on a new Mac without a security warning.
  • Light mode is easier to read: darker text, stronger borders, a dark rail mark, and engine logos that match the theme.
  • Antigravity (agy) imports write into the task workspace again — Simple runs no longer finish empty because the Engine was auto-denying tools or saving files to its private scratch folder.
  • Imports no longer kill a working silent Engine at three minutes just because it wrote files without streaming text — workspace writes count as progress, and a finished Result is kept even if the stream stayed quiet.
  • Feedback in the left rail lets you send a bug, idea, or “confusing” note without leaving what you’re looking at — optional name remembered, and you can attach a redacted preview of recent app logs (off by default) before you press Send.
  • First-run onboarding walks you from welcome through Engine setup and a real connection test to your first Reference, with a resumable checklist and a Settings re-run.
  • Library card size is now a percentage of the grid (scales with the window), and the right inspector stays open with an empty state so it is not opening and closing.
  • Settings → Sounds lets you turn UI chimes on or off (import finished, failed, license activated, and more), with a preview for each sound.
  • Copy for Figma works in the Mac app again: the gallery and capture frame now share the same host (127.0.0.1), so the capture iframe can load and message the parent.
  • Copy for Figma no longer times out in the Mac app — the capture script is served locally (App Transport Security blocked Figma’s remote script).
  • Spotlight opens in Fill for every type (page, component, mobile) and centers fixed-width builds on the stage instead of leaving them left-aligned.
  • Refine is now a true visual review: read the existing code, list real gaps against the source image, and apply proportional token/CSS fixes — not a weak drive-by or pixel-scan thrash.
  • Refine and Make interactive now show as full cards in Current work — live phase, Engine, elapsed time, and an expandable build log — and open Queue when they start.
  • You can Refine an existing Reference against its original image — polish the code in place, not a rebuild.
  • Imports now auto-fix craft token issues (reuse tokens, extract repeats, snap off-grid sizes, drop unused tokens) so cleanup no longer depends on the Engine getting every detail right.
  • Import Engines are told not to open a browser, start a local server, or take screenshots — uistash renders and Matches Results in the background after they finish writing files.
  • Make interactive no longer fails or restores the original when there is no clickable target — entrance animations and other working edits are kept.
  • Imports no longer discard a working Result just because a visual check could not verify it; unverifiable Match or render checks land as Needs review instead.
  • If an Engine produces no output for 3 minutes, the import stops with a clear error instead of sitting on “starting Engine” until the long timeout.
  • Engine tests now use one connection request, while Imports accept flexible Engine output, check it in a temporary workspace, save only one runnable Result, and explain failures with detailed diagnostics.
  • Imports now has a preferences menu and a full Markdown editor for the prompt used by new builds.
  • You can now share one Reference, a selection, or an entire Style as a .uistash file, with a safe preview before anything is added.
  • Settings now lets you opt into Personal Taste Distillation, keeping it out of the way by default.
  • Google Antigravity is now a supported build engine, with live model discovery and clearer setup errors.
  • Project styles can now receive real tokens, references, and components from an agent working in a repo, then publish reviewed components over MCP after you Keep them.
  • New style now asks whether you're creating a visual direction or a project, and the Mac app reloads the full dialog reliably.
  • Styles now render their earned system, accept declared CSS or JSON tokens, and show which source wins.
  • Fixed the Mac app getting stuck when launched from Finder without Node in its PATH.
  • Taste now uses the same page navigation and header layout as the rest of the app.
  • First-run copy now names the uistash MCP server correctly and the checklist points at Styles instead of a browser extension that was not available yet; Queue wording says work appears and is saved instead of "lands", old Lab runs no longer show in History, and Settings labels collections as Folders.
  • Imagine is now labeled Experimental in the sidebar and on its tools page — the product's core is your Reference library and Styles.
1.0.1 2026-08-08
  • Queue and History now use one calm, grouped list with clearer states, compact progress, inline review, and a chronological run log.
  • Imports can run in parallel again: Settings → Parallel builds goes up to 3, Claude CLI (and similar multi-session Engines) can work several Queue items at once, and two builds no longer collide on the same Reference name.
  • Queue Needs review now shows Source and Result as a large side-by-side compare, so you can judge the generated Reference against the original before Keep, Refine, or Trash.
  • Removed Settings → Agents → Install a Kept Style and the local Style registry install path. Agents pull Kept items over MCP only; built-in Design system templates stay unavailable for now.
  • Styles opens instantly after the first load: the shelf and Style pages stay in memory and only refresh when you change a Style (create, add references, distill, Keep), instead of rebuilding everything on every visit.
  • Reload (⌘R) now stays on the page you were on — Styles, Settings, Imagine, Queue, and the rest — without a quick flash of Stash first.
  • Copy for Figma now keeps a Reference’s own scripts running during capture, so interactive pieces (like Meeting Finder’s hour bars) paste with their visuals instead of an empty shell.
  • When an Import comes from a recording, the Engine is told the recording is there and which frame the visual check measures — so it can build the behaviour it sees without drifting from the frame you chose.
  • A Reference built from a recording can now learn its behaviour from that recording: uistash finds the states the design moves through and offers to make the Reference interactive.
  • You can now drop a screen recording (MP4 or MOV) into the Queue: it waits for you to pick a frame from a filmstrip, then continues as a normal Import.
  • Fixed Results losing their visuals when the design draws or styles itself from inside index.html: uistash ignored inline scripts and style blocks, and any page other than index.html, then removed the styles and colors it thought were unused — charts and drawn elements could come out blank, and Imports could fail asking you to define a token that was already defined.
  • A successful automatic repair is no longer thrown away over small token cleanups uistash can do itself — it tidies the repaired Result first, the same way it already tidies the original.
  • Fixed Imports failing with "Define --x" errors on designs that theme rows or variants with the same token: uistash was deleting those color tokens as unused and then failing the Result for the missing tokens.
  • Every Import now tells its Engine up front that referenced tokens must be defined in css/tokens.css, and every failed attempt saves a permanent error log with full diagnostics — including what a rejected repair actually changed.
  • Imports no longer fail when you edit or trash unrelated References while they build, and a failed automatic repair now reports what is actually still wrong instead of a stale list.
  • Takes now run several at a time on every engine, including the CLI ones, and Remix starts at a lighter 2 variations — so a run finishes sooner and costs less by default.
  • Remix now asks how many variations you want beyond the anchor take — pick 2 and you get the anchor plus 2 — and the count is no longer capped at 12; a large run just asks you to confirm first.
  • Remix reads Figma for you: connect a Figma token in Settings → Engines, paste a frame link, and uistash exports that frame as the seed — along with its exact colors, sizes, type, spacing, and the real photos from the file, so takes reuse your images instead of redrawing them — before the engine starts, with a clear message when the link, the access, or the token needs fixing.
  • A take that hits an engine rate limit now waits and retries on its own instead of dying, counting down while it waits, until it lands or you cancel.
  • Imagine → Remix starts from a Stash reference and invents several visual directions (A stays closest to the seed); Keep still saves the pick you want.
  • Remix locks each take to the seed’s own colors, type, and elements (system card from the source) and only explores layout.
  • Remix is source-first: pick Stash, HTML, a screenshot, or a Figma link — no chat required to start, and no Stash pick required.
  • Imagine is a tools hub (Invent, Remix, Image). Remix versions can be 2–6 or a custom count up to 12.
  • Settings → Engines lists every CLI and API provider in one place; open a row to enable, test, or add models.
  • Settings is reorganized into five sections — General, Engines, Workflow, Stash, and Agents — with Stash-like chrome and denser controls.
  • Settings matches the Stash page chrome: a Settings title bar, a Sections sidebar, and the same selection styling as Folders.
  • Removed Lab (experiments, blind studies, and related settings) — the workspace is Stash, Queue, Styles, Imagine, and optional Taste.
  • Stash Folders nest like Eagle: expand/collapse, item counts, drag a folder onto another (or onto All items) to reparent, and right-click → New subfolder.
  • Styles are Foundations plus a Sources group: References as a shelf of cards, Activity for Checks, Guidance for distilled taste — no built-in Component catalog.
  • Stash sidebar drops the Unfiled row — All items plus your Folders is enough.
  • Removed the Stash Primitives folder and Improve Primitives cleanup job — Stash is back to References and Folders only.
  • Style Design system stages default to the Style’s light or dark surface, show missing-role warnings, and pick readable button label colors on primary fills.
  • Style Components open as design-system docs pages: shared stage background control, solid primary fill, variant and state cards, and View Code snippets.
  • Style Design system previews are instant shared templates skinned by the Style theme — no loading sandbox per Component, Block, or Example.
  • Style pages now use a Storybook-style navigator: left rail for Foundations, Components, Blocks, and Examples, with one focused preview stage.
  • Every Style now shows its Design system immediately: built-in Components, Blocks, and Examples styled from Foundations and preferences, with no Engine or Queue build required.
  • Build starter system now sends its bounded proposal to the selected Engine instead of failing before work begins.
  • Style standard previews now load trusted interactive content after the starter system exists instead of showing blank or misleading fallback canvases.
  • Stash toolbar actions now read in task order, with Sort presented as one cohesive control matching Filters and Layout preferences placed last.
  • Expanded and collapsed navigation now use the same aligned icon rail, row height, dividers, active treatment, and footer structure.
  • Settings fields, selectors, segmented choices, and row actions now share the same clear 32px control rhythm across every section.
  • Queue review refines the existing coded Reference from correction notes, reruns Match, and shows a full rebuild as one Queue item instead of exposing its internal parent and child records.
  • Images now use a full-canvas loading state, appear in Queue while running, support selectable versions, and add General and App icon Purposes.
  • Active Imports now show honest moving stages, one clear action, and readable Activity summaries with technical output tucked away.
  • Settings now replaces every Imagine room through one exclusive page transition, preventing stale views from stacking underneath it.
  • Imagine now starts with one Version, Image generation shows the selected Engine's own plan or price state, and Keep validates a complete Reference before saving it to Stash.
  • Settings now separates Engines from workflow Defaults, adds per-workflow model and supported effort choices, saves the default Image Engine, simplifies model and sound controls, and keeps Reference details out of Imagine.
  • Reference spotlight now uses one quiet header line with calmer navigation, grouped editing tools, and a focused More menu for secondary actions.
  • Imagine image generation is now a temporary session: Keep saves the chosen Image to Stash, leaving dismisses unkept work, and Grok Imagine joins the available Image Engines through the Grok CLI.
  • Imports that contain several mobile screens now explain the detected presentation, rebuild at the correct viewport, and let you choose the starting screen for a navigable Result while preserving the complete Original.
  • Stash now separates project Folders from flexible Filters, adds intelligent search, folder appearance controls and meaningful gallery layout options, and offers a collapsible labeled sidebar; Imagine now starts by asking whether you want a coded Reference or an image.
  • Images thumbnails now fill a horizontal grid, and Settings opens as its own navigable page instead of a modal.
  • Style details now lead with a clear setup and summary, References have visual previews and a focused picker, and Queue items share one calmer structure with secondary Import options tucked away.
  • Empty screens use quieter numbered guidance, Images starts with a blank prompt, and the Imagine and Images composer no longer covers content in small windows.
  • Imagine Keep no longer asks for a standing Approach note after you confirm the slug — Keep finishes with the toast.
  • Imagine Keep offers “Also add to this Style” when you invented from a Style — opt in to add the Kept Reference as a member.
  • Imports: when a dropped image shows several phone screens side by side, uistash detects them and asks — reproduce the whole composition or build one screen you navigate.
  • Imports: new experimental "Measured import" that reads the text and measures the parts of your image before the Engine builds, for more precise Results.
  • Styles shelf cards use a fixed square visual — Bayer motif when empty, reference covers tiled inside with hairline dividers (2-up or 2×2) when members have previews.
  • Imagine steer composer keeps Approach, Style, and Engine chips visible in the bar — same breakdown as Images, no collapsed Setup summary.
  • Imagine variant switcher matches the pixel shell — flat segmented V1/V2 track with hairline dividers and mono state marks (· … !), not round dots.
  • Imagine preview chrome shows prev, next, and expand icons again — stage tools no longer clip or hide the open-tab glyph.
  • Imagine variant thumbs sit in the preview chrome — meta, thumbnails, Keep, and expand share one top bar instead of a bottom strip competing with the composer.
  • Toasts anchor bottom-left, just right of the icon rail — no longer centered over the composer.
  • Imagine Keep shows one confirmation — the floating toast only, not a second green bar at the bottom.
  • Imagine Keep works again — engine invent artifacts with informal reference headers now promote to Stash with the full contract header instead of failing audit.
  • Imagine opens in interact mode — Point is off until you turn it on.
  • Imagine’s Point toggle stays readable on hover — off and on states no longer fade into the dark composer chrome.
  • Imagine’s Keep button sits on the preview chrome — not beside Re-imagine in the composer — and Point is a single toggle above steer instead of an Interact / Point switch.
  • Imagine’s steer placeholder aligns to the top-left of the prompt panel — no extra inset above the text.
  • Imagine no longer shows the empty state over an invent result — the preview stands alone once a variant is ready.
  • Selector lists left-align labels, show the check on the right, and tint the selected row to match the check color.
  • Toasts use sharp corners, canvas-deep fill, and a brand accent stripe — consistent with the rest of the shell.
  • Toast text no longer sits flush against the edges — internal padding matches the shell spacing scale.
  • Images keeps Purpose, Size, and Engine visible at all times; drop or paste reference images straight into the prompt field.
  • Every main room uses the same empty-state pattern — Bayer-dither illustration, title, lede, and numbered steps — on Stash, Queue, Styles, Imagine, Images, Taste, and the inspector.
  • The New style card on the Styles shelf reads like the other cards — title row, lede below, no awkward center wrap.
  • Engine work surfaces show structured trace lines and tool chips while jobs run; Images generation uses a canvas-style wait state with your prompt and elapsed time; Refine and Make interactive ask for your go-ahead before they start.
  • Queue uses neutral chrome (white in dark, black in light) instead of a feature green — it’s infrastructure, not a room with its own color.
  • Queue sits first in the left rail, above Stash.
  • Images and Imagine use shorter labels — the Generate button is just Generate, Setup hints stay quiet until needed, and empty states are one line.
  • Close sits on the left across lightboxes, Settings, Share, and other dialogs — same place as the Reference preview.
  • Dropping images while you’re in Images no longer starts an Import — they only go to Examples when you drop them there.
  • Opening a generated Image expands it full-viewport like Imagine — prev/next, prompt strip, Use as example, and Trash in the header.
  • Images is a new room next to Imagine: generate backgrounds, icons, and illustrations with GPT Image 2 on your Codex plan (or fal when you pick it). Images land in the library immediately — Trash what you don't want. An Image is not a Reference and is not Checked.
  • Engine work in the Queue can run in parallel when jobs use different Engines and do not touch the same Reference — Imagine on Kimi no longer blocks a Refine on Claude.
  • Multi-version Imagine respects how many concurrent jobs your Engine allows: it tries in parallel when safe, and if the Engine rate-limits it waits for a free slot and retries the rest automatically — you do not need to click Re-imagine.
  • Imagine can invent 1, 2, or 3 versions of the same ask on the first run — flip between them in the carousel. Re-imagine always adds one new take from the slide you’re on, not another batch of three.
  • Keeping an invent into the Stash marks it Imagined (its own smart folder) with a “via your imagination” source line — not a blank import.
  • Imagine invents free designs under your Approach: one button (Imagine → Re-imagine), a carousel of past tries, optional Style and Engine pickers, a steer box that shapes the next roll from the slide you’re on, and Keep to put the one you like in the Stash (notes that steered the thread can join Approach).
  • Stash thumbs and the preview scale to each Reference’s real canvas width (a score card is no longer a postage stamp in a fake 1440 frame). New imports are checked so the product box matches the declared canvas (pages and mobile), not a ballooned source-pixel board.
  • Reference preview no longer offers Fill / 1440 / 768 / 390 — the stage always fills edge to edge with the Reference’s own background, and canvas-sized artboards stay centered inside (including top spacing for components and generated invents; no gray side gutters).
  • Styles are just Styles now — no more "visual direction" vs "project style". New style only asks for a name. New component is available when the style has tokens to build with (from references or an attached token file), and stays greyed out with a plain reason when it does not. Attach token file is always available and reversible with Remove.
  • A rate-limited Engine no longer freezes your whole import Queue. The import that hit the limit still shows as rate limited so you can Retry it, but other imports and a fresh Start keep working — including when an older pause had stuck with no time to come back.
  • References your agents add now keep the original image alongside the coded rebuild.
  • Export a Style as a repo-ready pack — DESIGN.md, tokens, and an agents note, each stamped with the style's version.
  • Point & ask lets you edit a saved Reference by pointing at it: open a Reference, click the node you mean, and say the change in plain language — only that node is edited, everything else stays. Fork first (recommended) so the original is untouched, or edit in place, with undo for each change.
  • uistash now introduces itself as uistash to your agents (register the MCP as uistash; older design-references configs still work).
  • Simple Imports no longer pay a full-page budget: a small component uses a light timeout and fewer repair passes, while a mobile feed still gets the full budget — the Match bar stays the same either way.
  • Agents can now Check the UI they built against your Style before showing it to you: they submit the HTML/CSS and get back specific findings with file and line — a raw value your Style already tokenizes, a color that’s off your palette (with the nearest token and its usage rule), off-grid spacing — never a score. Deviations they made on purpose are labeled and kept separate, and rules earned from your saved references only apply once a Style has enough of them to speak for itself. Check now also compares the work against the references you actually keep — noting where a build diverges from what your examples share (a one-layer hard shadow where all your saved cards stack soft low-opacity ones, a corner radius or text weight none of them use) and naming the references it's citing; these are observations, never blockers or scores.
  • Ask an agent to use a Style and it now loads your real examples and each token’s usage rule first (not just prose), with a version stamp so it re-pulls when the style changes; every style also shows one honest readiness line — like “91 tokens · 8 components” or “too thin to teach an agent yet.”
  • Settings → License lets you paste a key, see how many of your 3 Macs are active, and free this Mac’s slot; when paid launch is on, first-run onboarding offers the same skippable step.
  • Search now reads the code inside your references — both the Stash search box in the app and search over MCP — so you can find shadows, blurs, gradients, and motion by what they're actually built with, not just their labels; the Stash search box also takes structured filters (like prop:backdrop-filter or shadow:layers>=2) and shows why each result matched, down to the file and line.
  • Imports give Engines more room to work: larger per-request output budgets, retries on flaky API blips, a 15-minute first-progress stall window (was 3), and no early stop when a model is cut mid-thought — only the correct entry folder and the Match/craft audit stay hard.
  • Removed Gemini CLI (legacy) from installed engines — Google Antigravity (agy) is the supported Google CLI path.
  • Settings Providers rows match Models — tall engine logos, corner status dots, and compact icon actions at switch height.
  • Settings rail is reorganized: Notifications holds Sounds, Advanced holds Prompts and Early features, and MCP shows status, connect copy, and a read-only tools inventory.
  • Right-click a manual Stash folder to set its color (nine swatches) or pick an icon from a curated Pixel set — smart category folders stay automatic.
  • Manual folder icons now stick after Change Icon… — the chosen Pixel glyph replaces the default folder outline in the folder row.
  • Stash sort sits beside vibe in the search row — no separate Sort label; New folder matches that wider right column.
  • Inspector empty state shows a sparse Bayer motif when nothing is selected — waiting field, not a blank panel.
  • Queue History job rows have clearer hierarchy and padding — kind and title first, Engine next, then tokens/duration/time with the status chip aligned as a group.
  • Stash gallery cards no longer show a color palette strip under the title — the grid reads lighter; palette still lives in the inspector.
  • Shift-click References in Stash to multi-select — the inspector shows a cover stack with Share, instead of a separate Select to share button.
  • uistash can update itself: “Check for Updates…” in the app menu, plus a daily background check, and updates are only accepted if they carry uistash's own signature.
  • The Mac app is now signed and notarized by Apple, so it opens on a new Mac without a security warning.
  • Light mode is easier to read: darker text, stronger borders, a dark rail mark, and engine logos that match the theme.
  • Antigravity (agy) imports write into the task workspace again — Simple runs no longer finish empty because the Engine was auto-denying tools or saving files to its private scratch folder.
  • Imports no longer kill a working silent Engine at three minutes just because it wrote files without streaming text — workspace writes count as progress, and a finished Result is kept even if the stream stayed quiet.
  • Feedback in the left rail lets you send a bug, idea, or “confusing” note without leaving what you’re looking at — optional name remembered, and you can attach a redacted preview of recent app logs (off by default) before you press Send.
  • First-run onboarding walks you from welcome through Engine setup and a real connection test to your first Reference, with a resumable checklist and a Settings re-run.
  • Library card size is now a percentage of the grid (scales with the window), and the right inspector stays open with an empty state so it is not opening and closing.
  • Settings → Sounds lets you turn UI chimes on or off (import finished, failed, license activated, and more), with a preview for each sound.
  • Copy for Figma works in the Mac app again: the gallery and capture frame now share the same host (127.0.0.1), so the capture iframe can load and message the parent.
  • Copy for Figma no longer times out in the Mac app — the capture script is served locally (App Transport Security blocked Figma’s remote script).
  • Spotlight opens in Fill for every type (page, component, mobile) and centers fixed-width builds on the stage instead of leaving them left-aligned.
  • Refine is now a true visual review: read the existing code, list real gaps against the source image, and apply proportional token/CSS fixes — not a weak drive-by or pixel-scan thrash.
  • Refine and Make interactive now show as full cards in Current work — live phase, Engine, elapsed time, and an expandable build log — and open Queue when they start.
  • You can Refine an existing Reference against its original image — polish the code in place, not a rebuild.
  • Imports now auto-fix craft token issues (reuse tokens, extract repeats, snap off-grid sizes, drop unused tokens) so cleanup no longer depends on the Engine getting every detail right.
  • Import Engines are told not to open a browser, start a local server, or take screenshots — uistash renders and Matches Results in the background after they finish writing files.
  • Make interactive no longer fails or restores the original when there is no clickable target — entrance animations and other working edits are kept.
  • Imports no longer discard a working Result just because a visual check could not verify it; unverifiable Match or render checks land as Needs review instead.
  • If an Engine produces no output for 3 minutes, the import stops with a clear error instead of sitting on “starting Engine” until the long timeout.
  • Engine tests now use one connection request, while Imports accept flexible Engine output, check it in a temporary workspace, save only one runnable Result, and explain failures with detailed diagnostics.
  • Imports now has a preferences menu and a full Markdown editor for the prompt used by new builds.
  • You can now share one Reference, a selection, or an entire Style as a .uistash file, with a safe preview before anything is added.
  • Settings now lets you opt into Personal Taste Distillation, keeping it out of the way by default.
  • Google Antigravity is now a supported build engine, with live model discovery and clearer setup errors.
  • Project styles can now receive real tokens, references, and components from an agent working in a repo, then publish reviewed components over MCP after you Keep them.
  • New style now asks whether you're creating a visual direction or a project, and the Mac app reloads the full dialog reliably.
  • Styles now render their earned system, accept declared CSS or JSON tokens, and show which source wins.
  • Fixed the Mac app getting stuck when launched from Finder without Node in its PATH.
  • Taste now uses the same page navigation and header layout as the rest of the app.
  • First-run copy now names the uistash MCP server correctly and the checklist points at Styles instead of a browser extension that was not available yet; Queue wording says work appears and is saved instead of "lands", old Lab runs no longer show in History, and Settings labels collections as Folders.
  • Imagine is now labeled Experimental in the sidebar and on its tools page — the product's core is your Reference library and Styles.
1.0.0 2026-07-23

The first public build. uistash turns the screenshots you save into a coded reference library your agents can read and add to over MCP, so a design you admire arrives as living code, real tokens, and working interaction instead of a flat picture. Everything runs on your Mac, on the engines you already pay for.

  • References: every save rebuilt as inspectable code, Match-scored against the original, and served to your agents over MCP so they read it and add to it.
  • Styles: your projects' design languages, pluggable into any tool. Stop re-pasting the same screenshots every session.
  • tastestack: a taste file distilled from what you keep, where every claim cites the references that earned it.
  • Lab: a small research bench that tests, blind, whether AI actually designs like you, and keeps the rest honest.
  • Local-first, Mac, bring your own engines. $79 once, no subscription.