All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Added unhandled ANSI sequence logging to surface edge cases in command output.
- Added regression coverage for dashboard rendering behavior, diff-render cursor anchoring, renderer reuse, process-driver command wrapping, and shutdown signaling paths.
- Updated dashboard rendering to prefer screen-diff output when available while preserving string-renderer fallback behavior.
- Upgraded
soloterm/screento include the upstreamtoCellBuffer()ANSI decode fix and removed Solo's temporary local shim. - Consolidated CapturedPrompt renderer mapping into the trait, eliminating per-class overrides.
- Fixed a frame composition bug that could scroll away the first row, causing the tab strip to disappear or appear incomplete.
- Fixed non-interactive dashboard boot crashes caused by uninitialized Laravel Prompts typed properties.
- Fixed differential rendering artifacts by re-homing the cursor at the first changed cell in each diff frame.
- Removed GNU Screen process driver and all associated code. Solo now uses PTY mode directly via Symfony Process with
soloterm/screenhandling all ANSI parsing. GNU Screen is no longer required. - Removed
solo.process_driverandsolo.use_screenconfiguration options. - Removed output marker filtering (
SOLO_START/SOLO_END), screen version checking, and screen-specific shutdown logic. - Removed unused
CapturedSearchPromptandCapturedSuggestPromptclasses. - Removed
EnhancedTailCommand- it has been extracted to the standalonesoloterm/vtailpackage. The default Logs command now uses a simpletail -fcommand.
There are a lot of breaking changes from 0.2.x to 0.3.x. I am sorry about that, but this is a fundamental rewrite! And it's so much better. This should be the last 0.x release. Provided nothing major comes up, we'll move on to 1.0.0 pretty quickly.
- Changed the package name from
aaronfrancis/solotosoloterm/solo. I've markedaaronfrancis/soloabandoned on Packagist. - Changed the namespace from
AaronFrancis\SolotoSoloTerm\Solo - Completely rewrote the rendering pipeline
- Changed how hotkeys work. They are now configurable.
- Interactive commands!
- A new quick nav popup
- Hotkeys per command
- A new solo:dumps command that you can use to intercept
dumpcalls in your application. - A new solo:make command that lets you quickly access all Laravel make:* commands
- An enhanced tail command that collapses vendor frames and lets you truncate the logs via hotkey
- Removed the need for you to have a service provider in favor of a much simpler config file. You'll need to migrate to the config file approach and delete your service provider.
- Removed all the
allowRegistrationFromhoops you had to jump through to register commands. This means that any third-party package could register a command. Any malicious third-party package can already runshell_execwithout Solo. Running a malicious script via Solo just makes it totally obvious that it's happening. So the security thatallowRegistrationFromadded was performative at best.