- resetFiles() no longer clears userSettings so FontChange stays visible
while navigating between repos (old fonts show until new ones load)
- Add _requestId counter to setUserRepo() to discard stale async callbacks
from previous navigations, preventing state corruption on quick nav
- Load savedRepo and userSettings caches in parallel with Promise.all,
reducing yield points so cache hits apply before first render
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Narrow backlinks watcher from entire store to store.files only,
reducing trigger count from ~8 to 2 per navigation
- Defer computation start by 300ms so it runs after the 250ms view
transition animation completes
- Yield to the browser between each file iteration using
scheduler.yield() (with setTimeout fallback) to avoid blocking frames
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Prevents white space below the app on Android Chrome where the
system nav bar makes 100vh > 100dvh.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
On Chrome Android, cross-axis stretch doesn't always produce a
definite height for inner flex items. Adding height: 100dvh to
.home ensures flex: 1 on .welcome-world resolves to full viewport.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replace space-between with flex-start + margin-top:auto on footer and
add gap to avoid wide spacing while async components are loading.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Use HomeButton component in HeaderNote for logo, hover, and view-transition-name
- Eagerly import HeaderNote in FluxNote so the logo exists in the DOM when the transition snapshot is taken
- Wait for afterEach + nextTick in the view transition hook to handle lazy-loaded routes
- Add cursor: pointer to font change button
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The favicon animates from its large position in the WelcomeWorld title
to the smaller header position in PublicNoteListView and PublicNoteListByDidView.
- Show skeleton in PublicNoteView and StackedPublicNote while note
content is pending author resolution
- Show skeleton h1 in PublicNoteListByDidView while author loads
- Show skeleton in SignInAtproto until auth state is known
- Load cached session from IndexedDB before OAuth restore so the
homepage resolves immediately without waiting for network