Appearance
version 9
done
- locked givens (read-only flag, lock/unlock toggle in UI)
- test with bottom drawer height in two drawer cabinet
- hide children boolean
- rename GivenEntry as Portable_Given
- rename serialized field
constants→givensin Portable_Scene - bump CURRENT_VERSION to '9'
- migration step:
v < 9renamesconstants→givens - migration tests (4 passing)
- drop underscores — store spaces everywhere
- idempotent
_→migration (SO names, given names, formula strings) before early return -
merge_refsjoins with space instead of underscore -
merge_refsadded toCompiler.compile()andAttribute.deserialize() - removed forced
replace(/ /g, '_')from Engine.ts and P_Givens.svelte - underscore migration tests (4 passing, 8 total)
- auto remove
_from file names (saving + library display)
rename constants as givens
the givens rename landed — constants → givens everywhere. migration chain works: v5 standard_dimensions → v6 constants → v9 givens. bundled .di files still say constants and that's fine, the migrator handles it.
drop underscores
underscores gone from SO names, given names, and formulas. spaces stored directly. merge_refs handles multi-word name resolution in formulas. migration is idempotent (replace(/_/g, ' ') is a no-op on already-spaced data), runs before the version-gated early return so it cleans every load.