Bundles the in-flight work into the first tagged release. See CHANGELOG.md `[0.0.1] - 2026-05-14` for the full per-change list. Highlights: - Sidebar / chrome stability: clamp absolute cursor positioning and printable bytes to the viewport so long-running TUIs (claude, codex) can't spray into the right rail; bound tab bar's row clear to the viewport width so the rail isn't wiped on every tab redraw; flag scroll escapes (RI/IND/NEL/SU/SD/IL/DL) and clamp `CSI 0/1/2 J`/`K` to viewport columns. - Palette: "Spawn process…" form, macros (`sw `, `k `, `sp `), kill entries mark the focused tab, dead agents drop out of the switch list. - Sidebar: split into Processes (session-wide) + Agent Tree (per-active-agent) sections; relaunch indicator; Ctrl+W/S walks the combined list, Ctrl+A/D steps tabs. - MCP: protocol handshake (`initialize`, `tools/list`, `tools/call`, `ping`), `mcp_injection.kind = cli_override / config_env` so codex and opencode pick up the server with no file writes, `lifecycle` help topic and tool-description cleanup-duty pointers. - Lifecycle: orchestrator-spawned children cascade-killed when the parent dies; orchestrator-injected prompts end with CR + delayed Enter so claude submits cleanly.
This commit is contained in:
48
CHANGELOG.md
48
CHANGELOG.md
@@ -6,7 +6,23 @@ loosely follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
## [0.0.1] - 2026-05-14
|
||||
|
||||
### Fixed
|
||||
- Tab bar redraw used `\x1b[2K` to clear rows 1 and 2 before painting
|
||||
labels, which wiped the sidebar columns on those rows too. When the
|
||||
sidebar cache was still warm the rail never repainted, leaving a
|
||||
gap where the sidebar's top border and "Processes" header should be.
|
||||
The clear is now bounded to the viewport width.
|
||||
- Long-running TUIs (claude / codex) whose internal column state
|
||||
drifted past the patterm viewport could spray text into the sidebar
|
||||
columns — overwriting the session-tree and scratchpad rail until the
|
||||
user opened/closed the palette to force a full repaint. The viewport
|
||||
renderer now clamps absolute cursor positioning (CUP / HVP / CHA /
|
||||
HPA) to the viewport's right edge and drops printable bytes (ASCII
|
||||
and full UTF-8 glyphs) that would otherwise land past it. Covered by
|
||||
a unit suite and a new `sidebar_survives_wide_writes` harness
|
||||
scenario.
|
||||
- Sub-agent panes spawned while another diff-based TUI (claude/codex/
|
||||
opencode) held focus could come up corrupted because the new child's
|
||||
first incremental updates targeted cells the host viewport hadn't
|
||||
@@ -15,7 +31,31 @@ loosely follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
styled emulator grid — the same path that fixed the symptom when the
|
||||
user manually cycled focus with Ctrl+W / Ctrl+S.
|
||||
|
||||
### Changed
|
||||
- Command palette `Kill …` entries now mark the focused tab with the
|
||||
same "• … (current)" marker the `Switch to …` entries use, so the
|
||||
user can tell at a glance which tab a kill action targets.
|
||||
- Status line now advertises the navigation chords (`Ctrl-A/D · tabs`,
|
||||
`Ctrl-W/S · tree`) alongside `Ctrl-K · palette`. Hints decay
|
||||
shortest-first when the terminal is too narrow to fit all three.
|
||||
|
||||
### Added
|
||||
- "Spawn process…" entry in the command palette opens a two-field form
|
||||
for typing an arbitrary command line and ticking "Relaunch on exit".
|
||||
The command runs through `sh -lc` so multi-word lines like
|
||||
`bun run dev` resolve binaries the way an interactive shell would.
|
||||
When the relaunch flag is set, patterm Starts the process again after
|
||||
it exits (1s backoff). Killing the process from the palette clears
|
||||
the flag so it does not come back.
|
||||
- Dedicated "Processes" section in the sidebar above the agent tree,
|
||||
listing every top-level command/terminal process. It is global to
|
||||
the patterm session — switching between agent tabs no longer changes
|
||||
which processes are visible. The relaunch-on-exit indicator (`⟳`)
|
||||
shows next to processes the user opted into auto-restart for.
|
||||
- Ctrl+W / Ctrl+S now traverse the combined Processes section and the
|
||||
active agent tree as one flat list, so the user can step out of the
|
||||
agent tree into the Processes pane and back without leaving the
|
||||
keyboard.
|
||||
- New `lifecycle` help topic spelling out that the caller owns the
|
||||
processes it spawns and should call `close_process` when a sub-agent
|
||||
or spawned process is no longer needed. The `spawn_agent` and
|
||||
@@ -55,6 +95,14 @@ loosely follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
available macros.
|
||||
|
||||
### Changed
|
||||
- The sidebar's session-tree section is now labeled "Agent Tree" and
|
||||
shows only agent sessions (and any sub-agents they spawn). Top-level
|
||||
command and terminal processes live in the new "Processes" section
|
||||
above it.
|
||||
- Tab bar tabs now correspond to agent sessions only. Command/terminal
|
||||
processes that previously claimed a top-level tab now appear in the
|
||||
Processes sidebar section, so the tab strip is reserved for agent
|
||||
context.
|
||||
- Focus, lifecycle, and repaint paths now capture terminal layout before
|
||||
taking UI state locks, reducing resize-time deadlock risk without
|
||||
changing visible behavior.
|
||||
|
||||
Reference in New Issue
Block a user