Skip to content

v0.3.0

Latest

Choose a tag to compare

@github-actions github-actions released this 25 Aug 16:30

VOFA-NEXT v0.3.0 Release Notes

ATTENTION: There is a bug in the data panel that prevents clicks from navigating properly; you need to open the relevant panel from the menu bar.
注意:数据面板有点击无法跳转的bug,需要从菜单栏打开相关面板

✨ New Features

Compiler Pipeline

  • Three-stage pipeline: HIR → plane projection → lowering. Backend owns all compilation; frontend reads snapshots only.
  • Compile error view: offending nodes get red box-shadow, edges turn red, with structured help popovers.

String-Domain Plane

  • New string plane alongside numeric plane, carrying TextInput, Str operations (Mid/Delete/Replace), and Trigger text outputs.
  • Protocol out port exposes raw bytes as str port (legacy ch placeholders preserved with gating).
  • Raw data view shows the text port; UI syncs.

Trigger Backend-Driven

  • Edge state (prev_trigger) tracked backend‑side, eliminating false rising edges in manual mode; polling replaced by single event.
  • Text output routed via string plane; frontend read‑only.

Widget Palette

  • Virtualized with @tanstack/react-virtual for large sets.
  • Compact collapsible layout with quick‑jump bar for filtering and navigation.
  • Dedicated sections for Trigger, TextInput, and Str widgets.

Waveform Improvements

  • History lookback while running: zoom/pan doesn’t pause refresh; scrub back without losing live tail.
  • Cursor snaps to nearest visible channel instead of always channel 0.

Unified Error Crate

  • Strong‑typed domain errors (protocol/node/transport, etc.) replace Box<dyn Error>; frontend gets actionable structured guidance.

Auto‑Update

  • Static release manifests replace GitHub API calls, bypassing rate limits and ensuring deterministic channel behavior.

🛠 Backend Refactor (Rust Workspace)

  • Split into 23 focused sub‑crates + 7 façades (core, protocol, buffer, nodes, transport, automotive, dsp); src-tauri becomes thin shell.
  • Commands split into 7 cmd_* sub‑crates; app shell split into app_state, notify_events, subscription, pipeline_*, menu_shell, update_flow.
  • Backend is sole authority for protocol ports, biquad packing, frame packing, ProtocolSource injection, and Trigger edge detection.
  • Node engine arm‑ified per NodeKind variant – adding a new kind doesn’t touch unrelated code.
  • Tests reorganized per port domain and kind; Str coverage added; clippy deny cleaned.

🐛 Fixes & Performance

  • Tab snapshot resilience: surviving tabs re‑sync to backend after deletion/replacement – no phantom nodes.
  • Preset auto‑channels: auto‑derived channels always resolve correctly.
  • SlidingPill indicator: uses ResizeObserver per tab, follows active tab correctly after re‑render and resize.
  • Raw data append: active state shown in UI.
  • Manual‑mode Trigger: prev_trigger tracked properly, preventing spurious rising edges on threshold toggle.
  • Waveform zoom/pan: no longer auto‑pause refresh, eliminating touchpad stalls.
  • Light theme: backgrounds follow color tokens, no hard‑coded hex.
  • Clippy deny: Rust 1.97 strict lints fixed across all crates.

📦 Installers

  • macOS: .dmg (universal / arm64 / amd64)
  • Linux: .deb / .AppImage / .rpm
  • Windows: .msi / .exe (NSIS)

✨ 新特性

编译器重构

  • 三段流水线:HIR → 平面投影 → 降级。后端全权编译,前端只读快照。
  • 编译错误视图:出错节点红框、连线染红,带结构化帮助气泡。

字符串域平面

  • 新增字符串平面,与数值平面并列,承载 TextInput、Str 操作(Mid/Delete/Replace)及触发器文本输出。
  • 协议 out 端口暴露原始字节为 str 端口(旧 ch 占位保留,门控切换)。
  • 原始数据视图显示文本端口,UI 同步更新。

触发器后端化

  • 边沿状态(prev_trigger)由后端追踪,消除手动模式假上升沿;轮询改单次事件。
  • 文本输出走字符串平面,前端只读。

控件面板

  • 虚拟化渲染(@tanstack/react-virtual),支持海量控件。
  • 紧凑折叠布局 + 快速跳转条,按名称过滤并一键跳转分类。
  • 触发器、TextInput、Str 各自独立分组。

波形增强

  • 运行中历史回看:缩放/平移不暂停刷新,可边实时边回看。
  • 光标吸附最近可见通道,不再固定通道 0。

统一错误 crate

  • 强类型领域错误(protocol/node/transport 等)替代 Box<dyn Error>,前端获得结构化可操作指引。

自动更新

  • 静态发布清单替代 GitHub API,规避速率限制,通道行为确定。

🛠 后端重构(Rust 工作区)

  • 拆分为 23 个聚焦子 crate + 7 个 façade(core/protocol/buffer/nodes/transport/automotive/dsp),src-tauri 收为薄壳。
  • 命令拆为 7 个 cmd_* 子 crate,应用壳拆为 app_statenotify_eventssubscriptionpipeline_*menu_shellupdate_flow
  • 后端作为唯一权威:协议端口、双二阶节打包、帧打包、ProtocolSource 注入、触发器边沿检测均走单一所有者。
  • 节点引擎按 NodeKind variant 分臂实现,新增 kind 无需改动无关代码。
  • 测试按端口域和 kind 拆分,新增 Str 覆盖,clippy deny 全部清理。

🐛 修复与性能

  • Tab 快照韧性:删除/替换 Tab 后,存活 Tab 自动与后端同步,杜绝幻影节点。
  • 预设自动通道:自动派生通道每次正确解析。
  • SlidingPill 指示器:使用 ResizeObserver 跟踪每个 Tab 尺寸,重渲染后仍正确跟随。
  • 原始数据追加:UI 显式显示激活状态。
  • 手动模式触发器:正确追踪 prev_trigger,防止阈值切换导致虚假上升沿。
  • 波形缩放/平移:不再自动暂停刷新,消除触摸板卡顿。
  • 浅色主题:背景改用颜色令牌,去除硬编码十六进制。
  • Clippy deny:Rust 1.97 严格 lint 一次性修复。

📦 安装包

  • macOS:.dmg(universal / arm64 / amd64)
  • Linux:.deb / .AppImage / .rpm
  • Windows:.msi / .exe(NSIS)