Three things that would have rotted:
- The downgrade tests hard-coded 3 as "a future schema". The day the real
schema becomes 3 they would still pass while testing nothing, which is
exactly when they are needed. Both now derive from this build's own
schemaVersion. The message-rendering test deliberately keeps unrelated fixed
numbers (7 and 6), so a wrong substitution shows up.
- Reading schemaVersion left an OffbandDatabase open for the whole file, and
drift warns when two instances of one class are live. The probe moved into
setUpAll and is closed immediately, because warnings in test output are how
real ones get missed.
- The temp-directory cleanup threw a PathAccessException when the test failed,
since a failure leaves the database open and Windows keeps the file locked.
That replaced the actual failure with a cleanup error. Now swallowed.
Verified both downgrade tests fail when the `from > to` throw is disabled, and
that the three upgrade-direction guards stay green, so the group is pinned to
the behaviour it claims and not to the code's shape.
Task: meshcore-open-3e1
Agent Mail: TealGlen
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>