Releases: link-foundation/start
0.13.0
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
0.11.0
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
--endpointoption 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
0.10.0
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
0.9.0
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
0.7.6
Add documentation for piping with $ command
- Created
docs/PIPES.mdwith detailed guide on pipe usage - Preferred approach:
echo "hi" | $ agent(pipe TO the $-wrapped command) - Alternative approach:
$ 'echo "hi" | agent'(quoting) - Updated
docs/USAGE.mdwith brief pipe reference - Updated
README.mdwith piping examples - Updated case study for issue #28 with new recommended approach
Related Pull Request: #29
0.7.5
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
0.7.4
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
0.7.2
0.7.1
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