Skip to content

fix(tui3): let task-room notes receive Enter after sidebar navigation - #1628

Closed
santoshkumarradha wants to merge 3 commits into
devfrom
codex/1556-task-room-focus
Closed

santoshkumarradha wants to merge 3 commits into
devfrom
codex/1556-task-room-focus

Conversation

@santoshkumarradha

@santoshkumarradha santoshkumarradha commented Sep 27, 2026 •

Copy link
Copy Markdown
Member

Real product workflow — recorded on Spark

Goal: Open a running task from the keyboard roster, send a change to a shopping report, reselect the same room and send another note without losing its draft.

Observed outcome: All three actual notes reached the worker: raise the target from 3 to 6, preserve the last good report when input is invalid, and document usage. The task produced tea: buy 1, rice: buy 4, beans: buy 6 and passed 13 independently rerun artifact tests. The retained working copy contains the changes; the original main checkout stayed clean.

Real CodeAF workflow result

Watch the workflow (MP4) · Animated GIF · Original terminal recording (.cast)

Real CodeAF workflow — speed-adjusted preview

Task completed with its branch retained

Evidence: tested revision b1b00fd43f9a5d37fab9996b50ca1832ddad3dfd; Spark session critical-extended-1556-v2. Execution/binary identity, model receipts, checksums and playback details. All 21 recorded calls used OpenRouter deepseek/deepseek-v4.1-flash, including auxiliary calls. Consumed notes and workspace proof, artifact tests, before-fix regression, final focused regression, full local gate, actual report, and coverage.

Playback and limits: Original .cast is preserved; GIF/MP4 play at 3× speed with idle intervals capped at 3 seconds. Recorded build b1b00fd includes the reviewed keyboard fix 94e7499 plus its manual clarification. Final checkout 595aee0 differs only in changelog filename/PR number; no new runtime is implied. Spark full pr-ready passed, including all eight TUI shards; all final CI checks passed (run 36338452123). The real terminal used fixed 140-column child dimensions. Resizing only the outer terminal produced clipped display, preserved in the original, so narrow-terminal live success is not claimed; deterministic regressions cover actual 80/140 application widths. The task’s initial 60-second sleep gave time for real note entry. Model Pool was explicitly disabled; separate #1610 covers it. The before-fix 1569 recording below is diagnostic only and retains its missing #1562 grounding dependency/source-workspace writes. This fix addresses only the room-note part of #1556.

Opening a task with Alt+T → Enter left keyboard focus in the sidebar. A note appeared in the task composer, but Enter reopened the row instead of sending it. The shared room-opening lifecycle now releases sidebar focus. Selecting the already-open room does the same while preserving its draft, scroll position, and subscription. Part of #1556; this addresses the room-note item only.

The regression drives the actual keyboard route at 80 and 140 columns, sends a note to the task engine, reselects the same room, and sends a preserved second draft. It fails on the original source at both widths. Focused room, hosted-page, sidebar and steering checks pass on the final source. The manual explains the behavior only for tasks accepting notes.

Fresh Spark tmux acceptance on runtime 94e7499 / built b1b00fd used OpenRouter deepseek/deepseek-v4.1-flash for all 21 recorded calls. Three notes were consumed by the worker: change a shopping-report target from 3 to 6, reject invalid quantities while retaining the previous report, and document usage. The actual output contains tea: buy 1, rice: buy 4, beans: buy 6; all 13 independently rerun artifact tests pass. The original project remains clean and the protected-main task branch is retained. The initial 60-second sleep gives the operator time to enter real notes; it is not simulated model output.

The recorder used a fixed 140-column child. An outer-terminal resize caused clipped display and is retained in the raw recording; it is not claimed as narrow-terminal live acceptance. Unit coverage verifies both application widths. Model Pool was explicitly off; independent pool behavior has separate acceptance in #1610.

The full Spark make pr-ready gate passed, including all eight TUI shards in 35 seconds. Final focused checks passed in 1.912 seconds. All final CI checks passed (run 36338452123). Final source 595aee0e6 differs from recorded build b1b00fd43 only in the changelog filename and PR number. Immutable media and raw evidence are linked above. No merge into dev/main is part of this PR.

Before the fix — diagnostic failure, not acceptance

The earlier broad #1604 runtime e556a5b21 opened the task room with Alt+T → Enter but left the typed follow-up note unsent. This screenshot preserves the note in the composer and the roster’s Enter behavior.

Before: task note remains unsent

Before-fix video · GIF · unmodified original recording · manifest

Before-fix diagnostic preview

All 29 receipts used OpenRouter deepseek/deepseek-v4.1-flash. The duration CLI passed 11 tests, but this was partial diagnostic evidence: the worker followed an absolute source path despite retaining a working copy. That broad head lacks the separately owned #1562 grounding commits 780f22cb9 and 23d1ab588. No isolation success or #1569 closure is claimed. A later keyboard recovery attempt occurred after task completion, so the original note’s successful delivery is not claimed. The corrected workflow above used a fresh fixture and kept the original checkout clean.

Model receipts · diagnostic proof · coverage and limitations. Both previews use 3× playback with idle intervals capped at 3 seconds; both originals are retained without edits.

@santoshkumarradha

Copy link
Copy Markdown
Member Author

Integrated at exact reviewed head 595aee0 into Santosh/dev and superseded by draft #1627. Source description and validation are preserved at #1627 (comment). The combined PR remains draft for final acceptance. No source branch was deleted.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant