Skip to content

harness: composer ↑/↓ arrow history does not work while agent is busy #701

Description

@btipling

Summary

PR #686 shipped composer arrow-key history, but pressing ↑ or ↓ while the agent is busy (thinking/inference running) does nothing — no navigation to prior user messages.

Expected

Pressing ↑ when the composer is empty and the agent is busy should load the newest user message, same as when idle.

Actual

↑/↓ are ignored while busy is true. The guard in ui.zig reads:

if (!busy and state.queue_editing_index == null) {
    // ... history intercept ...
}

This deliberately blocks history during inference. The original intent (per the plan #667 and adversarial-review feedback) was that Busy should NOT block history — the !busy guard was a reviewer recommendation that the implementer accepted, but it produces the wrong operator experience.

Repro

  1. Start a long-running agent turn (send a message)
  2. While the agent is busy (spinner visible), press ↑
  3. Nothing happens — composer stays empty

Notes

  • queue_editing_index guard is correct and should stay
  • Only the !busy guard needs removal
  • No other behavior changes needed — the fingerprint/draft/hydrate logic is unchanged

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingharnessHarness / agent UI

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions