Ratatui renders snapshots; VMx owns application state, commands, and lifecycle
VMx-owned state
The example uses ComponentVm, CompositeVm, FilteredCompositeVm, PagedComposition, FormVm, SearchableState, TokenPagedComposition, NotificationHub, and DiscriminatorVm.
WorkspaceVm composes the six child surfaces through AggregateVm6.
Tests target the VM layer before the TUI adapter.
Thin terminal adapter
Ratatui only renders snapshots from view model getters.
crossterm events are translated into VM commands and methods.
The smoke path exercises the same VM commands without an interactive terminal.
Showcase behavior
Notebook selection, note filtering, paging, edit validation, save/revert, global token search, delete confirmation, and notifications are all represented.