v0.1.5
VOFA-NEXT Release Notes
v0.1.5
This release focuses on startup experience and performance: a brand-new splashscreen window, a full React 19 modernization (lazy-loaded widgets / modals, non-blocking UI updates, form actions), per-frame batching for high-frequency data paths, a semantic color token layer with automatic theme migration, and a polished chrome (status bar / activity bar / sidebar / dock tabs / widget cards). The frontend also gains its first automated test harness (Vitest) and a domain-grouped directory restructure.
✨ New Features
1. Startup Splashscreen
- A frameless, always-on-top splashscreen window (logo + brand + animated progress) now appears instantly at launch while the main window initializes.
- The main window starts hidden and is revealed automatically once settings are loaded and the first frame is rendered; a 10-second fallback force-switches the windows so you never get stuck on the splash.
2. React 19 Modernization & Performance
- Code splitting: heavy widgets (3D viewer / Three.js) and all modals (Settings / About / Onboarding / Help Center / Custom Widget Editor) are lazy-loaded behind a shared Suspense fallback — faster startup and a smaller initial bundle.
- Non-blocking UI: tab switching, sidebar and settings updates now run in
startTransition, keeping the UI responsive during heavy state updates. - Form actions: the connect flow for all 7 transport forms and the settings form now use
useActionStatewith unified pending / error states. - Isolated rendering: data tabs are memoized so updating one tab no longer cascades re-renders to sibling tabs; high-frequency data paths (waveform / CAN / raw data / logic) are batched per animation frame — only the latest value is flushed once per frame, dramatically reducing React renders.
- Narrowed store selectors:
useShallow+ narrow selectors in chrome components;memoon heavy components with stable callbacks.
3. Semantic Theme Layer
- New semantic color token layer (12 alias tokens: surface / elevated / inset, muted text, subtle border, accent hover / active, danger / warning / success / info) resolved at runtime — custom themes and the acrylic effect now propagate correctly.
- Persisted custom themes are migrated automatically on load (missing tokens backfilled defensively).
index.csssplit intotheme.css(tokens) andcomponents.css(component styles); interaction states and motion tokens standardized.
4. UI Polish
- Refined StatusBar / ActivityBar / Sidebar / Dock tabs / widget cards.
- Widget Palette rebuilt: sliding-pill tab indicator, grouped math / filter sections, input widgets (Knob / Button / Radio / Checkbox / Slider).
- CSS-only switch animation (no JS re-render) and tuned virtual lists.
5. Test Harness & Code Quality
- First automated frontend test harness: Vitest + Testing Library + jsdom, with full mocks for every
@tauri-apps/*module — stores, utils and components now run without a live Tauri runtime. - 13 test suites covering data batching, theme migration, settings store, transitions, connect actions and component rendering.
- Frontend directory restructured by domain:
components/displays/{waveform,can,logic,decoder,command,rawdata,widgets}andlib/{tauri,buffers,hooks,utils}.
6. Fixes
- Fixed the 3D track rendering issue in the model viewer.
📦 Installers
- macOS:
.dmg— universal / arm64 / amd64 - Linux:
.deb/.AppImage/.rpm - Windows:
.msi/.exe(NSIS)
VOFA-NEXT 发布说明
v0.1.5
本次发布聚焦 启动体验与性能:全新的 启动页(Splashscreen)、完整的 React 19 现代化改造(控件 / 弹窗懒加载、非阻塞 UI 更新、表单动作)、高频数据路径的 逐帧批量合并、带自动迁移的 语义化颜色 Token 层,以及打磨后的界面框架(状态栏 / 活动栏 / 侧边栏 / Dock 标签页 / 控件卡片)。前端同时迎来首个 自动化测试框架(Vitest)与按领域分组的目录重构。
✨ 新特性
1. 启动页 Splashscreen
- 启动时立即显示一个无边框、置顶的 启动页窗口(Logo + 品牌名 + 动画进度条),同时主窗口后台初始化。
- 主窗口默认隐藏,待设置加载完成、首帧渲染后自动显示;若前端异常,10 秒兜底强制切换窗口,避免一直卡在启动页。
2. React 19 现代化与性能优化
- 代码分割:重型控件(3D 查看器 / Three.js)与所有弹窗(设置 / 关于 / 引导向导 / 帮助中心 / 自定义控件编辑器)均改为懒加载,并统一使用 Suspense 兜底——启动更快、首包更小。
- 非阻塞 UI:标签页切换、侧边栏与设置更新改用
startTransition,重度状态更新时界面依然流畅。 - 表单动作:全部 7 种传输表单的连接流程与设置表单改用
useActionState,统一 pending / error 状态。 - 渲染隔离:数据标签页 memo 化,单个标签页更新不再级联触发兄弟标签页重渲染;高频数据路径(波形 / CAN / 原始数据 / 逻辑分析)按动画帧批量合并——每帧只刷新一次最新值,大幅减少 React 渲染次数。
- 收窄 store 选择器:界面框架组件使用
useShallow与窄选择器;重型组件memo化并稳定回调引用。
3. 语义化主题层
- 新增 语义化颜色 Token 层(12 个别名 Token:surface / elevated / inset、次级文字、细边框、accent 悬停 / 激活、danger / warning / success / info),运行时动态解析——自定义主题与毛玻璃效果现在能正确传导。
- 已保存的自定义主题在加载时自动迁移(防御性补齐缺失 Token)。
index.css拆分为theme.css(Token)与components.css(组件样式);交互状态与动效 Token 统一规范。
4. UI 打磨
- 精修 状态栏 / 活动栏 / 侧边栏 / Dock 标签页 / 控件卡片。
- 控件面板重构:滑动胶囊标签指示器、按组划分的数学 / 滤波区块、输入类控件(旋钮 / 按钮 / 单选 / 复选 / 滑块)。
- 纯 CSS 开关切换动画(不再触发 JS 重渲染),并调优虚拟列表。
5. 测试框架与代码质量
- 首个 前端自动化测试框架:Vitest + Testing Library + jsdom,mock 了全部
@tauri-apps/*模块——store、工具函数与组件可在无 Tauri 运行时下独立测试。 - 共 13 个测试套件,覆盖数据批量合并、主题迁移、设置 store、过渡动画、连接动作与组件渲染。
- 前端目录按领域重构:
components/displays/{waveform,can,logic,decoder,command,rawdata,widgets}与lib/{tauri,buffers,hooks,utils}。
6. 修复
- 修复 3D 查看器中 3D track 轨道渲染问题。
📦 安装包
- macOS:
.dmg— universal / arm64 / amd64 - Linux:
.deb/.AppImage/.rpm - Windows:
.msi/.exe(NSIS)