Repository navigation
fix(windows): the step ticker no longer stops at a session's twentieth step - #265
Merged
Louis-CFM merged 1 commit intoOct 7, 2026
Conversation
…h step The ticker found new steps by their index in task.steps. That list is capped at 20: once it is full, every new step shifts the oldest out and the index stays at 19, so the ticker saw nothing new and showed steps 18 and 19 for the rest of the session, while the header went on reading 20/20. Tasks now carry stepSeq, the position of the newest step in the whole session, which keeps counting past the cap. The ticker scrolls by that, and takes the texts from the end of the list. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
PythonTilk
added a commit
to PythonTilk/coucou
that referenced
this pull request
Oct 8, 2026
… features on top Upstream rewrote most of the Windows app, and now carries much of what this branch had: the question picker (Louis-CFM#216), the ticker fixes (Louis-CFM#265 and others), 'Open terminal' focusing the session's window, working file drops, and other chat providers including any OpenAI-compatible server. A textual merge gave about a hundred conflicts in 28 files, so upstream's tree is taken as it is and only what is unique to this build is put back on it: - Drop menu: a file picked up opens the island, chat on one half, shelf on the other. Built on upstream's drop handling, which delivers real paths. - After a drop on the chat half: Ask, Summarise, Explain, Quiz me. - Shelf (drag out, click to copy, Ctrl+V to add), focus timer, calendar pill fed by iCal subscriptions, a file or screenshot pasted into the chat. - Claude Code as one more chat provider in upstream's model picker. - Click elsewhere folds the island; the hidden island wakes on hover; the drag picture stays in front of the island; mini Mochi canvases are cleared and sized in device pixels. Dropped in favour of upstream's own: the custom OpenAI-compatible backend, the session-focus code, the English tool labels (the interface is translated now), and the HTML5-bytes drop pipeline. The local additions are English only. Three upstream tests list providers or pills exactly and now include ours; the unused 'Drop' tab label is removed from the translation table. The previous state of this branch is tagged local-0.1.1-final. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
What was wrong
On Windows (and Linux), the step ticker in the Claude Code card stops updating once a session has had 20 steps. It keeps showing the 19th and 20th step for the rest of the session, while the counter in the header reads
20/20. In practice that is a couple of minutes into any real session.Why
State.appendStepcapstask.stepsat 20: once the list is full, each new step shifts the oldest one out andstepIndexstays at 19. The ticker decides whether there is something new by comparingstepIndexwith the index it last displayed, so from the twentieth step on it never sees a change.The fix
stepSeq, the position of the newest step in the whole session. It keeps counting past the cap.stepSeqand takes the texts from the end of the list. First render and "the session restarted" are now one branch: both drop straight into place.clearSessionresets it, so a new session re-seeds the ticker as before.Three files, no change to how anything looks.
How to reproduce / verify
In a plain browser (
npm run dev), append 30 steps to the Claude Code task, one every 450 ms, and watch which ones the ticker shows:mainThe ones still skipped on this branch are a different, known problem — the frame loop stopping mid-scroll — which #43, #123 and #203 address. This PR does not touch that and should not conflict in substance with them: it only changes how the ticker counts.
A session that ends and starts again re-seeds the ticker (
…/ first step), checked the same way.tsc --noEmitis clean. Measured in the browser preview only; not checked on Linux or in the packaged app on its own (my own build has carried this change for a day).Not related to
The overlapping-rows bug (#39). That one already has fixes open; this is the other reason the ticker looks stuck.
🤖 Generated with Claude Code