Changelog

0.2.1

Released 16 October 2026.

Desktop app

  • Newa tour of Studio, offered when you finish onboarding
  • Newthe Renders tab shows what re-renders, what caused it, and which providers trigger extra renders, and warns you about render loops. The Inspector's Perf tab is now Renders too, and the component tree highlights each re-render
  • NewStudio checks performance while you use the app, and tells you about each new problem once
  • NewInsights can group recent sessions, so a problem that keeps coming back is one card
  • Newthe Performance screen opens on a dashboard
  • NewCompare puts several metrics on one chart, with presets. Hover a metric to see what it measures
  • NewReplay charts show CPU per thread, dropped frames, garbage-collection pauses and network
  • NewReplay draws a recording's touches over the device, and the heatmap follows the playhead
  • Newcapture a CPU profile from the Flamegraph panel with one button
  • Newthe device menu lists running Mac apps
  • Newnotifications survive a restart, and clicking one takes you to what it's about
  • NewHardware → Shake shakes the simulator
  • FixStudio uses less CPU, and animations and tooltips run at the right speed
  • Fixthe Inspector no longer shows "0 nodes" for a connected device after an agent session
  • Fixhovering a row in the component tree outlines that component on the device
  • Fixexpanding a row in the Network panel no longer shows an error
  • Fixa restarted run's charts no longer start with a sample from the previous run
  • Fixtaps made by a flow or an agent no longer count as rage taps or dead zones

CLI

  • Breakinginstall-macos-agent.sh is gone. Squiggle adds the agent to your Mac app's Debug build for you, so remove any build step that runs the script
  • Newsquiggle init finishes setting up an Expo app, adding the Babel config and entry file if they're missing. Anything it can't change safely, it lists for you to do
  • Newsquiggle init no longer creates a .env file. Your iOS app finds Squiggle without one
  • Newsquiggle init --agent claude also installs the Squiggle agent kit into .claude/
  • Newsquiggle doctor also checks your licence and the Babel plugin, and says how to fix either
  • Newwhen your trial or licence expires, Squiggle tells you where to buy a key
  • Fixsquiggle perf diff --assert exits with code 1 when a threshold is breached
  • Fixsquiggle crawl exits with code 1, not 2, when it finds a crash
  • Fixtwo runs started at the same moment no longer merge into one history entry

Agents & MCP

  • Newrenders gives your agent what Studio's Renders tab shows
  • Newpropose_fix turns a performance finding into a plan of code changes
  • Fixbatch checks every step before it runs any, so a malformed step no longer runs the steps before it
  • Fixafter a filtered describe, the next action no longer reports elements that were already on screen as new
  • Fixa tap by ref hits that element, even when another one has the same label
  • Fixthe agent kit's Claude Code hooks run

Flows & device

  • Breakinga misspelt key at the top of a flow file, such as healng:, is an error that lists the valid keys. It used to be ignored
  • Newtest an iOS app and a Mac app from one project: list both under apps in the config, and pick one with --platform. squiggle init fills them in
  • Newresults are kept per platform, so a flow that passes on iOS isn't counted as passing on macOS
  • Newsquiggle flow --record works for Mac apps
  • NewMac apps with App Sandbox turned on work too
  • Fixa run for your iOS app no longer connects to your Mac app, or the other way round
  • Fixscrolling works in Mac apps, sideways too
  • Fixa Mac app left open no longer slows down the start of a run
  • FixexpectRoute on a tap no longer shows an error in your editor

Performance

  • Newfindings link to the line that declares the component
  • Newwhen a context value is recreated on every render, the finding names the context and the component that provides it
  • Newmemo-miss also catches props that are new objects or arrays with the same contents
  • Newnav-loop flags navigation loops your users don't usually take
  • Newsquiggle perf insights lists a session's findings, and squiggle perf watch shows them as they happen
  • Newperf diff --assert can fail when a finding you name appears, with failOnDetectors
  • Newperf diff and product analytics compare sessions from one platform at a time. Choose which with --platform

SDK

  • Newrage taps and dead zones are detected on every control, not only gesture-handler ones
  • Newcomponents wrapped in memo() or forwardRef() show up under their own names
  • Fixa button with no label or testID appears once in describe, not once for each component wrapping it
  • FixMac apps no longer report an impossible JS FPS

Website

  • Newthe docs are rewritten, and cover every MCP tool, agent command and Performance panel
  • Newmore docs pages have live demos you can try
  • Newsearch (⌘K) finds entries in reference tables
  • NewGet Squiggle walks you from install to your first flow
  • Fixtooltips no longer stay open after you tap on a phone
  • Fixthe phone menu lists every section of Why, Pricing and Download
  • Perfsquiggle.sh pages load faster and jump around less while they load