v2.0.29 更新 / Update (2026-10-10)
--------------------------------------------------------------------------------

  * 修复级联、去嵌和分割窗口中，部分曲线组的“全选／全不选”按钮点击后报错的问题；选择操作只影响对应曲线组。
    Fix errors when clicking Select all / Deselect all for trace groups in Cascade, Deembed and Splitter; each action affects its own group.
  * 通过 SCPI 分割时，未加载文件或分段比例之和无效会立即返回错误，避免弹窗阻塞远程操作；GUI 保留输入提示。
    Return SCPI errors immediately for a missing splitter input or invalid ratio sum, avoiding modal blocking; retain GUI validation prompts.
  * 修复 S 参数窗口切换语言后，窗口标题、已绘制曲线标题和图例未同步更新的问题；保留曲线选择与缩放范围。
    Update S-parameter window titles, cached plot labels and trace groups when switching language; preserve selected traces and zoom.
  * 修复格式转换切换语言时重置输出类型和端口顺序、导致已有预览异常的问题。
    Preserve the selected conversion output and port order when switching language, preventing errors in existing previews.
  * 补充分割比例的完整列表示例，并同步中英文说明和 REA-Skill；不新增 SCPI 命令。
    Clarify the complete splitter ratio list in bilingual documentation and REA-Skill; no SCPI commands are added.

商业授权 · 免费试用 / Commercial license · Free trial
GPU 采用可选安装；FEC 为正式功能；MLSE 实测尚未在正式版本开放。
GPU remains optional. FEC is released; measured MLSE is not yet released.

v2.0.28 更新 / Update (2026-10-08)
--------------------------------------------------------------------------------

  * 改善多组 Floating FFE 的选位，按整套位置与系数比较候选；收益以重新生成的眼图为准。
    Improve multi-group Floating FFE placement by comparing complete tap layouts and coefficients; confirm gains with a regenerated eye.
  * 修复部分噪声预算和浮动抽头约束在 GUI、SCPI 与 Normal 到 Expert 复制时不一致的问题。
    Align noise budgets and floating-tap constraints across the GUI, SCPI and Normal-to-Expert copying.
  * 保存与加载配置时保留浮动 FFE／DFE 的系数、位置及判决时间，避免旧布局残留；修复加载后通道路径显示和复制不一致。
    Preserve floating FFE/DFE coefficients, positions and decision timing in saved configurations, clear stale layouts, and align loaded channel paths for display and copying.
  * 修复纯浮动模式下合法近端位置被加载校验拒绝或部署时漏用的问题；固定段启用时继续检查位置重叠。
    Restore and deploy legal near-cursor floating positions when the fixed section is off; continue rejecting overlap when it is enabled.
  * 修复载入新通道配置时沿用旧通道的数据率上限而静默截断配置速率的问题。
    Apply the incoming channel's rate limit when loading configurations instead of silently clipping the saved rate to the previous channel's limit.
  * 随包增加 Floating FFE 专题的 S 参数、可复现配置、参考图片与文件说明。
    Bundle Floating FFE S-parameter examples, reproducible configurations, reference images and a file guide.

商业授权 · 免费试用 / Commercial license · Free trial
GPU 采用可选安装；FEC 为正式功能；MLSE 实测尚未在正式版本开放。
GPU remains optional. FEC is released; measured MLSE is not yet released.

v2.0.27 更新 / Update (2026-10-06)
--------------------------------------------------------------------------------

  * 补齐图表工具栏的子图布局、图形参数、坐标轴选择及数值导出窗口翻译；切换语言保留编辑草稿和现有图形数据。
    Translate plot-toolbar layout, figure options, axis selection and value-export dialogs while preserving drafts and existing plot data across language changes.
  * 数值导出窗口归属其子图布局窗口，可在模态眼图详情中正常前置与关闭；补齐坐标轴选择按钮及刻度选项翻译，导出值和坐标类型保持原值。
    Own the value-export window under its layout editor so it remains usable in modal eye details; translate axis-picker buttons and scale choices without changing exported values or canonical scale types.
  * 自定义工具栏布局随父窗口销毁时释放其布局项，避免反复打开界面后残留原生布局对象。
    Release custom toolbar layout items when their parent is destroyed, avoiding retained native layout objects after repeated window creation.
  * 浴盆图明确使用具备中文字形的系统字体，避免独立绘制、语言切换或详情窗口出现中文缺字。
    Bind bathtub captions to a system font with Chinese glyphs, avoiding missing text in independent renders, language switches and details.
  * Expert 浴盆视图一次呈现一个探针，通过探针下拉或结果表切换；同一探针全部子眼同时显示。
    Expert bathtub mode shows one probe at a time; switch with the probe picker or result table while keeping all eyes of that probe visible.
  * 浴盆图按原始 Eye 编号上下分行，每行左侧显示相位曲线、右侧显示电压曲线；缺失 Eye 保留位置和数据不足提示。
    Display bathtub curves in separate rows by original eye number, with phase on the left and voltage on the right; retain missing-eye positions and insufficient-data notices.
  * 坐标轴根据有效曲线自适应，清晰区分实测和外推部分；Home 恢复自适应范围。
    Adapt axes to valid curves, distinguish measured and extrapolated segments, and restore the adaptive limits with Home.
  * Expert 主工具栏精简为视图、图表设置和探针数；外观标注及判决参数移入非模态二级窗口，关闭后保留设置。
    Simplify the Expert toolbar to view selection, Plot Settings and probe count; move appearance, annotations and decision controls into a nonmodal window that retains settings after closing.
  * 支持上下拖动浴盆 BER 点划线连续调节，所有眼联动显示对应眼高和眼宽；松开后刷新自适应范围，沿用已有 specBER 命令。
    Drag the bathtub BER line to adjust all eyes continuously and read their EH/EW; release restores adaptive bounds using the existing specBER command.
  * 修复 BER 目标修改后浴盆图未立即刷新的问题；Normal、Expert 及已打开详情窗口同步更新，中英文一致。
    Refresh bathtub plots immediately after a target BER change, synchronizing Normal, Expert and open detail views in both languages.
  * 修复 GUI 编辑浮动 FFE/DFE、眼比例、强制电平和 RX 上升时间后查询未更新的问题；CDR KP/KI 启用状态与界面同步，频偏查询保留四位小数。
    Synchronize GUI edits of floating FFE/DFE, level ratios, forced levels and RX rise time with SCPI queries; synchronize CDR KP/KI overrides and retain four decimal places in frequency-offset queries.
  * 动态重建后的 TX FFE、RX FFE 和 DFE 抽头编辑即时同步到 SCPI 查询，启用或旁路状态均可读回；窄浴盆视图的说明自动换行。
    Synchronize edits of rebuilt TX FFE, RX FFE and DFE tap rows with SCPI queries for enabled or bypassed stages; wrap captions in narrow bathtub views.
  * 修正 DFE 抽头数元数据；实际判决点编辑和复位可通过已有查询读回。
    Correct DFE tap-count metadata and expose actual decision-point edits and resets through existing queries.
  * 修复封装窗口 PCB 标题与启用框重叠，以及光学模型示意图的文字与连线重叠；补齐封装、测量条件、DFE 步进和主抽头自动选取的查询同步，保留其它导入参数精度。
    Fix overlapping PCB title controls and optical schematic labels; synchronize package, measurement, DFE-step and automatic-main-tap edits with queries while preserving other imported parameter precision.
  * 统一参数输入框的紧凑列宽和对齐，覆盖信号端口、TX/RX FFE、DFE、封装及 CDR 网格；长预设在下拉列表中完整查看，中英文切换和缩放后保持布局。
    Use consistent compact input widths and alignment across signal ports, TX/RX FFE, DFE, package and CDR grids; show full preset names in the popup and retain layout across language changes and resizing.
  * 补齐预设空选项、抽头标签、模型名称及图表工具栏的中英文切换；已打开的 Expert 参数窗口即时更新标签、选项和说明，保留未确认的输入。
    Complete language switching for empty presets, tap labels, model names and plot navigation; update open Expert editor labels, choices and help without losing unconfirmed inputs.
  * 补齐反馈、更新、Marker、坐标轴、数值列表、AMI 表头、串扰表头、COM 导入和关于窗口的即时翻译；保留草稿、截图、下载进度和协议枚举值。光学模型示意图使用中文字体并按语言缓存。
    Translate open feedback, update, Marker, axis, numeric-list, AMI-header, crosstalk-header, COM-import and About windows while retaining drafts, images, download progress and protocol enums; cache optical diagrams by language with Chinese glyph support.
  * Signal、Filter 按钮在中英文界面均保留英文名称；FEC 数值框保持可读宽度，路径框不再撑宽整列。
    Retain English Signal and Filter button names in both interface languages; keep FEC inputs readable without letting path fields widen the entire column.
  * 同步更新中英文手册、快速入门和 REA SCPI 技能说明；保持现有 SCPI 命令和计算结果。
    Update bilingual manuals, Quick Start guides and the REA SCPI skill while preserving existing commands and calculation results.

商业授权 · 免费试用 / Commercial license · Free trial
GPU 采用可选安装；FEC 为正式功能；MLSE 实测尚未在正式版本开放。
GPU remains an optional installation. FEC is released; measured MLSE is not yet released.

  * 补齐已加载 S 参数信息、曲线分组、耗时信息和 Smith 工具栏的实时语言切换；保留文件、曲线选择与原有计时值。文件列表操作按钮在窄面板中保持完整可见。
    Translate loaded S-parameter information, trace groups, timing captions and Smith toolbar controls live while retaining files, curve visibility and recorded times; keep file-list action buttons fully visible in narrow panels.

v2.0.26 更新 / Update (2026-10-05)
--------------------------------------------------------------------------------

  * 优化 CPU/GPU 眼图指标计算，在已验证场景中保留原有测量结果。
    Improve CPU/GPU eye-metric calculations while preserving results in validated scenarios.
  * 浴盆图缺少子眼时保留有效曲线；中英文明确显示有效眼数、数据不足和总体开口不可用。
    Keep usable bathtub curves and show usable-eye counts, insufficient data and unavailable overall opening in both languages.
    修复 Expert 浴盆图双击无法打开详情的问题。
    Fix double-click access to the Expert bathtub detail view.
  * 保留 complete/status 结果字段；缺失或越界子眼的曲线查询返回空响应，不新增 SCPI 命令。
    Retain complete/status result fields. Missing or out-of-range eye curves return an empty response; no SCPI commands are added.
  * 修正光电模型有符号频率相位及有限带宽处理；指定频响文件不可用时明确报错并停止计算。
    Correct signed-frequency phase and finite bandwidth in optical models; unusable specified response files report an error and stop calculation.
  * 修复快速清空、切换文件时旧结果回填及待加载请求停滞，并完善 DFE 边界与零抽头处理。
    Prevent stale results and stalled queued loads after rapid file changes; improve DFE geometry checks and zero-tap handling.
  * 修复可选 GPU 安装助手与运行库加载，增加实际 FFT、数组运算检查；修复反馈历史首次并发打开时的加锁失败。
    Fix optional GPU setup and runtime loading with real FFT and array-operation checks; fix first-use concurrent feedback history locking.
  * 同步更新中英文手册、快速指南和 REA SCPI 技能说明。
    Update bilingual manuals, Quick Start guides and the companion REA SCPI skill.

