Skip to content

v0.2.10 — declarative-surface fidelity + layout unification

Choose a tag to compare

@pzfreo pzfreo released this 07 Jul 18:53
· 1269 commits to main since this release
93c745c

Declarative-surface fidelity and layout-engine unification. Editing and re-running a declarative Sheet script now reproduces more of the drawing, a new lint catches stale declarations, and an intentional scale is respected. Internally the annotation placer moves further onto the single collect-then-solve (ADR 0009), and kiwisolver is dropped as a dependency.

Added

  • Declaration-vs-geometry reconciliation lint (declared_feature_absent) — flags a declared hole/boss/step with no matching geometry (a stale/phantom callout over empty space); closes the last gap in the "did my edit break the drawing?" loop. (#487)
  • Title-block + layout aspects on the Sheet DSL — Sheet(drawn_by=, tolerance=, scale=, page=); the generated --script reproduces them and the CLI forwards the flags on the sheet path. (#474)
  • PMI reproduced on the declared-model path — build_drawing(path, model=…, pmi="annotate") synthesises STEP AP242 PMI so a declared build draws the same PMI dims as detection. (#472)

Changed

  • An intentional explicit scale= below the legibility floor is honoured with a warning instead of a ValueError; only a genuinely degenerate scale (< 0.1 mm projected) is rejected. (#489)
  • kiwisolver is no longer a dependency — the 1-D strip solve delegates to the built-in deterministic PAVA algorithm (supersedes Cassowary). (#507)

Fixed

  • Dimension placement is more robust under contention — candidate priority through the corridor solve so an authored GD&T frame isn't dropped for an auto dim over-capacity (#357); rotational bore leaders bounded + ranked, and pitch dimensions on the per-side obstacle-aware solve — retiring the last fixed-offset stacking placers (#374).

Full changelog: CHANGELOG.md.