# changelog.md for @push.rocks/smartcli

## 2025-10-28 - 4.0.19 - fix(license)
Update license files and add local tool settings

- Update LICENSE header to reference Task Venture Capital GmbH as copyright holder
- Add a new license file containing the full MIT license text
- Add .claude/settings.local.json to store local tool permission settings

## 2025-10-28 - 4.0.18 - fix(smartcli)
Allow passing argv to startParse and improve getUserArgs Deno/runtime handling; update tests and add license

- Smartcli.startParse now accepts an optional testArgv parameter to bypass automatic runtime detection (makes testing deterministic).
- getUserArgs logic refined: always prefer Deno.args when available (handles Deno run and compiled executables reliably) and improve execPath fallback and slicing behavior for Node/Bun/other launchers.
- Tests updated: test/test.node+deno+bun.ts now passes process.argv explicitly to startParse to avoid Deno.args interference in test environments.
- Added MIT LICENSE file and a local .claude/settings.local.json for environment/permission settings.

## 2025-10-28 - 4.0.17 - fix(license)
Add MIT license and local Claude settings

- Add LICENSE file (MIT) to repository
- Add .claude/settings.local.json with local permissions for tooling

## 2025-10-28 - 4.0.16 - fix(smartcli.helpers)
Improve CLI argument parsing and Deno runtime detection; use getUserArgs consistently

- Enhance getUserArgs() to prefer Deno.args but detect when process.argv was manipulated (e.g. in tests) and fallback to manual parsing
- Add robust handling of process.execPath / execPath basename and compute correct argv offset for known launchers vs. compiled executables
- Call getUserArgs() (no explicit process.argv) from Smartcli.getOption and Smartcli.startParse to ensure consistent cross-runtime behavior
- Expand readme.hints.md with detailed cross-runtime examples and explanation of Deno.args vs process.argv for compiled executables
- Add local claude settings file for tooling configuration

## 2025-10-28 - 4.0.15 - fix(smartcli.helpers)
Add robust getUserArgs helper and refactor Smartcli to use it; add MIT license and update documentation

- Add ts/smartcli.helpers.ts: getUserArgs to normalize user arguments across Node.js, Deno (run/compiled), and Bun, with safety checks for test environments
- Refactor Smartcli (ts/smartcli.classes.smartcli.ts) to use getUserArgs in startParse and getOption for correct argument parsing and improved test compatibility
- Update readme.hints.md with detailed cross-runtime CLI argument parsing guidance
- Add LICENSE (MIT) file
- Add .claude/settings.local.json (local settings)

## 2025-10-28 - 4.0.14 - fix(license)
Add MIT license file

- Add MIT License file to repository to clarify licensing and copyright (Push.Rocks 2015).

## 2025-10-27 - 4.0.13 - fix(smartcli)
Improve CLI argument parsing, update deps and tests

- Enhance startParse() to filter runtime executables and script paths (node, deno, bun, tsx, ts-node) so commands are detected correctly across runtimes.
- Switch path import to node:path in plugins for ESM compatibility.
- Bump various dependencies and devDependencies (including @push.rocks/lik, @push.rocks/smartlog, @push.rocks/smartpromise, @push.rocks/smartrx, yargs-parser, @git.zone tooling) and add packageManager field.
- Replace / reorganize tests: add/modify test/test.node+deno+bun.ts, adjust test script to use --verbose.
- Add deno.lock and include many resolved npm dependencies.
- Add LICENSE file (MIT).

## 2025-04-01 - 4.0.12 - fix(docs)
Update documentation with comprehensive usage examples, improved command alias descriptions, and detailed configuration instructions

- Revised readme.md with in-depth examples covering multiple CLI scenarios and RxJS integration
- Updated package.json and npmextra.json descriptions and keywords to reflect enhanced functionality
- Expanded usage guide with additional commands, error handling strategies, and testing guidelines

## 2024-05-29 - 4.0.11 - general
update description

- Updated the project description

## 2024-05-28 - 4.0.10 - core
fix(core): update

- Fixed core functionality

## 2024-04-13 - 4.0.9 - core
fix(core): update

- Improved core update handling

## 2024-04-12 - 4.0.8 - core / npmextra
- fix(core): update
- update npmextra.json: githost (this change was applied multiple times)

## 2023-08-19 - 4.0.7 - core
fix(core): update

- Fixed core issues

## 2023-07-12 - 4.0.6 - core / org
- fix(core): update
- switch to new org scheme (applied twice)

## 2022-08-07 - 4.0.5 - core
fix(core): update

- Fixed core functionality

## 2022-08-04 - 4.0.4 - core
fix(core): update

- Improved core update

## 2022-08-03 - 4.0.3 - core
fix(core): update

- Fixed core issues

## 2022-08-03 - 4.0.2 - core
fix(core): update

- Updated core handling

## 2022-08-03 - 4.0.1 - core
fix(core): update

- Fixed core functionality

## 2022-08-03 - 4.0.0 - core
fix(core): update

- Improved core update handling

## 2022-08-03 - 3.0.14 - core
BREAKING CHANGE(core): switch to esm

- Switched the project to use ECMAScript modules

## 2021-04-07 - 3.0.13 - core
fix(core): update

- Fixed core update issues

## 2021-04-07 - 3.0.12 - core
fix(core): update

- Updated core functionality

## 2020-05-29 - 3.0.11 - core
fix(core): update

- Fixed core functionality

## 2020-04-13 - 3.0.10 - core
fix(core): more consistent handling of process.enc.CLI_CALL

- Made process.enc.CLI_CALL handling more consistent

## 2020-04-13 - 3.0.9 - core
fix(core): now works better with tapbundle tests

- Improved compatibility with tapbundle tests

## 2020-03-11 - 3.0.8 - core
fix(core): update

