LyShell v1.0.5
Release date: 2026-08-19
✨ Features
- First-class codex & claude agents:
codexandclaudejoindshas first-class Harness agents — each gets its own left-rail tab, a dedicated workspace list, dependency detection, and per-workspace model & environment variables. - Shared Harness framework:
dshwas migrated onto a generic framework (detect / cwd / storage / launch), with the three agents' IPC channels registered from a single loop instead of three copies of duplicated logic. - Instant PATH refresh: the environment now reads the registry PATH live and injects it consistently across local sessions,
dsh web, and dependency detection — newly installed CLIs are picked up without restarting the app. - Per-workspace model for codex/claude: the model is passed as
codex --model <model>/claude --model <model>(left blank to omit); environment defaults areOPENAI_API_KEY/ANTHROPIC_API_KEY. - dsh Web tab drag-to-split: the dsh Web tab can now be dragged — to a pane's center to remount it, or to an edge to split into its own pane; the webview is hidden during the drag so it doesn't swallow drag events.
- Overlay pane keep-alive: empty panes hosting the dsh Web / MCP audit view are no longer accidentally removed by pane cleanup.
🔄 Changed
- dsh Web entry reworked: the per-workspace globe icon is gone — the panel title is now the single Web UI entry, opening
dsh webat the dsh-specific$DSH_HOME/webdirectory, decoupled from the TUI workspace list.
🗑️ Removed
- Workspace pinning: the workspace pin (置顶) control and its
setPinnedIPC, introduced in v1.0.4, have been removed.
🔒 Security
- Model-name whitelist: codex/claude model strings are validated against a strict
[A-Za-z0-9._:-]whitelist before being appended as--model. This is the sole defense against command injection, since model strings are typed into an interactive shell via the PTY. Covered by a newlaunch.test.tssuite.
🐛 Bug Fixes
- Sessions panel drag reset: the drag handler now resets
draggedIndexononDragEnd, fixing rows stuck in the dragging state when dropped on an invalid target.
🎨 Polish
- Harness panel title / workspace header restyled for clearer visual hierarchy, and the environment-variable fill button was de-crowded from its hint text.