♻️ refactor: optimize state management, switch to @tanstack/vue-virtual, and improve performance

- Centralize `useAgents` and `useModels` state within the Nuxt app context to prevent data leaks and improve initialization.
- Migrate virtualization from `vue-virtual-scroller` to `@tanstack/vue-virtual` with new `RowVirtualizerFixed` and `RowVirtualizerDynamic` components.
- Upgrade Nuxt to v4.3.1 and remove `@vue-macros/nuxt`.
- Replace `big.js` with an optimized custom `lshDecimal` string manipulation logic for pricing calculations in the provider API.
- Implement automatic focus redirection in `ChatInput` to capture standard keyboard input.
- Refactor Sidenav and Settings components to utilize virtualization for long lists (topics, agents, models).
- Enhance theme colors and mobile experience. More work to come on both of these.
This commit is contained in:
Zoe
2026-02-23 15:56:10 +00:00
parent 59bb7fbc12
commit 6ee4087a29
42 changed files with 889 additions and 828 deletions
+7 -8
View File
@@ -8,8 +8,7 @@
"dev": "nuxt dev",
"generate": "nuxt generate",
"preview": "nuxt preview",
"postinstall": "nuxt prepare",
"knip": "knip"
"postinstall": "nuxt prepare"
},
"dependencies": {
"@ai-sdk/cerebras": "^2.0.34",
@@ -18,15 +17,15 @@
"@ai-sdk/openai-compatible": "^2.0.30",
"@daveyplate/better-auth-triplit": "^0.2.2",
"@iconify-json/mynaui": "^1.2.17",
"@nuxt/fonts": "0.13.0",
"@nuxt/fonts": "0.14.0",
"@nuxt/hints": "1.0.0-alpha.5",
"@nuxt/icon": "2.2.0",
"@openrouter/ai-sdk-provider": "^2.2.3",
"@sentry/nuxt": "^10.39.0",
"@tanstack/vue-virtual": "^3.13.18",
"@triplit/client": "^1.0.50",
"@triplit/server": "^1.1.8",
"@types/big.js": "^6.2.2",
"@vue-macros/nuxt": "^3.1.2",
"ai": "^6.0.89",
"ai-sdk-ollama": "^3.7.1",
"better-auth": "^1.4.18",
@@ -34,7 +33,7 @@
"comlink": "^4.4.2",
"glob": "^13.0.5",
"nanoid": "^5.1.6",
"nuxt": "4.2.2",
"nuxt": "^4.3.1",
"rehype-katex": "^7.0.1",
"remark-gfm": "^4.0.1",
"remark-math": "^6.0.0",
@@ -44,8 +43,7 @@
"triplit-nuxt": "0.3.1-prerelease.5",
"unified": "^11.0.5",
"vue": "^3.5.28",
"vue-router": "^4.6.4",
"vue-virtual-scroller": "^2.0.0-beta.8",
"vue-router": "^5.0.3",
"zod": "^4.3.6"
},
"devDependencies": {
@@ -63,6 +61,7 @@
},
"trustedDependencies": [
"@parcel/watcher",
"@sentry/cli",
"core-js",
"esbuild",
"unrs-resolver"
@@ -73,6 +72,6 @@
},
"overrides": {
"@vercel/nft": "^0.27.4",
"vite": "8.0.0-beta.0"
"vite": "8.0.0-beta.15"
}
}