Zi v2.0.0 is the breaking milestone release from the reviewed next to
main promotion in #467.
Breaking change: message output
The message-output contract was rebuilt in
#457:
- safe automatic formatting is now the default
- normal messages end with a line feed unless
-nis requested +zi-progressowns carriage-return progress rendering- dynamic or raw text should use literal mode and
-- - invalid options and descriptors return status 2
- contextual recognition is opt-in
Custom callers that depend on exact bytes, newlines, progress rendering, or
file-descriptor behavior should follow the updated
message API guide.
Security
- Stage archive extraction and reject traversal and unsafe symlink members
(#441). - Reject unsafe symlinks in GitHub directory snippets
(#439).
Features and reliability
- Add transactional sparse Git support for GitHub
/trunk/directory
snippets while retaining SVN for other hosts
(#443). - Make parallel updates deterministic
(#453). - Persist Plugin Standard callbacks by effective plugin ID
(#454). - Track and remove plugin-owned hook callbacks
(#459). - Preserve system
MANPATHentries
(#460). - Stop the scheduler timer when no work remains
(#466).
Validation
The promotion passed 135 pull-request checks and all post-merge main
workflows. Coverage included the full Zsh syntax and behavior matrix, exact
candidate clean startup, ZD compatibility and five integration suites, Trunk,
CodeQL, public-contract impact, and downstream consumer review.
Full comparison: v1.1.0...v2.0.0