-
e6a118e1c6
CI: an MSRV that could not build, and a gate that floated
Levi Neuwirth
2026-07-22 15:05:04 -0400
-
5e465a1067
P13-S6: all twenty tuning systems now say what they mean
Levi Neuwirth
2026-07-22 14:54:25 -0400
-
80193855bb
P13-S6 ratified: the lattice block, and an argument that did not survive arithmetic
Levi Neuwirth
2026-07-22 14:26:08 -0400
-
986b90aef3
P13-S6: the tuning constructions, drafted -- and why sourcing was not enough
Levi Neuwirth
2026-07-22 11:50:06 -0400
-
5dcaa58fd0
Push 4b Wave 1a: three ratified corrections, and a citation that pointed the wrong way
Levi Neuwirth
2026-07-22 11:49:40 -0400
-
b3449256f9
P13-S5 and P13-S6: the two inherited claims were both true
Levi Neuwirth
2026-07-22 09:03:39 -0400
-
e7ebd8ac9c
P13-S2: the alteration is space-relative, and the core fails closed
Levi Neuwirth
2026-07-22 09:00:09 -0400
-
043c18cabf
P13-S1: every requirement is named, and now it is also numbered
Levi Neuwirth
2026-07-21 18:27:52 -0400
-
a9a57120e9
Text Projection: whole-document conformance, and a corpus with teeth
Levi Neuwirth
2026-07-21 15:44:25 -0400
-
244bd6bd96
Text Projection: the document layer, and the equation closes
Levi Neuwirth
2026-07-21 15:05:28 -0400
-
50ad97a31b
Text Projection 0.7.0: single-version headers, and blob lines are rejected
Levi Neuwirth
2026-07-21 15:04:43 -0400
-
fdb4a57885
Text Projection: the operation layer, and the tests that can see it fail
Levi Neuwirth
2026-07-21 13:43:09 -0400
-
4ded63a583
Text Projection 0.6.0: the operation vocabulary is grammar-directed
Levi Neuwirth
2026-07-21 13:42:21 -0400
-
b6728da5c6
Text Projection: every graph id projects, because graph_id! says so
Levi Neuwirth
2026-07-21 13:41:40 -0400
-
cf81074ca0
Text Projection: the Chapter-5 value layer, from one field list
Levi Neuwirth
2026-07-21 12:17:49 -0400
-
914143c6db
Text Projection: the s-expression model and a reader that rejects
Levi Neuwirth
2026-07-09 22:50:24 -0400
-
7b96c2d131
Text Projection 0.5.0: the projection is schema-directed
Levi Neuwirth
2026-07-09 22:40:27 -0400
-
7face56ab4
Text Projection 0.4.0: two normative corrections, and a checker that can fail
Levi Neuwirth
2026-07-09 22:27:32 -0400
-
2868f8c4b3
Text Projection 0.3.0: every production expanded, and one rule for values
Levi Neuwirth
2026-07-09 21:55:49 -0400
-
ee18b71aca
Text Projection 0.2.0: the gate was lossy, and the cause was one missing rule
Levi Neuwirth
2026-07-09 21:34:36 -0400
-
0ba9bb2dd8
Text Projection design gate: the companion the core spec delegates to
Levi Neuwirth
2026-07-09 21:13:40 -0400
-
3baf8d050d
Push 5 / P5: the missing inverse -- bytes back to an operation envelope
Levi Neuwirth
2026-07-09 20:59:43 -0400
-
567e8214a4
One tag vocabulary the compiler owns, and ratify the corpus in the companion
Levi Neuwirth
2026-07-09 20:32:35 -0400
-
a41596d329
Push 5 / P4: the decode conformance corpus, and the tag it could not read back
Levi Neuwirth
2026-07-09 20:16:15 -0400
-
09a7f62802
Make the exhaustive tests exhaustive, and stop the record overclaiming
Levi Neuwirth
2026-07-09 19:39:30 -0400
-
7de9e479c4
Push 5 / P3: fuzz the bundle wire, and find a lenient codec hiding behind a guard
Levi Neuwirth
2026-07-09 19:12:34 -0400
-
9596d1e824
Push 5 / P2: fuzz the ops decode surface, and find the guard's blind spot
Levi Neuwirth
2026-07-09 18:43:21 -0400
-
958fffad4e
The pitch/spelling undo unit is broader than the transpose, on purpose
Levi Neuwirth
2026-07-09 18:15:43 -0400
-
23521b4bcf
P13-S3: the engraved spelling set is a shared undo key, not the transpose's
Levi Neuwirth
2026-07-09 17:29:05 -0400
-
655cf8ef5b
TransposeInterval becomes undoable; the frozen Transpose stays un-undoable
Levi Neuwirth
2026-07-09 16:45:57 -0400
-
6369d331f1
A transposition moves the authored spelling; recording Propagated is not enough
Levi Neuwirth
2026-07-09 16:40:06 -0400
-
4228320f88
Transposition must refuse an extreme interval, not panic on it
Levi Neuwirth
2026-07-09 16:33:42 -0400
-
582b0ca234
File what Push 4a found and did not fix
Levi Neuwirth
2026-07-09 15:51:24 -0400
-
91a99b2093
Stop the conformance suite from authoring the frozen operation
Levi Neuwirth
2026-07-09 15:50:22 -0400
-
2740a6c53c
TransposeInterval: the faithful transpose, and the frozen one it replaces
Levi Neuwirth
2026-07-09 15:46:43 -0400
-
27c80a0d83
Pin the interval algebra on the type that already carried it
Levi Neuwirth
2026-07-09 15:29:44 -0400
-
357e8b9eeb
Push 4a design gate: pin the transpose algebra, freeze the old operation
Levi Neuwirth
2026-07-09 15:25:27 -0400
-
beb61fca2f
P13-I3: delete the hand-written notehead anchors; teach the extractor
Levi Neuwirth
2026-07-09 14:53:47 -0400
-
afb487c24d
P13-I2: Staff::default_clef is the fallback, not decoration
Levi Neuwirth
2026-07-09 14:47:42 -0400
-
b7dab0fd44
Pass 13 reopens; P13-I1: complete the ConstrainedLayoutIR listing
Levi Neuwirth
2026-07-09 14:42:32 -0400
-
24b6a34db9
Slurs: side from the stems, endpoints on the notes, apex clear of both
Levi Neuwirth
2026-07-09 13:58:56 -0400
-
7aa0b938e2
Stems point away from the middle line, and reach it
Levi Neuwirth
2026-07-09 13:47:47 -0400
-
86635e43e1
Two-sided inter-staff renegotiation, and the cascade defect it uncovered
Levi Neuwirth
2026-07-09 13:32:37 -0400
-
029039bf35
Straighten the QMC version story in the docs that assert it
Levi Neuwirth
2026-07-09 11:54:25 -0400
-
5b016f33b7
Two more glyph-members assumptions in the vertical-density axis (QMC 0.3.0)
Levi Neuwirth
2026-07-09 11:39:28 -0400
-
43215c7d67
The inter-staff gap band becomes a height model; fix a non-conforming metric
Levi Neuwirth
2026-07-09 11:16:31 -0400
-
ab411f4cae
Reconcile a process claim: park the listing gap, do not fake a Pass-13 row
Levi Neuwirth
2026-07-09 11:02:20 -0400
-
ced4b7255e
Rescope the band-ownership MUST to the constrained stage; ratify it
Levi Neuwirth
2026-07-09 11:00:09 -0400
-
fc411ea7ac
Ratify primitive band ownership in Chapter 7; scope canonical_bytes' doc
Levi Neuwirth
2026-07-09 10:50:10 -0400
-
efaebb9acd
Let the band model carry staff attribution instead of inferring it
Levi Neuwirth
2026-07-09 10:37:27 -0400
-
f7350362a3
Close the inter-staff residual risk: a three-staff cascade fixture
Levi Neuwirth
2026-07-09 10:20:35 -0400
-
b1bfe04d6c
Inter-staff review fix: attribute a curve by its arc, not its nearest glyph
Levi Neuwirth
2026-07-09 10:05:14 -0400
-
4132a7ac05
Inter-staff review fix: make staff attribution y-aware (stems tore off)
Levi Neuwirth
2026-07-09 09:42:51 -0400
-
3978225e06
Inter-staff slice 2/2: renegotiate the gaps between a system's staves
Levi Neuwirth
2026-07-08 23:04:25 -0400
-
f103641013
Inter-staff slice 1/2: a two-staff pressure fixture
Levi Neuwirth
2026-07-08 22:48:39 -0400
-
177bcdb43b
Optimal-break review fix: restore an overflow safety net in walk_region
Levi Neuwirth
2026-07-08 21:48:31 -0400
-
c818992835
Push 3 Standard-tier: optimal break search (replace greedy first-fit)
Levi Neuwirth
2026-07-08 21:29:08 -0400
-
0db005db9a
Vertical justification review follow-up: document + test the metric trade-off
Levi Neuwirth
2026-07-08 20:50:17 -0400
-
69e0430062
Push 3 Standard-tier: vertical justification (fill non-final pages)
Levi Neuwirth
2026-07-08 20:36:18 -0400
-
fea446a182
Justification review fix: keep stems attached to their noteheads
Levi Neuwirth
2026-07-08 19:54:18 -0400
-
7c038721d7
Push 3 Standard-tier: per-system justification (fill the content width)
Levi Neuwirth
2026-07-08 19:21:46 -0400
-
ca687d8e7e
Push 3 audit follow-up: modify anchor validation, spaced slur_shape, stale docs
Levi Neuwirth
2026-07-08 18:54:39 -0400
-
430214d619
Pass 13 — P13-D2: tombstone before the graph delete, closing the cue-cascade trail
Levi Neuwirth
2026-07-08 18:25:37 -0400
-
79c8e1da2e
Pass 13 — P13-D1: run the ledger re-anchor for undo-driven event tombstones
Levi Neuwirth
2026-07-08 18:17:51 -0400
-
382aff23a2
Pass 13 — P13-K1: reject a ModifyEvent introducing a never-minted system pitch
Levi Neuwirth
2026-07-08 18:08:48 -0400
-
cd998142f5
Pass 13 — P13-D3: reject spanners anchored to a missing region/measure
Levi Neuwirth
2026-07-08 18:01:08 -0400
-
e6308371d5
Push 3 slur review fix: measure slur_shape on whole slurs, not split fragments
Levi Neuwirth
2026-07-08 17:56:11 -0400
-
449dd2ef8e
Push 3 ratify: extend the slur-rendering requirement + refresh slur_shape
Levi Neuwirth
2026-07-08 17:33:11 -0400
-
7d61271069
Push 3 (slur quality) 3/3: measure slur_shape_penalty (off the 0.0 placeholder)
Levi Neuwirth
2026-07-08 17:28:28 -0400
-
586969125e
Push 3 (slur quality) 2/3: split break-spanning slur curves (de Casteljau)
Levi Neuwirth
2026-07-08 17:21:19 -0400
-
c5173d275e
Push 3 (slur quality) 1/3: render dashed/dotted slurs faithfully
Levi Neuwirth
2026-07-08 17:13:32 -0400
-
693150e43e
Schema major 2 Phase F: ratify repeat + slur rendering into Chapter 7
Levi Neuwirth
2026-07-08 16:23:12 -0400
-
28f210e16f
E2 follow-up: surface slur style deferral, conservative curve hit capsule
Levi Neuwirth
2026-07-08 16:07:13 -0400
-
81b7f42f0a
Schema major 2 Phase E2: slur curves + cubic-bézier primitive
Levi Neuwirth
2026-07-08 15:33:00 -0400
-
6651ae5fce
E1 follow-up: slot-relative glyph remap (same-slot spacing preserved)
Levi Neuwirth
2026-07-07 22:16:54 -0400
-
7a9bf42119
Schema major 2 Phase E1: repeat barlines + volta brackets render
Levi Neuwirth
2026-07-07 21:51:11 -0400
-
58eef41c7e
Phase D follow-up: anchor-site liveness and containment, all object kinds
Levi Neuwirth
2026-07-07 20:18:29 -0400
-
9b5339f8f3
Schema major 2 Phase D: the repeat-authoring pair (code tranche)
Levi Neuwirth
2026-07-07 20:06:18 -0400
-
b816144a43
Schema major 2 Phase D: ratify the repeat-authoring pair (spec tranche)
Levi Neuwirth
2026-07-07 17:31:51 -0400
-
437e0758a0
Phase B follow-up: real acceleration-snapshot path + base role bound
Levi Neuwirth
2026-07-07 16:54:06 -0400
-
794400c4c7
Schema major 2 Phase B: snapshot side + honest stamps (data-model fills)
Levi Neuwirth
2026-07-07 16:30:07 -0400
-
7c9d1c40aa
Schema major 2 Phase A: ratify the v2 data-model wire form (spec only)
Levi Neuwirth
2026-07-07 15:05:48 -0400
-
93f3dfde93
G-pass follow-up: unsupported pre-pass algorithm ids error
Levi Neuwirth
2026-07-07 11:32:05 -0400
-
e4edea6a3e
Pass 12 G-pass: code tranche (K3/K9/C4/H7) + review fixes
Levi Neuwirth
2026-07-07 11:21:22 -0400
-
aff1809421
Pass 12 G-pass: ratify the full batch (28 rows) — spec tranche
Levi Neuwirth
2026-07-07 10:23:30 -0400
-
7e7a43b050
Fuzzer P1: adversarial decode fuzz + strict-canonical decode + bounded counts
Levi Neuwirth
2026-07-07 09:42:04 -0400
-
7045a13a18
Schema major 1 Phase F: ratify engrave I8/I9/I10 + process trail
Levi Neuwirth
2026-07-06 17:40:38 -0400
-
64de92605f
Schema major 1 Phase E: resolved-layout length prefixes u64 -> u32
Levi Neuwirth
2026-07-06 13:20:40 -0400
-
4598f30ddd
Schema major 1 Phase D2: CreateRegion op-block major + cross-major read-only
Levi Neuwirth
2026-07-06 12:09:30 -0400
-
03758bbae0
Schema major 1 Phase D1: Instrument.range + Region flag (snapshot side)
Levi Neuwirth
2026-07-06 11:14:52 -0400
-
e199fabe3f
Schema major 1 Phase C: Canvas.layout_defaults + real migrate-on-read
Levi Neuwirth
2026-07-05 20:37:36 -0400
-
9f688cc592
Schema major 1 Phase B: the dispatch seam + version infrastructure (no-op)
Levi Neuwirth
2026-07-05 19:21:11 -0400
-
f4a2f1fdf0
Schema major 1 Phase A: ratify the v1 wire form + migration (spec only)
Levi Neuwirth
2026-07-05 18:05:38 -0400
-
9d28dd6615
Clear P12-I12: scope spacing_distortion to rhythmic columns (QMC 0.2.0)
Levi Neuwirth
2026-07-05 13:57:10 -0400
-
bc9fb27d36
Clear P12-I11: casting-off widow-rebalance evens the stub last system
Levi Neuwirth
2026-07-03 19:09:51 -0400
-
b9a9921d50
Phase 3 tranche 2: quality conformance companions, real metrics, multi-system click fix
Levi Neuwirth
2026-07-03 10:39:05 -0400
-
0316160395
Phase 3 tranche 1: casting-off, K1 schema-fill, value-restoring undo
Levi Neuwirth
2026-07-02 21:55:26 -0400
-
3e91a8302a
Push 4: Binary Format companion, F1 benches, subquadratic reduction order
Levi Neuwirth
2026-07-02 19:02:07 -0400
-
92aaccf7e2
Pushes 1+3: fix the MUST-level violations, wire the types-only machinery
Levi Neuwirth
2026-07-02 17:10:50 -0400
-
80e3fed99c
spec: Pass 12 tranche 1 — align spec text with ratified dispositions
Levi Neuwirth
2026-07-02 17:04:14 -0400