Repository navigation
v1.9.3 - pattern-sweep closeout
What's in this release
Closeout sweep of the 15 round-5 review findings deferred from v1.9.2. This is the polish-and-completeness release that pays down the sibling-site patterns the v1.9.2 review cycle kept surfacing.
What this release closes
- Envelope pattern at remaining
$(zh_graphql ...)sites includingcmd_subissue_add/removepre-validation lookups. Every mutation call in zh now uses the fail-soft2>"$_err" || var=""pattern. stderr_plainsurfacing across ~30 MCP wrapper return dicts. ANSI-clean stderr now reaches the caller.- Noop overstate fix on
_planning_add/remove_children. No longer reportsadded=[child1, child2]when actually nothing was attached. partial_appliedparity onclose_issue/reopen_issue(now matches the_planning_*family).duplicate_checkplaceholder on validation early-returns increate_issueand_planning_create. Shape parity across success and validation paths.- OSC ST handling in the pure-bash
zh_cause_hintfallback. The naive${var//${BASH_REMATCH[0]}/}approach hits a glob-escape infinite loop when the match contains a literal backslash. Fix: normalize ESC\to BEL up front via a literal-scalar substitution, then the existing BEL OSC regex catches every OSC sequence whether originally BEL- or ST-terminated. rm -fhardening at 6 cmd_create cleanup sites (2>/dev/null || trueto survive read-only TMPDIR on CI).- PATH allowlist in
tests/_bash_runner.pyaccommodates developers on Nix profiles, asdf shims, conda, or homebrew arm64. ZH_REST_TOKENenv-leak production-sourced regression test added._SET_TYPE_EXIT_2_SNIPPETlegacy parallel-snippet migrated to a production-sourced test, completing the v1.9.2 architecture migration.subissue_reorderparentalias (cross-tool consistency:parent_numberstays for back-compat,parentadded to match thesubissue_*_childrenfamily)._safe_intbool guard (asymmetry fix; bool now resolves to int(bool) not the default).monkeypatchintest_round4_f4(replaces the manual try/finallyos.environmutation).
Tests
513 passing (baseline 501 at v1.9.2). One review round converged with no HIGH or MEDIUM findings; 7 LOW/INFO polish items captured for a v1.9.4 backlog (sentinel-fallback hardening edge case, unanchored regex tightening, 8-bit OSC ST coverage, test env-dep cleanup, doc alignment).
v1.9.x release summary
The v1.9.x line is the issue-type + sub-issue model migration, plus the test-architecture refactor that ended the parallel-snippet drift problem:
- v1.9.0: 5-level issue-type + sub-issue model, full CRUD across Initiative / Project / Epic / [Bug/Feature/Task] / Sub-task.
- v1.9.1: closeout sweep of v1.9.0 deferred items.
- v1.9.2: test-architecture refactor (production-sourcing harness replaces parallel snippets).
- v1.9.3 (this release): pattern-sweep closeout of v1.9.2 round-5 findings.
Full Changelog: v1.9.2...v1.9.3