Skip to content

Show Home conversations as working while their tasks run - #1426

Merged
AbirAbbas merged 6 commits into
devfrom
codex/todo-home-working
Sep 24, 2026
Merged

AbirAbbas merged 6 commits into
devfrom
codex/todo-home-working

Conversation

@ZeroPoint95

Copy link
Copy Markdown
Collaborator

Changelog

  • Keep Home conversations marked working while their tasks run.
  • Clear the mark when the last task finishes, using live status over stale counts.
  • Preserve question and unread indicators; update the manual.

Checks

  • make pr-ready and make build passed.
  • Regression and terminal smoke checks passed.
  • Owner approved the local build.

ZeroPoint95 and others added 6 commits September 23, 2026 15:57
Home read a held conversation's ranked tab signal, where a question
outranks work. A landed task's `your call` is drawn on the task's own
row, so the conversation row went dim while its other task ran or while
it was answering. Home now reads the work itself, shared with the tab
signal through behindWatch.working and app.frontWorking.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
A conversation that has never been named has no tab, so Home draws it
from the saved rows, which carry `here` and no chat key; the key guard
sent it past the front reading and it sat dim while its `/task` ran.
Home now knows the front row by `here` too. A keyless row reads its saved
task count and is never unread, another window's decision no longer hides
its running task, and a row wearing `?` never takes the spinner, so the
frame clock does not run for a frame that cannot change.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
… spinner

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
@AbirAbbas
AbirAbbas marked this pull request as ready for review September 24, 2026 21:31
@AbirAbbas

Copy link
Copy Markdown
Collaborator

Checked on the real binary (make build, tmux, throwaway home, deepseek/deepseek-v4-flash /task solo runs) and merged locally onto dev at 6d9ed58 with make pr-ready BASE=origin/dev green.

  • Working while tasks run: a conversation whose first act is /task showed ⠼ new conversation here on Home the whole time its task ran. Before the fix below it showed ·.
  • One task finishing doesn't clear the mark: with two tasks, the row kept spinning after the short one landed and until the long one settled. Then it turned unread once the landing reply ended.
  • Question and unread marks: the ? still wins and unread still clears after the conversation is reopened.

Commits added:

  • a8a91ee: Home reads the work itself (behindWatch.working / app.frontWorking, shared with the tab signal), not the ranked tab signal. Before this, a landed task's your call, which is drawn on the task's own row, turned the conversation row dim while another task ran or while it answered.
  • 44089e9: an unnamed conversation has no tab, so Home draws it from the saved rows with here set and no key, and the key guard skipped the front reading. Home now also recognises the front row by here. Also in this commit: a row with no key is never unread, another window's decision no longer hides its running task, and a row wearing ? never takes the spinner, so the frame clock doesn't run for a frame that can't change.
  • ffa1691, de5ce88: manual and change-entry lines for the above.

Follow-ups, not in this PR: a conversation whose only act was /task disappears from both Home and Sessions once you /new away from it while the task runs. It has no title and no user message, and the project's tasks.jsonl gains no entry until the task lands. Separately, the Sessions place still overwrites a remembered tab's saved working state with false when this window has no watcher for it (place_sessions.go filtered).

@AbirAbbas AbirAbbas left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Verified on top of dev; merging.

@AbirAbbas
AbirAbbas merged commit debffab into dev Sep 24, 2026
4 checks passed
@AbirAbbas
AbirAbbas deleted the codex/todo-home-working branch September 24, 2026 21:31
AbirAbbas added a commit that referenced this pull request Sep 24, 2026
Brings #1415, #1424, #1425, #1334, #1422, #1388, #1389 and #1426 onto the
integration branch (dev at debffab).

Conflicted files and how each was settled:

- internal/tui3/homeslash.go: the opens-a-conversation fate keeps dev2's
  /skill and dev's /manual and /folder (the union). dev's /project pin and
  the removal of /image and /ask stand. The fate-table and homeTrayCommand
  comments no longer name /image or the old /folder pin.
- internal/manual/chat/home.md: dev's three rows for /attach, the commands
  that open a conversation and the ones that answer on Home, with dev2's
  /skill /skills added to the opens-a-conversation row so the table matches
  homeFate.
- internal/tui3/notice_test.go: both sides appended tests; all are kept
  (dev2's unread and retired profile-key tests, dev's ranking and rotation
  tests). newNoticeBoard's third argument is "hints enabled", so the
  hints-off test still passes false.

Not a textual conflict, but broken by the merge:

- internal/manual/chat/compacting-over-and-over.md: the probe "what
  happened to the earlier messages" reached another page once dev2's pages
  and dev's respelled heading met. The heading carries the phrase again.