商业授权 · 免费试用 / Commercial license · Free trial
GPU 采用可选安装；FEC 为正式功能；MLSE 实测尚未在正式版本开放。
GPU remains an optional installation. FEC is released; measured MLSE is not yet released.

v2.0.25 更新 / Update (2026-10-04)
--------------------------------------------------------------------------------

修复 / Fixes
  * 插值、级联、去嵌和文件导出保留逐频、逐端口参考阻抗，避免结果参考标注错误。
    Preserve frequency-dependent and per-port reference impedances during
    interpolation, cascade, de-embedding and Touchstone export.
  * 模板任意命中都判为失败，缺少子眼数据时明确显示数据不足。
    Any mask hit fails the measurement; missing eye data cannot produce an overall pass.
  * 反馈历史并发写入不再互相覆盖，保存失败会保留待存回复并自动重试。
    Feedback history preserves concurrent updates and retries pending replies after storage errors.
  * 更新中英文授权说明：粘贴完整 Key，由软件识别类型。
    Update bilingual activation guidance to use the complete supplied license key.
  * 明确 MLSE 实测尚未在正式版本开放，并分别验证普通和预览环境。
    Clarify that measured MLSE is not yet released and validate normal and preview modes separately.

================================================================================
Rapid Eye Analysis — Release Notes
================================================================================

v2.0.24 更新 / Update (2026-10-04)
--------------------------------------------------------------------------------

  * 全面复查 Normal 与 Expert 参数排布：统一相关输入列和字号，均衡优化范围可展开，噪声设置按注入点成表；Expert 工具栏换行保留标签与输入配对，运行控制保持一致。
    Refine Normal and Expert parameter columns, typography and controls. Expand EQ optimization bounds on demand, group noise settings by injection point, and keep toolbar labels with their inputs when wrapping.
  * 中英文快速入门按首张眼图、均衡与干扰、配置复现、Expert 与 FEC 逐步展开；截图对应实际操作结果。
    Rework both Quick Start guides from the first eye through equalization, interference, saved configurations, Expert and FEC, with screenshots of reproduced results.
  * 增加可直接加载的光眼 TDECQ 与 IBIS-AMI 演示配置，补全基准恢复和 SCPI 示例步骤。
    Add ready-to-load optical TDECQ and IBIS-AMI demonstration configurations, explicit baseline restoration and executable SCPI examples.
  * 修复 SCPI 加载配置时 TX FFE 被 CTLE 预设回填覆盖、加载配置后残留旧 DFE 抽头、COM 导入后基线眼图未自动生成，以及演示配置相对路径解析的问题。
    Fix CTLE preset reflection replacing saved TX FFE taps on SCPI configuration loads, stale DFE taps, missing automatic baseline eyes after COM import and relative paths in portable demo configurations.

v2.0.23 更新 / Update (2026-10-03)
--------------------------------------------------------------------------------

  * 生成、暂停和停止固定在底部，支持 F5；信号链、测量 / FEC 和结果详情分开，长结果不再挤走参数。
    Keep Generate, Pause and Stop at the bottom, with F5 support. Separate signal chain, measurements / FEC and results so long results do not displace parameters.
  * 统一输入框尺寸和标签对齐，消除阶段切换后的大块空白；阶段按钮只导航，启停状态由明确开关控制。
    Align labels and size inputs consistently, remove empty space after stage changes, and use explicit Enable switches for stage state.
  * 按 IEEE 802.3dj D3.1 复核 FEC，修复高误码和极低概率下的结果偏差及限值边界判定；明确标注 Inner FEC 硬判决估计口径。
    Review FEC against IEEE 802.3dj D3.1, correct extreme-error probability results and limit-boundary decisions, and identify the Inner FEC hard-decision estimate.
  * 切换中英文时立即刷新已有 FEC 结果、图表、进度、设置窗口和动态菜单，并保留参数及运行状态。
    Refresh existing FEC results, charts, progress, settings dialogs and dynamic menus on language changes while preserving parameters and run state.
  * 补齐 GUI 与 SCPI 双向同步：Normal / Expert 运行及优化共用暂停 / 停止状态；Expert 支持同连接异步运行及 GUI 结果回读；FEC / MLSE、配置保存恢复和打开中的 Expert 参数窗口即时同步。
    Synchronize Normal / Expert run and optimizer controls. Expert asynchronous RUN remains controllable from one connection, and GUI-generated results are queryable; FEC / MLSE, save / load and open parameter dialogs stay synchronized.

v2.0.22 更新 / Update (2026-10-02)
--------------------------------------------------------------------------------

改进 / Improvements
  * Normal 信号设置保留信号类型、数据率、幅度、采样点数和码型等常用参数。
    TX 波形与信道处理参数集中到独立设置窗口，噪声、抖动和串扰入口排列更清楚。
    Normal mode keeps common signal settings directly accessible. TX waveform
    and channel processing options have dedicated settings dialogs; noise,
    jitter and crosstalk controls are grouped consistently.
  * 全面整理中英文参数布局：明确显示各均衡阶段的启用状态，统一字段对齐、
    按钮层级和悬停说明；高精度封装参数完整显示，长设置窗口支持滚动。
    Reorganize bilingual parameter layouts with explicit stage switches,
    aligned fields, clear action hierarchy and hover help. High-precision
    package values remain readable; long settings dialogs scroll.
  * Expert 眼图工具条随面板宽度换行，文字和数值完整显示；设置按钮更清楚易点。
    The Expert eye toolbar wraps to the panel width without clipping labels
    or values. Compact settings buttons are easier to see and use.
  * Normal 与 Expert 共用均衡优化流程，改善联合优化的一致性；浮动 FFE/DFE
    与固定抽头独立优化，改善远端反射场景的抽头选择。
    Normal and Expert share equalization optimization, improving joint-result
    consistency. Floating FFE/DFE taps are optimized independently of fixed
    taps, with improved tap selection for delayed reflections.
  * 改善 CTLE 优化的 CPU/GPU 结果一致性，降低 GPU 批量优化的显存占用。
    Improve CPU/GPU consistency in CTLE optimization and reduce GPU memory
    usage during batch optimization.
  * 改善后台计算性能与发布包构建效率，更新中英文操作手册。
    Improve background computation and release-build efficiency; update the
    Chinese and English user manuals.

v2.0.21 更新 / Update (2026-09-27)
--------------------------------------------------------------------------------

改进 / Improvements
  * **TX FFE / 联合 (FFE + DFE) 优化器对搜索界不再敏感**: 此前把抽头搜索界放宽 10%
    反而可能得到更差的结果 (120G C2C 10 dB TX FFE 6.55 → 6.42 dB)。根因是 Nelder-Mead
    的初始单纯形顶点伸出窄界后被投影到界面上、界一变落点就变, 以及岛结果按错误的
    抽头形式裁剪 (L1 形界裁 main=1 形抽头)。现在初始单纯形始终取在界内, 方向固定,
    界只决定该方向是否可行; 岛结果与起点用同一投影施界。默认界与放宽界给出相同结果
    (6.5732 / 6.5732 dB)。同一套 12 个 COM 导入场景上 TX FFE / 联合优化 8 处提升 0.03 ~
    0.10 dB (120G KR 10 dB 联合 9.76 → 9.86, 120G KR 20 dB TX FFE 8.83 → 8.90, 120G
    C2C 10 dB 联合 6.55 → 6.59), 其余持平, 无劣化; RX FFE 结果不变。
    **TX FFE / joint (FFE + DFE) optimizers no longer depend on the search bounds**:
    widening the tap bounds by 10% could previously give a worse result (120G C2C
    10 dB TX FFE 6.55 → 6.42 dB). The causes were Nelder-Mead simplex vertices that
    left a narrow box and were projected onto its faces (so the path changed with
    the box) and island results clipped in the wrong tap form (L1-form bounds on
    main=1 taps). The initial simplex now always lies inside the box with a fixed
    direction, the box only decides whether that direction is feasible, and island
    results and the start point go through one projection. Default and widened
    bounds now give the same result (6.5732 / 6.5732 dB). On the same 12 COM-import
    scenarios TX FFE / joint results improve in 8 places by 0.03 ~ 0.10 dB (120G KR
    10 dB joint 9.76 → 9.86, 120G KR 20 dB TX FFE 8.83 → 8.90, 120G C2C 10 dB joint
    6.55 → 6.59), the rest are unchanged, none is worse; RX FFE results unchanged.

新增 / New
  * **SCPI SYST:CONF:LOAD "<路径>"**: 远程载入配置文件, 与菜单「文件 → 载入配置」同一
    入口 (Normal / Expert 双态配置都支持)。
    **SCPI SYST:CONF:LOAD "<path>"**: loads a configuration file remotely through the
    same entry as File → Load configuration (Normal and Expert configurations).
  * **demo/tdecq 示例配置**: 公众号 TDECQ 专题的全部 16 个配置 (发射机带宽 50 / 32 /
    22 GHz + 主机走线四个档位 × 单 FFE / FFE + DFE × 规范限值 / 不限值), 附主机走线
    S 参数与 README; 载入即可复现文章中的每一张眼图与 TDECQ 值。
    **demo/tdecq sample configurations**: all 16 configurations of the TDECQ article
    (transmitter bandwidth 50 / 32 / 22 GHz and a host trace, × FFE-only / FFE + DFE ×
    standard limits / unbounded) with the host-trace S-parameters and a README; load
    one to reproduce every eye and TDECQ value in the article.

修复 / Fixes
  * **专家模式 TDECQ / EECQ 块的"均衡前"条目单独测量**: 此前"均衡前"眼只是换了波形的
    均衡后结果拷贝, 表格 / 详情 / SCPI 读到的都是均衡后的 TDECQ / EECQ。现在均衡前眼用
    同一规范评估器、恒等均衡器 (仅参考接收机滤波器, 无 FFE / DFE / CTLE) 单独评估: 自己
    的 σG、门限、直方图窗、采样相位与 TDECQ / EECQ 值 (Ceq = 1); 显示眼按该采样相位折叠;
    合规判定只出现在参考均衡器输出 (均衡后)。内联 TDECQ (TDECQ 节点后接探针) 的均衡前
    探针眼同样给出自己的 TDECQ (此前无值)。
    **Expert TDECQ / EECQ blocks measure the "before EQ" entry on its own**: the before-EQ
    eye used to be a copy of the equalized result with only the waveform swapped, so the
    table, details and SCPI showed the equalized TDECQ / EECQ. It is now evaluated with the
    same standard evaluator and an identity equalizer (reference-receiver filter only, no
    FFE / DFE / CTLE): its own σG, thresholds, histogram windows, sampling phase and
    TDECQ / EECQ value (Ceq = 1); the displayed eye is folded at that sampling phase; the
    compliance verdict belongs to the reference-equalizer output only. The inline TDECQ
    probe eye before the equalizer also reports its own TDECQ (it had none before).

