#98 branch)
PR #98 was merged while its branch kept receiving work; these are the
orphaned improvements, re-applied onto main as one change:
- il migration generate/apply/revert/status: il owns the migration
vocabulary (helm repo pattern); the delegation layer translates each
verb to the Python tool's subcommand, so 'il migrate migrate' never
exists. Leaf commands pass --help and flags through. Integration
tests pin translation, passthrough, exit-code propagation, and the
missing-tool hint (7 tests).
- Review hardening (adversarial review findings): install scans deploy
and pin results for the engine's soft errors ('Insert rejected',
'Failed to register schema', ...) and verifies the pack_meta pin with
a read-back query; cache writes are staged and renamed with digest
files, cache hits digest-checked (republished versions refetch);
auth token only sent to GitHub hosts or the index host; registry
names/versions charset-validated; HTTP timeout; unsolicited WS error
frames skipped; scheme-less --server defaults to ws://; il list only
reports 'no managed installs' for unknown-relation errors.
- ASCII-only output throughout.
What happened
#98 was merged at 2026-08-19 16:08 while its branch kept receiving work afterward: the il migration vocabulary, its integration tests, and the adversarial-review blocker fixes were pushed to the closed PR's branch and never reached main. This PR re-applies exactly that orphaned work onto main (verbatim file states from the branch tip; branch diff vs main confirmed to be only these files).
Contents
Tested
build/clippy/fmt/doc clean; delegation suite 7/7; the hardened install flow was verified live against a running engine and the real registry (install, pin read-back, list, digest-checked cache hit).
Merge order
Merge together with (or immediately before) #101, whose docs teach 'il migration ' - the delegation lives here.