- 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
pxsuffix is dropped, so long values like103don'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-currentIPC handler is in place for future recovery work.)
React Native preview fixes
- The source resolver now returns the real DOM path for
kerfSrcfallbacks, so selection painting lines up with the iframe again.