v2.0.20 更新 / Update (2026-09-26)
--------------------------------------------------------------------------------

改进 / Improvements
  * **TDECQ / EECQ 参考均衡器全部按规范主方法求解**: 802.3dj D3.1 §180.9.6 的主
    方法 (在假定噪声下求最小均方误差的抽头, 求噪声与求抽头是迭代过程) 此前只在开
    DFE 的预设上执行, 只有 FFE 的预设没有走; 现在所有 TDECQ / EECQ 测量块都执行,
    参考符号改为测试码型 (规范模型中的 x(n)), 大群时延 (线性驱动主机走线) 下也能
    对齐; 噪声量与抽头迭代到不再改善; 前游标数与 DFE 首抽头联合网格扫描后再精修;
    求解内排除反相均衡器。结果只会更小或保持不变。SCPI 结果的 opt_winner 新增
    dj-mmse / mmse 标签 (只有 FFE 的预设由主方法胜出)。实测: 发射机带宽 22 GHz
    单 15 抽头 FFE 5.55 → 5.36 dB; 主机走线 (mellitz 250 mm) 联合口径由主方法给出
    6.48 dB。
    **TDECQ / EECQ reference equalizers now follow the standard primary method
    everywhere**: the 802.3dj D3.1 §180.9.6 method (taps that minimize the mean
    squared error at an assumed noise level, noise and taps solved iteratively)
    used to run only for presets with a DFE; FFE-only presets did not get it.
    Every TDECQ / EECQ block now runs it, the reference symbols are the test
    pattern (x(n) of the standard model) and align even under large group
    delays (linear-drive host traces), noise and taps iterate until no further
    improvement, the pre-cursor count and the first DFE tap are scanned as a
    grid before refinement, and inverting equalizers are excluded inside the
    solver. Results can only decrease or stay unchanged. The SCPI opt_winner
    field gains dj-mmse / mmse (FFE-only presets won by the primary method).
    Measured: 22 GHz transmitter bandwidth, 15-tap FFE alone 5.55 → 5.36 dB;
    host trace (mellitz 250 mm) joint 6.48 dB from the primary method.
  * **TDECQ / EECQ 直方图窗与判决点同源**: 均衡后眼的折叠中心与判决标记现在定在
    两条直方图窗的最优中心 (采样相位), 两窗对称落在判决点两侧; 此前标记停在最大
    开口相位, 重 ISI 时两窗看起来偏在判决点一侧。数值不变。
    **TDECQ / EECQ histogram windows share the decision point**: the equalized
    eye is now folded around the optimal centre of the two histogram windows
    (the sampling phase), so the windows sit symmetrically about the decision
    marker; the marker used to sit at the maximum-opening phase and the
    windows looked shifted under heavy ISI. Values are unchanged.
  * **专家模式画布**: 「适应视图」保持 1:1, 窗口变大只露出更多画布 (此前节点会
    随窗口放大); 选板中 IBIS 与 S 参数 / TX Package / RX Package / PCB 同色并列。
    **Expert canvas**: "Fit View" keeps 1:1 so a larger window shows more
    canvas (nodes used to grow with the window); the IBIS palette button now
    sits with S-Parameter / TX Package / RX Package / PCB in the same colour.

  * **TDECQ / EECQ 探针详情**: 多眼视图详情框首行改为数值在前的摘要
    "TDECQ 3.294 dB  ≤3.4 PASS  Ceq 1.066  [Clause 180]", 其后 DFE 抽头一行、FFE
    抽头 5 个一行, 再是公式行、参考接收机与合规行; 眼状态 / 电平 / VEO 排在最后。
    默认布局下详情框不拖动就能看到 TDECQ / EECQ 值与全部抽头。其它探针顺序不变。
    探针对比表同步: 有 TDECQ / EECQ 探针时紧随探针列插入 "TDECQ (dB)" / "EECQ (dB)" 列 (前后眼两行同填),
    不必横向滚动; 取证 DEBUg:GUI:MEYE:TABLe?。
    **TDECQ / EECQ probe details**: the multi-eye details panel now opens with
    a value-first summary line "TDECQ 3.294 dB  ≤3.4 PASS  Ceq 1.066
    [Clause 180]", then the DFE tap, the FFE taps five per row, then the
    formula lines, reference receiver and compliance rows; eye state / levels /
    VEO come last. In the default layout the TDECQ / EECQ value and every tap
    are visible without scrolling. Other probes keep their order.
    The probe comparison table follows: with TDECQ / EECQ probes a "TDECQ (dB)" /
    "EECQ (dB)" column sits right after the probe column (both eye rows filled),
    no horizontal scrolling needed; forensics DEBUg:GUI:MEYE:TABLe?.

修复 / Fixes
  * **TDECQ / EECQ 直方图窗位置并列取中位的崩溃**: 09-25 引入的"并列最优取平台中心"在中位位置 ≠ 最小值位置时
    误用了诊断用的压缩结果 (阈值项变成数值) → 该次测量报错、结果为空 (dj_d31 门 Clause 182 抓到, 数据相关偶发)。
    改用完整评估结果; 选位规则不变。
    **Crash in the TDECQ / EECQ histogram-window plateau selection**: the 09-25 "take the centre of tied
    optimum positions" rule used the compact diagnostic record (threshold entry became a number) when the
    median position differed from the argmin → that measurement errored with an empty result (caught by the
    dj_d31 gate on Clause 182, data-dependent). Uses the full evaluation record now; the position rule is
    unchanged.
  * **偶发崩溃 (访问冲突) 根治**: Python 的循环垃圾回收此前在哪个线程触发就在哪个线程
    运行, 回收到的对象若含界面对象, 就在非界面线程销毁 —— 长时间 SCPI 驱动的专家模式
    运行 / 优化偶发访问冲突退出 (约 1/50 次运行)。现在循环回收只在界面线程定时执行
    (引用计数释放不受影响), 优化器内部的显式回收改为交给界面线程。取证: DEBUg:GC?。
    **Sporadic crash (access violation) fixed at the root**: Python's cyclic garbage
    collector used to run on whichever thread triggered it, destroying UI objects
    off the UI thread — long SCPI-driven Expert runs / optimizations occasionally
    exited with an access violation (about 1 in 50 runs). Cyclic collection now
    runs only on the UI thread on a timer (reference-count frees are unaffected)
    and the optimizer's explicit collections are handed to the UI thread. Forensics:
    DEBUg:GC?. 同批: 「帮助 → 意见反馈」的回复轮询不再每 5 分钟在界面线程新建/销毁
    一个线程对象 (改为纯 Python 后台线程 + 固定信号桥); 未处理的原生异常现在会在
    程序退出前写一份 minidump (crash_<pid>_<时间>.dmp) 到日志目录, 便于定位。
    DEBUg:GC?. Same batch: the Help → Feedback reply poll no longer creates and
    destroys a thread object on the UI thread every 5 minutes (plain background
    thread + one fixed signal bridge); unhandled native exceptions now write a
    minidump (crash_<pid>_<time>.dmp) into the log folder before exit, for
    diagnosis.
  * **TDECQ / EECQ 预设关掉 DFE 不再退成 Custom**: 802.3dj D3.1 (Table 180-16 b1 ∈
    [0, 0.33]) 与 CEI 预设里反馈抽头是可选的, 关掉 DFE = b1 = 0 仍在预设允许范围内;
    此前一关 DFE 预设名就退成 Custom, Table 180-7 等合规判定随之消失 (单 FFE 测量没
    有 PASS/FAIL)。改抽头数等真正偏离配方的编辑仍退成 Custom。
    **Switching the DFE off no longer drops a TDECQ / EECQ preset to Custom**: in
    the 802.3dj D3.1 (Table 180-16, b1 ∈ [0, 0.33]) and CEI presets the feedback
    tap is optional, so DFE off (b1 = 0) is still inside the preset; previously
    the preset name fell back to Custom and the Table 180-7 compliance verdict
    disappeared (FFE-only measurements had no PASS/FAIL). Edits that really leave
    the recipe, such as the tap count, still switch to Custom.
  * **硬件资源设置立即落盘**: 文件菜单 / SCPI (SYST:HW:CORE / RAM / VRAM) 改的 CPU
    核数、内存与显存上限现在立即写入设置; 此前刚改完就关闭程序时可能丢失, 下次
    启动仍是旧值。
    **Hardware resource settings are saved immediately**: CPU cores, RAM and
    VRAM caps changed from the File menu / SCPI (SYST:HW:CORE / RAM / VRAM) are
    now written to settings at once; closing the application right after a
    change could previously lose it, leaving the old value at the next start.
  * **只有 FFE 的 TDECQ 预设**: 主方法求解中前后游标耦合项在无反馈抽头时误用了
    增益项, 使单 FFE 解全部无效 (21 ~ 30 dB) — 已修 (该路径此前从未启用, 发货
    版本不受影响)。
    **FFE-only TDECQ presets**: the pre/post-cursor coupling term of the primary
    method used the gain term as the feedback tap when there is none, which
    invalidated every FFE-only solution (21 ~ 30 dB) — fixed (the path was never
    enabled before, shipped versions are not affected).

v2.0.19 更新 / Update (2026-09-24)
--------------------------------------------------------------------------------

