fix(desktop): follow-up to #4225 — minimal migration, streaming scroll, dead code#4238
Merged
Conversation
#4225 removed the minimal mode (it was identical to compact) but left existing users stranded: DesktopDisplayMode() still returned "minimal" for a persisted toml, which the frontend now rejects, so those users fell back to standard (verbose) instead of the equivalent compact. Normalize the legacy value to compact on both the Go read path and the localStorage hydrate path.
…scroll The transcript pins to the bottom during streaming via a direct scrollTop = scrollHeight write, which #4225 documents as instant to avoid the perpetual tween-chase jitter. A global scroll-behavior:smooth on .transcript turns that write into an animated scroll in Chromium, reintroducing the lag it set out to remove. The two call sites that want smooth (jump-bar, warm-turn expand) already pass behavior explicitly.
- remove the no-op footer-height effect (empty if body, unused ref) - drop the constant `false` from the hot-zone useMemo deps - delete unused DUR_SLOWER/EASE_IN_OUT/EASE_SCROLL exports - correct stale "minimal mode" comments and the entrance-hook usage doc
CVEngineer66
pushed a commit
to CVEngineer66/DeepSeek-Reasonix
that referenced
this pull request
Jun 13, 2026
…ng scroll, dead code (esengine#4238) * fix(desktop): map legacy "minimal" display mode to compact esengine#4225 removed the minimal mode (it was identical to compact) but left existing users stranded: DesktopDisplayMode() still returned "minimal" for a persisted toml, which the frontend now rejects, so those users fell back to standard (verbose) instead of the equivalent compact. Normalize the legacy value to compact on both the Go read path and the localStorage hydrate path. * fix(desktop): drop scroll-behavior:smooth fighting instant streaming scroll The transcript pins to the bottom during streaming via a direct scrollTop = scrollHeight write, which esengine#4225 documents as instant to avoid the perpetual tween-chase jitter. A global scroll-behavior:smooth on .transcript turns that write into an animated scroll in Chromium, reintroducing the lag it set out to remove. The two call sites that want smooth (jump-bar, warm-turn expand) already pass behavior explicitly. * refactor(desktop): drop dead code left by the GSAP animation merge - remove the no-op footer-height effect (empty if body, unused ref) - drop the constant `false` from the hot-zone useMemo deps - delete unused DUR_SLOWER/EASE_IN_OUT/EASE_SCROLL exports - correct stale "minimal mode" comments and the entrance-hook usage doc
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.
Follow-up cleanup on top of #4225 (GSAP animation refactor). Three independent commits.
1. Map legacy
minimaldisplay mode to compact (fix)#4225 removed the
minimalmode (functionally identical tocompact) from the type system and UI, but left the migration incomplete:Config.DesktopDisplayMode()still returned"minimal"for an existing user's persisted toml, and the frontendgetDisplayMode/hydrateDisplayModenow reject that value — so anyone who had selected minimal silently dropped to standard (fully verbose) instead of the equivalent compact. Normalizedminimal → compacton both the Go read path (config.go,edit.go) and the localStorage hydrate path (displayMode.ts).2. Drop
scroll-behavior: smooththat fights instant streaming scroll (fix)The streaming auto-scroll pins to the bottom with a direct
el.scrollTop = el.scrollHeightwrite, which #4225 documents as instant specifically to avoid the perpetual tween-chase jitter. #4225 also added a globalscroll-behavior: smoothon.transcript, which in Chromium/WebView2 turns thatscrollTopwrite into an animated scroll — reintroducing the lag it set out to remove. Removed the rule; the two call sites that genuinely want smooth (jump-bar via GSAP, warm-turn expand viascrollTo({ behavior: "smooth" })) already request it explicitly and are unaffected.3. Remove dead code left by the merge (refactor)
Transcript.tsx(emptyifbody, ref never read elsewhere).falsetrailing the hot-zoneuseMemodependency array.DUR_SLOWER/EASE_IN_OUT/EASE_SCROLLexports ingsapAnimations.ts.compact/minimalcomments now that minimal is gone, and the entrance-hook JSDoc whose usage example had the args reversed.go test ./internal/config/passes; frontend changes are typechecked by CI.