Repository navigation
v0.4.1 — Recognition trust
v0.4.1 — 2026-08-07
The recognition trust release. Automatic drawings now fail closed on unsupported inner
profiles, prove semantic coverage for flats, slots and patterns, and retain the measurement
identity needed to explain placed, suppressed, dropped and missing definitions. Several real
STEP case studies also move from clean-looking but incomplete output to complete drawings or
actionable lint.
Discouraged (supported)
Sheet.auto_dimensions()andSheet.add_dimension()now emit
SoftDeprecationWarning(#1043). They remain supported with no removal planned; the
warning steers declared scripts towardauthored_dimensions()plus explicit
dimension(feature, parameter_id)lines, where omission can mean suppression. Automatic
build_drawing(part)and theSheet.from_part(part)on-ramp remain silent. See
docs/deprecations.mdfor filtering and migration guidance.
Added
-
Finished drawings expose why measurements were omitted and, on covered placement paths,
what an annotation measures (#996/#1002).Drawing.suppressions()returns the compiler's
omission ledger,Drawing.measurement_keys(name)exposes recorded measurement provenance, and
draftwright.audit.diff_builds(before, after)reports losses, substitutions and candidate
suppression explanations. The differential is deliberately a triage aid, not a proof where
renderer identity remains incomplete. -
Physical-completeness lint now follows semantic correspondence for flats, lone slots and
slot patterns (#1018). Coverage is joined through recognition, IR and compiler identities
rather than inferred from label text or page geometry, and distinguishes authored
suppression, placement drops, missing definitions and unverifiable provenance. -
Full-span floored open channels are recognised and dimensioned as first-class features
(#917). Automatic and declared drawings state the independent overall extent, one wall and
channel width, suppress the derived opposite wall, and report any missing member of that
defining chain.
Fixed
-
Square and near-square parts retain both independent planar extents (#997). A plain
square plate could previously lose both plan dimensions, while parts up to five percent off
square could lose one and be silently represented as square. The unsafe suppression rule is
removed; explicit square notation remains tracked separately in #918. -
Machined flats retain their physical stock identity from recognition through placement
and completeness lint (#1013/#1015/#1034/#1036). Flats on separate parallel, coaxial or
slanted stock no longer collapse into one definition or borrow an opposite face from another
stock region. Independent callouts receive clear-margin candidates, while double-D faces on
one stock still form one A/F requirement. -
Dense callout and step-detail cases keep their complete defining set (#915). Hole
callout batches are reconciled as a queue, detail views fit their actual aspect, step levels
retain the supporting-face correspondence needed for truthful crops, and a detail redraws
only rungs omitted from its parent view. -
Pocket leaders start on the physical opening rim (#916), removing the spurious inner
silhouette crossing while preserving the solved label corridor and approved dimensions on
X-, Y- and Z-depth pockets. -
Wedge-mounted raised pads survive recognition (#909). Lower ledges that touch only in
plan no longer make the recogniser discard a valid upper pad; true staircase tiers remain
excluded. -
Annotation-dense detail placement no longer stalls the build (#1065). Detail views
avoid every decomposed annotation shaft, witness, label and item footprint; CTC-02
supplies 571 such boxes. The free-rectangle search previously treated that set as tiny
and admitted roughly 34 billion candidate rectangles, exhausting the slow tier's
ten-minute test budget before export. A compressed-coordinate sweep preserves the same
deterministic winning rectangle while completing the real search in seconds. -
Through double-D bores are recognised and called out as first-class hole profiles
(#1061). Automatic and declared builds preserve the parent-circle diameter, A/F size,
orientation and depth, and render one compoundDOUBLE-D ... A/Fbore callout. Physical
critique now accepts that supported inner profile while retaining a separate warning for
13 evenly spaced common-circle arcs on the unresolved outer boundary; it does not infer a
repeating full profile or a gear standard. -
Unsupported internal profiles no longer pass physical-completeness lint silently
(#1058). Inner loops on principal boundary faces are checked against the current
circular-hole, rectangular-opening, true-obround, and proven through-double-D vocabulary.
Profiles outside it now produce
unrecognised_defining_geometryand reduce the lint score instead of allowing an
envelope-only drawing to score 1.0.
Changed
- Crowded prismatic step dimensions recover into an enlarged detail view by default
(#909). The automaticbuild_drawing/make_drawing/ CLI paths and generated
Sheetscripts now preserve the omitted dimensions instead of returning
step_dim_droppedunless the caller remembereddetail_view=True. Pass
detail_view=Falseto retain the parent-view-only behavior and its lint warning.