新功能 / New Features
  * **优化摘要行**: 每次均衡优化 (CTLE / TX FFE / TX FFE+DFE 联合 / RX FFE /
    RX FFE+DFE 联合 / DFE) 完成并重新生成眼图后, 眼图右侧、耗时行上方显示一行
    摘要: 优化种类 · 部署 COM 优化前 → 优化后 (Δ) · 终选 (优化结果 / 起点 /
    基线对, 联合优化另注起点数) · 判决游标 (锚点偏移或自由) · 耗时 · 事件条数
    (悬停逐条查看)。随界面语言切换刷新, *RST 后清空。
    **Optimization summary line**: after every equalizer optimization (CTLE /
    TX FFE / TX FFE+DFE joint / RX FFE / RX FFE+DFE joint / DFE) finishes and
    the eye is regenerated, a summary line appears to the right of the eye,
    above the timing line: kind · deployed COM before → after (Δ) · final
    pick (optimized result / start / baseline pair, plus the number of starts
    for joint runs) · decision cursor (anchor offset or free) · elapsed time ·
    event count (hover to read them). It follows the UI language and is
    cleared by *RST.
  * **优化不再静默**: 终选保留起点或基线对、结果与起点持平 (抽头未改善)、DFE
    优化的零强制抽头被抽头界钳位 (例如 802.3ck-C2C 预设按标准给 DFE 首抽头
    0.3 的下限)、优化后部署 COM 低于优化前、优化器内部降级 (GPU 批评估故障改走
    CPU、旁路复核失败保持旁路解) 都会记为事件: 状态栏显示最近 3 条, 摘要按条数
    提示并可悬停查看, SCPI 错误队列以正码 +302 逐条弹出 (与 +301 裁决建议并列)。
    优化失败时摘要以红字显示 "⚠ <种类>失败: 原因", SCPI 报 -300。事件文案随
    界面语言 (中 / 英)。
    **Optimization is never silent**: when the final selection keeps the start
    or the baseline pair, when the result merely ties the start (taps not
    improved), when the DFE optimizer has to clip its zero-forcing taps to the
    tap bounds (for example the 802.3ck-C2C preset gives the first DFE tap a
    standard lower bound of 0.3), when the deployed COM after an optimization
    is below the value before, or when the optimizer degrades internally (GPU
    batch failure falling back to CPU, a failed bypass re-check keeping the
    bypass solution), an event is recorded: the status bar shows the last 3,
    the summary shows the count with hover details, and the SCPI error queue
    reports each one as positive code +302 (alongside the +301 verdict
    advisories). A failed optimization renders the summary in red
    ("⚠ <kind> failed: reason") and reports -300 over SCPI. Event text follows
    the UI language (Chinese / English).
  * **SCPI ABORt 可中止 SCPI 触发的优化**: 通过 SCPI 启动的 TX FFE / RX FFE /
    CTLE 优化 (含网格搜索) 此前无法被 ABORt 停下, 只能跑完; 现在 ABORt 立即
    生效, 中止后参数保持不变。
    **SCPI ABORt stops SCPI-triggered optimizations**: TX FFE / RX FFE / CTLE
    optimizations started over SCPI (grid search included) could not be
    stopped by ABORt and ran to completion; ABORt now takes effect immediately
    and the parameters stay unchanged after a stop.

改进 / Improvements
  * **均衡优化不劣于优化前改由终选机制保证, 撤销事后回退**: 优化前的参数
    (以及 COM 导入时的基线参数) 与优化结果一起进入终选候选集, 由同一裁判在
    实际部署面上 (含判决游标) 选优; 此前分散在各优化器里的"优化后比优化前差
    就回退"的判断以及界面的"允许 COM 劣化"菜单 (SCPI CONF:OPT:DEGRade) 全部
    移除。选优面与显示面完全一致, 不再有回退阈值。
    **Not-worse-than-before is now guaranteed by the final selection, and the
    after-the-fact restores are gone**: the pre-optimization parameters (and
    the COM-import baseline) enter the final selection together with the
    optimized result and one judge picks the best on the deployed response
    (decision cursor included); the "restore if worse" checks scattered in the
    optimizers and the GUI menu "Allow COM Degradation" (SCPI
    CONF:OPT:DEGRade) have been removed. The selection face equals the
    displayed face, with no restore threshold.
  * **FFE+DFE 联合优化找到更好的解**: 两步联合求解里 DFE 的设计此前只在脉冲
    峰值提取, 而裁判与部署的判决游标在峰前 (Mueller-Müller), 联合结果因此常输给
    导入的抽头对。现 DFE 按判决游标扫描设计 (与 DFE 优化同款)、设计面为起点
    FFE 的均衡响应、以自由面打分, 并从多个起点 (自由面扫描最优 / 峰值零强制 /
    当前 DFE) 做坐标下降, 同一裁判取最优。28G NRZ 联合优化 11.66 → 11.93 dB。
    网格搜索下联合优化耗时约为此前 3 倍 (多起点)。
    **Joint FFE+DFE optimization finds better solutions**: the DFE design inside
    the two-step joint solver used to be extracted at the pulse peak while the
    judge and the deployed decision cursor sit before the peak
    (Mueller-Müller), so the joint result often lost to the imported tap pair.
    The DFE is now designed by the same decision-cursor scan as the DFE
    optimization, on the start FFE's equalized response, scored on the free
    face, with coordinate descent from several starts (free-face scan
    optimum / peak zero-forcing / current DFE) and one judge picking the
    best. 28G NRZ joint optimization: 11.66 → 11.93 dB. Under grid search the
    joint optimization takes about 3× longer (multiple starts).
  * **固定 DFE 结构进入 FFE / CTLE 裁判**: TX FFE / RX FFE / CTLE 单独优化时,
    裁判使用与部署完全相同的 DFE 抽头位置 (含浮动尾部), 判断面与部署面一致。
    **The fixed DFE structure enters the FFE / CTLE judges**: standalone TX
    FFE / RX FFE / CTLE optimizations judge with exactly the deployed DFE tap
    positions (floating tail included), so the judge face equals the deploy
    face.
  * **COM 导入的 RX FFE 重推导不再做增益扫描**: 该扫描把纯增益当作改善
    (接收端热噪声按固定 mV 计入), 而增益从不部署 (导入按主抽头 = 1 归一),
    已撤销; 导入的 RX FFE 抽头以部署形态单点评估。
    **COM-import RX FFE re-derivation no longer runs a gain scan**: the scan
    counted pure gain as an improvement (receiver thermal noise is a fixed
    mV budget) while gain is never deployed (import normalizes the main tap
    to 1); it has been removed and the imported RX FFE taps are evaluated once
    in their deployed form.
  * **快速入门第 3 步改用 RX FFE+DFE 联合优化**: 在 802.3ck-C2C 预设下, 标准
    给 DFE 首抽头 0.3 的下限; 先单独优化 RX FFE 再单独优化 DFE 只能钳在下限上,
    眼图反而被压回 (摘要会如实提示); 联合优化让 RX FFE 与带界的 DFE 分工,
    指南与截图已按此重做。
    **Quick start step 3 now uses the joint RX FFE+DFE optimization**: under
    the 802.3ck-C2C preset the standard gives the first DFE tap a lower bound
    of 0.3; optimizing the RX FFE alone and then the DFE alone leaves the DFE
    pinned at that bound and closes the eye again (the summary reports it);
    the joint optimization splits the work between the RX FFE and the bounded
    DFE. The guide and its screenshots were redone accordingly.
  * **文档与 SCPI 命令表**: 操作手册新增 10.14.2 "优化摘要与事件提示", 第 13 章
    命令表补充 40 余条既有命令 (逐抽头上下限、COM 导入子路径、优化器参数、
    异步优化状态、无头 TDR、状态寄存器、专家模式管线状态与中止等), 英文表的
    端口配对参数已更正为 0|1|2|3 (+AUTO); 快速入门中英双语同步更新。
    **Documentation and SCPI command tables**: the manual gains 10.14.2
    "Optimization Summary and Events"; the chapter 13 tables add 40+ existing
    commands (per-tap limits, COM-import sub-paths, optimizer parameters,
    async optimization status, headless TDR, status registers, Expert pipeline
    status and abort); the English pairing arguments are corrected to
    0|1|2|3 (+AUTO); the quick start guide is updated in both languages.

修复 / Fixes
  * **SCPI 触发的 DFE / 浮动优化偶发崩溃**: 由 SCPI 委托到界面的优化此前在
    特定序列下会触发原生访问冲突 (线程对象构造时机竞态); 委托路径现不再创建
    线程对象, 多场景连续优化不再复现。
    **Occasional crash of SCPI-triggered DFE / floating optimizations**:
    optimizations delegated from SCPI to the GUI could hit a native access
    violation under specific sequences (a thread-object construction race);
    the delegated path no longer creates thread objects and the multi-scenario
    back-to-back runs no longer reproduce it.

v2.0.18 更新 / Update (2026-09-22)
--------------------------------------------------------------------------------

新功能 / New Features
  * **802.3 族预设携带抽头限值**: 选择 CTLE 预设 802.3bs/cd-PAM4-CR/KR、
    802.3bs/cd-PAM4-C2C、802.3ck-CR/KR、802.3ck-C2C、802.3dj-200G 时, 同时写入
    该标准规定的 DFE 抽头上下限 (b_max / b_min)、TX FFE 各抽头 c(k) 范围 (含
    c(0) 下限) 以及 802.3dj 的 RX FFE ±0.7, 与 COM 导入同一约定; 现有抽头随即
    钳到限值内; TX / RX FFE 前后抽头数改变时限值按新布局自动重排。非 802.3
    族预设 (Custom / OIF / PCIe / USB / ck-C2M) 不改动限值。
    **802.3 family presets carry the tap limits**: selecting the CTLE preset
    802.3bs/cd-PAM4-CR/KR, 802.3bs/cd-PAM4-C2C, 802.3ck-CR/KR, 802.3ck-C2C or
    802.3dj-200G now also writes that standard's DFE tap limits (b_max /
    b_min), the TX FFE per-tap c(k) ranges (including the c(0) floor) and,
    for 802.3dj, the RX FFE ±0.7 limits, using the same convention as COM
    Import; existing taps are clamped into the limits, and the limits are
    re-laid out automatically when the TX / RX FFE pre / post tap counts
    change. Non-802.3 presets (Custom / OIF / PCIe / USB / ck-C2M) leave the
    limits untouched.
  * **均衡抽头默认上下限按标准族**: 未设置抽头界时, DFE 第 1 抽头默认
    PAM4 ±0.85 / NRZ ±1.0 (此前 ±0.5), TX FFE 非主抽头 ±0.7, RX FFE 紧邻主抽头
    ±0.7、其余 ±0.3, 光口 DFE [0, 0.33] (802.3dj Table 180-16); 抽头界与抽头值
    "后写者胜" (后设的界钳现有抽头, 后写的抽头放宽界); Normal 模式的
    FFE+DFE 联合优化加入 DFE 首抽头真值精修 (与专家模式同款)。
    **Equalizer default tap limits per standard family**: with no tap limits
    set, the DFE first tap now defaults to ±0.85 for PAM4 / ±1.0 for NRZ
    (previously ±0.5), TX FFE non-main taps ±0.7, RX FFE ±0.7 next to the
    main tap and ±0.3 elsewhere, optical DFE [0, 0.33] (802.3dj Table
    180-16); limits and tap values follow last-write-wins (a limit set later
    clamps the taps, a tap written later widens the limit); the Normal-mode
    joint FFE+DFE optimization gains the DFE first-tap true-COM refinement
    already used in Expert mode.

