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!).