Semantic collisions checked with no change needed: Escape and double-space
against dev2's task page, rail, pickers and skill chips; one /skill row and
alias; the tip table (22 rows, no priority column, the unread-keys line is
not a tip and shows with hints disabled); ui.hints stays a read key beside
dev2's task.parallel and retired-key rows; Home's working mark and the
filtered Sessions list against dev2's stopped and interrupted runs; the
attach tray carries files and skill chips side by side; the e2e word table;
system.md; icons and banned words; change entries.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
santoshkumarradha added a commit that referenced this pull request Sep 24, 2026
A real session starts a run through the task door with the run engine
seated, its presence file is read the way Home reads the machine, and
Home's own conversation bullet (#1426, session.Tasks.Running) must wear
the working mark. On clean santos/dev2 (ee0abdf) the rollup stays at
0 running for the whole run and the test fails.

A run row that is published now refreshes the window's presence file at
once instead of at the next heartbeat.
santoshkumarradha pushed a commit that referenced this pull request Sep 25, 2026
Brings in #1410, #1440, #1426, #1389, #1388, #1422, #1334, #1424, #1425
and #1415. Conflicts resolved keeping both sides: the keys row carries
dev's project and low-credit line at its right end and the dock in what
they leave; the strip's home chip takes dev's word on the one top bar's
lead; the chats place joins dev's restored esc and double-space manual.
santoshkumarradha added a commit that referenced this pull request Sep 25, 2026
dev now carries santos/dev2 (#1410) and #1388, #1426, #1440 and others.
The PR's net change is taken from its fork point bdb08cf; the earlier
dev2 merge and its revert are left out, so dev's skills (#1396) and
worker step-boundary work stay as dev has them.

Conflicts: config/crew.go, config/seats.go and tui3/crew.go take the
routed-crew versions; /crew keeps dev's notice event. do.go keeps both
the kept-record line and the crew outcome log. task_run_belt.go keeps
both the machine-hold rail and the crew completer. home.md keeps dev's
rows without the preset forms and adds the crew-panel row. truth_test.go
keeps dev's new facts and counts the crew as three seats. back_test.go
stays deleted as on dev. CHANGELOG.md keeps dev's released history.

#1440 on the routed crew: reflex and small work keep their free defaults
on a balance read as low; the three crew seats see the OpenRouter
account as out of credit before any call (not re-probed per task) and
route to free pools with the free-routes notice. Tests follow.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
santoshkumarradha pushed a commit that referenced this pull request Oct 24, 2026
Brings #1415, #1424, #1425, #1334, #1422, #1388, #1389 and #1426 onto the
integration branch (dev at 5289195).

Conflicted files and how each was settled:

- internal/tui3/homeslash.go: the opens-a-conversation fate keeps dev2's
  /skill and dev's /manual and /folder (the union). dev's /project pin and
  the removal of /image and /ask stand. The fate-table and homeTrayCommand
  comments no longer name /image or the old /folder pin.
- internal/manual/chat/home.md: dev's three rows for /attach, the commands
  that open a conversation and the ones that answer on Home, with dev2's
  /skill /skills added to the opens-a-conversation row so the table matches
  homeFate.
- internal/tui3/notice_test.go: both sides appended tests; all are kept
  (dev2's unread and retired profile-key tests, dev's ranking and rotation
  tests). newNoticeBoard's third argument is "hints enabled", so the
  hints-off test still passes false.

Not a textual conflict, but broken by the merge:

- internal/manual/chat/compacting-over-and-over.md: the probe "what
  happened to the earlier messages" reached another page once dev2's pages
  and dev's respelled heading met. The heading carries the phrase again.

Semantic collisions checked with no change needed: Escape and double-space
against dev2's task page, rail, pickers and skill chips; one /skill row and
alias; the tip table (22 rows, no priority column, the unread-keys line is
not a tip and shows with hints disabled); ui.hints stays a read key beside
dev2's task.parallel and retired-key rows; Home's working mark and the
filtered Sessions list against dev2's stopped and interrupted runs; the
attach tray carries files and skill chips side by side; the e2e word table;
system.md; icons and banned words; change entries.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
santoshkumarradha added a commit that referenced this pull request Oct 24, 2026
A real session starts a run through the task door with the run engine
seated, its presence file is read the way Home reads the machine, and
Home's own conversation bullet (#1426, session.Tasks.Running) must wear
the working mark. On clean santos/dev2 (e788bc7) the rollup stays at
0 running for the whole run and the test fails.

A run row that is published now refreshes the window's presence file at
once instead of at the next heartbeat.
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.

2 participants