- Updated core functionality

## 2020-03-11 - 3.0.7 - core
fix(core): update

- Fixed core update issues

## 2018-12-11 - 3.0.6 - core
fix(core): update

- Updated core functionality

## 2018-09-30 - 3.0.5 - ci
fix(ci): remove obsolete dependencies

- Removed obsolete dependencies from CI configuration

## 2018-09-30 - 3.0.4 - core
fix(core): update

- Updated core functionality

## 2018-08-30 - 3.0.3 - structure
fix(structure): remove dist/ dir from git repo

- Removed the dist/ directory from the repository

## 2018-08-30 - 3.0.2 - dependencies
fix(dependencies): update to latest versions

- Bumped dependency versions to the latest

## 2018-06-28 - 3.0.1 - core
fix(core): slim down dependencies

- Slimmed down core dependencies

## 2018-05-03 - 3.0.0 - general
update

- General update

## 2018-05-03 - 2.0.12 - core / architecture
- change to an all rxjs Subject architecture
- system change
- fix(core): cleanup
- remove package-lock since using yarn

## 2018-01-27 - 2.0.11 - security
fix(improve security CI step):

- Improved security in the CI step

## 2018-01-27 - 2.0.10 - core / ci
- fix(core): remove vulnerable paths
- update ci (applied multiple times)

## 2018-01-27 - 2.0.09 - CI
add security step to CI

- Added an extra security step in the CI process

## 2017-10-12 - 2.0.08 - compatibility
ensure compatibility with code assertion library

- Ensured compatibility with the code assertion library

## 2017-10-12 - 2.0.07 - tests / cli
- fix tests and add .triggerOnlyOnProcessEnvCliCall()
- fix linting issues

## 2017-05-07 - 2.0.06 - tasks
fix promise rejection on standard task

- Fixed a promise rejection issue on standard tasks

## 2017-04-23 - 2.0.05 - tapbundle
use new tapbundle

- Switched to the new tapbundle for testing

## 2017-04-22 - 2.0.04 - tests
- comment out one test that makes problems due to tap
- update tests

## 2017-04-22 - 2.0.03 - npmextra
add npmextra.json

- Added npmextra.json for extra configuration

## 2017-04-22 - 2.0.02 - ci
update ci

- Updated CI configuration

## 2017-04-22 - 2.0.01 - misc
- update .gitignore
- update to latest standards

## 2016-12-18 - 2.0.00 - core
fix argvArg for observables

- Fixed the argvArg handling for observables

## 2016-12-18 - 1.0.16 - triggers
introduce triggers

- Introduced triggers

## 2016-11-19 - 1.0.15 - triggers / docs
- added .triggerCommandByName
- improve README

## 2016-11-19 - 1.0.14 - metadata
Update Metadata

- Updated project metadata

## 2016-11-19 - 1.0.13 - docs
improve README

- Improved the README documentation

## 2016-11-19 - 1.0.11 - core / tests / docs
- cleanup
- improve README
- update test file

## 2016-10-14 - 1.0.10 - deps
update deps

- Updated dependencies

## 2016-10-14 - 1.0.09 - standardJS
implement standardJS

- Implemented standardJS support

## 2016-09-04 - 1.0.08 - typings
improve typings

- Improved TypeScript typings

## 2016-09-04 - 1.0.07 - ci
fix ci

- Fixed CI configuration

## 2016-09-04 - 1.0.06 - base
fix base image

- Fixed the base image used for builds

## 2016-09-04 - 1.0.05 - interaction
- add page stage
- improve typings and docs
- update smartcli
- Add new file
- start interaction module

## 2016-08-26 - 1.0.04 - intellisense
improve intellisense

- Improved editor intellisense

## 2016-06-22 - 1.0.03 - compile
compile fix

- Fixed compilation issues

## 2016-06-22 - 1.0.02 - updates
- fix
- add getCommandPromise
- update deps and transition from npmts to npmts-g

## 2016-06-16 - 1.0.01 - tasks
- standard tasks now returns argv
- some cosmetics
- introduce new classes

## 2016-06-10 - 1.0.00 - version
- fix version return
- return argv to command

## 2016-06-10 - 0.0.13 - smartcli
- first version with basic funtionality
- remove bulk and add some features to Smartcli class
- start restructuring to use a smarter Smartcli class that handles command evaluation for you
- update dependencies
- compile
- add gitlab ci
- start smartcli class
- add class smartcli
- Update README and include commander
- fixed type issue
- fixed test issue
- update deps

## 2016-04-04 - 0.0.12 - deps
updated deps

- Updated dependencies

## 2016-04-04 - 0.0.11 - interface
- updated deps
- work in progress (noted twice)
- small interface fix

## 2015-11-09 - 0.0.10 - travis
improve travis process

- Improved the Travis process

## 2015-11-09 - 0.0.09 - tests / CLI
- add tests and fix some errors
- add Tests and improve TypeScript organization
- start smarter CLI logic
- fix small comment error (applied twice)

## 2015-10-14 - 0.0.08 - readme
- improved readme
- updated readme
- added devStatus badge

## 2015-10-12 - 0.0.07 - various
- improved return objects
- (Minor dependency updates and CI tweaks for beautylog and travis were also applied in this version)

## 2015-10-06 - 0.0.05 - CLI
- small update
- now handling CLI options

## 2015-10-05 - 0.0.4 - tests
modified test

## 2015-10-05 - 0.0.02 - travis / tests
- added travis + tests
- package.json update

## 2015-10-04 - 0.0.01 - initial
added initial structure

## 2015-10-04 - unknown - initial
Initial commit

---

## Summary of Omitted Versions
The following versions contained no additional user‐facing changes beyond version bumps and are summarized here: 1.0.12, 0.0.6, and 0.0.3.