feat(tui-go): workflow-propose choice panel
Render a workflow.proposed frame as a single-select picker with a manual-answer slot: ↑↓/jk to choose, enter to launch, e for custom, esc to peek away. Picking a candidate sends StartSession (and focuses the launched session); the custom slot continues the conversation via ChatInput. Reuses the modal helpers from the clarification view.
This commit is contained in:
@@ -58,6 +58,9 @@ func (m Model) View() string {
|
||||
if m.displayState() == StateClarification {
|
||||
return m.center(m.clarificationModal())
|
||||
}
|
||||
if m.displayState() == StateWorkflowPropose {
|
||||
return m.center(m.proposeModal())
|
||||
}
|
||||
if m.overlay != OverlayNone {
|
||||
return m.renderOverlay(base)
|
||||
}
|
||||
@@ -224,6 +227,9 @@ func (m Model) renderFooter() string {
|
||||
case m.displayState() == StateClarification:
|
||||
// The question form owns its keys; the footer mirrors the essentials.
|
||||
hints = []string{hint("←→", "option"), hint("↑↓", "question"), hint("spc", "select"), hint("enter", "submit"), hint("esc", "later")}
|
||||
case m.displayState() == StateWorkflowPropose:
|
||||
// The picker owns its keys; the footer mirrors the essentials.
|
||||
hints = []string{hint("↑↓", "choose"), hint("enter", "launch"), hint("e", "custom"), hint("esc", "later")}
|
||||
case m.displayState() == StateIdle:
|
||||
if nrw {
|
||||
hints = []string{hint("i", "name"), hint("/", "filter"), hint("w", "wf"), hint("p", "cmds"), hint("q", "quit")}
|
||||
|
||||
Reference in New Issue
Block a user