mirror of
https://github.com/wu736139669/hapi.git
synced 2026-08-05 06:24:37 +00:00
* feat(web): add built-in Nerd Font for terminal icon support Add MesloLGLDZ Nerd Font as a built-in web font to ensure Powerlevel10k and other Nerd Font-dependent prompts render correctly in the web terminal, even on devices without local Nerd Fonts installed (e.g., mobile phones). Changes: - Add MesloLGLDZNerdFontMono-Regular.woff2 to web/public/fonts/ - Load font via FontFace API with BASE_URL support for subpath deployments - Merge font loading and terminal creation in same useEffect to ensure font is ready before terminal renders Fixes #121 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * refactor: use CDN for Nerd Font instead of bundled file Load MesloLGLDZ Nerd Font from jsDelivr CDN instead of bundling the 1.2MB font file. This reduces the bundle size significantly while still ensuring Nerd Font icons display correctly on all devices. CDN URL: https://cdn.jsdelivr.net/gh/mshaugh/nerdfont-webfonts@v3.3.0/build/fonts/MesloLGLDZNerdFontMono-Regular.woff2 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix(web): prevent message ordering issues when switching sessions When switching between sessions or loading paginated messages, old tool blocks from agentState.requests were being mixed with current messages, causing display order issues. Root cause: reduceChatBlocks creates tool blocks for all permissions in agentState, including those older than the current message page. These old blocks (with earlier createdAt) would appear mixed with newer messages. Fix: 1. In reducer.ts: Skip creating permission-only tool blocks if their createdAt is older than the oldest message in the current view 2. In SessionChat.tsx: Clear caches synchronously in useMemo when session changes, since useEffect runs after render Closes #148 via [HAPI](https://hapi.run) Co-Authored-By: HAPI <noreply@hapi.run> --------- Co-authored-by: tfq <tfq@gmail.com> Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com> Co-authored-by: HAPI <noreply@hapi.run>