When opened with Ctrl-K, the palette now prepends entries for whatever is currently focused: - Focused scratchpad: Delete / Rename (inline form) / Edit (fire-and- forget zed launch with stdio detached so the TUI is not suspended). - Focused agent: Rename (inline form) / Close. - Focused process: Rename / Delete (drops the entry; SIGKILL if alive) / Stop (SIGTERM, keep entry) / Restart (same argv). The rename UX is a single-field inline form that mirrors the existing spawn-process form, so the modal-input contract is unchanged. scratchpad.Store grows Delete / Rename / Path so the palette can act on a pad file by name. focusedPad is plumbed onto uiState ahead of the scratchpad-focus UI work; until that lands it stays empty and the scratchpad-context entries simply never surface. Tested with palette_context_test.go and a new rename_process_via_palette harness scenario.
32 lines
989 B
JSON
32 lines
989 B
JSON
{
|
|
"name": "rename_process_via_palette",
|
|
"scripts": [
|
|
{
|
|
"name": "renamed-loop",
|
|
"body": "#!/bin/sh\necho RENAMED READY\nsleep 5\n"
|
|
}
|
|
],
|
|
"steps": [
|
|
{
|
|
"type": "mcp_call",
|
|
"method": "spawn_process",
|
|
"params": { "kind": "command", "argv": ["renamed-loop"], "name": "original" }
|
|
},
|
|
{ "type": "wait_text", "contains": "RENAMED READY", "timeout_ms": 5000 },
|
|
{ "type": "send_chord", "chord": "ctrl-k" },
|
|
{ "type": "send_text", "text": "Rename process" },
|
|
{ "type": "send_chord", "chord": "enter" },
|
|
{ "type": "wait_text", "contains": "Rename process", "timeout_ms": 3000 },
|
|
{ "type": "send_chord", "chord": "ctrl-u" },
|
|
{ "type": "send_text", "text": "renamed-pane" },
|
|
{ "type": "send_chord", "chord": "enter" },
|
|
{ "type": "wait_stable", "timeout_ms": 2000 },
|
|
{
|
|
"type": "assert_mcp",
|
|
"method": "get_project_status",
|
|
"path": "processes.0.name",
|
|
"equals": "renamed-pane"
|
|
}
|
|
]
|
|
}
|