Skip to content

Changelog

All notable releases of Termina.

# Termina 0.7.2

March 1, 2026View full release notes on GitHub →

  • TextAreaNode multi-line text input ([#161](https://github.com/Aaronontheweb/Termina/issues/161), [#163](https://github.com/Aaronontheweb/Termina/pull/163))
  • New TextAreaNode component for multi-line text input with line-by-line editing
  • Extracted common base class TextInputBaseNode shared with single-line TextInputNode
  • Alt+Enter for universal newline insertion (works on all terminals, unlike Ctrl+Enter)

# Termina 0.7.1

February 27, 2026View full release notes on GitHub →

  • DynamicLayoutNode is now invalidation-driven ([#155](https://github.com/Aaronontheweb/Termina/issues/155))
  • Factory no longer runs on every Measure/Render cycle — runs once, then only on Invalidate()
  • Fixes silent state destruction (highlights, typed text, focus) when factory creates new instances
  • Invalidate() now eagerly evaluates the factory for immediate child swap

# Termina 0.7.0

February 26, 2026View full release notes on GitHub →

  • Migrate from System.Reactive to R3 ([#140](https://github.com/Aaronontheweb/Termina/pull/140))
  • Replaced System.Reactive (Rx.NET) with [R3](https://github.com/Cysharp/R3) throughout the framework
  • IObservable<T> → Observable<T> in all public APIs
  • OfType<T>() → OfType<TSrc, TDest>() (R3 requires both type parameters)

# Termina 0.6.1

February 25, 2026View full release notes on GitHub →

  • Built-in input history for TextInputNode ([#144](https://github.com/Aaronontheweb/Termina/pull/144))
  • New WithHistory(maxEntries) fluent API for enabling input history
  • New AddHistory(text) method for programmatically adding history entries
  • Up/Down arrow keys navigate through previous input submissions

# Termina 0.6.0

February 24, 2026View full release notes on GitHub →

  • Scrollbar for StreamingTextNode ([#138](https://github.com/Aaronontheweb/Termina/pull/138))
  • Visual scrollbar renders on the right edge of StreamingTextNode when content exceeds the viewport
  • ScrollbarOptions record for customizing track/thumb characters and colors, with AutoHide support
  • WithScrollbar() fluent method on StreamingTextNode for opt-in configuration

# Termina 0.5.1

December 19, 2025View full release notes on GitHub →

  • Fix nullability propagation in [Reactive] source generator ([#112](https://github.com/Aaronontheweb/Termina/pull/112))
  • Source generator now preserves nullable reference type annotations (e.g., string?, int?) in generated properties
  • Added custom SymbolDisplayFormat with IncludeNullableReferenceTypeModifier option
  • Nullable fields now generate properties with matching nullability annotations, providing correct nullability hints in consuming code

# Termina 0.5.0

December 18, 2025View full release notes on GitHub →

  • BlockSegment wrapper for block-level streaming text ([#108](https://github.com/Aaronontheweb/Termina/pull/108))
  • Enables text segments to render as block elements starting on new lines with vertical word wrapping
  • New BlockSegment class wraps any ITextSegment for block-level rendering
  • Fluent .AsBlock() API for creating block segments

# Termina 0.4.0

December 18, 2025View full release notes on GitHub →

  • VerticalLayout and HorizontalLayout now default to Auto() sizing ([#97](https://github.com/Aaronontheweb/Termina/pull/97))
  • Previously, these layouts defaulted to Fill(), which caused nested layouts to compete with siblings for space
  • New Auto() default means nested layouts size to their content by default
  • Fill() is now only needed for children that should claim remaining space within a container

# Termina 0.3.0

December 17, 2025View full release notes on GitHub →

  • Inline animated text segments with tracked segment support ([#71](https://github.com/Aaronontheweb/Termina/pull/71))
  • Opt-in tracked segments for StreamingTextNode enabling inline animations (spinners, timers, etc.)
  • Caller-provided SegmentId system (like HTML div IDs) for tracking and manipulating segments
  • New interfaces: ITextSegment, IAnimatedTextSegment, ICompositeTextSegment

# Termina 0.2.1

December 16, 2025View full release notes on GitHub →

  • Diff-based rendering system ([#61](https://github.com/Aaronontheweb/Termina/pull/61))
  • Implemented double-buffering terminal wrapper that eliminates screen flickering
  • Only outputs changed cells on flush instead of clearing entire screen
  • New DiffingTerminal wrapper with FrameBuffer for efficient cell-level diffing

Released under the Apache 2.0 License.