# Changelog All notable user-visible changes are recorded here. The format follows Keep-a-Changelog conventions; versions follow semver. ## [0.1.0] - 2026-06-10 Initial release. ### Added - Welcome screen on launch: app title with three actions — New Capture (creates a guide, opens the editor, and starts a capture session), Existing Workspace (guide library), and Settings. The brand button returns to the welcome screen from any view. - Capture menu in the editor topbar: full screen / window / region / 3-second delay, paste image as step, import images, and capture session start/finish — capture no longer requires the global hotkey. - Continuous capture sessions: steps are grabbed on every OS click where the platform supports it (xinput on X11, PowerShell on Windows), with interval auto-capture (3/5/10 s) as the always-works fallback when click detection or global hotkeys are unavailable (e.g. WSLg/Wayland). The REC bar shows the live count and trigger, with Shoot / Auto / Pause / Finish controls. - Recording sessions tuck the window away once and control everything from a red tray icon (capture now / pause / open / finish) instead of hiding the window for every shot — the app stays reachable mid-session, opening it auto-pauses capture, and per-shot latency drops because the hide-repaint wait is gone. Automatic captures also stand down whenever the cursor is over a visible StepForge window. - New captures and newly added steps are now selected in the editor. - The app hides its own window during capture so screenshots show your work, not StepForge; hotkey captures restore the window without stealing focus. - Blocks panel: add and edit informational text blocks, code blocks, and tables directly on a step. - Focused-view zoom and pan sliders. - Guide-level placeholders editor (More ▾ → Guide placeholders). - Backups & snapshots dialog with one-click undoable restore. - Export dialog: editable per-format options, save-as-template, and a template manager (rename / duplicate / delete / share as .sfglt); Preview now opens the generated file in the default viewer. - Apply an annotation's style to all annotations of the same type in the step or the whole guide. - Keyboard shortcuts: tool keys (S R O L A T G N B H M U C), PageUp/ PageDown step navigation, Ctrl+= / Ctrl+- / Ctrl+0 zoom, annotation copy/paste (Ctrl+C/V), Ctrl+Delete deletes the step, Shift+arrows fast-nudge — plus a shortcuts reference dialog. - Library guide cards now show a description preview and are larger; a "Select" toggle enables multi-select with a bulk action bar (select all, favorite/unfavorite, move to folder, delete). - Right-click "Move to folder" on a guide no longer lists its current folder, and "Move to no folder" only appears when the guide is currently in a folder. ### Fixed - Renderer scripts no longer collide in the shared global scope (the app previously failed to boot with a blank window). - Focused-view toggle persists correctly (`step.focusedView.enabled`). - Annotation style edits no longer steal input focus on each keystroke. - Step list stays in sync after saves and undo/redo. - Escape deselects the active annotation instead of deleting it. - Modal dialogs (confirm/prompt/etc.) no longer resolve as cancelled when an action button is clicked — `openModal`'s teardown was firing the dialog's default-cancel callback before the button's own resolution could win. This was most visible as the step "Delete" button silently doing nothing. - New Capture no longer hides the app window ~1.2s after starting; a session now starts paused and the window only tucks away once the user presses "Start recording" in the capture bar, so the app doesn't vanish out from under you. - The capture status bar (REC count / Shoot / Auto / Pause / Finish) is now shown only in the editor view; it no longer appears over the library when a session is still running in the background. - Click-triggered captures now grab the cursor position at the instant of the click (instead of from the cache's last refresh, up to ~75ms earlier) and use it for the click-marker placement, and the click-capture cache is armed as soon as recording starts so the very first click is captured instantly. - Settings no longer fails to open if `app-settings.json` or `placeholders.json` was previously corrupted (e.g. left containing the literal text "undefined" by an old bug); a corrupted file is now treated as empty instead of crashing the dialog, and is overwritten with valid JSON the next time settings are saved. ### Added (initial feature set) - Guide library with folders, favorites, title + full-text search, and a quick-actions palette. - Capture engine: full-screen / active-window / region capture, delay, pause/resume, global hotkeys, click markers, clipboard paste, image import. - Three-pane editor: step tree with substeps, statuses, hidden/skipped steps, focused view, autosave, undo/redo. - Annotation canvas: rect, oval, line, arrow, text, tooltip, numbered marker, blur, highlight, magnify, crop; normalized JSON scene graph. - Rich text descriptions, informational text blocks, code blocks, tables, step links, and placeholders (global / guide / system scope). - Single-file `.sfgz` share archives, linked guides with lock files, snapshot backups and restore. - Exporters: JSON, Markdown, Simple HTML, Rich HTML, PDF, animated GIF, image bundle, DOCX, PPTX; per-format templates shareable as `.sfglt`. - System/light/dark theming, keyboard shortcuts, settings dialog. - Offline guarantee: zero network code paths.