Files
smartshell/changelog.md

4.9 KiB

Changelog

2025-08-17 - 3.3.0 - feat(smartshell)

Add secure spawn APIs, PTY support, interactive/streaming control, timeouts and buffer limits; update README and tests

  • Introduce execSpawn family (execSpawn, execSpawnStreaming, execSpawnInteractiveControl) for shell-free, secure execution of untrusted input (shell:false).
  • Add PTY support (optional node-pty) with execInteractiveControlPty and execStreamingInteractiveControlPty; PTY is lazy-loaded and documented as an optional dependency.
  • Expose interactive control primitives (sendInput, sendLine, endInput, finalPromise) for both spawn and shell-based executions, and streaming interfaces with process control (terminate, kill, keyboardInterrupt, customSignal).
  • Implement timeouts, maxBuffer limits and onData callbacks to prevent OOM, stream output incrementally, and support early termination and debugging logs.
  • Improve process lifecycle handling: safe unpipe/unpipe-on-error, smartexit integration, and safer signal-based tree-kill behavior.
  • Enhance execAndWaitForLine with timeout and terminateOnMatch options to allow pattern-based waits with configurable behavior.
  • Update README with a Security Guide recommending execSpawn for untrusted input, PTY usage guidance, and new feature documentation (timeouts, buffer limits, debug mode, environment control).
  • Add extensive tests covering error handling, interactive control, passthrough, PTY behavior, spawn behavior, silent/streaming modes and environment propagation.

2025-08-16 - 3.2.4 - fix(tests)

Update tests & CI config, bump deps, add docs and project configs

  • Add comprehensive README overhaul with detailed usage, examples, API reference and best practices.
  • Add extensive silent-mode tests (test/test.silent.ts) to validate execSilent, execStrictSilent, execStreamingSilent and execAndWaitForLineSilent behaviors.
  • Update test runner and script: test script now runs tstest with --verbose, --logfile and --timeout; tests now import tapbundle from @git.zone/tstest.
  • Fix import in test/test.ts to use @git.zone/tstest/tapbundle.
  • Bump devDependencies: @git.zone/tsbuild -> ^2.6.4, @git.zone/tstest -> ^2.3.2; bump @push.rocks/smartpromise -> ^4.2.3.
  • Add typings entry and packageManager field to package.json.
  • Add project configuration files (.serena/project.yml) and local settings (.claude/settings.local.json).

2025-02-20 - 3.2.3 - fix(core)

Refactor Smartshell class for improved code clarity and performance

  • Refactored _exec method to improve code clarity.
  • Introduced IExecOptions interface for better type handling.
  • Replaced promise defer with native promises in command execution methods.
  • Improved logging and error handling in child process execution.
  • Ensured robust process management with signals handling.

2024-12-13 - 3.2.2 - fix(core)

Fix minor code style and formatting issues

2024-12-13 - 3.2.1 - fix(dependencies)

Update @types/node dependency version

  • Updated @types/node dependency from version ^22.10.1 to ^22.10.2.

2024-12-09 - 3.2.0 - feat(SmartExecution)

Add support for scheduling restarts to SmartExecution

  • Introduced the ability to handle consecutive restarts efficiently in SmartExecution.
  • Ensures that multiple restart requests merge into a single additional restart request if one is already in progress.

2024-12-09 - 3.1.0 - feat(core)

Refactor codebase and update dependencies.

  • Refactored core classes with improved structure and modularization.
  • Updated tsbuild, tsrun, tapbundle, and @types/node dependencies to newer versions.
  • Improved build script in package.json to use tsbuild with tsfolders.

2024-09-17 - 3.0.6 - fix(core)

Fix interactive shell execution and update dependencies

  • Corrected the interactive shell execution logic by separating it into a dedicated method.
  • Updated development dependencies for @git.zone/tsbuild, @git.zone/tsrun, @git.zone/tstest, @push.rocks/tapbundle, and @types/node.
  • Updated runtime dependencies for @push.rocks/smartpromise, and @types/which.
  • Removed legacy .gitlab-ci.yml file.

2024-05-29 - 3.0.5 - Documentation

update description

2024-04-18 - 3.0.4 to 3.0.5 - Maintenance

Bug fixes and configuration updates

  • fix(core): update
  • update tsconfig
  • update npmextra.json: githost

2024-03-16 - 3.0.3 to 3.0.4 - Maintenance

Bug fixes

  • fix(core): update

2023-06-22 - 2.0.30 to 3.0.3 - Major Update

Major changes including breaking changes, bug fixes, and improvements.

  • BREAKING CHANGE(core): switched to ES syntax and added support for interactivity
  • fix(core): update

2021-11-07 - 2.0.27 to 2.0.30 - Maintenance

Bug fixes

  • fix(core): cosmetics
  • fix(core): update

2021-08-17 - 2.0.26 to 2.0.27 - Maintenance

Bug fixes

  • fix(core): update

2020-05-22 - 2.0.25 to 2.0.26 - Maintenance

Bug fixes

  • fix(core): update

2019-08-27 - 2.0.22 to 2.0.25 - Maintenance

Bug fixes

  • fix(core): update

2019-05-28 - 2.0.16 to 2.0.22 - Maintenance

Bug fixes

  • fix(core): update