Files
tspm/changelog.md

30 KiB

Changelog

2025-08-31 - 5.8.0 - feat(core)

Add core TypeScript TSPM implementation: CLI, daemon, client, process management and tests

  • Add CLI entrypoint and command set (start/stop/add/list/logs/daemon/service/stats/reset and batch ops)
  • Add daemon implementation with ProcessManager, ProcessMonitor, ProcessWrapper, LogPersistence and config storage
  • Add IPC client (tspmIpcClient) and TspmServiceManager for systemd integration using smartipc/smartdaemon
  • Introduce shared protocol types, process ID helpers and standardized error codes for stable IPC
  • Include tests and test assets for daemon, integration and IPC client scenarios
  • Add README and package metadata (package.json, npmextra.json, commitinfo)

2025-08-31 - 5.7.0 - feat(cli)

Add 'stats' CLI command and daemon stats aggregation; fix process manager & wrapper state handling

  • Add new 'stats' CLI command to show daemon + process statistics (memory, CPU, uptime, logs in memory, paths, configs) and include it in the default help output
  • Implement daemon-side aggregation for logs-in-memory, per-process log counts/bytes, and expose tspmDir/socket/pidFile and config counts in daemon:status
  • Enhance startById handler to detect already-running monitors and return current status/pid instead of attempting to restart
  • Improve ProcessManager start/restart/stop behavior: if an existing monitor exists but is not running, restart it; ensure PID and status are updated consistently (clear PID on stop)
  • Fix ProcessWrapper lifecycle handling: clear internal process reference on exit, improve isRunning() and getPid() semantics to reflect actual runtime state
  • Update IPC types to include optional metadata fields (paths, configs, logsInMemory) in DaemonStatusResponse

2025-08-31 - 5.6.2 - fix(processmanager)

Improve process lifecycle handling and cleanup in daemon, monitors and wrappers

  • StartAll: when a monitor exists but is not running, restart it instead of skipping — ensures saved processes are reliably brought online.
  • ProcessMonitor.stop: cancel any pending restart timers to prevent stray restarts after explicit stop.
  • ProcessWrapper: add killProcessTree helper and use it for graceful (SIGTERM) and force (SIGKILL) shutdowns to reliably signal child processes.
  • Daemon stopAll: yield briefly after stopping processes and inspect monitors (not only processInfo) to accurately report stopped vs failed processes.

2025-08-31 - 5.6.1 - fix(daemon)

Ensure robust process shutdown and improve logs/subscriber diagnostics

  • Make ProcessWrapper.stop asynchronous and awaitable to avoid race conditions when stopping processes
  • Signal entire process groups on POSIX (kill by negative PID) and fall back to per-PID signalling; escalate to SIGKILL after a timeout
  • Await processWrapper.stop() from ProcessMonitor when enforcing memory limits or handling exits/errors to ensure child processes are cleaned up
  • Add logs:subscribers IPC endpoint and corresponding types to inspect current subscribers for a process log topic
  • Add optional CLI debug output in logs command (enabled via TSPM_DEBUG=true) to print subscriber counts and details
  • Support passing request.lines to getLogs handler in daemon to limit returned log entries

2025-08-30 - 5.6.0 - feat(processmonitor)

Add CPU monitoring and display CPU in process list

  • CLI: show a CPU column in the tspm list output (adds formatting and placeholder name display)
  • Daemon: ProcessMonitor now collects CPU usage for the process group in addition to memory
  • Daemon: ProcessMonitor exposes getLastCpuUsage() and ProcessManager syncs CPU values into IProcessInfo
  • Non-breaking: UI and internal stats enriched to surface CPU metrics for processes

2025-08-30 - 5.5.0 - feat(logs)

Improve logs streaming and backlog delivery; add CLI filters and ndjson output

  • CLI: add new logs options: --since, --stderr-only, --stdout-only and --ndjson; enhance streaming output and gap detection
  • CLI: fetch backlog conditionally (honoring --since) and print filtered results before live streaming
  • Client: add TspmIpcClient.requestLogsBacklogStream, onStream and onBacklogTopic helpers to receive backlog chunks and streams
  • Daemon: add logs:subscribe IPC handler to stream backlog entries to requesting client in small batches
  • Protocol: extend IPC types with LogsSubscribeRequest/Response and register 'logs:subscribe' method
  • Dependency: bump @push.rocks/smartipc to ^2.3.0 to support the streaming/IPC changes

