Files
smartshell/changelog.md

111 lines
4.9 KiB
Markdown
Raw Normal View History

# 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