V0.38.0
Setting up your dashboard 0 entities found · 4/8 branches scanned
Name:v0.38.0Status:complete

v0.38.0 — Rune transform consolidation

Across 121 runes, transform() is 3,955 lines. A measurable share of that is not logic — it is dead code, guards that guard nothing, and the same four gestures retyped. Separately, the declarative content model already states more about a rune's authoring syntax than any tool surfaces, and one field of it silently eats authored content.

This milestone removes what is provably inert, names the idioms that are merely repetitive, and closes the two gaps where a declaration exists and does not reach either the author or the runtime.

Not enough history yet — burndown needs at least one completed day of activity.

Progress 0/2 work items
Related 15

Work Items

Draft 1
WORK-605 main
playlist adopts field-level emitTag, keeping a minimal inheritance pass
With WORK-604 landed, playlist's tracks field can declare emitTag: 'track' and receive one homogeneous, document-ordered array instead of a mix of list nodes and track tags.That deletes the interleaving machinery at plugins/media/src/tags/playlist.ts:316-353 — the listCursor consuming tracksData by list length, and the defensive tail for "a shape the resolver collected but this loop did not recognise".It does not delete adoptNestedTrack. See below.
medium moderate
0/8 criteria
Ready 1
WORK-607 main
plan migrate ids treats an ID present on the base ref as fixed
runMigrateIds sorts colliding claimants by path and keeps the first (plugins/plan/src/commands/migrate-ids.ts:165), so on a branch it can renumber the entity already on main and leave the local draft holding the ID.The safety argument in the code — that it only acts when nothing references the ID — rests on a check that reads plan files only (migrate-ids.ts:170-182). Plan IDs are referenced from four published CHANGELOGs (runes 130, transform 120, lumina 80, content 51), where a renumber is permanent and invisible.
medium simple
0/6 criteria