- Shipped
- August 4, 2026 at 2:36 PM UTC
- Author
- kamo
- Commit
- c4b4608
The Directory tab came up empty until you switched to Chats and back. The members were always there — every department was parked at opacity 0. Sections were revealed by a StaggerReveal container propagating a "show" variant to StaggerItem children, but that orchestration cannot cross the AnimatePresence boundary between them: - On the panel's first render the tab switcher's AnimatePresence passes initial={false} down through PresenceContext (AnimatePresence/index.mjs:169 `initial: !isInitialRender.current || initial`), so the container gets blockInitialAnimation=true and animation-state skips its mount animation — it never propagates "show" to its children. - The department AnimatePresence in between provides a fresh PresenceContext whose initial is undefined, so the sections were NOT blocked and honoured their inherited hidden variant — opacity 0. - Being inherited, each section had willAnimateViaParent=true, so it decoderd to animate itself and waited for a parent that never animated. Switching tabs remounted the subtree once isInitialRender was false, which is why the workaround appeared to "load" the members. Each section now owns its entrance — explicit initial/animate plus an index-based delay — so nothing depends on variant inheritance across a presence boundary. The staggered reveal and popLayout exits are unchanged, and reduced motion still resolves to no movement.