Skip to content

v1.0.1

Choose a tag to compare

@Jeecabs Jeecabs released this 18 Apr 07:21
· 19 commits to main since this release

roo v1.0.1

Stability pass. Fixes three real crash / data-loss bugs, caps unbounded buffers, trims hot-path work, and adds a --version flag.

Fixed

  • Foreground logging crash at 10 MB: writeLog used to end the stream after exceeding the cap and then crash on further writes. Now passes through and truncates on close.
  • Truncation flush race on exit: truncation now runs inside the stream's end callback so the final bytes flush before the file is rewritten.
  • stop --all left zombie processes: now escalates to SIGKILL for procs that ignored SIGTERM, matching single-target stop.
  • ESRCH crash in stop: process.kill calls wrapped in try/catch for both single and --all paths.
  • Pid file leak on spawn error: foreground child.on("error") now cleans up its pid file.
  • Node 24 deprecation: switched spawn(cmd, args, { shell: true }) to spawn(cmd.join(" "), { shell: true }) to silence the deprecation warning that will become an error in a future Node.

Performance

  • Unbounded pause buffers: foreground and attach pause buffers now cap at 2 MB and drop oldest chunks, so a paused noisy child no longer blows up RSS.
  • Full-log slurp on display: attach pre-fill, roo logs, and top's logs view now tail-read the last 256 KB (1 MB for the TUI view) instead of loading the whole file.
  • Per-chunk drawBar removed from foreground stdout/stderr handlers. The 1 s bar tick already redraws.
  • Top tick caches immutable metadata: cmd and started are written once at process creation and never change, so the 1 s refresh now reads them once per process instead of every tick.

Added

  • roo --version / roo -v prints the version.
  • Internal helpers: killTree, forceKillTree, readLogTail.
  • stripAnsi now uses util.stripVTControlCharacters (Node 16.11+).

Install

./install.sh

Requires Node.js. See README for full usage.