fix(dashboard): write ChatView visualViewport vars imperatively

The mobile composer/footer slid over the message list when the user
swiped with the keyboard up. Cause: --vv-height / --vv-offset-top were
routed through React state via useMobileKeyboard, so on iOS — which
fires visualViewport scroll/resize on the same frame as its keyboard
animation — the .chat-thread translation lagged by one paint, visible
as the composer momentarily floating over messages.

Now those two vars are written imperatively in a useLayoutEffect
directly to the .chat-thread DOM node on every visualViewport event,
mirroring the working pattern at QuickChatFAB.tsx:1032-1052 (which
already works correctly on mobile). Only --keyboard-overlap (a
structural open/close signal, not per-frame) still flows through
React state.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
gsxdsm
2026-05-06 20:25:38 -07:00
parent bcfb4a3f62
commit 72691c6fd6
46 changed files with 1901 additions and 35 deletions

View File

@@ -248,6 +248,19 @@ Expected outcome: Plugin is removed by ID.
3. Confirm plugin source path and dependencies are valid.
4. If needed, uninstall and reinstall the plugin.
### Hermes runtime plugin loaded but Fusion skill is missing in Hermes
The Hermes runtime plugin auto-installs the bundled Fusion skill on plugin load.
1. Confirm the plugin is `started`.
2. Check the Hermes skill path:
- default profile: `${HERMES_HOME:-~/.hermes}/skills/fusion`
- named profile: `${HERMES_HOME:-~/.hermes}/profiles/<profile>/skills/fusion`
3. Review plugin warnings; startup continues even if skill mirroring fails.
4. Reload/disable+enable the plugin to re-run the self-healing install attempt.
Manual post-install skill setup is typically not required for Hermes runtime anymore.
### Plugin installed but features are not visible
1. Confirm plugin state is `started`.