Skip to content

fix(windows): the step ticker no longer stops at a session's twentieth step - #265

Merged
Louis-CFM merged 1 commit into
Louis-CFM:mainfrom
PythonTilk:fix/windows-ticker-stops-after-20-steps
Oct 7, 2026
Merged

Louis-CFM merged 1 commit into
Louis-CFM:mainfrom
PythonTilk:fix/windows-ticker-stops-after-20-steps

Conversation

@PythonTilk

Copy link
Copy Markdown
Contributor

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.appendStep caps task.steps at 20: once the list is full, each new step shifts the oldest one out and stepIndex stays at 19. The ticker decides whether there is something new by comparing stepIndex with the index it last displayed, so from the twentieth step on it never sees a change.

The fix

  • Tasks carry stepSeq, the position of the newest step in the whole session. It keeps counting past the cap.
  • The ticker scrolls by stepSeq and takes the texts from the end of the list. First render and "the session restarted" are now one branch: both drop straight into place.
  • clearSession resets 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:

steps 20–30 shown ticker ends on
main 0 of 11 step 18 / step 19
this branch 7 of 11 step 29 / step 30

The 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 --noEmit is 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

…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>
@Louis-CFM
Louis-CFM merged commit 262b865 into Louis-CFM:main Oct 7, 2026
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>
@PythonTilk
PythonTilk deleted the fix/windows-ticker-stops-after-20-steps branch October 9, 2026 10:15
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