2025-08-30 - 5.4.2 - fix(cli/process/logs)

Reset log sequence on process restart to avoid false log gap warnings

  • Track process runId when streaming logs and initialize lastRunId from fetched logs
  • When a new runId is detected, reset lastSeq so that subsequent streamed logs are accepted (prevents spurious gap warnings)
  • Emit an informational message when a restart/runId change is detected to aid debugging of log streams

2025-08-30 - 5.4.1 - fix(processmonitor)

Bump tsbuild devDependency and relax ps-tree callback typing in ProcessMonitor

  • Update devDependency @git.zone/tsbuild from ^2.6.7 to ^2.6.8
  • Change psTree callback types in ts/daemon/processmonitor.ts to accept any error and ReadonlyArray for children to improve type compatibility

2025-08-30 - 5.4.0 - feat(daemon)

Add CLI systemd service refresh on version mismatch and fix daemon memory leak; update dependencies

  • CLI: when client and daemon versions differ, prompt to refresh the systemd service and optionally disable/enable the service automatically
  • Daemon: clear pidusage state for PIDs on process exit/stop to prevent memory leaks in long-running monitors
  • Client: expose smartdaemon in client plugin exports and fix import path for tspm.servicemanager
  • Package: tighten dependency ranges (set specific versions) and add @types for pidusage and ps-tree
  • Misc: ensure IPC disconnects and PID/socket handling improvements were integrated alongside the above changes

2025-08-30 - 5.3.2 - fix(daemon)

Improve daemon log delivery and process monitor memory accounting; gate debug output and update tests to numeric ProcessId

  • Deliver process logs only to subscribed clients instead of broadcasting to all connections (reduce unnecessary IPC traffic and noise)
  • Implement incremental log memory accounting in ProcessMonitor using an estimateLogSize helper and WeakMap to avoid repeated JSON.stringify and reduce CPU/memory overhead
  • Seed the incremental size map when loading persisted logs so memory accounting is accurate after restart
  • Trim logs incrementally by subtracting estimated sizes of removed entries (avoids O(n) recalculation)
  • Gate verbose console/debug output behind TSPM_DEBUG to prevent spamming in normal runs (applies to ProcessWrapper and ProcessMonitor)
  • Improve process wrapper stdout/stderr debug logging to be conditional on debug mode
  • Update tests to use numeric ProcessId via toProcessId(...) for consistency with typed IDs

2025-08-30 - 5.3.1 - fix(client(tspmIpcClient))

Use bare topic names for IPC client subscribe/unsubscribe to fix log subscription issues

  • Updated ts/client/tspm.ipcclient.ts to call ipcClient.subscribe/unsubscribe with the bare topic (e.g. 'logs.') instead of prefixed 'topic:<...>'.
  • Added comments clarifying that the IpcClient registers the 'topic:' prefix internally.
  • Fixes incorrect topic registration that could prevent log streaming handlers from receiving messages.

2025-08-30 - 5.3.0 - feat(cli/daemon/processmonitor)

Add flexible target resolution and search command; improve restart/backoff and error handling

  • Add new cli command search to find processes by id or name fragment.
  • Allow flexible process targets in CLI commands (accepts numeric id, id:, or name:) for start/stop/restart/delete/describe/logs/edit commands.
  • Introduce a new daemon IPC method resolveTarget to normalize user-provided targets to ProcessId (supports id:, name:, or bare numeric id).
  • Keep remove as a CLI alias but daemon exposes delete only; CLI resolves targets and always calls daemon delete.
  • Implement scheduled restart/backoff in ProcessMonitor with incremental debounce, max retries, and a 1-hour reset window.
  • Emit a failed event from ProcessMonitor when max restart attempts are exceeded; ProcessManager listens and marks processes as errored and clears pid.
  • Ensure desired state is set to stopped before deleting a process to avoid race conditions.
  • Improve cli output messages to include resolved names alongside numeric ids where available.