修复 / Fixes
  * **DFE 优化不再降低 COM 导入链路的 COM**: 此前在 COM 导入配置上单独运行
    DFE 优化会把 COM 从 8.83 dB 打到 3.31 dB (802.3ck 120G KR 20 dB 信道) 或从
    2.01 dB 打到 −5.26 dB (802.3dj 212G KR 23 dB 信道)。根因已逐项修正: 抽头
    提取的判决游标与 COM 裁判 / COM 设计游标不一致 (现按判决游标与抽头联合
    选择, 赢家游标同时作为眼图采样锚); 优化器内部的稀疏 RX FFE 抽头索引未按
    每 UI 采样数重标; 封装模型已施加 TX 高斯时优化器重复施加 (Normal 五个
    优化入口与专家模式三个入口统一守卫); DFE 优化忽略导入的抽头位置; SCPI
    优化写回丢失浮动抽头。修复后两条信道分别回到 8.83 dB / 2.08 dB (= 导入
    基线), 专家模式 TX FFE 优化 8.83 → 8.86 dB。
    **DFE optimization no longer degrades COM-imported links**: running DFE
    optimization alone on a COM-imported setup used to drop COM from 8.83 dB
    to 3.31 dB (802.3ck 120G KR 20 dB channel) or from 2.01 dB to −5.26 dB
    (802.3dj 212G KR 23 dB channel). Root causes fixed one by one: the tap
    extraction cursor differed from the COM judge / COM design cursor (the
    cursor and taps are now selected jointly and the winning cursor anchors
    the eye sampling); sparse RX FFE tap indices inside the optimizer were
    not rescaled to samples per UI; the TX Gaussian filter was applied twice
    when the package model had already applied it (all five Normal and three
    Expert optimizer entries now share one guard); DFE optimization ignored
    the imported tap positions; SCPI write-back dropped floating taps. Both
    channels now return to 8.83 dB / 2.08 dB (the imported baseline) and
    Expert TX FFE optimization reaches 8.83 → 8.86 dB.
  * **带封装模型时优化器与显示链路完全同源**: 封装模型已在 S 参数域施加接收
    滤波器的链路上, 各均衡优化器 (Normal / 专家模式 / 界面按钮共 18 个入口)
    此前会在优化器内部再施加一次接收滤波器, 优化对象与显示的眼图不是同一条
    响应 (峰值位置偏 20 个采样); DFE 优化的判决游标打分也补齐了显示链路独有
    的 R_LM 电平比与 ICN 串扰项, 并按显示链路的语义 (有锚取锚点与自由搜索
    较优者) 打分。修复后 802.3bs 50G KR 10 dB 信道 DFE 优化保持导入的 9.48 dB
    (此前掉到 8.54 dB), 802.3ck 120G KR 20 dB 信道 8.83 → 8.84 dB。新增调试
    查询 DEBUg:DFE:JUDGe? 直接对比优化器裁判值与显示值。
    **Optimizers share exactly the displayed link when a package model is
    present**: on links where the package model already applies the receiver
    filter in the S-parameter domain, every equalizer optimizer (18 entries
    across Normal, Expert and the GUI buttons) used to apply the receiver
    filter a second time inside the optimizer, so the optimized response was
    not the displayed one (peak position off by 20 samples); the DFE
    optimization cursor scoring also gains the display-only R_LM level ratio
    and ICN crosstalk terms and follows the display semantics (anchored or
    free search, whichever is better). After the fix the 802.3bs 50G KR 10 dB
    channel keeps its imported 9.48 dB after DFE optimization (previously
    dropped to 8.54 dB) and the 802.3ck 120G KR 20 dB channel goes 8.83 →
    8.84 dB. New debug query DEBUg:DFE:JUDGe? compares the optimizer judge
    value with the displayed value directly.
  * **均衡优化以"优化前的显示结果"为不劣化基准**: TX FFE / RX FFE / 联合优化的
    终审此前用去掉判决锚的口径评估优化前状态, 当 DFE 优化刚为当前状态选定了
    判决游标时, 优化前的真实显示 COM 高于终审看到的基准, 随后的联合优化可能
    "退回"到一个显示上更差的解 (28G NRZ 示例 11.54 → 10.89 dB); 专家模式的
    CTLE 三方裁决同样没有带上探针的判决锚 (802.3dj 212G KR 23 dB 镜像链 2.08 →
    2.01 dB)。现终审直接以优化前的显示 COM (含判决锚) 为基准, 专家模式裁决
    带探针锚, 两例均保持 11.54 dB / 2.08 dB。
    **Equalizer optimization is judged against the pre-optimization displayed
    result**: the final check of TX FFE / RX FFE / joint optimization used to
    evaluate the previous state without its decision anchor, so right after a
    DFE optimization had chosen a decision cursor the real displayed COM was
    higher than the baseline the check could see, and a following joint
    optimization could "fall back" to a solution that displays worse (28G NRZ
    example 11.54 → 10.89 dB); the Expert-mode CTLE three-way arbitration
    likewise ignored the probe's decision anchor (802.3dj 212G KR 23 dB
    mirrored link 2.08 → 2.01 dB). The final check now uses the
    pre-optimization displayed COM (anchor included) and the Expert
    arbitration carries the probe anchor; both cases keep 11.54 dB / 2.08 dB.
  * **优化完成后抽头界不再被界面重置**: TX FFE / RX FFE / 联合优化完成时,
    界面此前会把主抽头的上下限无条件重置为 [−1, 1] (COM 导入或族预设给出的
    c(0) 下限丢失, 且与引擎内的界不一致); 现只在结果越界时按需放宽。
    **Tap limits are no longer reset by the GUI after optimization**: when a
    TX FFE / RX FFE / joint optimization finished, the GUI used to reset the
    main-tap limits to [−1, 1] unconditionally (losing the c(0) floor from COM
    Import or a family preset and diverging from the engine); it now widens a
    limit only when the result falls outside it.
  * **TX FFE 抽头界按标准约定作用于优化搜索**: 802.3 与 COM 的 c(k) 范围按
    Σ|c(k)| = 1 定义, 优化器内部搜索此前按主抽头相对值钳位, 搜索空间被系统
    性收窄 (COM 导入解本身可能就在旧搜索空间之外, TX FFE 优化只能保持
    基线); 现搜索侧按 Σ|c(k)| = 1 投影进界, RX FFE 仍按 COM 的游标 = 1 约定。
    手册补充了两种约定的说明。
    **TX FFE tap limits applied in the standard's convention during
    optimization**: 802.3 and COM define the c(k) ranges with Σ|c(k)| = 1,
    while the optimizer's internal search used to clamp relative to the main
    tap, systematically narrowing the search space (a COM-imported solution
    could lie outside it, so TX FFE optimization could only keep the
    baseline); the search now projects candidates into the limits with
    Σ|c(k)| = 1, and RX FFE keeps COM's cursor = 1 convention. The manual
    documents both conventions.

v2.0.17 更新 / Update (2026-09-20)
--------------------------------------------------------------------------------

新功能 / New Features
  * **网格搜索候选数上限**: 菜单 优化器 ▶ 网格搜索 ▶ 候选数上限 (0.5M / 1M
    默认 / 2M / 5M / 10M / 不限 / 自定义), SCPI CONF:OPT:GRID:CANDidates。
    每一阶段最多评估的候选数按"个数"封顶而不是按时间, 超出的候选从离种子
    最远的开始舍弃, 因此不同性能的电脑得到相同的优化结果; 极复杂场景 (例如
    212G 联合 FFE+DFE 网格搜索, 此前单次超过 1 小时) 现在几分钟内完成。
    **Grid-search candidate cap**: menu Optimizer ▶ Grid Search ▶ Candidate
    cap (0.5M / 1M default / 2M / 5M / 10M / unlimited / custom), SCPI
    CONF:OPT:GRID:CANDidates. The number of candidates evaluated per stage is
    capped by count rather than by time and the excess is trimmed farthest
    from the seed first, so machines of different speed reach the same
    optimization result; very heavy cases (e.g. a 212G joint FFE+DFE grid
    search that previously ran over an hour) now finish in minutes.

改进 / Improvements
  * **CTLE 旁路裁决的后续复核**: CTLE 优化以实际链路真实 COM 三方裁决 (优化
    增益 / 旁路 / 原增益) 判定旁路更优后, 随后的 TX FFE / RX FFE / 联合 / DFE
    优化完成时会以落选的 CTLE 增益重跑同一优化, 比较两条链路的最终真实 COM:
    若 "CTLE + 重优化均衡器" 反超旁路链, 自动重新启用 CTLE 并采用该结果, 状态栏
    与 SCPI 事件 +301 给出两者数值; 旁路仍更优则保持。分阶段贪心裁决在部分
    场景末端亏 0.4~0.7 dB 的情况由此消除。专家模式的裁决改用与探针显示相同
    的噪声预算, FFE / DFE 节点优化结果附带 ctle_recheck (保留 / 移除 CTLE 两种
    链路的真实 COM), 画布拓扑不自动改动。
    **CTLE bypass verdict re-checked downstream**: when the three-way true-COM
    arbitration after CTLE optimization (optimized gains / bypass / previous
    gains) decides that bypass is better, every subsequent TX FFE / RX FFE /
    joint / DFE optimization repeats itself with the runner-up CTLE gains and
    compares the two end-to-end links on true COM: if "CTLE + re-optimized
    equalizer" beats the bypassed link, CTLE is re-enabled with that result
    (both values shown in the status bar and the SCPI +301 event), otherwise
    bypass is kept. This removes the 0.4–0.7 dB left on the table by the
    stage-wise greedy verdict in some cases. Expert-mode arbitration now uses
    the same noise budget as the probe display, and FFE / DFE node results
    carry a ctle_recheck block (true COM with and without the CTLE node); the
    canvas topology is never changed automatically.
  * **专家模式电口均衡优化裁判与显示同口径**: 专家模式 FFE / CTLE / DFE /
    浮动抽头优化的目标函数改为与探针显示完全相同的 COM 口径 (此前在源节点
    未设置噪声参数时用的是另一套口径, 优化器选的点在显示面上可能反而更差)。
    11 条 50G~212G 参考信道全部改善 (+0.01 ~ +14.4 dB), 并且电口 FFE+DFE 联合
    优化的 DFE 首抽头精搜默认开启 (10 升 1 平, 无一变差)。SCPI FETC:PIPE:OPT?
    的 com 字段现与探针 com_db 同口径。
    **Expert-mode electrical optimization judged on the displayed COM**: the
    objective of Expert FFE / CTLE / DFE / floating-tap optimization now uses
    exactly the COM convention of the probe display (previously, with no noise
    parameters set on the source node, a different convention was used and
    the chosen point could be worse on the displayed metric). All 11 reference
    channels from 50G to 212G improve (+0.01 to +14.4 dB), and the DFE
    first-tap refinement of the electrical joint FFE+DFE optimization is now
    on by default (10 better, 1 unchanged, none worse). The com field of SCPI
    FETC:PIPE:OPT? now matches the probe com_db.
  * **DFE 第 1 抽头默认界 ±0.5**: 未设置抽头界时, DFE 优化、联合优化的 DFE
    首抽头搜索范围以及抽头值输入框默认按 802.3 的 b_max(1) = 0.5 约束, 其余
    抽头 ±1.0; 预设 / COM 导入给出的显式界不受影响。
    **DFE first-tap default bound ±0.5**: when no tap bounds are set, DFE
    optimization, the joint-optimization first-tap search and the tap value
    spin boxes default to the 802.3 b_max(1) = 0.5 limit (other taps ±1.0);
    explicit bounds from presets / COM Import are unchanged.
  * **CUDA 开关结果一致性**: 网格搜索 / 单纯形 / CTLE 优化在 CUDA 开与关之间
    结果逐位一致 (常驻门); 复杂场景 GPU 网格搜索约 9 倍、CTLE 优化 5~24 倍提速。
    **CUDA on/off consistency**: grid, simplex and CTLE optimization give
    bit-identical results with CUDA on and off (permanent gate); on heavy
    cases the GPU grid search is about 9× faster and CTLE optimization 5–24×.

