Changelog

This page tracks notable changes, new features, and fixes in Sheet Architect. Entries are listed newest first.

April 7, 2026 — Undo Overhaul, Export Polish, and Stability

Saving & Undo

  • The undo/redo system has been rebuilt for reliability. Drag-and-drop moves, property renames, and roll template scenario edits are now properly tracked, so Ctrl+Z reverses them as expected. See Undo & Redo.
  • Moving a component via drag-and-drop is now recorded as a single undo step instead of several.
  • Undo and redo are more resilient on complex layout changes and no longer crash.
  • The editor no longer triggers unnecessary saves when nothing actually changed, reducing server load and version-history clutter.
  • Sheets using templates now apply layout changes to the right section of the document.

Exporting

  • Collapsible sections now export correctly to Roll20, including when nested inside repeating sections. The collapse toggle and header structure that were previously missing are now included.
  • Repeating sections now export with the correct Roll20 repeating_ class name format, so Roll20 properly recognizes them as repeating sections.
  • Export validation now checks your CSS for features Roll20 does not support — @import, @font-face, position: fixed, and other incompatible patterns. See Validation — Unsupported CSS Features.
  • Translation file export now picks up display text from component labels, fixing cases where translation keys were exported with empty default values.
  • The export dialog no longer briefly flashes old validation results when reopened.

Layout Editor

  • Collapsible sections have a new internal structure for better Roll20 compatibility. Existing sheets are migrated automatically when opened — no action needed.
  • When creating a collapsible section, you can now set a custom attribute name for the toggle control. Leave it blank and a name is derived from the section title.
  • Fixed a crash that prevented sheets from loading when opening the editor or dropping components onto the canvas.
  • The Sheet Settings modal can again be interacted with after being dragged.
  • Selecting components like labels now correctly shows the selection outline in the canvas.
  • The Property Inspector once again shows the Attribute Name field prominently at the top when a form element is selected.
  • Cancelling a custom component drop no longer leaves a ghost element in the layout.
  • Repeating sections now have their own dedicated docs page. See Repeating Sections.
  • The rename dialog for repeating sections is no longer empty — it shows the current name and lets you edit it.

Logic Editor

  • Batch Processor nodes in repeating mode now correctly compute running totals and per-row results in exported sheets, instead of returning stale values.
  • In Batch Processor manual mode, you can now set which attribute each output slot writes to for the selected row, directly in the Results panel.
  • Circular dependencies between nodes are now visually flagged on the affected node instead of failing silently.
  • Connecting edges to nodes with dynamic inputs (such as Add or Multiply) now lands at the correct handle location.
  • Clicking a button in the layout canvas now triggers logic evaluation, matching the behavior of clicking the trigger in the Logic Editor.
  • Fixed incorrect socket positions on If / Else logic nodes.

Roll Templates

  • Prebuilt layout components (grids, columns, etc.) now display correctly in the roll template editor, roll output previews, and exported Roll20 sheets.
  • Design token CSS variables are now applied in roll template previews.

Style Editor

  • The CSS format button now produces consistent, stable output regardless of how many times it is pressed.

Stability

  • Comprehensive internal restructuring for improved maintainability and performance. No user-facing behavior changes from the restructuring itself.

March 29, 2026 — Multi-Case If/Else, Group Duplication, and Stability Fixes

If / Else Node Overhaul

The If / Else node has been completely redesigned as a multi-case conditional switch.

  • Multiple cases — Add as many condition branches as you need, not just one. Each case has its own "When" condition input and one or more "Then" value slots.
  • First-match evaluation — Cases are evaluated top to bottom. The first condition that is true wins.
  • Dynamic slots — Each case (and the Default section) supports multiple value slots. Connect to the last empty slot and a new one appears automatically. Disconnect and trailing empties collapse.
  • Case management — Reorder cases with up/down arrows, remove cases with the x button. All connections are automatically updated when you reorder or remove a case.
  • Collapse — When you have 4 or more cases, a collapse toggle hides the case details to save canvas space.
  • Match highlighting — The matched case is highlighted green in the editor; unmatched cases are dimmed so you can see which path your data is taking.
  • Inactive case filtering — Outputs from unmatched cases are automatically ignored by downstream nodes, including Batch Processors. You can safely connect outputs from multiple cases to the same Add, Multiply, or other multi-input node — only the winning case's values flow through.

Existing If / Else nodes are automatically upgraded to the new format when you open your sheet.

Repeating Section Rename

Renaming a repeating section now automatically updates everything that references it:

  • Layout fields — Input and button names inside the section are updated to use the new name.
  • Attributes — All attributes belonging to the section (templates and row data) are renamed.
  • Logic nodes — Batch Processor nodes referencing the old section name are updated to the new name.

Previously, renaming a section required manually fixing names across the Layout Editor, attribute list, and Logic Editor. Now it's a single rename in the Component Details dialog.

Smarter Attribute Inputs

Attribute editing throughout the Logic Editor now uses type-aware inputs that match the field type defined in your layout:

  • Checkboxes, radio buttons, and select dropdowns render as dropdown menus with their valid options pre-populated from the layout.
  • Number fields show number inputs.
  • Text fields show text inputs (unchanged).

This applies to Attribute nodes, Batch Processor row tables (both manual and repeating mode), and the repeating section panel.

Logic Editor

  • Group duplication — You can now duplicate Batch Processor, Roll Group, and Group nodes. The duplicate includes all child nodes and connections inside the group, with the label set to "(Copy)."
  • Better container sizing — Batch and Roll container nodes now shrink to fit their contents when you rearrange nodes inside them.
  • Improved row table — The repeating section row table is now scrollable with sticky column headers.

Repeating Section Fixes

  • Sections with fields called "name" or "type" are now correctly recognized as repeating sections.
  • Checkboxes and radio buttons inside repeating sections now correctly default to their unchecked value instead of being blank.
  • Attribute names with a stray "attr_" prefix are now cleaned up automatically when you open the sheet.
  • Fixed an issue where typed inputs in repeating sections could have their attribute names incorrectly double-prefixed.
  • Changing a repeating section value in the Logic Editor now updates the Layout Editor in real time, and vice versa.

Stability

  • Fixed an issue where saving could briefly cause the Logic Editor to reload from stale data.
  • Fixed a batch evaluation issue where internal loops could occur when a node referenced itself inside a batch group.
  • Template row values now sync to the Layout Editor during batch evaluation.

Documentation

  • Repeating Sections now have their own dedicated docs page, with coverage of the rename feature.
  • If / Else node docs rewritten to cover multi-case conditions, dynamic slots, case management, and inactive case filtering.
  • Changelog section added to the docs site (you're reading it!).