Repository navigation
feat(desktop,host): a shown transcript tab hears its pages pushed, with no read loop - #3931
Closed
charleslpan wants to merge 2 commits into
Closed
charleslpan wants to merge 2 commits into
charleslpan wants to merge 2 commits into
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
luke-agent
Bot
force-pushed
the
luke/transcript-push-host
branch
from
October 20, 2026 02:24
18d5a95 to
52031b8
Compare
luke-agent
Bot
force-pushed
the
luke/transcript-push-window
branch
from
October 20, 2026 02:24
4995dea to
b128885
Compare
luke-agent
Bot
force-pushed
the
luke/transcript-push-window
branch
from
October 20, 2026 03:00
b128885 to
11fcf13
Compare
luke-agent
Bot
force-pushed
the
luke/transcript-push-host
branch
from
October 20, 2026 03:01
8c80a4e to
6558135
Compare
luke-agent
Bot
force-pushed
the
luke/transcript-push-window
branch
from
October 20, 2026 03:01
11fcf13 to
df93e15
Compare
…th no read loop The tab of an agent, a worker, or a task's planning worker now follows its transcript while it is shown and lets it go once it is hidden. It joins each page pushed on `app:transcript` by message id, so the window no longer runs a read loop or keeps a cursor. A page that couldn't be read offers Try again, which follows the transcript again. `codingAgents.messages` and `tasks.messages` with a call still serve Copy transcript, but now read at once (`wait=none`). The host's held read (`transcriptPast`) is retired, along with `followsAgent`, which only that loop used. Co-authored-by: luke-agent[bot] <339870089+luke-agent[bot]@users.noreply.github.com>
Following a planning worker's transcript leaves the side panel's tab content reading nothing of the task's work, so the prop it no longer used is dropped, which main's oxlint refuses as an unused parameter. Co-authored-by: luke-agent[bot] <339870089+luke-agent[bot]@users.noreply.github.com>
luke-agent
Bot
force-pushed
the
luke/transcript-push-host
branch
from
October 20, 2026 03:03
6558135 to
05cd71f
Compare
luke-agent
Bot
force-pushed
the
luke/transcript-push-window
branch
from
October 20, 2026 03:03
df93e15 to
aa24df6
Compare
Contributor
|
Superseded by #4181, rebuilt on main. |
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Second of three small PRs that remove Luke's last transcript and voice loops, stacked on #3909. The window now uses the transcript push from #3909, and the host's held transcript read is retired.
What changed
use-agent-transcript.ts:TranscriptFollowerinstead of a reader. While the tab is shown, it subscribes toapp:transcript, follows the transcript, and joins each pushed page by message id. It unfollows when the tab is hidden or unmounts.failed, and the messages already held stay. Try again follows the transcript again, and the next good page clearsfailed.readingis true while nothing is held and the last page says the agent may still write.{ kind: "taskWorker", taskId, callId }; it used to swap in areadTranscriptthat calledtasks.messages.CodingAgentsControlnow carriestranscripts, built from the window's acts and bridge.codingAgents.messagesandtasks.messageswith acallIdare still used byreadWholeTranscript, so they aren't retired. They now answer at once through the service'swait=noneread, withholdsremoved in the host.transcriptPast,readUntilSaid,TranscriptReads, and the 20 sHOLDare removed fromtranscript-follow.ts.followsAgentis removed, since only the loop used it./messagesroutes are untouched, for desktops already released.Tests
use-agent-transcript.test.ts:readTranscriptnow push their pages throughpushedTranscripts(#testing/tasks-control). The agent page test answers the follow act and pushes through its fake bridge.compose-coding-agents.test.ts, "a running agent's transcript is held open…", "a worker's transcript is followed under its own seal…", "a transcript the account does not reach is not found…" and "a read the service says only the clock may end…"; incompose-tasks.test.ts, "a planning worker's transcript … the service seals nothing for…". feat(host,desktop): push a followed transcript's pages to the panels that draw it #3909's follow tests cover the same live behaviour.codingAgents.messagesto read at once without sealing.Checks run locally
pnpm check:affectedgets OOM-killed in the sandbox, so I ran its pieces one at a time:repository-checks.sh,biome check .,oxlint,knipdiscarded-effect(with a larger heap)tscfor host and desktopWhat to check by hand (Electron)
Made with Luke