Skip to content

fix(shell): remove sidebar toggle render and animation delays - #475

Merged
kalvinnchau merged 4 commits into
mainfrom
cid/sidebar-hide-latency
Oct 1, 2026
Merged

kalvinnchau merged 4 commits into
mainfrom
cid/sidebar-hide-latency

Conversation

@kalvinnchau

@kalvinnchau kalvinnchau commented Sep 30, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Keep the sidebar navigation element stable across shell-only hide/show renders.
  • Animate the sidebar's actual grid-track extent instead of an oversized max-width ceiling; keep its content width constant while clipped.
  • Add render/selection regression coverage and deterministic early, midpoint, monotonic, constant-content-width transition assertions.

Validation

  • Human tested the running fix and confirmed it looks good in the originating thread.
  • At head a92cb65, mandatory pre-push hooks passed: TypeScript, 19 related tests across 5 files, and design-system guards. Hooks were not bypassed.
  • Previous independent review identified the animation stall; this branch includes the follow-up fix. Updated independent review and browser evidence have not yet been independently verified during takeover, so this PR is draft, not a merge-ready attestation.
  • Native validation, hosted CI, and analysis of the latest CPU profile remain pending. Existing browser case strengthened; no browser cases added or removed. Real layout/transition geometry requires a browser rather than jsdom.

Clamp-comment follow-up

  • Fixed the stable, viewport-clamped sidebar width in d44724d and resolved discussion_r4150020794.
  • Removed the discrete child max-width transition. The shell inline-size container now supplies the width cap independently of the animated navigation track.
  • Extended the existing geometry case to a saved 520px sidebar at an 800px desktop viewport, retaining the original early/midpoint/monotonic/constant-content-width assertions. Browser cases added/removed: 0/0. Real transition geometry cannot be established in jsdom.
  • Fail-then-pass: the extended Chromium case fails on the previous CSS; the fix passes in Chromium and WebKit. All 56 cases across sidenav-polish, navigation-sidebar, and settings-sidebar-width passed against the exact two-file working tree subsequently committed as d44724d (hooks made no further edits).
  • At d44724d, mandatory hooks passed: formatting/lint, TypeScript, 19 related tests in 5 files, and design types/guards. Hosted DCO Check passed. Other hosted CI was still running at handoff.
  • Returned to draft after this behavior change. Human/native acceptance of this follow-up and independent review remain deferred; prior human confirmation does not cover the new clamp fix.

cid added 2 commits September 30, 2026 15:22
Hiding or showing the sidebar changed AppShell state and rebuilt the sidebar
element inline, so every toggle synchronously re-rendered the whole channel
sidebar before the first frame. Memoize the navigation element on the inputs it
reads so toggle-only renders skip the sidebar subtree.

Signed-off-by: cid <d9f92a72922bf45c17379a47d64dae84b6020397c2d5a52b5317d512068cd9d3@buzz.block.builderlab.xyz>
The collapsible navigation animated max-width from a container-relative
ceiling far wider than the sidebar, so hiding held still for the first half
of the transition and showing finished early. The sidebar also narrowed to its
minimum while moving, re-measuring every row each frame.

Animate a single grid track between 1fr and 0fr instead, which runs from the
sidebar's actual extent to zero, and hold the sidebar at its own width until
it is fully expanded. Tighten the geometry test to require early, midpoint and
monotonic motion with a constant sidebar width, and make the AppShell test
isolate selection changes.

Signed-off-by: cid <d9f92a72922bf45c17379a47d64dae84b6020397c2d5a52b5317d512068cd9d3@buzz.block.builderlab.xyz>
@kalvinnchau
kalvinnchau marked this pull request as ready for review September 30, 2026 22:25
@kalvinnchau
kalvinnchau requested review from a team, comp615 and wesbillman as code owners September 30, 2026 22:25
Preserve the test-only fix from cid’s unpublished amend as a fast-forward addition to the published PR.

Signed-off-by: cid <d9f92a72922bf45c17379a47d64dae84b6020397c2d5a52b5317d512068cd9d3@buzz.block.builderlab.xyz>
Signed-off-by: am <6e30cd56c30e030cd31bb0939b94a7c257c9a09d5ba2d92cf2735da45629f248@buzz.block.builderlab.xyz>

@wesbillman wesbillman left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Two changes requested: the clamped-width transition issue noted inline, plus this public-material issue:

  • [P2] Remove private coordination identifiers from “Origin”. This public PR description includes an internal Buzz channel identifier/name and thread event identifier. Remove those references, or replace them with a public issue/context summary; retain legitimate contributor attribution.

Star Lord automated source review via Wes’s account (wesbillman). Head ad386a86b4a9744eb11bf212b054b9306389f72a; base 73064e34dfa5f14c472c3661589d05f509c17884. Source-only: no tests, app execution, or visual/native validation. One hosted-check snapshot still had jobs running; the description’s hook evidence is for an earlier head. No attached images were present.

Comment thread src/shared/styles/globals.css Outdated
Signed-off-by: am <6e30cd56c30e030cd31bb0939b94a7c257c9a09d5ba2d92cf2735da45629f248@buzz.block.builderlab.xyz>
@kalvinnchau
kalvinnchau marked this pull request as draft September 30, 2026 22:52
@kalvinnchau
kalvinnchau marked this pull request as ready for review September 30, 2026 23:08

@wesbillman wesbillman left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One change remains: remove the private coordination identifiers from Origin, as requested in the previous review. That public-material finding is still unresolved.

The sidebar clamp correction addresses the earlier source defect: its width cap now comes from the stable shell rather than the animated track. The extended geometry assertions cover the clamped case; no new production defect found in this follow-up.

Star Lord’s automated source review via Wes’s account. Head d44724d47b604ee8a93c79c4934f0bce01ffdd8a; base 73064e34dfa5f14c472c3661589d05f509c17884. Source-only; no tests/app executed. Hosted CI/DCO passed at snapshot; Windows validation skipped, and human/native acceptance of this correction remains unverified. COMMENT only, not approval.

@kalvinnchau
kalvinnchau merged commit 1a692d5 into main Oct 1, 2026
21 checks passed
@kalvinnchau
kalvinnchau deleted the cid/sidebar-hide-latency branch October 1, 2026 00:05
cynfria pushed a commit that referenced this pull request Oct 1, 2026
…followup

* origin/main:
  fix(shell): remove sidebar toggle render and animation delays (#475)
  Fix unread catch-up and reading focus (#470)
  Refine shared surfaces, contrast, and relative UI sizing (#458)

Signed-off-by: Tree Trunks <6ba22921d9dc2ad0aa6ecdf63787ddd24726e266d866da31af69f2e4e146ace5@buzz.block.builderlab.xyz>

# Conflicts:
#	src/shared/design-system/styles/tokens.css
#	src/shared/styles/globals.css
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