Skip to content

v1.35.3

Choose a tag to compare

@github-actions github-actions released this 23 Sep 00:24
· 13 commits to main since this release

fix(ws): stop listing every repo's own session twice on the dashboard's first frames

Opening dg ws showed each repo's tmux session as a standalone session row
next to the repo row it belongs to, then silently dropped the duplicates a
second or two later. A regression in v1.35.2.

The dashboard starts its git enumeration and its tmux scan together, and the
scan wins — it is two calls to a running server, while the enumeration spawns a
git process per repo. v1.35.2 taught the session rows to ask whether a window's
worktree still exists, but the answer they asked was an empty worktree list
that simply had not loaded yet, and an empty list reads as "no worktree backs
anything."

  • Tell "no worktrees exist" apart from "no worktree list yet". They were the
    same empty map, which is what made a loading dashboard look like a dashboard
    with nothing in it. Until the first list lands the session rows fall back to
    the window-name prefix, which can hide an orphan for one tick but can never
    double-list a repo's session.
  • Classify a session scan against the worktree list that exists when the scan
    LANDS, not one copied when the scan was ordered. The copy was taken as the
    dashboard launched, so it was empty no matter what loaded afterwards. This is
    the rule the worktree rows already followed.
  • Re-run the classification the moment the first worktree list arrives, so a
    session whose worktree window is orphaned shows up with it rather than up to
    three seconds later.

Behavior changes: none beyond removing the duplicate rows. Sessions holding a
worktree window whose worktree is gone still appear as standalone sessions,
which is what v1.35.2 added.

Full Changelog: v1.35.2...v1.35.3