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:
@@ -29,6 +29,21 @@ After install, run `hermes login` (or `hermes auth`) to configure a provider. Th
|
||||
|
||||
Verify with `hermes --version`.
|
||||
|
||||
## Fusion skill auto-install
|
||||
|
||||
When the Hermes runtime plugin loads, it attempts to auto-install/mirror Fusion's bundled `fusion` skill into the active Hermes profile skill directory:
|
||||
|
||||
- default profile: `${HERMES_HOME:-~/.hermes}/skills/fusion`
|
||||
- named profile: `${HERMES_HOME:-~/.hermes}/profiles/<profile>/skills/fusion`
|
||||
|
||||
The installer is idempotent and self-healing:
|
||||
|
||||
- leaves an already-correct install untouched
|
||||
- replaces prior Fusion installs it can positively identify
|
||||
- avoids replacing unrelated user-managed directories
|
||||
|
||||
If the bundled Fusion skill source is missing or filesystem writes fail, the plugin logs a warning and still starts the Hermes runtime.
|
||||
|
||||
## Limitations
|
||||
|
||||
Because we drive the CLI's `chat -q` mode:
|
||||
|
||||
Reference in New Issue
Block a user