Skip to content

Releases

v2.0.0-beta.2

v2.0.0-beta.2 Pre-release
Pre-release

Choose a tag to compare

@StevenTCramer StevenTCramer released this 14 Nov 10:58
98ca454

What's Changed

  • ci: promote the green master package artifact on release by @StevenTCramer in #50
  • chore: clear repo audit checks, add CI coverage, and pin .NET 11.0.100 GA by @StevenTCramer in #51
  • build(deps): update TimeWarp.Build.Tasks to 2.0.0 and TimeWarp.SourceGenerators to 1.0.0-beta.14 by @StevenTCramer in #52
  • docs(kanban): mint task 042 for wave 20261114T054552Z-9a0f39 by @StevenTCramer in #53

Full Changelog: v2.0.0-beta.1...v2.0.0-beta.2

v2.0.0-beta.1

v2.0.0-beta.1 Pre-release
Pre-release

Choose a tag to compare

@StevenTCramer StevenTCramer released this 08 Nov 18:41
5744388

What's Changed

Full Changelog: v1.0.2...v2.0.0-beta.1

v1.0.2

Choose a tag to compare

@StevenTCramer StevenTCramer released this 21 Sep 00:45
5721424

What's Changed

Full Changelog: v1.0.1...v1.0.2

v1.0.1

Choose a tag to compare

@StevenTCramer StevenTCramer released this 16 Aug 05:35
bd375e2

What's Changed

  • Release 1.0.1: Nuru/DevCli pins, trusted-publishing probe, and audit-clean by @StevenTCramer in #27

Full Changelog: 1.0.0...v1.0.1

1.0.0

Choose a tag to compare

@StevenTCramer StevenTCramer released this 03 Jul 08:59
93800ea

First stable release of TimeWarp.Terminal — terminal abstractions and widgets for testable C# console applications. Everything below came out of a full release-readiness review (all 56 findings fixed or explicitly triaged).

Breaking changes vs 1.0.0-beta.13

  • Format culture: Terminal.Write/WriteLine(format, ...) now use the current culture (Console parity) instead of InvariantCulture. Set Terminal.FormatProvider = CultureInfo.InvariantCulture for deterministic output.
  • ReadKey() moved from IConsole to ITerminal: key-by-key input is interactive-terminal functionality; TestConsole.ReadKey() (which threw) and TimeWarpConsole.ReadKey() are removed.
  • Legacy conhost members removed (MoveBufferArea, CursorSize, SetWindowSize, SetWindowPosition, SetBufferSize, WindowLeft, WindowTop, LargestWindowWidth/Height) — these do not work in Windows Terminal, let alone elsewhere. WindowWidth/WindowHeight/BufferWidth/BufferHeight are now get-only on ITerminal and the static facade (TestTerminal keeps setters).
  • AnsiHyperlinks.CreateLink(url, displayText): parameter order aligned with WriteLink.
  • TableBuilder.Build() returns a snapshot — post-Build builder calls no longer mutate built tables.
  • ConsoleColor SGR mapping corrected: Dark* → 30-37, normal → bright 90-97 (previously collided); visible output changes for ConsoleColor overload users.
  • WritePanel(string, string?) overload removed: it made Terminal.WritePanel("content") a CS0121 ambiguous call.

Highlights

  • Capability-aware output: ConsoleColor overloads, widget colors, and WriteLink/WriteLinkLine degrade to plain text when SupportsColor/SupportsHyperlinks is false (non-empty NO_COLOR, TERM=dumb, redirection).
  • Parallel-safe testing: Terminal.Instance resolves through the async-local TestTerminalContext; the context never mutates the global.
  • Rendering correctness: Unicode 16 EAW-accurate width measurement, ANSI handling for all CSI/OSC/ESC forms, mid-word styling no longer breaks word wrap, ANSI-preserving cell truncation.
  • Security: OSC 8 hyperlink URLs sanitized (C0/DEL percent-encoded), closing a terminal escape-injection vector.
  • Cross-platform: CursorVisible/Title setters and Beep() work on Linux/macOS; KeyAvailable no longer throws under redirected stdin; platform contracts documented on every member.
  • Verified AOT-compatible: builds clean under full trim/AOT analysis; proven by native AOT publish.

Full details: #26

🤖 Generated with Claude Code

1.0.0-beta.13

1.0.0-beta.13 Pre-release
Pre-release

Choose a tag to compare

@StevenTCramer StevenTCramer released this 18 May 01:53
ee255e7

What's Changed

