Skip to content

fix(zbugs-rune): open an issue at once, without fading - #185

Merged
tmm merged 1 commit into
mainfrom
zbugs-rune-instant-detail
Nov 13, 2026
Merged

tmm merged 1 commit into
mainfrom
zbugs-rune-instant-detail

Conversation

@tmm

@tmm tmm commented Nov 12, 2026

Copy link
Copy Markdown
Member

Selecting an issue in zbugs-rune faded the last issue's text out while the new one faded in, and the list highlight crossfaded too, for about 0.4 s. Rune gives every element a default 0.2 s enter / 0.15 s exit fade and animates commits from presses and keys; the app added nothing on top.

  • The issue pane is El::instant_changes(), so another issue lands at once.
  • Pressing a row or stepping with the arrow keys / j and k moves the highlight in the same frame (tx.color_motion(Spring::NONE)). Hover colours are unchanged.
  • select no longer clears the last issue and its comments: they stay until the next issue's rows arrive (a frame later, from the local store), instead of one frame of "Loading…" that the fade used to hide. The sync layer's watch already documents that old rows stay until new ones come.

Checked on a Mac against zbugs' backend, headless at 60 fps with the same script (Down, Down, Up, then a click): before, the pane kept changing for 20–29 frames per switch and the list for up to 15. After, the list changes in one frame and the pane in the next, with the new issue and its comments complete. fmt, clippy -D warnings, tests, and e2e.sh (9/9 ok) pass.

Selecting an issue faded the last one's text out while the new one's faded
in, and the list's highlight crossfaded beside it, for about 0.4 s: every
Rune element fades in and out by default, and a press or key animates its
commit. The issue pane now lands its changes at once
(`El::instant_changes`), the highlight moves in the same frame, and the
last issue stays until the next one's rows come, a frame later from the
local store, rather than a frame of "Loading…" between. As zbugs-swift and
zbugs-gpui do.

Amp-Thread-ID: https://ampcode.com/threads/T-b98159d5-62b9-4743-85ee-2b18907aaa6a
Co-authored-by: tmm <tmm@tmm.dev>
@tmm
tmm merged commit 2c829ea into main Nov 13, 2026
19 of 20 checks passed
@tmm
tmm deleted the zbugs-rune-instant-detail branch November 13, 2026 00:06
tmm added a commit that referenced this pull request Nov 13, 2026
…hanges (#186)

The zbugs GPUI end-to-end job failed once on #185 at the viewState check:
`e2e online: passed`, then Postgres had the issue's viewed time before its
modified time.

zbugs' issue trigger stamps `modified` with the time the server's
transaction for a change starts, after the client showed the change. The
one-second view timer took its viewed time from the client's state, so when
it fired before the server had applied the close, the server's stamp came
later. The app marked the issue viewed again a second after the server
confirmed it, but the run had already exited.

The timer now waits until the server has confirmed the pending mutations
before it takes the viewed time, as `max(now, modified)` of the confirmed
issue.

Amp-Thread-ID: https://ampcode.com/threads/T-5a01d9bf-e8fb-479a-8866-c293f3e230d5

Co-authored-by: Amp <amp@ampcode.com>
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