Skip to main content

Changelog

Every improvement, automatically tracked from our commit history.

Subscribe via Atom feed
← Prev Page 14 of 32 Next →
February 21, 2026
minor Notes

Add block nesting and column layouts to Notes editor

Notes 1.59.0 → 1.60.0 | bec10d80
Details

Introduces hierarchical block nesting via PageBlock.Children, enabling blocks to

own nested child blocks. This is the foundation for indentation, toggle sections,

and structured content like numbered lists with nested bullet lists or code blocks.

Model changes:

  • Added Children property to PageBlock for universal block nesting
  • Added ChildBlocks property to PageListItem and PageTaskItem for mixed-content

list items (e.g. a numbered item owning a code block)

  • Added ColumnLayoutBlock and PageColumn types for side-by-side column layouts
  • Updated PageBlockConverter to serialize/deserialize children and column_layout
  • Updated PageBlockContentConverter for ColumnLayout type support
  • Created BlockPath record for addressing blocks within nested trees
  • Created BlockTreeHelper with tree navigation utilities: FindBlockById,

GetBlockAtPath, GetParentList, FlattenTree, IndentBlock, OutdentBlock

Rendering:

  • BlockWrapper.axaml now renders nested children via recursive ItemsControl

with 24px left margin indentation per depth level

  • Added Depth styled property to BlockWrapper for depth-aware rendering
  • Added drop-as-child visual indicator (border glow when dropping on center)
  • Created ColumnLayoutEditor control with resizable columns, add/remove column

buttons, and per-column block rendering

  • Added ColumnLayoutBlock DataTemplate to NotesView.axaml

Editing operations:

  • Added NestBlockAsChild, IndentBlock, OutdentBlock to NotesViewModel
  • Tab/Shift+Tab keyboard shortcuts for indent/outdent in NotesView
  • Extended drag-drop to support three zones: drop-above (top 25%), drop-as-child

(center 50%), drop-below (bottom 25%)

  • Added column layout entries to block type picker (2 columns, 3 columns, 70/30)
  • Extended GetBlockText and TryDeleteEmptyBlock for ColumnLayoutBlock

All changes are backward compatible — existing documents without children

deserialize with empty lists. Version bumped to 1.60.0.

minor Notes

Add live cross-block drag selection to Notes editor

Notes 1.58.0 → 1.59.0 | 210d093d
Details

Implements Google Docs-like drag selection across block boundaries. When a user

clicks in one block and drags into another, text is selected continuously across

all blocks in between.

How it works:

  • RichTextEditor detects when a drag moves outside its vertical bounds and fires

DragSelectionEscaped (new event from UI.Adaptive 1.59.2)

  • NotesView registers tunnel PointerMoved/PointerReleased handlers on escape
  • The parent hit-tests blocks to find the current target, sets partial selection

on edge blocks and full selection on intermediate blocks

  • CrossBlockSelection now carries optional StartCharOffset/EndCharOffset for

partial text selection on the first/last block

  • GetCrossBlockSelectedText uses char offsets so Cmd+C copies only the

drag-selected portion, not full block text

The selection persists until dismissed (click, Escape, or typing), matching

existing Shift+Click and Cmd+A cross-block selection behavior.

Version bump: 1.58.0 → 1.59.0

minor Notes

Add cross-block text selection for Notes editor

Notes 1.57.2 → 1.58.0 | 45206830
Details

Implements document-like selection across block boundaries in the block

editor. Double-tap Cmd+A selects all blocks (first tap selects within

the focused block, second escalates to all blocks). Shift+Click extends

selection from the anchor block to the clicked block. Selected blocks

receive a visual highlight overlay via the block-cross-selected CSS class.

Cmd+C copies aggregated text from selected blocks separated by blank

lines. Cmd+X copies and deletes. Delete/Backspace removes selected

blocks. Escape or clicking into a single block clears the selection.

Typing any character also dismisses the selection.

State is managed via CrossBlockSelection record on NotesViewModel with a

static event that BlockWrapper instances subscribe to for highlight

updates. No SDK or UI.Adaptive changes required.

minor Notes

Add chart query error recovery in ChartDataLoader

Notes 1.55.3 → 1.56.0 | c9d3debc
Details

When a dataset chart query fails with a binder or aggregation error,

the loader now sends a ChartQueryErrorMessage to the shell's

DatasetInsightOrchestrator for AI-assisted correction. The AI returns

a fixed chart config which is retried once. Recovery has a 15-second

timeout and only attempts one retry to prevent infinite loops.

Notes plugin version bump to 1.56.0.

minor Data

Data plugin: visual overhaul + smart delete with reference checking

Data 1.19.1 → 1.20.0 | 4e830ddd
Details

Flatten sidebar item styling (smaller icons, tighter margins) to match

Notes' minimal aesthetic. Add hover-reveal (x) delete buttons on Views

and AI Generated list items. Extract delete logic into partial class

DataViewModel.Delete.cs with async reference search — on delete request,

the overlay now checks for cross-plugin entities referencing the dataset

via SDK SearchAsync and displays clickable navigation links before

confirming. Add DatasetReference model, wire IPrivStackSdk through

DataPlugin. Bump version to 1.20.0.

← Prev Page 14 of 32 Next →

Get notified about new releases