Some checks failed
release / build-linux-amd64 (push) Failing after 10m52s
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.
30 lines
1.4 KiB
JSON
30 lines
1.4 KiB
JSON
{
|
|
"name": "sidebar_survives_ri_scroll",
|
|
"cols": 80,
|
|
"rows": 24,
|
|
"scripts": [
|
|
{
|
|
"name": "riburst",
|
|
"body": "#!/bin/sh\n# Emulates codex's startup sequence: DECSTBM the full child\n# viewport, CUP to the top of the scroll region, and burst 8 RIs\n# (ESC M). RI at the top of the scroll region scrolls the region\n# down. The host's scroll region spans every column, so without\n# the sidebar cache-invalidation fix the right-hand session tree\n# gets dragged downward and the cache hides the broken state.\nprintf '\\033[1;21r'\nprintf '\\033[1;1H'\nprintf '\\033M\\033M\\033M\\033M\\033M\\033M\\033M\\033M'\nprintf '\\033[1;1HRIBURST READY\\n'\nsleep 5\n"
|
|
}
|
|
],
|
|
"steps": [
|
|
{
|
|
"type": "mcp_call",
|
|
"method": "spawn_process",
|
|
"params": { "kind": "command", "argv": ["riburst"], "name": "riburst" }
|
|
},
|
|
{ "type": "wait_text", "contains": "RIBURST READY", "timeout_ms": 5000 },
|
|
{ "type": "wait_stable", "timeout_ms": 2000 },
|
|
{ "type": "assert_contains", "contains": "Processes" },
|
|
{ "type": "assert_contains", "contains": "Agent Tree" },
|
|
{ "type": "assert_contains", "contains": "● riburst" },
|
|
{ "type": "assert_contains", "contains": "Scratchpads" },
|
|
{
|
|
"type": "assert_regex",
|
|
"regex": "(?s)Processes[^\\n]*\\n[^─\\n]*─[─]+[^\\n]*\\n[^●\\n]*● riburst",
|
|
"timeout_ms": 2000
|
|
}
|
|
]
|
|
}
|