Skip to content

bug(bridge): model interactive-prompt lifecycle during concurrent spinner redraws #68

Description

@puritysb

Context

Split from #55. The option-block parsing fixes can land independently, but the proposed time-based spinner suppression can re-arm from historical append-only buffer content and hide real processing indefinitely.

Reproduction to preserve

  1. Arm the parser.
  2. Feed a navigable prompt such as ❯ 1. Yes / 2. No and allow AWAITING to emit.
  3. Treat the prompt as answered and advance beyond the suppression window.
  4. Feed a real spinner/status update such as ✻ Running the selected action.
  5. Expected: processing / spinner_start; the old prompt must not keep the session AWAITING or idle.

Also preserve:

  • spinner and navigable prompt in the same initial chunk still reaches AWAITING;
  • spinner redraw flood while a genuinely visible prompt is active does not cancel AWAITING;
  • stale numbered prose does not count as an active prompt.

Required direction

Use an explicit prompt lifecycle/freshness signal that is cleared on selection, processing, reset, or another authoritative transition. Do not use historical buffer presence as proof that a prompt remains on screen.

This issue tracks only the spinner/prompt lifecycle. Safe option parsing is being separated from #55.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingplatform:bridgeNode bridge, daemon, hooks, and CLI

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions