Release v0.34.33 - "Facsimile"
Release Date: August 15, 2026
Named for what this release found: files that were present, committed, and
unreadable. Model metadata had been added to version control back in February, but
stored as Git LFS pointers — so any checkout without LFS got a stand-in for the
file rather than the file, and the machine-learning code quietly fell back to defaults
instead of failing.
Bug Fixes
- Model metadata that live loaders require is now committed
MBA-1449
— a repo-wide
*.json ignore rule was excluding metadata that sits
beside tracked model artifacts, so a fresh clone received a model without the
information needed to run it. Seven files are now tracked, each verified load-bearing
by finding the code that reads it: two are required for the model to load at all, and
five supply the feature names used to order the inputs handed to the scaler —
without which predictions are silently computed on mis-ordered columns rather than
raising an error. Training reports in the same directories have no runtime reader and
remain untracked.
- Load-bearing metadata is no longer stored as Git LFS pointers
MBA-1449
— tracking the files turned out not to be enough. They were being routed into
LFS, so a checkout without LFS wrote pointer text to those paths; parsing then failed,
and every loader swallowed the error. This meant an earlier fix from February had
never worked in the situation it was written for: the file it addressed was committed,
but committed as a pointer. Twelve files now store real content, verified by checking
out the repository with LFS deliberately disabled — what a continuous-integration
runner without LFS sees.
Documentation
- Recorded that Lambda subnets must be added to the fck-nat security
group — a route to the NAT instance is not sufficient for outbound
traffic; the instance's own security group lists permitted subnets explicitly, and a
subnet that is routed but unlisted has its traffic dropped rather than rejected, so
connections hang for the full 30-second function timeout instead of failing fast.
Testing
- 26 new tests assert the pairing — a tracked model artifact must not
have untracked metadata — that each file carries the keys its loader actually
reads, and that the committed blob parses as JSON rather than trusting the working
copy. The working copy looked correct throughout, which is exactly why the earlier fix
appeared to succeed.
← All Releases