What's Changed
- fix(load): strip the deferred atinit marker on both branches by @ss-o in #507
- docs(contributing): document release authorization and repair the fences by @ss-o in #508
- fix(init): complete home preparation and keep it retryable by @ss-o in #509
- fix(load): resolve disk-ices by object type and real snippet paths by @ss-o in #510
- fix(load): consume blank before-load hook replacements by @ss-o in #512
- fix(package): parse manifests by key name and decode JSON escapes by @ss-o in #514
- docs(review): add zi review guidance and refresh contract evidence by @ss-o in #516
- fix(package): address outstanding parser review findings by @ss-o in #517
- feat(package): add the package manifest contract and its validator by @ss-o in #520
- fix(snippets): preserve update success and annex hook failure status by @ss-o in #521
- fix(snippets): preserve URL and SVN pre-update hook failure status by @ss-o in #523
- fix(ice): stop tokenizing at a no-value ice name followed by text by @ss-o in #527
- fix(pack): schedule a service profile on the first install by @ss-o in #529
- ci(zd): advance the ZD integration pin to the annex status fix by @ss-o in #539
- ci(evidence): refresh four stale consumer pins by @ss-o in #540
- chore(docs): add .prettierrc with proseWrap never by @ss-o in #541
- fix(pack): queue a service only for a load that was deferred by @ss-o in #533
- fix(package): read the legacy zplugin-ices manifest key by @ss-o in #545
- test(package): resolve every published manifest offline through the reader by @ss-o in #551
- test(ci): guard that every focused test is a registered job by @ss-o in #550
- ci(promotion): exercise real install, update, unload, and delete paths by @ss-o in #552
- test(package): check the fixture inventory and isolate the child environment by @ss-o in #558
- chore: promote next to main by @ss-o in #528
Full Changelog: v2.1.0...v2.2.0