2025-08-30 - 5.2.0 - feat(cli)

Preserve CLI environment when adding processes, simplify edit flow, and refresh README docs

  • CLI: When adding a process, capture and persist essential environment variables from the CLI (PATH, HOME, USER, SHELL, LANG, LC_ALL, NODE_ENV, NODE_PATH, npm_config_prefix and any TSPM_* variables). Undefined values are removed before storing.
  • CLI: Interactive edit flow temporarily disabled. The edit command now displays the current configuration and updates stored environment variables to match the current CLI environment.
  • Docs: Major README refresh — reorganized sections, clarified add vs start semantics, expanded examples, added daemon/service usage and programmatic API examples, and improved command reference and output examples.

2025-08-30 - 5.1.0 - feat(cli)

Add interactive edit command and update support for process configurations

  • Add 'tspm edit' interactive CLI command to modify saved process configurations (prompts for name, command, args, cwd, memory, autorestart, watch, watch paths) with an option to replace stored PATH.
  • Implement ProcessManager.update(id, updates) to merge updates, persist them, and return the updated configuration.
  • Add 'update' IPC method and daemon handler to allow remote/configurations updates via IPC.
  • Persist the current CLI PATH when adding a process so managed processes inherit the same PATH environment.
  • Merge provided env with the runtime process.env when spawning processes to avoid fully overriding the runtime environment.

2025-08-30 - 5.0.0 - BREAKING CHANGE(daemon)

Introduce persistent log storage, numeric ProcessId type, and improved process monitoring / IPC handling

  • Add LogPersistence: persistent on-disk storage for process logs (save/load/delete/cleanup).
  • Persist logs on process exit/error/stop and trim in-memory buffers to avoid excessive memory usage.
  • Introduce a branded numeric ProcessId type and toProcessId helpers; migrate IPC types and internal maps from string ids to ProcessId.
  • ProcessManager refactor: typed maps for processes/configs/info/logs, async start/stop/restart flows, improved PID/uptime/restart tracking, and desired state persistence handling.
  • ProcessMonitor refactor: async lifecycle (start/stop), load persisted logs on startup, flush logs to disk on exit/error/stop, log memory capping, and improved event emissions.
  • ProcessWrapper improvements: buffer stdout/stderr remainders, flush partial lines on stream end, clearer debug logging.
  • IPC client/server changes: handlers now normalize ids with toProcessId, subscribe/unsubscribe accept numeric/string ids, getLogs/start/stop/restart/delete use typed ids.
  • CLI tweaks: format process id output safely with String() to avoid formatting issues.
  • Add dependency and plugin export for @push.rocks/smartfile and update package.json accordingly.

2025-08-29 - 4.4.2 - fix(daemon)

Fix daemon IPC id handling, reload configs on demand and correct CLI daemon start path

  • Normalize process IDs in daemon IPC handlers (trim strings) to avoid lookup mismatches
  • Attempt to reload saved process configurations when a startById request cannot find a config (handles races/stale state)
  • Use normalized IDs in responses and messages for stop/restart/delete/remove/describe handlers
  • Fix CLI daemon start path to point at dist_ts/daemon/tspm.daemon.js when launching the background daemon
  • Ensure the IPC client disconnects after showing CLI version/status to avoid leaked connections

2025-08-29 - 4.4.1 - fix(cli)

Use server-side start-by-id flow for starting processes

  • CLI: 'tspm start ' now calls a new 'startById' IPC method instead of fetching the full config via 'describe' and submitting it back to 'start'.
  • Daemon: Added server-side handler for 'startById' which resolves the stored process config and starts the process on the daemon.
  • Protocol: Added StartByIdRequest/StartByIdResponse types and registered 'startById' in the IPC method map.

2025-08-29 - 4.4.0 - feat(daemon)

