Skip to content

Releases: link-foundation/start

0.13.0

29 Dec 12:31

Choose a tag to compare

Use command-stream library for command execution in CLI

This update integrates the command-stream library to handle command execution, replacing direct usage of execSync and spawnSync in the main CLI flow. The change provides a more consistent API for running shell commands and better output handling.

Key changes:

  • Added command-stream as a dependency
  • Created a wrapper module for async command execution utilities
  • Refactored printVersion(), runDirect(), and detectRepository() to use command-stream
  • Converted main CLI flow to async for proper integration

Related Pull Request: #37


npm version

0.11.0

26 Dec 22:05

Choose a tag to compare

Add SSH isolation support for remote command execution.

  • Implements SSH backend for executing commands on remote servers via SSH, similar to screen/tmux/docker isolation
  • Uses --endpoint option to specify SSH target (e.g., --endpoint [email protected])
  • Supports both attached (interactive) and detached (background) modes
  • Includes comprehensive SSH integration tests in CI with a local SSH server

Related Pull Request: #32


npm version

0.10.0

26 Dec 21:23

Choose a tag to compare

Add user isolation support with --isolated-user and --keep-user options

Implements user isolation that creates a new isolated user to run commands:

--isolated-user option (create isolated user with same permissions)

  • Add --isolated-user, -u option to create a new isolated user automatically
  • New user inherits group memberships from current user (sudo, docker, wheel, etc.)
  • User is automatically deleted after command completes (unless --keep-user)
  • Works with screen and tmux isolation backends (not docker)
  • Optional custom username via --isolated-user=myname or -u myname
  • For screen/tmux: Wraps commands with sudo -n -u
  • Requires sudo NOPASSWD configuration for useradd/userdel/sudo

--keep-user option

  • Add --keep-user option to prevent user deletion after command completes
  • Useful when you need to inspect files created during execution
  • User must be manually deleted with: sudo userdel -r

Other improvements

  • Add comprehensive tests for user isolation
  • Update documentation with user isolation examples
  • Integrate --keep-alive and --auto-remove-docker-container from main branch

Usage:

  • $ --isolated-user -- npm test # Auto-generated username, auto-deleted
  • $ --isolated-user myrunner -- npm start # Custom username
  • $ -u myrunner -- npm start # Short form
  • $ --isolated screen --isolated-user -- npm test # Combine with process isolation
  • $ --isolated-user --keep-user -- npm test # Keep user after completion

Note: User isolation requires sudo NOPASSWD configuration.

Related Pull Request: #33


npm version

0.9.0

25 Dec 14:55

Choose a tag to compare

Add --keep-alive option for isolation environments

  • All isolation environments (screen, tmux, docker) now automatically exit after command completion by default
  • New --keep-alive (-k) flag keeps the isolation environment running after command completes
  • Add ARCHITECTURE.md documentation describing system design
  • Update REQUIREMENTS.md with new option and auto-exit behavior documentation

Related Pull Request: #35


npm version

0.7.6

24 Dec 22:33

Choose a tag to compare

Add documentation for piping with $ command

  • Created docs/PIPES.md with detailed guide on pipe usage
  • Preferred approach: echo "hi" | $ agent (pipe TO the $-wrapped command)
  • Alternative approach: $ 'echo "hi" | agent' (quoting)
  • Updated docs/USAGE.md with brief pipe reference
  • Updated README.md with piping examples
  • Updated case study for issue #28 with new recommended approach

Related Pull Request: #29


npm version

0.7.5

23 Dec 22:05

Choose a tag to compare

fix: Screen isolation output always captured in attached mode

Changed attached mode to always use log capture instead of direct screen invocation.
This ensures command output is never lost, even for quick commands that would
otherwise have their output disappear when the screen session terminates rapidly.

Fixes #25: Output from $ --isolated screen -- echo "hello" is now properly
displayed instead of being lost with only "[screen is terminating]" shown.

Related Pull Request: #27


npm version

0.7.4

23 Dec 21:26

Choose a tag to compare

fix: Screen isolation output not captured for quoted commands

This fixes issue #25 where commands with quoted strings (e.g., echo "hello") would not show their output when using screen isolation. The fix uses spawnSync with array arguments instead of execSync with a constructed string to avoid shell quoting issues.

Related Pull Request: #26


npm version

0.7.2

23 Dec 19:51

Choose a tag to compare

docs: Update documentation to Bun-first approach

  • Remove npm installation option from README.md
  • Update examples to use bun commands instead of npm
  • Change package.json engines from node to bun
  • Update REQUIREMENTS.md to remove Node.js alternative

Related Pull Request: #24


npm version

0.7.1

23 Dec 18:49

Choose a tag to compare

Fix all --version detection issues

  • Fix screen version detection by capturing stderr
  • Show Bun version instead of Node.js version when running with Bun
  • Show macOS ProductVersion instead of kernel version
  • Fix argument parsing to handle $ --version -- same as $ --version
  • Update all scripts and examples to use Bun instead of Node.js
  • Add comprehensive tests for --version flag

Related Pull Request: #23


npm version

0.7.0

23 Dec 17:46

Choose a tag to compare

Add --version flag to display comprehensive version and system information. Users can now run $ --version or $ -v to see the version of start-command, system details, and versions of isolation tools (screen, tmux, docker).

Related Pull Request: #21


npm version