Skip to content

v0.10.1 — the gates that never ran

Latest

Choose a tag to compare

@xr843 xr843 released this 17 Jul 04:06

Patch release. Three defects present in v0.10.0 are fixed, along with the gates that should have caught them.

Fixed — shipped in v0.10.0

  • The SessionStart hook hung on every Unix plugin install. hooks/run-hook.cmd ran exec bash "$0" "$@", where $0 is the wrapper itself. The file has no shebang, so the calling shell interprets it and re-execs the same file forever. hooks.json mounts it with "async": false, so every startup, clear and compact blocked until the harness hook timeout, and 2>/dev/null swallowed any sign of it. If you install this plugin on Linux or macOS, this is the reason to upgrade.
  • The anti-fabrication citation check was blind to ids touching Chinese text. \b does not exist between 一 and T — Python's \w covers CJK — so 【《伪造经》卷一T99n9999】 parsed as containing no id and the whole citation block was skipped. The check only fired when an id happened to follow a comma or , which is precisely not the case when a model has drifted off the citation format.
  • Failed hooks reported success on Windows. exit /b %ERRORLEVEL% inside a parenthesized block expands at parse time, freezing to the value from before the loop.

Fixed — gates reporting green without running

  • CI ran pytest scripts/tests/, an explicit path that overrode pytest.ini's testpaths = tests. The suites were disjoint: CI never ran tests/, a bare pytest never ran scripts/tests/. Both now run both — 361 tests, up from 114 in CI.
  • tests/test_voice_rules.py globbed the wrong path for voice.md, so every case was parametrized over an empty set and skipped — asserting nothing while reporting green. Running it for the first time showed six masters had drifted to a different section header; their content was already correct and the headers are normalized. An empty set now fails instead of skipping.
  • Nothing exercised run-hook.cmd on any platform. It now has suites for both the Unix dispatch (bash and POSIX sh) and the cmd.exe exit-code path.
  • tools/sync_skill_from_voice.py is removed: it served the pre-v0.3 PART B architecture, globbed an empty list, and --verify returned 0 without checking anything.

Also in this release

Complete catalog-driven distribution across all 19 public skills, source-family-neutral citation contracts (CBETA, BDRC/Toh, SuttaCentral/PTS), and Python 3.9 compatibility, strict lore validation, cargo fmt/clippy and locked Rust builds as hard CI gates. See the changelog for the full list.

Install

npx master-skill@0.10.1 install --all

Full changelog: v0.10.0...v0.10.1