修复 / Fixes
  * DFE 抽头界经远程或导入同步放宽时, 抽头值输入框的范围未跟着放宽, 优化 /
    导入写回的值可能被静默钳到旧界; 现在同步放宽。
    DFE tap value spin boxes did not widen with bounds synced remotely or by
    import, so optimized / imported values could be silently clamped to the
    old bound; they now widen together.
  * 分割页未经设置加载直接执行分割时报属性错误; 修正。
    The Split page raised an attribute error when a split was started before
    any settings load; fixed.

v2.0.16 更新 / Update (2026-09-18)
--------------------------------------------------------------------------------

新功能 / New Features
  * **FFE 与 DFE 联合求解 (802.3dj 200G/lane 光口首发, 推广到全部带 DFE 的
    参考接收机)**: 凡参考接收机含判决反馈抽头的预设 (802.3dj D3.1 各条款的
    15 抽头 FFE + 1 抽头 DFE、OIF CEI-112G-LINEAR / LPO MSA 的 TP4 EECQ、自定义
    预设勾选 DFE), 在常规均衡优化之后追加一段联合精修: 按规范准则联合解出
    FFE 抽头与 DFE 系数 (规范抽头限值直接在求解中施加), 再对 DFE 首抽头精搜,
    每一步都以真实 TDECQ / EECQ 裁决, 只接受严格更优的结果; DFE 的判决相位与
    反馈联合选取。光链路上 FFE 节点联合 DFE 节点的优化同样加入 DFE 首抽头精搜,
    以真实眼图品质裁决。SCPI 结果新增 opt_winner 与 joint 两个字段。
    **Joint FFE + DFE solution (introduced for 802.3dj 200G/lane optics,
    extended to every reference receiver with a DFE)**: for presets whose
    reference receiver includes a decision-feedback tap (the 802.3dj D3.1
    clauses with 15-tap FFE + 1-tap DFE, the OIF CEI-112G-LINEAR / LPO MSA
    TP4 EECQ presets, custom presets with the DFE enabled) a joint refinement
    pass follows the regular equalizer optimization: FFE taps and the DFE
    coefficient are solved together under the standard criterion with the
    spec tap limits enforced inside the solver, the first DFE tap is then
    re-searched, and every step is judged by the real TDECQ / EECQ, accepting
    strictly better results only; the DFE decision phase is chosen jointly
    with the feedback. The optical-chain FFE node optimized jointly with a DFE
    node gains the same first-tap re-search judged by real eye quality. SCPI
    results carry two new fields, opt_winner and joint.
  * **信道质量指标 / 浴盆曲线 / 眼图模板**: 眼图页新增信道质量指标块 (802.3
    93A 拟合插入损耗、ILD、FOM_ILD、回波损耗、延迟、串扰 PSXT / ICR、模式转换
    SDC21 / SCD21、偏斜、脉冲 h±1 与 ISI); 显示模式新增浴盆曲线与模板容限
    (矩形 / 菱形 / 六边形模板, 命中数与四向裕量); S4P 端口配对自动猜测; 判决点
    波形导出与右键复制图像。
    **Channel quality metrics / bathtub / eye mask**: the eye page gains a
    channel-quality block (802.3 93A fitted insertion loss, ILD, FOM_ILD,
    return loss, delay, crosstalk PSXT / ICR, mode conversion SDC21 / SCD21,
    skew, pulse h±1 and ISI); the display mode gains bathtub curves and mask
    margin (rectangular / diamond / hexagonal masks with hit count and
    four-way margins); automatic S4P port-pair guessing; decision-point
    waveform export and right-click copy image.
  * **IBIS / IBIS-AMI 器件模型节点 (专家模式)**: 支持 IBIS 8.0 (.ibs 线性化前端
    + AMI 可执行模型 Init / GetWave, Ts4file, 串扰 aggressor, Retimer / Redriver
    中继链, BCI 训练, 内置 IBIS-ISS 线性求解器, [AMI Test Configuration]
    金标准比对)。
    **IBIS / IBIS-AMI device-model node (Expert mode)**: IBIS 8.0 support
    (.ibs linearized front end + AMI executable Init / GetWave, Ts4file,
    crosstalk aggressors, Retimer / Redriver chains, BCI training, a built-in
    IBIS-ISS linear solver and [AMI Test Configuration] golden comparison).
  * **COM 4.x 参数全部代入眼图**: p/n 偏斜、kappa、AC 共模噪声、脉冲响应截断
    阈值、ICN 幅度、SNR_TX 参考 TX FFE 主抽头 (SNR_TXwC0), COM 4.x MLSE 场景下
    CSV 的 COM_orig / ΔCOM 分别显示并与 REA 结果对齐。
    **All COM 4.x parameters carried into the eye**: p/n skew, kappa, AC
    common-mode noise, impulse-response truncation threshold, ICN amplitude,
    SNR_TX referenced to the TX FFE main tap (SNR_TXwC0); for COM 4.x MLSE
    cases the CSV COM_orig / delta-COM are shown separately and aligned with
    the REA result.

改进 / Improvements
  * **EECQ 规范场景**: 仿真主机信道 (CEI TP4 far-end 8.9 dB, TP1 应力低损 /
    高损)、MMF 限值、推荐码型提示, 预设扩到 8 个; 均衡前眼居中修正; TDECQ /
    EECQ 直方图窗位置可核。
    **EECQ spec scenarios**: simulated host channels (CEI TP4 far-end 8.9 dB,
    TP1 stress low / high loss), MMF limits, recommended-pattern hints, 8
    presets; before-EQ eye centering fixed; TDECQ / EECQ histogram window
    positions are reported.
  * **专家模式源节点默认值与 Normal 统一**; Normal→Expert 单向复制核验幅度
    与 TX 高斯同步。
    **Expert source-node defaults unified with Normal**; the Normal→Expert
    one-way copy verified for amplitude and TX Gaussian sync.
  * **中文手册 / 快速入门字体修复** (下标、上标、数学符号与图标不再丢字)。
    **Chinese manual / quick-start font fix** (subscripts, superscripts, math
    symbols and icons no longer dropped).

修复 / Fixes
  * **激活对话框**: 修复对 15 段授权 Key 的误判, 界面激活入口现在接受全部
    有效 Key。
    **Activation dialog**: fixed the mis-detection of 15-segment license keys;
    the GUI activation entry now accepts every valid key.
  * 静态审查修复批: 暂停不扣计次、主机指纹抖动不影响授权、SCPI 授权门补漏、
    设置分组错位、流式共模白噪、GPU CDR + SSC 双推进、级联单网络反向、封装
    异常回退、COM 导入优化卡死、拖拽信号、去嵌三文件等。
    Review fix batch: pause no longer consumes a trial credit, host-fingerprint
    jitter cannot affect licensing, SCPI license gate gaps closed, settings
    group misplacement, streaming common-mode white noise, GPU CDR + SSC double
    advance, single-network cascade reverse, package exception fallback, COM
    import optimizer hang, drag signals, de-embed three-file loading, and more.
  * 光链路: 光口 S 参数信道按差分有效网络处理; 长冲激响应按建立长度截断;
    光链指标随采样率漂移修正; 光链 DFE 判决相位与眼图居中修正; 终端 TDECQ
    显示单位 (mW) 修正。
    Optical chains: optical S-parameter channels handled as effective
    differential networks; long impulse responses truncated at settled length;
    optical metrics no longer drift with sample rate; optical-chain DFE
    decision phase and eye centering fixed; terminal TDECQ display unit (mW)
    corrected.

v2.0.15 更新 / Update (2026-08-30)
--------------------------------------------------------------------------------

新功能 / New Features
  * **长计算运行控制**: 专家模式运行管线 (光链路、长码型) 时, 画布下方
    显示进度条 — 百分比、已用与预估剩余时长实时更新, 状态栏同步显示当前
    正在执行的节点; 旁边的「⏸ 暂停」「✕ 取消」按钮可随时冻结或停止本次
    运行, 取消不消耗试用计次, 眼图保持上一次结果。SCPI 程控的
    CONF:PIPE:RUN 同样点亮该进度显示。
    **Run control for long computations**: while an Expert pipeline runs
    (optical chains, long patterns) a progress bar below the canvas shows
    percentage, elapsed and estimated remaining time, and the status bar
    names the node currently executing; the Pause and Cancel buttons next
    to it freeze or stop the run at any time — cancelling does not consume
    a trial credit and the eyes keep the previous results. A remote
    CONF:PIPE:RUN lights up the same display.

改进 / Improvements
  * **光链路参数全面体检**: EO / 光纤 / OE 全部 55 个参数逐一核查修正 —
    EML 偏置电压真实生效、APD 的 McIntyre 电离系数 k 可按规格使用、OE 侧
    RIN 支持关闭档 (≤ -199 dB/Hz)、多模光纤模式色散口径修正、切换器件
    类型 (MZM/DML/EML/VCSEL、PIN/APD、光纤类型) 自动套用典型硬件默认
    (SCPI 与界面同权)、光纤类型切换携带各自的色散锚点。开箱默认值同步
    调整为常见 25G-class 器件的典型值。
    **Full optical-parameter audit**: all 55 EO / fiber / OE parameters
    reviewed and corrected — EML bias now takes real effect, the APD
    McIntyre ionization ratio k is usable as specified, OE-side RIN gains
    an off setting (<= -199 dB/Hz), multimode modal-dispersion calibration
    fixed, switching device type (MZM/DML/EML/VCSEL, PIN/APD, fiber types)
    applies typical hardware defaults over both GUI and SCPI, and fiber
    types carry their own dispersion anchors. Out-of-the-box defaults now
    match common 25G-class parts.
  * **专家模式眼图区排版**: 右侧样式工具条在面板较窄时自动换行, 复选框
    文字与探针计数不再被截断; 探针对比表列头按内容定宽、恒完整, 窄窗时
    表内横向滚动。
    **Expert eye-panel layout**: the style toolbar wraps automatically in
    narrow panels so labels and the probe counter are never truncated; the
    probe table sizes headers to content and scrolls horizontally instead
    of squeezing them.
  * **文档更新**: 快速入门指南与操作手册 (中英) 全面更新 — 截图全量重拍,
    新增「生成前状态」与「运行中进度条」教学图, 操作手册补充 CDR 取数点
    SCPI 命令 (CONF:CDR:TAPP) 与运行控制说明。
    **Documentation refresh**: the Quick Start guide and the manual (CN/EN)
    are fully updated — all screenshots retaken, new figures for the
    pre-generation state and the run progress bar, and the manual now
    covers the CDR tap-point SCPI command (CONF:CDR:TAPP) and run control.

