Skip to content

Changelog

All notable releases of Termina.

# 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

# Termina 0.2.0

December 16, 2025View full release notes on GitHub →

  • Pure reactive architecture ([#50](https://github.com/Aaronontheweb/Termina/pull/50))
  • All .NET events migrated to IObservable<T> for consistency with System.Reactive
  • IInvalidatingNode.Invalidated: event Action? → IObservable<Unit>
  • TextInputNode: Submitted, TextChanged, Invalidated now use observables

# Termina 0.1.0

December 16, 2025View full release notes on GitHub →

  • Complete removal of Spectre.Console dependency ([#33](https://github.com/Aaronontheweb/Termina/pull/33))

Released under the Apache 2.0 License.