Skip to content

ckVision 0.1.16

Choose a tag to compare

@cklukas cklukas released this 04 Oct 23:38
· 7 commits to main since this release

ckVision 0.1.16 adds reusable captured native helper processes, with private
binary stdin and independent bounded stdout/stderr. These helpers do not open
a terminal or ConPTY.

It also adds a generic detached-process launch service for independently
living processes. This service has no application/server/session semantics.

  • ProcessLaunchSpec supplies one invocation/environment model for terminal
    and captured children, including explicit Windows command-processor syntax.
  • The injected ProcessRunner contract uses a borrowed monotonic clock.
    Success requires all input delivered and a known normal zero exit.
  • Native Windows and POSIX runners drain capped streams while enforcing an
    idle-progress deadline. Only actual transferred bytes count as progress.
  • Descendant handling is required: release after known successful completion,
    or terminate on completion. Failures/timeouts clean the owned process group
    or job. Windows permits only private child standard handles to be inherited.
  • macOS uses atomic close-by-default spawn actions; POSIX preserves the
    caller's signal policy and reaps the actual root. Native failures retain
    typed status and full native error/exit codes.
  • DetachedProcessLauncher consumes the same explicit launch specification.
    Its Windows implementation creates the child suspended, verifies freedom
    from every ancestor job before resuming it, and reports typed refusal and
    separate cleanup outcomes. No handles are inherited; application readiness
    and shutdown remain the adopter's responsibility.

API migration: TerminalLaunchSpec now derives from ProcessLaunchSpec, and
TerminalEnvironmentPolicy is renamed ProcessEnvironmentPolicy. This is
a pre-1.0 public API change; update adopters rather than adding compatibility
workarounds. See captured helper documentation.

Verification: clean private commit b8aca7e5 passes macOS Release229/229,
Debian13.6 ARM64 GCC13.3 Release/FORTIFY229/229, and Windows11 ARM64 MSVC
Release222/222. The same frozen compiled inputs pass LLVM23 Debug ASan/UBSan
plus ten fuzz corpora239/239, and TSan228/228. Eight compiled captured-backend
mutations and an actual Windows detachment-guard omission fail their intended
assertions; all production mutations are restored and rebuilt. The exact
filtered public snapshot a38928cf passes227/227 and strict documentation
generation. All seven jobs in GitHub CI run 37243144550
succeed at that exact public commit, including hosted Windows, macOS, GCC,
ASan, UBSan, TSan and fuzz gates.

This library release is not a claim that ckmux's complete
Windows UI, persistence acceptance, installed release or installer is finished.