### Summary of Improvements This PR replaces the custom `IntersectionObserver`-based virtualization with the `virtua` library to significantly improve rendering performance and UI responsiveness. ### 🚀 Performance Results Verified using `session-performance.test.ts`: - **Rendering**: 2000 messages rendered in **16.90ms**. - **Huge Conversation**: 10,000 messages processed in **0.80ms**. - **Session Switching**: Average switch time reduced to **0.58ms** (virtually zero lag). ### 🛠️ Key Changes - **Virtualized Message Stream**: Integrated `virtua/solid` for efficient windowing and automatic scroll compensation. - **Floating Scroll Controls**: Applied `position: absolute` and `pointer-events: none` to the list controls to ensure scroll-to-top/bottom buttons float correctly over the message area without blocking interactions. - **Package Synchronization**: Updated `virtua` and SDK dependencies, with a fully synchronized `package-lock.json` for stable builds. ### 🎥 UI Verification https://github.com/user-attachments/assets/24e483a3-8be6-4ac4-a431-d719f2015f4e - **Smooth Scrolling**: Verified that rendering gaps are eliminated during fast scrolls. - **Position Retention**: Scroll positions are preserved when switching between sessions. > [!NOTE] > Detailed performance gains and layout fixes are isolated to the `virtua` implementation and core package updates, following the requested cleanup. --------- Co-authored-by: Shantur Rathore <i@shantur.com>
34 lines
1.3 KiB
JSON
34 lines
1.3 KiB
JSON
{
|
|
"name": "codenomad-workspace",
|
|
"version": "0.12.3",
|
|
"private": true,
|
|
"description": "CodeNomad monorepo workspace",
|
|
"license": "MIT",
|
|
"workspaces": {
|
|
"packages": [
|
|
"packages/server",
|
|
"packages/ui",
|
|
"packages/electron-app",
|
|
"packages/tauri-app"
|
|
]
|
|
},
|
|
"scripts": {
|
|
"dev": "npm run dev --workspace @neuralnomads/codenomad-electron-app",
|
|
"dev:electron": "npm run dev --workspace @neuralnomads/codenomad-electron-app",
|
|
"dev:tauri": "npm run dev --workspace @codenomad/tauri-app",
|
|
"build": "npm run build --workspace @neuralnomads/codenomad-electron-app",
|
|
"build:tauri": "npm run build --workspace @codenomad/tauri-app",
|
|
"build:ui": "npm run build --workspace @codenomad/ui",
|
|
"build:mac-x64": "npm run build:mac-x64 --workspace @neuralnomads/codenomad-electron-app",
|
|
"build:binaries": "npm run build:binaries --workspace @neuralnomads/codenomad-electron-app",
|
|
"typecheck": "npm run typecheck --workspace @codenomad/ui && npm run typecheck --workspace @neuralnomads/codenomad-electron-app",
|
|
"bumpVersion": "npm version --workspaces --include-workspace-root --no-git-tag-version"
|
|
},
|
|
"dependencies": {
|
|
"7zip-bin": "^5.2.0",
|
|
"google-auth-library": "^10.5.0"
|
|
},
|
|
"devDependencies": {
|
|
"baseline-browser-mapping": "^2.9.11"
|
|
}
|
|
} |