Maintenance

  • Integrated TimeWarp.Nuru.DevCli shared endpoints (clean, check-version, self-install) — replaces local duplicates
  • Bumped TimeWarp.Amuru to 1.0.0-beta.33 and TimeWarp.Nuru to 3.0.0-beta.70
  • Added .timewarp/dev.jsonc for repo-local dev-cli config

Full Changelog

1.0.0-beta.12...1.0.0-beta.13

1.0.0-beta.12

1.0.0-beta.12 Pre-release
Pre-release

Choose a tag to compare

@StevenTCramer StevenTCramer released this 22 Mar 18:41
4d21fbe

What's Changed

Bug Fix

  • Package icon: Added logo.png to NuGet package so the TimeWarp icon appears on NuGet.org

Full Changelog

1.0.0-beta.11...1.0.0-beta.12

1.0.0-beta.11

1.0.0-beta.11 Pre-release
Pre-release

Choose a tag to compare

@StevenTCramer StevenTCramer released this 22 Mar 18:27
f915e0c

What's Changed

Complete Console API Surface Coverage

This release adds full System.Console API coverage to IConsole, ITerminal, and the Terminal static class. Application code no longer needs to touch System.Console directly.

IConsole (new members)

  • Stream access: OpenStandardInput(), OpenStandardOutput(), OpenStandardError(), In, Out, Error, SetIn(), SetOut(), SetError()
  • Encoding: InputEncoding, OutputEncoding
  • Redirection state: IsInputRedirected, IsOutputRedirected, IsErrorRedirected
  • Rich input: Read(), ReadKey() (parameterless overload)

ITerminal (new members)

  • Cursor properties: CursorLeft, CursorTop, CursorVisible, CursorSize
  • Window/buffer geometry: WindowHeight, WindowLeft, WindowTop, BufferWidth, BufferHeight, SetWindowSize(), SetWindowPosition(), SetBufferSize(), MoveBufferArea(), LargestWindowWidth, LargestWindowHeight
  • Color state: ForegroundColor, BackgroundColor, ResetColor()
  • Control/utility: Beep(), Beep(int, int), TreatControlCAsInput, Title, KeyAvailable

Terminal static class

  • All new members mirrored as static pass-through to Instance

Test implementations

  • TestConsole and TestTerminal updated with mock streams, encoding defaults, character queues, geometry defaults, beep tracking, null checks on SetIn/SetOut/SetError

Stats

  • +5,691 lines across 28 files
  • ~160 new unit tests across 8 test files
  • 0 build warnings

Full Changelog

1.0.0-beta.10...1.0.0-beta.11

1.0.0-beta.10

1.0.0-beta.10 Pre-release
Pre-release

Choose a tag to compare

@StevenTCramer StevenTCramer released this 19 Mar 02:42

What's Changed

Improvements

  • TestTerminalContext Refactor: Replaced side-effect-heavy Current setter with explicit SetCurrent, ClearCurrent, and Use(TestTerminal) APIs for clearer lifecycle management
  • CancelKeyPress Event: Added CancelKeyPress event to ITerminal for graceful Ctrl+C handling in interactive applications
  • Baseline Compliance: Fixed .envrc syntax, added #region Purpose annotations, updated NuGet packages

Maintenance

  • Updated NuGet packages: TimeWarp.Amuru, TimeWarp.Jaribu, TimeWarp.Nuru, Microsoft.CodeAnalysis analyzers
  • Added description to dev CLI for capabilities check
  • Configured .editorconfig to disable banned checks (this IS the terminal library)

Full Changelog

1.0.0-beta.9...1.0.0-beta.10

1.0.0-beta.8

Choose a tag to compare

@StevenTCramer StevenTCramer released this 18 Mar 17:56
3df1972

What's Changed

New Features

  • CancelKeyPress Event - Added CancelKeyPress event to ITerminal for graceful Ctrl+C handling in interactive applications like REPLs (#18)

    • TimeWarpTerminal delegates to Console.CancelKeyPress
    • TestTerminal includes SimulateCancelKeyPress() for testing
  • Hyperlinks in Table Rows - Added sample demonstrating hyperlinks within table cells

Improvements

  • MSBuild Variables in Runfiles - Updated all 28 runfiles to use $(SourceDirectory) instead of hardcoded relative paths, leveraging .NET 10's support for MSBuild property expansion in #:project directives

Refactoring

  • Renamed CLI command files to remove -command suffix for cleaner naming
  • Renamed ci command to workflow for clarity
  • Renamed ScriptsDirectory to ToolsDirectory in repository.props

Full Changelog

1.0.0-beta.7...1.0.0-beta.8