v0.12.0
Optimising compiler — roadmap §4.3 (Bytes-ids, the rewrite half).
Added
-
redstart fix --ids— the W040 autofix. Turns theString→Bytesid
lint into an opt-in, in-place rewrite: it flips the entity's schema declaration
toId<Bytes>and drops the.toHexString()at every construction site, in
one coordinated pass across all modules. ABytesid indexes ~28% faster and
stores ~48% less than the equivalent hex-string id (Edge & Node benchmark).Conservative by construction — an entity is converted only when every one of
its id sites (in handlers, functions andtestblocks) is provably a single
stringifiedBytes/Addressvalue. A single literal-string id, composite key,
or id built via an intermediate local and the whole entity is left untouched and
reported (⤫ Entity skipped: …), so the command never emits code that fails to
check. It re-verifies the result and refuses to leave a broken tree.--dry-runpreviews the plan without writing. Because aBytesid changes the
stored id representation (hex-string → raw bytes), this is a deliberate data
change — hence opt-in — so redeploy affected subgraphs from the relevant block.
redstart explain W040now points at the fixer.