Skip to content

tasks column: check tasks omitted from roster, landing race drops card, and room input key capture #1556

Closed

Description

@santoshkumarradha

Summary

The Tasks side column and task room views have rendering omissions for check tasks, race conditions on fast completions, and keyboard navigation issues.

Items & Observed Behavior

  1. Check tasks omitted from side list: Plan tasks with role check (check: <part>) are recorded in the plan database but never drawn in the Tasks side column.
  2. Landing card dropped on fast completion: If a task lands before the user's interactive chat turn ends, the completion card and move-to-end animation are dropped from the chat stream.
  3. Task room note input Enter key captured by parent column: Typing in the task room notes input accepts text, but pressing Enter is intercepted by the parent column instead of submitting the note.
  4. Done section collapse/expand discrepancy: Toggling Done ▾ reveals only 1 row when expanded while the collapsed header reports 2, and stopped task rows lose their worker role badges.

Expected Behavior

  • All plan task roles (including check) must be visible in the task roster.
  • Fast-completing tasks must reliably render their landing card at the end of the turn.
  • The input box in task room mode must capture Enter to submit notes.
  • The Done section list items must match the count badge and retain role badges.

Root Cause / Location

  • internal/tui3/tasks.go and internal/tui3/taskroom.go: Task filtering, keyboard routing, and row rendering.
  • internal/session/chat.go: Turn completion and card rendering ordering.

—
Drafted with CodeAF · reviewed and owned by the author

Activity

  1. added
    bugSomething the code does that it should not
    area:chatThe v3 surface a person sits in front of (internal/tui3)
    sev:seriousWrong or missing behaviour a person meets in ordinary use
    on Sep 27, 2026
  2. santoshkumarradha commented on Sep 27, 2026

    @santoshkumarradha
    MemberAuthor

    New evidence from dev 837b2b0, found by the docs lanes while writing the public docs. Replication for every item below starts from a clean install:

    1. Build dev 837b2b0 (git checkout 837b2b0 && make build, binary bin/codeaf), or install the dev build with curl -fsSL https://agentfield.ai/get/devaf | bash.
    2. Use an isolated profile: export HOME=$(mktemp -d), export OPENROUTER_API_KEY, and keep the default model (~deepseek/deepseek-v4-flash-latest, crew on auto).
    3. On a busy machine set task.max_load to 0 (/settings, Tasks) so the busy-machine gate does not hold tasks.

    1. Check rows not drawn (B25)

    • What happened: after two runs ended, the Tasks column listed only Test cart.py, Test pricing.py, Test orders.py, while the run store (plandb list) held three check: <part> tasks, role check, done, result holds: ....
    • Replication: a repo with cart.py, pricing.py, orders.py; /task write a pytest test file for each of cart.py, pricing.py and orders.py.

    2. Landing not drawn when a task lands inside the proposing turn (B26, two lanes)

    • What happened: two tasks proposed back to back; task 1 got its crew line (task 1 crew · ... · $0.096 (est $1.31) · not right? /redo stronger) and landed card (◆ Count lines in store.py on kimi k3 · done · 10s); task 2 (done, $0.0017, finished in 9 s inside a 21 s turn) got neither, only the chat's own follow-up. Seen again in a side-by-side model bake-off.

    3. A note in a task room is not sent by enter (B27)

    • What happened: room opened with alt+t, arrows, enter; letters land in the room's box (› Also add a Health section ...) but the foot reads ↑↓ move · enter open · x stop, and enter sends nothing (twice). alt+t then enter sent it (· the worker reads a note at its next step).

    4. Done 2 ▾ expanded shows one row (B51)

    • What happened: collapsed it shows both; expanded, one. The stopped senior-dev row loses its [senior-dev] badge in the collapsed list (rename LoadConfig to LoadSetti… 1m).

    Acceptance (e2e)

    • A finished run shows its parts with their check rows under them.
    • A task that lands inside the proposing turn gets its crew line and landed card.
    • A note typed in a task room is sent by enter whatever holds focus, or the box is not shown as ready.
    • Done N expanded shows N rows with their badges.

    Found while writing the public docs; manual text differences are in #1545.

    🤖 Generated with Claude Code

  3. AbirAbbas commented on Sep 28, 2026

    @AbirAbbas
    Collaborator

    Items 2 and 4 are fixed on dev by #1640 (abdf47089), and item 3 by #1627. Item 1 is split out as #1646.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:chatThe v3 surface a person sits in front of (internal/tui3)bugSomething the code does that it should notsev:seriousWrong or missing behaviour a person meets in ordinary use

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions