Repository navigation
VECTOR 0.3.2: saved projects survive a power cycle - #1537
Merged
Merged
Conversation
…age 428d970a, recipe pins Co-Authored-By: Claude <noreply@anthropic.com>
… boots); hardware record names the shipped package Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
VECTOR
0.3.2-experimental. Related to #1533 and #596.What was wrong. VECTOR keeps its settings in the Part. Up to 0.3.1 it stored SPAN in the top four bits of one byte, so SPAN 8 to 12 (the default is 12) gave a byte of 0x80 or more. Stock's Part check counts that as a value to repair, and at power-on the battery restore then drops the whole bank: every track reads STATIC and the trigs are gone. VECTOR's wrapper around the check (0.2.4) only helps while VECTOR is registered. Over USB the base restores the battery copies before the kept modules are back, so every USB user with a VECTOR track at its defaults was hit. The same happened on a unit without VECTOR, and on a track switched back to STATIC or FLEX (#596).
What changes.
vector_packkeeps every byte below 0x80: SPAN's top bit moves to a free bit of the neighbouring byte. A saved project now loads with or without VECTOR, on the stock OS too.vector_unpackreads both forms, so settings from every earlier version keep their values. The marker staysS2/2.428d970a…, 18,334 bytes); the declared lag at 0.2.5 is gone. Card packages rebuilt in the pinned toolchain.Compatibility. No new hook, site or claim;
modules:compatis unchanged. Going back to 0.3.1 or older reads SPAN 8 to 12 saved by 0.3.2 as 0 to 4. Source and media: no new files, nothing from firmware.How I checked it (details in TESTING.md):
… 0c c0; after a restart every track was STATIC and T1's and T2's trigs were gone; a second restart without saving brought the bank back with the byte repaired to00. With this package SPAN 12 reads… 4b 40and the second page shows 12; after a restart the bank, the trigs and the bytes were unchanged.ot_emu, a base with no VECTOR installed, stock's check called on the live Part: 0.3.1's default bytes return 1, 0.3.2's return 0 at the defaults and with every control at its maximum.ot_emu, the new USB package installed: 0.3.1 bytes planted in two Parts were rewritten in the bank and the battery copy, and the check returned 0.test_engine.cunder ASan/UBSan, also in the toolchain image; it fails on 0.3.1'sengine.c.npm run module:doctor -- vectorgreen,npm run pr:ready: Ready.Not tested. On the unit the restarts were RAM boots with the track switched back to FLEX and the settings left in place, because a trial cannot roll back while a track names VECTOR. A restart with the track still set to VECTOR under 0.3.2, a power cycle with 0.3.2 kept on the flashed base, the rewrite of old settings on a unit (emulator only), PROJECT > RELOAD as the recovery and the card build were not run.
Not covered. Saved Parts keep the old byte until the Part is saved again. A track switched from VECTOR back to STATIC or FLEX with an older version and SPAN 8 or higher is not repaired, because VECTOR no longer knows it.
Guides: the persistence section of
docs/ADD_A_MODULE.mddid not say that every byte a module stores in a Part must pass stock's check without the module, because the check runs at boot before the modules are back. Fixed in #1538.docs/module-guides/, and TESTING.md lists what I did not test.🤖 Generated with Claude Code