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 4. Pressing `e` (routes edit) or `p` (pipelock edit) with an
agent selected targets that agent. No disambiguation prompt; agent selected targets that agent. No disambiguation prompt;
no global discover. no global discover.
5. Pressing `e` / `p` with NO agent selected (e.g., zero agents 5. Pressing `e` / `p` with NO agent selected is a no-op (status
running, or the cursor is in the proposals pane) falls back line surfaces "no agent selected"). The global discover-
to today's global behavior — discover, prompt if multiple, and-prompt path comes out — selection in the agents pane is
abort if none. now the only way to scope an edit.
6. The active-agents list refreshes on the same ~1s tick as the 6. The active-agents list refreshes on the same ~1s tick as the
proposals list so an agent starting / stopping is reflected proposals list so an agent starting / stopping is reflected
without operator action. 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` - Tab-toggle selection state: which pane the cursor is in. `j`
/ `k` / arrow keys move within that pane. / `k` / arrow keys move within that pane.
- Rewire `_operator_edit_routes_flow` and - Rewire `_operator_edit_routes_flow` and
`_operator_edit_allowlist_flow` to accept an optional `_operator_edit_allowlist_flow` to require a slug from the
"preselected slug". When the cursor is in the agents pane, caller. The discover-and-prompt scaffolding (no-arg
pass that slug; otherwise keep today's discover-and-prompt discover + single-bottle shortcut + multi-bottle prompt)
behavior. 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 - Status-line indicator showing which agent is selected (or
"no agent selected" when in the proposals pane). "no agent selected" when in the proposals pane).
- Tests for the new discovery helper. - Tests for the new discovery helper.
@@ -154,10 +155,12 @@ active agents:
- Each pane keeps its own selection index. Switching panes - Each pane keeps its own selection index. Switching panes
doesn't lose the position in the other. doesn't lose the position in the other.
- `e` / `p`: - `e` / `p`:
- Cursor in the agents pane → use that agent's slug. - An agent is selected (cursor in the agents pane on a row)
- Cursor in the proposals pane → today's discover-and-prompt → use that agent's slug.
behavior (so the muscle memory still works for operators - Otherwise → no-op with a status-line "no agent selected".
who didn't switch panes first). The pre-PRD global discover-and-prompt code paths come out
of `_operator_edit_routes_flow` and
`_operator_edit_allowlist_flow`.
### Active-agent discovery ### Active-agent discovery
@@ -215,18 +218,13 @@ Sized small.
previous row, not jump to the top. Mirrors the existing previous row, not jump to the top. Mirrors the existing
proposals-list behavior. proposals-list behavior.
4. **Should `e` / `p` still prompt when the cursor is in the 4. **Color / highlight for the selected agent.** The proposals
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
pane uses green for newly-arrived. Agents could use a pane uses green for newly-arrived. Agents could use a
different attribute (e.g., reverse video for selection, different attribute (e.g., reverse video for selection,
no color for the row itself). Aesthetic decision; pick no color for the row itself). Aesthetic decision; pick
something readable in the standard 8-color palette. 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 UX: highlighting a proposal in the proposals pane could
auto-move the agents-pane cursor to that proposal's auto-move the agents-pane cursor to that proposal's
bottle. Cute, but probably confusing — the explicit Tab bottle. Cute, but probably confusing — the explicit Tab