# 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