Changelog

What's New

Every update to Atom Crafter, as it ships.

v0.2.4

Fixed

  • Escape key still exited component edit context when focus had not yet moved to the dropdown listbox (#626). The initial fix (stopPropagation on the listbox) covered the steady-state case but missed a timing gap: openMenu() defers the focus-move to the listbox via requestAnimationFrame, so if Escape is pressed immediately after opening, focus is still on the trigger <button> and the event bubbled unhandled to the global backOutOfComponent listener. Added an Escape case to onButtonKeyDown that intercepts and cancels the menu whenever the popup is open, closing the gap.
v0.2.1

Fixed

  • App failed to launch on first open. The TypeScript compiler package was missing from the packaged app because it was listed as a dev dependency. Five Electron main-process modules use the TypeScript Compiler API at runtime to parse and edit Astro component frontmatter — moving typescript to dependencies and including it in the electron-builder bundle resolves the crash.
v0.2.0

The headline of this release is a full Code editor mode built on Monaco — a second editing surface alongside the visual canvas, toggled with ⌘\. The release also ships Astro Islands visualisation, CMS content authoring improvements, two new manager panels, a Command Palette, and a broad WCAG AA accessibility pass.

Added

  • Code editor mode (⌘\). Switch between Visual mode and the new Monaco-based code editor at any time. Entering Code mode always opens the current Visual canvas page as the active tab; leaving with unsaved changes prompts you to apply or discard them (apply-on-exit).
  • File tree. Scoped to project content by default with an "All files" toggle. Create, rename, and delete files and folders from the toolbar. The tree is resizable via a drag handle and scrolls horizontally for deep paths. Indent guides and expand/collapse-all toggle included.
  • Code editor tabs and session state. Open buffers persist across app restarts; the file list and active tab are restored on re-entry. ⌘S saves the active buffer to disk.
  • Astro frontmatter syntax highlighting. .astro files render dedicated frontmatter highlighting in the Monaco editor.
  • Cmd+click import navigation. Jump to any imported file by Cmd+clicking its path — ES imports, CSS @import, Sass @use, CommonJS require, and tsconfig path aliases (@/…) are all resolved.
  • Problems panel (⌘⇧M). Lists all Monaco diagnostics for the active file. HTML and .astro files are also checked for unclosed or mismatched tags.
  • Astro Islands & Slots visualisation. The visual canvas now identifies and annotates client directive islands (client:load, client:idle, etc.) and named slots, keeping the visual structure accurate for component-heavy pages.
  • Command Palette (⌘K). A searchable list of every registered command.
  • Integrations panel. Browse and manage Astro integrations configured in astro.config.mjs.
  • Site Map panel. A top-level view of every page and route in the project.
  • CMS: create and delete entries. The CMS panel now supports creating new entries in glob collections and deleting existing ones, with an undo step registered for each operation.
  • Component dependency graph (dev builds). A force-directed SVG view of the module-import graph with layer violations highlighted. Available in the Developer menu in dev builds.
  • Registry Browser (dev builds). A dev-only window for browsing all registered StyleSections, PanelViews, and Commands.

Changed

  • Code editor mode toggle label changed from "IDE" to "Code" in the mode toggle UI.
  • Release script now promotes the [Unreleased] section of CHANGELOG.md to a versioned heading automatically and refuses to release if the section is empty.

Fixed

  • Untracked folders no longer duplicate in the file tree when changes are detected.
  • Code editor session correctly reopens the canvas page when the stored session has no tabs.
  • CMS content entry IDs are now stable; focus reliably lands on the new entry after creation.

Accessibility

  • WCAG AA audit and fixes across style panel surfaces, manager panels (CMS, Assets, Pages, History, Variables, Framework), and app chrome (Structure, Props, canvas overlays, code dock, terminal, welcome screen, modals).
v0.1.27

Added

  • Code dock: Cmd+click import navigation. Cmd+clicking any local import path in the code dock jumps directly to that file. Hovering while holding Cmd underlines the path to signal it is clickable.
  • Code dock: single-editor with staged apply. The dock now shows one editor at a time with an explicit Apply button, replacing the multi-pane layout. Changes stage locally and are written to disk on apply.
  • Code dock: edit-target chip. The current file's name is shown inline in the dock bar so you always know which file you are editing.

Fixed

  • Astro files in the code dock now render correct mixed-language highlighting, distinguishing the TypeScript frontmatter from the HTML template.
  • Unsigned Mac builds now show a clear explanation dialog instead of a cryptic Squirrel code-signature error when checking for updates.
v0.1.26

Fixed

  • Props panel host fields are now extracted into a dedicated component, keeping always-mounted views hook-safe and preventing hook order violations.
  • Panel compound component overhauled to production quality — more robust layout, consistent sizing, and correct scroll behaviour across panel variants.
v0.1.24

The largest single stretch of work in the project's history: the entire codebase moved from JavaScript to TypeScript, the design system was rebuilt on a token architecture, and the app was rebranded from Stacki to AtomCrafter. Also includes a complete overhaul of the release pipeline and several packaging fixes.

Added

  • Component Props chrome and type catalogue. The left-rail schema surface is titled Component Props for both components and layouts. Includes a type catalogue legend, prop override/restricted/advanced modes, a searchable type catalogue with a braces toggle for free expressions, literal-union Options lists, and a dedicated Prop Schema rail tab that opens automatically when a component definition is open.
  • TypeScript conversion, end to end. Every renderer and main-process source file was converted from .js/.jsx to .ts/.tsx, with a typecheck/lint gate ensuring each conversion landed clean.
  • Shortcut registry. All keyboard shortcuts moved into a single registry with declared scopes, a collision-resolving matcher, and a Shortcuts panel listing every bound command with accelerator chips.
  • Code dock. A workspace for editing a component's frontmatter, CSS, JS, and HTML as live bound panes. Edits apply immediately and invalidate the affected modules in the preview. Includes drill-in chrome, pane restore, vertical accordion fullscreen, and Tab-to-indent.
  • Framework panel. A project-wide design system editor with Colours, Typography, and Spacing tabs backed by a schema and CSS generator — colour ramps, typography scales, and copy-variable affordances.
  • Breakpoint system. Project-owned breakpoint data with a manager popover (add/rename/reorder/icon), responsive-control indicators on style-panel fields, W/H/% numeric fields on the preview toolbar, width-lock toggle, and auto-fit zoom.
  • Design token system. A three-tier CSS custom-property stack (primitive → semantic → component) replacing the old flat :root block, with a token-lint test and a tokens:docs generator.
  • ComponentPropertiesPanel. A dedicated panel for editing a component's declared props with project-wide prop renaming (updates every call site).
  • Merge conflict resolution modal and branch-switching safety dialog.
  • Components panel: New Component button, "Convert to component", component delete, component unlinking, and a hover preview.
  • Tooltips and shortcut hints across the left rail, breakpoint buttons, dock/breadcrumb buttons, and preview controls.

Changed

  • Domain extraction and IPC seam. The former monolithic main.js split into typed domains (Git, Assets, Pages, Styles, Content, Project, Dev server, Terminal), each behind a typed IPC seam replacing untyped window.avb calls.
  • Source layout reorganised into domain folders: electron/content, electron/git, src/class, src/asset, src/page, src/code-dock, src/schema.
  • Test suite ported from a custom runner to Vitest.
  • Page-model state management rebuilt on Mutative with reference-held undo history.
  • UI visually flattened: box-shadow elevation removed, all colours routed through the token system, default palettes aligned to VSCode 2026, WCAG AA contrast fixes.
  • Repo rebranded from Stacki to AtomCrafter.

Fixed

  • Bare boolean attribute props (e.g. disabled) now read as "on" rather than unset.
  • Layout no longer jumps when the right panel finishes loading after page state.
  • Hardcoded hex colours in the code dock's syntax highlighter replaced with semantic tokens.

Infrastructure

  • Release pipeline rebuilt. pnpm release [patch|minor|major|x.y.z] handles version bump, commit, tag, and push in one step with pre-flight guards.
  • Mac builds no longer require an Apple Developer account. CI auto-detects signing secrets and falls back to an unsigned DMG if absent.
  • @astrojs/compiler bundled correctly in packaged builds (WASM accessible outside the asar archive).
  • Auto-updater 404 handling — bare HttpError: 404 responses are now treated as a silent no-op rather than surfacing an error dialog.

Open your site and start designing

Point it at any folder and start.

macOS & Windows · v0.2.4