修复 / Fixes
  * **专家模式探针 COM_93A 显示口径**: 强带限链路 (如加接收滤波器) 或
    物理 MZM 光链上, 探针表的 COM_93A 不再出现与眼图/SNR 明显矛盾的
    虚假深负值 — 显示与优化器现在使用同一套判决列自选与电平自洽估计,
    并正确处理负主游标极性。相关链路的均衡优化质量也随之恢复。
    **Expert probe COM_93A display**: on strongly band-limited chains
    (e.g. with an RX filter) or physical MZM optical links, the probe
    table no longer shows spurious deeply negative COM_93A that
    contradicts an open eye — the display now shares the optimizer's
    decision-column scan and self-consistent level estimation, and handles
    negative main-cursor polarity correctly. Equalizer-optimization
    quality on such chains recovers accordingly.

v2.0.8 – v2.0.14 汇总 / Summary (2026-08-19 ~ 2026-08-30)
--------------------------------------------------------------------------------

  * v2.0.14: CDR 取数点两档 (全链均衡后 / CTLE 后, 含 SCPI
    CONF:CDR:TAPP); 配置文件跨机分享 (档内路径按配置所在目录回退解析);
    保存/加载配置完整携带专家模式画布; s3p 每文件配置与 FEC 面板语言
    切换修复。
    v2.0.14: two CDR tap points (after full EQ / after CTLE, with SCPI
    CONF:CDR:TAPP); configuration files shareable across machines (paths
    fall back to the config's folder); save/load now carries the full
    Expert canvas; s3p per-file settings and FEC-panel language fixes.
  * v2.0.13: PRBSnQ 四进制码型全系 (PRBS9Q~31Q, 802.3 Gray 构造);
    PRBS13 改用 802.3 规范多项式; 新增 802.3dj IM-DD 光口 Inner FEC
    预设 (Hamming(128,120))。
    v2.0.13: the PRBSnQ quaternary pattern family (PRBS9Q-31Q, 802.3 Gray
    construction); PRBS13 switched to the 802.3 polynomial; new 802.3dj
    IM-DD Inner FEC preset (Hamming(128,120)).
  * v2.0.12: PRBS31 长码计算 GPU 全链提速 (单点 45 → 10.5 分钟);
    程控时长计算确认框自动跳过, 无人值守脚本不再被阻塞。
    v2.0.12: PRBS31 computation accelerated on GPU end to end (45 -> 10.5
    minutes per point); the long-run confirmation dialog is skipped under
    remote control so unattended scripts never block.
  * v2.0.11: FEC 错误分布直方图口径与坐标轴修复。
    v2.0.11: FEC error-distribution histogram calibration and axis fixes.
  * v2.0.10: FEC 与渲染噪声组合的统计口径修正; 计算进行中通过程控关窗
    不再被确认框阻塞。
    v2.0.10: corrected FEC statistics with rendered noise; closing the app
    under remote control during a computation is no longer blocked by a
    confirmation dialog.
  * v2.0.9: 修复连续生成眼图偶发崩溃; FEC 与正弦抖动组合的统计修复;
    手册补充正弦抖动章节。
    v2.0.9: fixed an occasional crash on repeated eye generation; FEC with
    sinusoidal jitter corrected; manual gains a sinusoidal-jitter section.
  * v2.0.8: 试用计次自愈 — 因升级异常被清零的试用次数自动一次性返还
    (详见手册 4.7 节)。
    v2.0.8: trial-count self-healing — trial credits wiped by an upgrade
    issue are automatically restored once (see manual section 4.7).

v2.0.7 更新 / Update (2026-08-16)
--------------------------------------------------------------------------------

新功能 / New Features
  * **FEC 前后误码率分析 (选件)**: 在眼图下方直接给出 pre-FEC BER 与纠错后
    结果, 支持 IEEE 802.3dj D3.1 (Annex 174A BLER 方法)、802.3ck、802.3bs
    Cl 119、Cl 91 KR4、Clause 74 BASE-R 火码, 以及 PCIe 6/7/8 的 FLIT FEC。
    Normal 与专家模式都可用: 勾选「FEC 分析」→ 选规范预设 → 眼图下方的
    结果条带实时给出四张指标卡片与错误分布直方图; 拖动判决点即可看到
    FEC 结果跟着变 (长码型可切手动刷新)。分析基于**真实码型逐符号**统计,
    PRBS7 到 PRBS31 全周期均可计算 (PRBS31 为 10.7 亿个符号), 长码型自动
    使用 GPU 加速。可经 SCPI 全程控制: CONF:FEC:* / FETC:FEC? /
    FETC:PIPE:FEC?。该功能为独立选件, 试用期内可正常使用。
    **Pre- and post-FEC BER analysis (option)**: pre-FEC BER and the
    corrected result are shown right below the eye diagram, covering
    IEEE 802.3dj D3.1 (Annex 174A BLER method), 802.3ck, 802.3bs Cl 119,
    Cl 91 KR4, Clause 74 BASE-R fire code and the PCIe 6/7/8 FLIT FEC.
    Available in both Normal and Expert mode: tick "FEC analysis", pick a
    standard preset, and the results strip below the eye shows four metric
    cards plus an error-distribution histogram; drag the decision point and
    the FEC result follows (long patterns can switch to manual refresh).
    Statistics are computed **symbol by symbol on the real pattern** — from
    PRBS7 to a full PRBS31 period (1.07 billion symbols) — with automatic
    GPU acceleration for long patterns. Fully scriptable over SCPI:
    CONF:FEC:* / FETC:FEC? / FETC:PIPE:FEC?. Sold as a separate option and
    usable during the trial period.

改进 / Improvements
  * **在线更新更稳**: 检查更新可以随时关掉窗口停止, 不再出现"点了检查更新
    后长时间没反应、关窗时程序退出"的情况; 网络不通时会给出可操作的提示
    而不是一串英文报错; 下载完成后的解压不再让界面失去响应; 断点续传在
    上次已下完的情况下能正确收尾。升级换装现在会保留 setup_gpu.bat 安装的
    GPU 加速组件, 升级后无需重装。
    **More robust software update**: the check can now be stopped simply by
    closing the window — no more "clicked check, nothing happens for a long
    time, and closing it exits the app"; unreachable-network cases give an
    actionable message instead of a raw error string; extraction after the
    download no longer freezes the window; and a resumed download that was
    already complete now finishes correctly. The in-place upgrade keeps the
    GPU acceleration components installed by setup_gpu.bat, so there is no
    need to reinstall them afterwards.

修复 / Bug Fixes
  * 试用次数在升级前后严格保持不变 —— 既不会被重置为满额, 也不会因为
    机器识别码在不同环境下取值波动而被误判为已用完。
    The trial run count is strictly preserved across an upgrade — it is
    neither reset to the full quota nor mistakenly treated as exhausted
    when the machine fingerprint varies between environments.


v2.0.6 更新 / Update (2026-08-14)
--------------------------------------------------------------------------------

新功能 / New Features
  * 帮助菜单新增「意见反馈」: 直接写文字、Ctrl+V 粘贴或拖入截图即可发给
    作者, 可选留邮箱以便回复 (会记住)。反馈自动附带软件版本、系统版本与
    Host ID / 授权状态 —— 界面上明示且**可以关掉**。
    **作者的回复会回到软件里**: 收到新回复时状态栏提示、帮助菜单「意见
    反馈」后面显示未读数, 打开对话框即可看到完整往来记录。
    也可经 SCPI 收发: SYST:FEED / SYST:FEED:CONT / SYST:FEED:ONL? /
    SYST:FEED:REPL?。
    New "Send Feedback" under Help: type your message, paste or drag in
    screenshots, optionally leave an email (remembered) for a reply.
    Version / OS / Host ID / license status are attached automatically -
    shown in the dialog and switchable off. **Replies come back into the
    app**: a status-bar notice plus an unread badge on the Help menu entry,
    with the full conversation shown in the dialog. Also available over
    SCPI: SYST:FEED / SYST:FEED:CONT / SYST:FEED:ONL? / SYST:FEED:REPL?.

改进 / Improvements
  * 计次口径统一: COM 导入 (含自动优化) 一次**只消耗 1 次**试用计次
    (此前带优化的导入会重复计次); 专家模式运行管线与 Normal 生成同价
    计 1 次; 点击优化按钮前会先检查余量, 没有余量立即提示而不是白跑
    几分钟。授权提示统一带公众号二维码与 Host ID 指引。
    Metering is now consistent: a COM import (including its automatic
    optimizations) consumes exactly one trial run (it could previously
    count several); running an Expert pipeline costs one run, same as a
    Normal eye generation; optimization buttons check the remaining
    balance up front instead of running for minutes and failing at the
    end. License prompts now always show the QR code and Host ID hint.

================================================================================

v2.0.5 更新 / Update (2026-08-13)
--------------------------------------------------------------------------------

改进 / Improvements
  * 试用政策调整: 未激活授权时也可以导出 S 参数处理结果 (级联/去嵌/分割/
    转换/TDR), 每 10 次导出折算消耗 1 次试用计次; 试用计次用完后仍可正常
    计算与查看, 仅导出停用。永久基础授权导出不限次数、不计费。
    Trial policy update: S-parameter results (cascade / de-embed / split /
    convert / TDR) can now be exported without a license key, metered at
    10 exports per trial run. When trial runs are exhausted, computing and
    viewing still work; only exporting stops. A permanent base license
    exports without limits or metering.
  * 远程控制 (SCPI) 的结果保存命令与图形界面使用相同的导出计费规则。
    SCPI result-save commands follow the same export metering as the GUI.

================================================================================

v2.0.4 更新 / Update (2026-08-13)
--------------------------------------------------------------------------------

改进 / Improvements
  * 授权绑定增强: Host ID 由 CPU 型号级升级为机器级 (掺入主板标识),
    同型号 CPU 的不同电脑不再共享同一 Host ID。已有试用次数在升级后
    原样保留; 此前版本激活过的授权 Key 需按新 Host ID 重新签发
    (在「帮助 → 授权管理」查看新 Host ID 后联系获取)。
    License binding hardened: the Host ID is now machine-level (board
    identity mixed in) instead of CPU-model-level, so different PCs with
    the same CPU model no longer share a Host ID. Existing trial counts
    are preserved across the upgrade; license keys activated on earlier
    versions must be re-issued for the new Host ID (see Help → License
    Management for the new Host ID).
  * 软件更新安装过程更稳: 文件替换失败自动重试; 更新过程记录日志
    (%TEMP%\\rea_update_log.txt) 便于排障; 更新前自动结束后台计算进程,
    避免文件占用导致替换失败。
    Software-update installation is more robust: file replacement retries
    automatically, the update process writes a log for troubleshooting,
    and background compute processes are stopped before swapping files.

================================================================================

v2.0.3 更新 / Update (2026-08-12)
--------------------------------------------------------------------------------

修复 / Fixes
  * 专家模式正弦抖动 (SJ) 参数此前没有频率输入框, 且填入的值不生效:
    现为「频率 (MHz) + 幅度 (UI)」成对编辑, 与普通模式抖动面板一致;
    对应 SCPI 参数改用 freq:amp 成对语法。
    Expert-mode sinusoidal jitter (SJ) previously had no frequency input
    and entered values silently had no effect: it is now edited as
    frequency (MHz) + amplitude (UI) pairs, matching the Normal-mode
    jitter panel; the corresponding SCPI parameter uses freq:amp pairs.
  * 普通模式抖动面板设置的 SJ 频率单位换算错误 (实际注入频率被放大),
    现与 SCPI / 引擎完全一致。
    The SJ frequency set from the Normal-mode jitter panel used a wrong
    unit conversion (the injected frequency was scaled up); it now matches
    SCPI / engine exactly.
  * 演示配置在其他电脑上导入后反复弹出「无法加载码型文件」且无法消除:
    演示配置不再携带绝对路径; 码型文件缺失时不再弹窗阻塞, 自动回退
    PRBS7 并在界面上以红字提示; 残留的自定义码型不再影响 PRBS 码型的
    眼图结果。
    Importing a demo configuration on another PC could repeatedly pop
    "cannot load pattern file" with no way to clear it: demo configs no
    longer carry absolute paths; a missing pattern file no longer blocks
    with a dialog — the pattern falls back to PRBS7 with a red hint; and
    leftover custom pattern bits no longer affect PRBS eye results.

================================================================================

v2.0.2 更新 / Update (2026-08-12)
--------------------------------------------------------------------------------

修复 / Fixes
  * 软件更新在装有本地代理 (VPN / 加速器) 的电脑上会极慢甚至超时: 现在
    检查与下载一律先直连下载站, 仅在直连不可用时才回落系统代理; 并加入
    自动重试 (下载重试自动从断点继续)。实测同一台机器由 ~50 KB/s 提升
    到 3.8 MB/s。检查失败时按钮变为「重试检查」。
    Software update could be extremely slow or time out on machines with a
    local proxy (VPN / accelerator) configured: checks and downloads now go
    direct to the download site first and only fall back to the system proxy
    when a direct connection is unavailable, with automatic retries (download
    retries resume from where they stopped). Measured on the same machine:
    ~50 KB/s -> 3.8 MB/s. A failed check now offers "Retry Check".

================================================================================

v2.0.1 更新 / Update (2026-08-12)
--------------------------------------------------------------------------------

新功能 / New Features
  * 软件更新: 帮助菜单新增「检查更新…」— 一键检查官方下载站最新版本,
    断点续传下载 (中断后从断点继续), 确认后自动完成文件替换并重新启动。
    Software update: new "Check for Updates…" under Help — checks the
    official download site, downloads with resumable transfer, then swaps
    files and restarts automatically after confirmation.

界面 / User Interface
  * S 参数工具窗 (TDR / 史密斯 / 级联 / 去嵌 / 分割 / 转换) 全面翻新:
    绘图工具栏与显示选择合并为一条控制带; 计算 / 预览 / 导出固定在左栏
    底部随时可点; 未出图时给出引导提示; 图表刻度 / 网格 / 图例观感统一。
    The S-parameter tool windows are refreshed: a unified plot control
    strip, pinned Calculate / Preview / Export actions, an empty-state
    hint before the first plot, and consistent chart styling.
  * 界面语言切换即时生效范围扩大: 所有悬停提示与面板文本随语言切换
    立即更新, 无需重开窗口。
    Live language switching now also updates all tooltips and panel
    texts immediately — no window reopen needed.

文档 / Documentation
  * 操作手册与快速入门指南全部截图按新界面重拍 (中英双语)。
    All manual and quick-start screenshots re-captured for the new UI
    (both languages).

================================================================================

v2.0.0 更新 / Update (2026-08-11)
--------------------------------------------------------------------------------

行为改进 / Behavior Improvements
  * CTLE 自动优化三方复核: 优化收尾以实际部署链路比较 优化增益 / 旁路 /
    原增益, 取真实 COM 最优者落地 — 旁路更优 (如极点预设与速率不匹配) 时
    自动关闭 CTLE 并提示; 原增益更优时保留原增益, 优化永不降质。远程控制
    以 SCPI 事件码 +301 上报; GUI 优化全程界面不再阻塞 (后台裁决)。
    CTLE auto-optimize now finishes with a three-way deployed-link check
    (optimized gains / bypass / previous gains) and keeps the true COM
    winner: bypass wins auto-disable CTLE with a notice; previous-gains
    wins keep them, so optimization never degrades the link. Reported via
    SCPI event +301; the GUI stays responsive throughout (background
    adjudication).
  * 装载 S 参数时按实测因果健康度自动开/关「因果性重建」, 事件码 +303 上报;
    手动设置或 COM 导入的因果配置优先, *RST 复位自动控制。
    Causality reconstruction is now auto-enabled/reverted on S-parameter
    load based on measured causality health (SCPI event +303); manual
    settings and COM-import configuration take priority until *RST.
  * SYST:HW:RAM 0 (auto) 现在完整还原内存预算默认值 (此前残留上次自定义
    值); SCPI 修改硬件资源设定即时刷新 GUI 菜单显示。
    SYST:HW:RAM 0 (auto) now fully restores the default memory budget
    (previously a stale custom value could linger); hardware-resource
    changes via SCPI refresh the GUI menu immediately.

稳定性 / Stability
  * 修复长时间 CPU 优化在远程控制下被提前截断返回陈旧结果的问题
    (阻塞式优化命令现完整等待)。
    Fixed long CPU optimizations being silently truncated under remote
    control (blocking optimize commands now wait to completion).
  * 修复场景切换后 GPU 批量评分偶发失败导致优化中止的问题 (现自动回退
    CPU 评分, 结果一致)。
    Fixed occasional GPU batch-scoring failure aborting optimization
    after scenario switches (now falls back to CPU scoring, identical
    results).

v2.0.0 (2026-08-10)
--------------------------------------------------------------------------------

新功能 / New Features
  * Expert 模式 (FlexDCA 风格管线设计器): 自由搭建 Source → S 参数 → 均衡器
    → 探针的信号链, 多探针眼图对比; 与 Normal 模式完全独立, 一键
    「复制 Normal 配置到 Expert」快速起步。
    Expert mode: FlexDCA-style re-orderable pipeline designer with
    multi-probe eye comparison, fully independent from Normal mode with a
    one-click "Copy Normal Config to Expert" starting point.
  * 光链路仿真: EO / Fiber / OE 模块, 光眼图, TDECQ (IEEE 802.3 参考接收机,
    含 802.3dj D3.1 预设), O-COM 光路 COM 扩展。
    Optical link simulation: EO / Fiber / OE blocks, optical eye, TDECQ
    per IEEE 802.3 (incl. 802.3dj D3.1 presets), O-COM extension.
  * s2p / s3p / s4p 任意混合级联: 每类文件独立端口配置, 全部优化器支持。
    Heterogeneous s2p/s3p/s4p cascading in any order with per-type port
    configuration, supported by all optimizers.
  * COM 噪声预算 → 眼图映射: η₀/σ_N/A_DD/SNR_TX/σ_RJ 注入显示眼,
    SNR_REA 与 SNDR_93A 收敛。
    COM noise budget mapped into the rendered eye.
  * TDECQ 眼图输出选择: 滤波后 / 均衡后 / 两者。
    TDECQ eye output selection: filtered / equalized / both.
  * TDR / 级联 / 去嵌 / Split / Smith 图与 PLTS 对齐。
    TDR / cascade / de-embed / split / Smith aligned with Keysight PLTS.
  * PCIe Gen1-7 / USB / 802.3 全代际预设; COM 结果一键导入 (CSV + Excel)。
    PCIe Gen1-7 / USB / 802.3 presets; one-click COM import (CSV + Excel).
  * GPU (CUDA) 加速对所有用户免费开放。
    GPU (CUDA) acceleration free for all users.
  * TDECQ 分析引擎深度优化: SSPRQ 全长码型 (65535 符号) 场景 CPU 提速
    约 2 倍, 开启 CUDA 后至多 7 倍且结果与 CPU 完全一致; TDECQ 内的
    GPU 用量严格跟随全局 CUDA 开关。
    Deeply optimized TDECQ engine: ~2x faster on CPU and up to 7x
    with CUDA on full-length SSPRQ patterns (65,535 symbols), with
    GPU results identical to the CPU path; GPU usage inside TDECQ
    strictly follows the global CUDA switch.
  * 完整 SCPI 远程控制 (450+ 命令, GUI 双向同步), 中英双语界面与手册。
    Full SCPI remote control (450+ commands, GUI-synced); bilingual
    UI and manuals (Chinese / English).

可靠性 / Reliability
  * 全局异常防护与诊断日志 (%LOCALAPPDATA%\RapidEyeAnalysis\logs);
    帮助菜单一键打开日志目录。
    Global crash guard with rotating diagnostic logs; one-click log
    folder access from the Help menu.
  * 计算进行中关闭窗口前确认, 后台任务安全停止。
    Confirmation before closing while computations are running.
  * 封装模型 / 时域加门 / 串扰文件异常不再静默降级, 均显式提示。
    Package model / time gating / crosstalk file failures are reported
    explicitly instead of silently degrading results.
  * 计算引擎运行在隔离工作进程中 (覆盖电链路、光链路与 TDECQ 执行):
    长时间无人值守自动化更稳定, 计算异常自动恢复且不影响主程序与
    远程控制连接。
    Compute engine runs in an isolated worker process (covering
    electrical, optical and TDECQ execution): long unattended
    automation runs are more robust, and compute faults recover
    automatically without affecting the main application or the
    remote-control connection.
  * 长时间远程控制事务 (数十分钟级计算) 期间连接始终保持, 不再被
    空闲超时误断。
    Remote-control connections stay alive through long-running
    transactions (tens of minutes of computation) instead of being
    dropped by the idle timeout.

说明 / Notes
  * 绿色部署: 整个目录复制到目标机器 (Windows x64) 即可直接运行, 无需安装
    任何依赖; GPU 加速按需双击 setup_gpu.bat 一键安装 (需 NVIDIA 驱动)。
    Portable deployment: copy the folder to the target machine
    (Windows x64) and run — no prerequisites; enable GPU acceleration
    on demand via setup_gpu.bat (NVIDIA driver required).
  * 随附 demo/ 演示数据: 示例 S 参数、COM 导入模板、场景配置与 SCPI 脚本,
    与操作手册第 3 章快速入门逐步对照。
    Bundled demo/ data set: sample S-parameters, COM import templates,
    scenario configs and an SCPI script, matching the manual's Chapter 3
    quick-start walkthrough.
  * 试用版提供 500 次眼图生成; 永久授权请联系销售。
    Trial edition provides 500 eye-diagram generations; contact sales
    for permanent licensing.
  * 详细操作说明见 帮助 → 操作手册 (中/英)。
    See Help → Manual for the full user guide (Chinese / English).
================================================================================
