Skip to content

v0.2.6

Latest

Choose a tag to compare

@xxin0816 xxin0816 released this 11 Sep 13:22

wave-mcp v0.2.6

0.2.6 修好了两件影响面最大的事:从 PyPI 安装的用户终于能用 FSDB,viewer 和
分析工具对写错的参数给出明确指示,而不是假装功能不可用。

修复

  • 从 PyPI 安装后 FSDB 不可用的问题修好了。 FSDB 支持从 0.2.0 起就写在
    文档里,但它依赖的 fsdb2fst 转换器需要在本地按需编译,而转换器源码和构建
    脚本一直没进包,pip 用户的自动构建没有任何东西可编,实际用不了。现在
    third_party/fsdb2fst/ 的源码和 deploy/build_fsdb2fst.sh 随 wheel 和
    sdist 一起分发,配好 VERDI_HOME 后首次转换自动编译(约十几秒),之后走
    缓存。离线包同样带源码。
  • viewer 参数写错现在有明确报错。 以前 cursor: {"time_units": 1} 这类
    写法会得到一句含义模糊的 available: false,看起来像服务坏了;现在是
    status: errorerror_type: invalid_argument,带上出错的参数名、
    修正建议(did_you_mean)和正确写法示例。available: false 只保留给
    功能确实不可用的场景(缺资产、surver 起不来)。
  • 时间格式严格校验。 时间必须是整数加可选单位("1523400"
    "1523400ps"),后缀与单位冲突、未知单位、小数都会直接报错;以前会被
    静默丢弃,视图打开后既没有光标也没有提示。
  • 命令生成失败不再静默。 打开或更新视图时若有命令没能生成,返回值里带
    warnings 列表说明丢了什么、为什么。
  • 打开失败不再泄漏 surver 进程,surver 启动失败时把它的 stderr 最后几行
    带回错误信息里。
  • 空值与极端时间不再破坏 guard 判定。 时间超出波形最后一次跳变时 FST
    取值为空,分支 guard 会崩溃或给出错误结论;现在空值按未知处理,判定保持
    不确定,active_drivers 继续可用。超出 64 位 FST 范围的时间返回结构化
    错误,不再是裸 OverflowError

变更

  • signal_fanin 返回边界网络的直接对端。 对没有模块内扇入记录的边界
    网络(结构体端口、聚合总线、子模块输出),以前会挑任意一个对端往下钻几层,
    结果既与 signal_connectivity 的层次不一致,也漏掉其他分支。现在直接模式
    返回全部直接相连的对端端口,transitive: true 展开每个对端背后的锥;
    fan_in 成为 connectivity 的严格子集。需要源码位置的场景继续用
    signal_drivers

下载

  • 主包(PyPI):pip install wave-mcp==0.2.6,或下载下方的 wheel 与 sdist。
  • 离线包两档:glibc2.28glibc2.17(CentOS 7 等老机器)。自带独立
    Python 与全部依赖,目标机解包跑 install.sh 即可,不联网、不编译。
    注意离线包不含 viewer 资产,需要波形查看的用户按下方说明另装。
  • viewer 资产 0.25.6.post1:修复了 0.25.6 漏发内嵌字体许可文本的问题
    (OFL-1.1、Ubuntu font、Hack 等五份文本现随包附带)。PyPI 上是可供
    pip install wave-mcp[viewer] 使用的瘦身版;需要完整源码材料(审计或
    镜像场景)的用户下载下方的 +materials 全量 wheel。
  • SHA256SUMS.txt 覆盖以上全部文件。

wave-mcp v0.2.6 (English)

0.2.6 fixes the two issues with the widest impact: FSDB now works for
installations from PyPI, and the viewer and analysis tools point at the actual
mistake when a parameter is wrong instead of reporting a feature outage.

Fixed

  • FSDB was unreachable for anyone who installed from PyPI. The fsdb2fst
    converter is built on demand, but its sources and build script were never
    packaged, so the automatic build had nothing to compile. The converter
    sources and deploy/build_fsdb2fst.sh now ship in the wheel and the sdist;
    set VERDI_HOME and the first conversion compiles automatically (a few
    seconds), then caches. The offline bundles carry the sources too.
  • Viewer parameter mistakes return structured errors. A cursor written as
    {"time_units": 1} used to answer with a vague available: false, as if
    the feature were broken. It now returns status: error with
    error_type: invalid_argument, the failing parameter, a did_you_mean
    suggestion and an example of the right shape. available: false is
    reserved for the feature itself being unavailable.
  • Time strings are validated strictly. Integer digits with an optional
    unit suffix ("1523400", "1523400ps"); conflicting suffixes, unknown
    units and fractional values are errors instead of being dropped silently.
  • Dropped commands are reported. Opening or updating a view surfaces a
    warnings list when a command cannot be generated.
  • A failed viewer open no longer leaks a surver process, and surver
    startup failures now include the last lines of its stderr.
  • Empty values and extreme times no longer break guard evaluation. When a
    time lies past the dump's last change, FST lookups return empty; guards now
    treat that as unknown instead of crashing or answering confidently, and a
    time beyond the 64-bit FST range returns a structured error.

Changed

  • signal_fanin reports every direct peer of a boundary net. A net
    without a module-local fan-in record (a struct port, an aggregated bus, a
    sub-module output) used to resolve to the internal fan-in of one arbitrary
    peer; direct mode now returns all directly connected peer ports and
    transitive: true expands the cone behind each. fan_in is now a strict
    subset of connectivity. Use signal_drivers when you need source
    locations.

Downloads

  • Main package (PyPI): pip install wave-mcp==0.2.6, or the wheel and sdist
    below.
  • Offline bundles: glibc2.28 and glibc2.17 (CentOS 7 class hosts).
    Self-contained Python and dependencies, no network or compiler needed:
    unpack and run install.sh. They do not include viewer assets; install
    those separately as described below.
  • Viewer assets 0.25.6.post1: fixes the embedded font license texts that
    0.25.6 shipped without (five texts, including OFL-1.1, Ubuntu font and
    Hack). The slim wheel on PyPI serves pip install wave-mcp[viewer]; the
    +materials wheel below carries the complete source material set for
    audit and mirroring.
  • SHA256SUMS.txt covers all of the above.