docs(prd-0019): drop e/p fallback — selection-only, no-op otherwise
test / unit (pull_request) Successful in 18s
test / integration (pull_request) Successful in 1m6s

When no agent is selected, `e` / `p` do nothing (status line
shows "no agent selected") rather than falling back to today's
global discover-and-prompt. The discover-and-prompt scaffolding
in `_operator_edit_routes_flow` / `_operator_edit_allowlist_flow`
comes out entirely — selection in the agents pane is now the
only way to scope an edit. Old open-question #4 (single-bottle
shortcut behavior in proposals-pane mode) is moot and removed.
This commit is contained in:
2026-05-26 01:03:23 -04:00
parent 9539982d3f
commit 9c9c32a941
+17 -19
View File
@@ -63,10 +63,10 @@ the "operator wants to make an unprompted change" case.
4. Pressing `e` (routes edit) or `p` (pipelock edit) with an
agent selected targets that agent. No disambiguation prompt;
no global discover.
5. Pressing `e` / `p` with NO agent selected (e.g., zero agents
running, or the cursor is in the proposals pane) falls back
to today's global behavior — discover, prompt if multiple,
abort if none.
5. Pressing `e` / `p` with NO agent selected is a no-op (status
line surfaces "no agent selected"). The global discover-
and-prompt path comes out — selection in the agents pane is
now the only way to scope an edit.
6. The active-agents list refreshes on the same ~1s tick as the
proposals list so an agent starting / stopping is reflected
without operator action.
@@ -106,10 +106,11 @@ the "operator wants to make an unprompted change" case.
- Tab-toggle selection state: which pane the cursor is in. `j`
/ `k` / arrow keys move within that pane.
- Rewire `_operator_edit_routes_flow` and
`_operator_edit_allowlist_flow` to accept an optional
"preselected slug". When the cursor is in the agents pane,
pass that slug; otherwise keep today's discover-and-prompt
behavior.
`_operator_edit_allowlist_flow` to require a slug from the
caller. The discover-and-prompt scaffolding (no-arg
discover + single-bottle shortcut + multi-bottle prompt)
comes out. The dashboard's key handlers pass the agents-pane
selection in directly, or no-op if nothing is selected.
- Status-line indicator showing which agent is selected (or
"no agent selected" when in the proposals pane).
- Tests for the new discovery helper.
@@ -154,10 +155,12 @@ active agents:
- Each pane keeps its own selection index. Switching panes
doesn't lose the position in the other.
- `e` / `p`:
- Cursor in the agents pane → use that agent's slug.
- Cursor in the proposals pane → today's discover-and-prompt
behavior (so the muscle memory still works for operators
who didn't switch panes first).
- An agent is selected (cursor in the agents pane on a row)
→ use that agent's slug.
- Otherwise → no-op with a status-line "no agent selected".
The pre-PRD global discover-and-prompt code paths come out
of `_operator_edit_routes_flow` and
`_operator_edit_allowlist_flow`.
### Active-agent discovery
@@ -215,18 +218,13 @@ Sized small.
previous row, not jump to the top. Mirrors the existing
proposals-list behavior.
4. **Should `e` / `p` still prompt when the cursor is in the
proposals pane but only one agent is running?** Today the
single-bottle case skips the prompt; we'd keep that. Two
or more bottles still prompts in proposals-pane mode.
5. **Color / highlight for the selected agent.** The proposals
4. **Color / highlight for the selected agent.** The proposals
pane uses green for newly-arrived. Agents could use a
different attribute (e.g., reverse video for selection,
no color for the row itself). Aesthetic decision; pick
something readable in the standard 8-color palette.
6. **Selecting a proposal cross-selects its agent?** Possible
5. **Selecting a proposal cross-selects its agent?** Possible
UX: highlighting a proposal in the proposals pane could
auto-move the agents-pane cursor to that proposal's
bottle. Cute, but probably confusing — the explicit Tab