Skip to content

ckVision 1.1.0

Choose a tag to compare

@cklukas cklukas released this 11 Oct 17:00
· 7 commits to main since this release

ckVision 1.1.0 is a minor release. It adds one public type and fixes how a session ends when its terminal goes away. Code that already catches std::system_error needs no changes.

Added

  • ckv::term::TerminalLost, a std::system_error, reports that the terminal a session runs on is gone. PosixTerminal and WindowsTerminal throw it when output can no longer be written or console input can no longer be read.

Fixed

  • A terminal that goes away no longer ends the process with SIGABRT. Application::step() and run_until() treated the backend's session-ending exception as an application-callback failure. They aborted with "application callback threw", and macOS showed a crash report. Every callback boundary now lets TerminalLost through to the caller, even when a callback was painting, ringing the bell or setting the title as the terminal went away. Exceptions that application code throws itself still end the process as before.
  • PosixTerminal now notices when its input hangs up (end of file or a read error in raw mode). It delivers whatever the input still held, a recovered paste included, and then throws TerminalLost. Before, a session that drew nothing waited forever on input that could no longer arrive.

Upgrading

Catch ckv::term::TerminalLost around the loop that drives Application. Let the Application and the terminal unwind, which restores the terminal, and report what() afterwards.

Package

The attached ckvision-client-1.1.0-143679f7.tar.gz contains the installable macOS ARM64 SDK, runnable examples, source documentation and 225 generated figures. It was built from public source commit 143679f704605b18527f6a7ab8cacb5603ecbbae. Archive SHA-256: 6a6b79bd3c9e03fc94fd54444a51cc737a8a9ee4fee741433a25495711cd2813.

Verification

  • The internal source had a clean macOS ARM64 Release build with zero warnings and passed 233/233 tests.
  • The filtered public snapshot independently passed a warning-free Release build, 227/227 non-PTY tests, 4/4 PTY tests and a strict documentation build.
  • GitHub CI on the exact commit passed all seven jobs: Linux, macOS and Windows Release, the address, undefined-behaviour and thread sanitizers, and fuzz. One of the two runs needed a rerun of its Windows job, because a timing-bound ConPTY test timed out the first time.
  • The package was built warning-free from a clean export of the public commit. Its 225 figures match the public source byte for byte, and its installed CMake package declares 1.1.0.

The acceptance items disclosed for 1.0.0 remain open: the waived five-app walkthrough, the idle-host p99 and theme-switch baselines, and formal milestone acceptance. Full history is in CHANGES.md.