Persist desired process states and add daemon restart command

  • Persist desired process states: ProcessManager now stores desiredStates to user storage (desiredStates key) and reloads them on startup.
  • Start/stop operations update desired state: IPC handlers in the daemon now set desired state when processes are started, stopped, restarted or when batch start/stop is invoked.
  • Resume desired state on daemon start: Daemon loads desired states and calls startDesired() to bring processes to their desired 'online' state after startup.
  • Remove desired state on deletion/reset: Deleting a process or resetting clears its desired state; reset clears all desired states as well.
  • CLI: Added 'tspm daemon restart' — stops the daemon (gracefully) and restarts it in the foreground for the current session, with checks and informative output.

2025-08-29 - 4.3.1 - fix(daemon)

Fix daemon describe handler to return correct process info and config; bump @push.rocks/smartipc to ^2.2.2

  • Corrected the 'describe' IPC handler in the daemon to use ProcessManager.describe(...) result and return { processInfo, config } — this fixes a mismatch between the handler and the ProcessManager.describe() return shape.
  • Bumped dependency @push.rocks/smartipc to ^2.2.2 in package.json.

2025-08-29 - 4.3.0 - feat(cli)

Correct CLI plugin imports and add reset command/IPC to stop processes and clear persisted configs

  • Fixed relative plugin imports in many CLI command modules to use the local CLI plugin wrapper (reduces startup surface and fixes import paths).
  • Added a lightweight ts/cli/plugins.ts that exposes only the minimal plugin set used by the CLI.
  • Implemented ProcessManager.reset(): stops running processes, collects per-id stop errors, clears in-memory maps and removes persisted configurations (with fallback to write an empty list on delete failure).
  • Daemon now exposes a 'reset' IPC handler that delegates to ProcessManager.reset() so CLI can perform a single RPC to reset TSPM state.
  • Updated shared IPC protocol types to include ResetRequest and ResetResponse.
  • Refactored the CLI reset command to call the new 'reset' RPC (replaces previous stopAll + per-config removal logic).

2025-08-29 - 4.2.0 - feat(cli)

Add 'reset' CLI command to stop all processes and clear saved configurations; integrate interactive confirmation and client plugin updates

  • Add new CLI command 'reset' (ts/cli/commands/reset.ts) which stops all processes and removes saved process configurations after an interactive confirmation.
  • Use @push.rocks/smartinteract for a confirmation prompt before destructive action.
  • Register the new reset command in the CLI bootstrap (ts/cli/index.ts).
  • Expose smartinteract from ts/plugins.ts and add @push.rocks/smartinteract to package.json dependencies.
  • Introduce a lightweight client plugin shim (ts/client/plugins.ts) and switch tspm.ipcclient to import client plugins from ./plugins.js.

2025-08-29 - 4.1.1 - fix(daemon)

Bump @push.rocks/smartdaemon to ^2.0.9

  • Update @push.rocks/smartdaemon from ^2.0.8 to ^2.0.9 (dependency version bump)

2025-08-29 - 4.1.0 - feat(cli)

Add support for restarting all processes from CLI; improve usage message and reporting

  • CLI 'restart' command now accepts 'all' to restart all processes via the daemon (tspm restart all).
  • Improved usage/help output when no process id is provided.
  • CLI now prints summaries of restarted process IDs and failed restarts and sets a non-zero exit code when any restarts failed.

2025-08-29 - 4.0.0 - BREAKING CHANGE(cli)

Add persistent process registration (tspm add), alias remove, and change start to use saved process IDs (breaking CLI behavior)

  • Add a new CLI command tspm add that registers a process configuration without starting it; daemon assigns a sequential numeric ID and returns the stored config.
  • Change tspm start to accept a process ID and start the saved configuration instead of accepting ad-hoc commands/files. This is a breaking change to the CLI contract.
  • Add remove as an alias for the existing delete command; both CLI and daemon now support remove which stops and deletes the stored process.
  • Daemon and IPC protocol updated to support add and remove methods; shared IPC types extended accordingly.
  • ProcessManager: implemented add() and getNextSequentialId() to persist configs and produce numeric IDs.
  • CLI registration updated (registerIpcCommand) to accept multiple command names, enabling aliases for commands.

2025-08-29 - 3.1.3 - fix(client)

