Kerf changelog

v1.1.1

Apply and Save are reliable now

  • Apply current, Apply all, Discard current, and Discard all all show progress (Applying… / Saving…), block double-clicks while a commit is in flight, and surface errors inline instead of failing silently.
  • The "return to welcome" button and command-palette Save / Discard entries are disabled while an apply is running so the workspace can't unmount mid-write.

Direct edits on box-model values

  • Click any margin or padding value in the Properties → Box model diagram to type a new value (Enter commits, Esc cancels, ↑/↓ nudge).
  • Drag a value horizontally to scrub it live (Shift = ×10, Alt = ÷10).
  • Box-model overrides now reliably win the CSS cascade against existing rules, so the value you type is the value that renders.
  • Zero values are muted in the diagram and the px suffix is dropped, so long values like 103 don't visually collide with adjacent ring labels.

Properties sections are collapsible

  • Content, Typography, Box model, Layout, and the React Native panel each have a clickable header with a rotating chevron. State persists across selections and Kerf restarts.

Preview stability

  • Preview gestures (selection, resize, move, margin drag, padding drag) now terminate reliably on release, cancel, window blur, or preview reload — no more drags that "keep going" after you let go.
  • A loading spinner is shown inside the preview frame while a page loads, so slow folders no longer feel frozen.
  • Fixed a render-loop bug where opening certain folders triggered the preview to rapidly refresh hundreds of times per second.
  • Fixed an intermittent issue where Kerf returned to the welcome screen after a renderer reload. (The new workspace:get-current IPC handler is in place for future recovery work.)

React Native preview fixes

  • The source resolver now returns the real DOM path for kerfSrc fallbacks, so selection painting lines up with the iframe again.