You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
tasks column: check tasks omitted from roster, landing race drops card, and room input key capture #1556
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
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.
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.
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.
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
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:
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.
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).
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.
Activity
santoshkumarradha commentedon Sep 27, 2026
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:
git checkout 837b2b0 && make build, binarybin/codeaf), or install the dev build withcurl -fsSL https://agentfield.ai/get/devaf | bash.export HOME=$(mktemp -d), exportOPENROUTER_API_KEY, and keep the default model (~deepseek/deepseek-v4-flash-latest, crew on auto).task.max_loadto0(/settings, Tasks) so the busy-machine gate does not hold tasks.1. Check rows not drawn (B25)
Test cart.py,Test pricing.py,Test orders.py, while the run store (plandb list) held threecheck: <part>tasks, role check,done, resultholds: ....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)
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)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, andentersends nothing (twice).alt+tthenentersent it (· the worker reads a note at its next step).4.
Done 2 ▾expanded shows one row (B51)[senior-dev]badge in the collapsed list (rename LoadConfig to LoadSetti… 1m).Acceptance (e2e)
enterwhatever holds focus, or the box is not shown as ready.Done Nexpanded shows N rows with their badges.Found while writing the public docs; manual text differences are in #1545.
🤖 Generated with Claude Code
tui3: a task's landing is said after the answer it lands in, and Done…
AbirAbbas commentedon Sep 28, 2026
Items 2 and 4 are fixed on dev by #1640 (
abdf47089), and item 3 by #1627. Item 1 is split out as #1646.