Improve IPC client robustness and daemon debug logging; update tests and package metadata

  • IPC client: generate unique clientId for each CLI session, increase register timeout, mark client disconnected on lifecycle events and socket errors, and surface a clearer connection error message
  • Daemon: add debug hooks to log client connect/disconnect and server errors to help troubleshoot IPC issues
  • Tests: update imports to new client/daemon locations, add helpers to start the daemon and retry connections, relax timing assertions, and improve test reliability
  • Package: add exports map and typings entry, update test script to run with verbose logging and longer timeout, and bump @push.rocks/smartipc to ^2.2.1

2025-08-28 - 3.1.2 - fix(daemon)

Reorganize project into daemon/client/shared layout, update imports and protocol, rename Tspm → ProcessManager, and bump smartipc to ^2.1.3

  • Reorganized source tree: moved files into ts/daemon, ts/client and ts/shared with updated index/barrel exports.
  • Renamed core class Tspm → ProcessManager and updated all references.
  • Consolidated IPC types under ts/shared/protocol/ipc.types.ts and added protocol.version + standardized error codes.
  • Updated CLI to use the new client API (tspmIpcClient) and adjusted command registration/registration helpers.
  • Bumped dependency @push.rocks/smartipc from ^2.1.2 to ^2.1.3 to address daemon connectivity; updated daemon heartbeat behavior (heartbeatThrowOnTimeout=false).
  • Updated readme.plan.md to reflect completed refactor tasks and testing status.
  • Minor fixes and stabilization across daemon, process manager/monitor/wrapper, and client service manager implementations.

2025-08-28 - 3.1.1 - fix(cli)

Fix internal imports, centralize IPC types and improve daemon entry/start behavior

  • Corrected import paths in CLI commands and utilities to use client/tspm.ipcclient and shared/common/utils.errorhandler
  • Centralized process/IPC type definitions into ts/shared/protocol/ipc.types.ts and updated references across daemon and client code
  • Refactored ts/daemon/index.ts to export startDaemon and only auto-start the daemon when the module is executed directly
  • Adjusted ts/index.ts exports to expose client API, shared protocol types, and daemon start entrypoint

2025-08-28 - 3.1.0 - feat(daemon)

Reorganize and refactor core into client/daemon/shared modules; add IPC protocol and tests

  • Reorganized core code: split daemon and client logic into ts/daemon and ts/client directories
  • Moved process management into ProcessManager, ProcessMonitor and ProcessWrapper under ts/daemon
  • Added a dedicated IPC client and service manager under ts/client (tspm.ipcclient, tspm.servicemanager)
  • Introduced shared protocol and error handling: ts/shared/protocol/ipc.types.ts, protocol.version.ts and ts/shared/common/utils.errorhandler.ts
  • Updated CLI to import Logger from shared/common utils and updated related helpers
  • Added daemon entrypoint at ts/daemon/index.ts and reorganized daemon startup/shutdown/heartbeat handling
  • Added test assets (test/testassets/simple-test.ts, simple-script2.ts) and expanded test files under test/
  • Removed legacy top-level class files (classes.*) in favor of the new structured layout

2025-08-28 - 3.0.2 - fix(daemon)

Ensure TSPM runtime dir exists and improve daemon startup/debug output

  • Create ~/.tspm directory before starting the daemon to avoid missing-directory errors
  • Start daemon child process with stdio inherited when TSPM_DEBUG=true to surface startup errors during debugging
  • Add warning and troubleshooting guidance when daemon process starts but does not respond (suggest checking socket file and using TSPM_DEBUG)
  • Bump package version to 3.0.1

2025-08-28 - 3.0.0 - BREAKING CHANGE(daemon)

Refactor daemon and service management: remove IPC auto-spawn, add TspmServiceManager, tighten IPC/client/CLI behavior and tests

  • Remove automatic daemon spawn from the IPC client — clients now error with guidance and require the daemon to be started manually or enabled as a system service
  • Add TspmServiceManager to manage the daemon as a systemd service (enable/disable/reload/status)
  • Update IPC server/client to use SmartIpc.createServer/createClient with heartbeat defaults and explicit onMessage handlers
  • Daemon publishes per-process logs to topics (logs.) and re-emits ProcessMonitor logs for pub/sub
  • CLI updated: add enable/disable service commands, adjust daemon start/stop/status workflows and improve user hints when daemon is not running
  • Add/adjust integration and unit tests to cover daemon lifecycle, IPC client behavior, log streaming, heartbeat and resource reporting
  • Documentation expanded (README, readme.plan.md, changelog) to reflect the refactor and migration notes
  • Various code cleanups, formatting fixes and defensive checks across modules

2025-08-28 - 2.0.0 - BREAKING CHANGE(daemon)

Refactor daemon lifecycle and service management: remove IPC auto-spawn, add TspmServiceManager and CLI enable/disable

  • Do not auto-spawn the daemon from the IPC client anymore — attempts to connect will now error with instructions to start the daemon manually or enable the system service (breaking change).
  • Add TspmServiceManager to manage the daemon as a systemd service via smartdaemon (enable/disable/reload/status helpers).
  • CLI: add 'enable' and 'disable' commands to install/uninstall the daemon as a system service and add 'daemon start-service' entrypoint used by systemd.
  • CLI: improve error handling and user hints when the daemon is not running (suggests tspm daemon start or tspm enable).
  • IPC client: removed startDaemon() and related auto-reconnect/start logic; request() no longer auto-reconnects or implicitly start the daemon.
  • Export TspmServiceManager from the package index so service management is part of the public API.
  • Updated development plan/readme (readme.plan.md) to reflect the refactor toward proper SmartDaemon integration and migration notes.

2025-08-26 - 1.8.0 - feat(daemon)

Add real-time log streaming and pub/sub: daemon publishes per-process logs, IPC client subscribe/unsubscribe, CLI --follow streaming, and sequencing for logs

  • Upgrade @push.rocks/smartipc dependency to ^2.1.2
  • Daemon: initialize SmartIpc server with heartbeat and publish process logs to topic logs.<processId>; write PID file and start heartbeat monitoring
  • Tspm: re-emit monitor log events as 'process:log' so daemon can broadcast logs
  • ProcessWrapper: include seq and runId on IProcessLog entries and maintain nextSeq/runId (adds sequencing to logs); default log buffer size applied
  • TspmIpcClient: improved connect options (retries, timeouts, heartbeat handling), add subscribe/unsubscribe for real-time logs, and use SmartIpc.waitForServer when starting daemon
  • CLI: add --follow flag to logs command to stream live logs, detect sequence gaps/duplicates, and handle graceful cleanup on Ctrl+C
  • ProcessMonitor: now extends EventEmitter and re-emits process logs for upstream consumption
  • Standardized heartbeat and IPC timing defaults (heartbeatInterval: 5000ms, heartbeatTimeout: 20000ms, heartbeatInitialGracePeriodMs: 10000ms)

2025-08-25 - 1.7.0 - feat(readme)

Add comprehensive README with detailed usage, command reference, daemon management, architecture and development instructions

  • Expanded README from a short placeholder to a full documentation covering: Quick Start, Installation, Command Reference, Daemon Management, Monitoring & Information, Batch Operations, Architecture, Programmatic Usage, Advanced Features, Development, Debugging, Performance, and Legal information
  • Included usage examples and CLI command reference for start/stop/restart/delete/list/describe/logs and batch/daemon commands
  • Added human-friendly memory formatting and examples, process and daemon status outputs, and programmatic TypeScript usage snippet
  • Improved onboarding instructions: cloning, installing, testing, building, and running the project

2025-08-25 - 1.6.1 - fix(daemon)

Fix smartipc integration and add daemon/ipc integration tests

  • Replace direct smartipc server/client construction with SmartIpc.createServer/createClient and set heartbeat: false
  • Switch IPC handler registration to use onMessage and add explicit Request/Response typing for handlers
  • Update IPC client to use SmartIpc.createClient and improve daemon start/connect logic
  • Add comprehensive tests: unit tests for TspmDaemon and TspmIpcClient and full integration tests for daemon lifecycle, process management, error handling, heartbeat and resource reporting

2025-08-25 - 1.6.0 - feat(daemon)

Add central TSPM daemon and IPC client; refactor CLI to use daemon and improve monitoring/error handling

  • Add central daemon implementation (ts/classes.daemon.ts) to manage all processes via a single background service and Unix socket.
  • Introduce IPC client and typed IPC contracts (ts/classes.ipcclient.ts, ts/ipc.types.ts) so CLI communicates with the daemon.
  • Refactor CLI to use the daemon for commands (ts/cli.ts): start/stop/restart/delete/list/describe/logs/start-all/stop-all/restart-all and new daemon start/stop/status commands.
  • Enhance process monitoring and wrapping: ProcessMonitor and ProcessWrapper improvements (ts/classes.processmonitor.ts, ts/classes.processwrapper.ts) with better logging, memory checks, and restart behavior.
  • Improve centralized error handling and Logger behavior (ts/utils.errorhandler.ts).
  • Persist and load process configurations via TspmConfig and config storage changes (ts/classes.config.ts, ts/classes.tspm.ts).
  • Bump dependency and devDependency versions and add packageManager entry in package.json.
  • Add ts/daemon entrypoint and export daemon/ipc types from ts/index.ts; add paths for tspm runtime dir (ts/paths.ts).
  • Update tests and test tooling imports (test/test.ts) and adjust commitinfo and readme hints.

2025-03-10 - 1.5.1 - fix(core)

Improve error handling, logging, and test suite; update dependency versions

  • Updated devDependencies versions in package.json (@git.zone/tsbuild, @push.rocks/tapbundle, and @push.rocks/smartdaemon)
  • Refactored error handling and enhanced logging in ProcessMonitor and ProcessWrapper modules
  • Improved test structure by adding clear module import tests and usage examples in test files

2025-03-04 - 1.5.0 - feat(cli)

Enhance CLI with new process management commands

  • Added comprehensive CLI commands for process management including start, stop, restart, list, describe and logs.
  • Implemented memory string parsing for process memory limits.
  • Enhanced CLI output with formatted table listings for active processes.

2025-03-03 - 1.4.0 - feat(core)

Introduced process management features using ProcessWrapper and enhanced configuration.

  • Added ProcessWrapper for wrapping and managing child processes.
  • Refactored process monitoring logic using ProcessWrapper.
  • Introduced TspmConfig for configuration handling.
  • Enhanced CLI to support new process management commands like 'startAsDaemon'.

2025-03-01 - 1.3.1 - fix(test)

Update test script to fix type references and remove private method call

  • Corrected type references in test script for IMonitorConfig.
  • Fixed test script to use console.log instead of private method monitor.log.

2025-03-01 - 1.3.0 - feat(cli)

Add CLI support with command parsing and version display

  • Added a basic CLI interface using smartcli.
  • Implemented command parsing with a 'restart' command.
  • Integrated project version display in the CLI.

2025-03-01 - 1.2.0 - feat(core)

Introduce ProcessMonitor with memory management and spawning features

  • Added ProcessMonitor class with functionality to manage process execution and memory usage.
  • Implemented process spawning with ability to handle command arguments and directories.
  • Added periodic memory monitoring and automatic restarts when memory thresholds are exceeded.
  • ProcessMonitor now logs its actions with optional configuration name for better identification.
  • Updated test file to include example usage of ProcessMonitor.

2025-03-01 - 1.1.1 - fix(package)

Update dependencies and pnpm configuration

  • Updated @types/node to 22.13.8
  • Updated pnpm configuration to include onlyBuiltDependencies with esbuild, mongodb-memory-server, and puppeteer

2025-03-01 - 1.1.0 - feat(core)

Introduce ProcessMonitor class and integrate native and external plugins

  • Added a new ProcessMonitor class to manage and monitor child processes with memory constraints.
  • Integrated native 'path' and external '@push.rocks/smartpath' packages in a unified plugins file.
  • Adjusted index and related files for improved modular structure.

2025-02-24 - 1.0.3 - fix(core)

Corrected description in package.json and readme.md from 'task manager' to 'process manager'.

  • Updated the project description in package.json.
  • Aligned the description in readme.md with package.json.

2025-02-24 - 1.0.2 - fix(core)

Internal changes with no functional impact.

2025-02-24 - 1.0.1 - initial release

Initial release with baseline functionality.