Skip to content

Keep GRM-03 PMI clear and complete on A4 - #2181

Merged
pzfreo merged 14 commits into
mainfrom
fix/grm03-layout-2177
Oct 4, 2026
Merged

pzfreo merged 14 commits into
mainfrom
fix/grm03-layout-2177

Conversation

@pzfreo

@pzfreo pzfreo commented Oct 4, 2026 •

Copy link
Copy Markdown
Owner

Fixes #2177.

Change

  • Let automatic A4 selection use a complete GRM-03 PMI layout at 5:1 when a smaller composition would lose source-required annotation, including the side-hole callout.
  • Keep imported datum symbols close to the face they identify when a clear local placement exists.
  • Move the C0.5 label clear of the narrow shaft at the selected scale. Independent lint now measures the connected local material band around placed label ink; unrelated material islands cannot hide a cramped label.
  • Separate detail captions from adjacent annotation labels within the planned detail reservation. Independent lint reports a font-scaled clearance shortfall when the settled text still reads as one line.
  • Make measured repack, datum locality, and material-band guards reachable in source-owner PR CI.

Evidence

  • Public GRM-03 AP242 build_drawing(path, pmi="annotate") selects A4 5:1, places all 17 required annotations, keeps the side-hole callout, and has no non-info lint from these placements. The rendered automatic A4 PDF was inspected at sheet and detail scale.

  • Explicit A4 2:1 keeps the required side-hole callout and reports its remaining narrow C0.5 and remote B-datum conditions as warnings. It does not present that forced arrangement as clean.

  • Deliberately disabling the measured source-drop repack makes the public build drop the source-owned side-hole callout. Disconnected-strip and broad-plate regressions distinguish a truly narrow shaft from legal labels on wide material.

  • The supplied GRM-03-specify-pmi.step reproduces ⌀1.6 ↧ 3.8 SEE MFG 1 only 0.234 mm from DETAIL A on explicit A4 2:1 in rc5 and the pre-fix branch, with no lint warning. With this patch, the caption stays inside its planned region, clears the required callout by 1.063 mm, and the scale remains honored. Moving it back through the public drawing edit verb produces detail_caption_clearance naming both marks. Sheet and 300 dpi detail PDF renders were inspected.

  • The topical patch passed 124 focused/guard tests and independent review. On the local branch rebased onto merged Render source-scoped AP242 edge and face finish PMI #2180 at 97248b09, 279 adjacent layout/lint/safety tests and seven source-shape tests passed; scripts/pr-check --static passed. The rebase was clean.

  • The supplied-file caption slice passed 176 layout/lint tests, 118 detail/page tests, 125 architecture/classification tests, and static checks. Independent reviews of the complete rebased diff at 047c3bf3 and initial PR head 2e367c51 found no actionable issue. The patch ID stayed identical across the squash rebase; reviewer-targeted tests passed 262 cases (one skipped), and 279 adjacent layout/lint tests passed on initial PR head. The supplied STEP remains byte-exact, including its producer whitespace, under a SHA256 guard.

  • Initial PR CI found five failures in repack doubles, GRM-03 advisory expectations, diameter leader routing, and GRM-04 detail caption clearance. Commit 8edb563d fixes those cases. The six-file remediation passed 59 adjacent tests (one skipped), 24 advisory/source-shape tests, 279 broad layout/lint tests, private-test-read guards, and static checks. The existing advisory regression now also checks cached critique retraction. Fresh independent review found the private-read issue and confirmed the correction; deliberate disabling of the caption stroke check reproduces GRM-04 failure. That exact-head CI passed its previously failing Python 3.13 and 3.14 shard 1 jobs, but Python 3.13 shard 2 found two thin-plate tests still expecting the redundant plan view. Commit 456f0fad makes the coverage diagnostics retain all three views explicitly and updates the automatic case study to its measured A2 1:1 result with required outcomes intact. An adjacent ADR 0018 Phase 6: automatically select the smallest complete semantic view set #1262 test also failed on unchanged main because it assumed no section view; its principal-view assertion now allows the required section. All 45 adjacent view-planning tests passed (one deselected), with static and source-shape checks; fresh independent review found no blocker. The failed matrix was canceled to save runners. Fresh exact-head CI remains the merge gate.

  • CI on 456f0fad passed every completed assertion job but hit the global 300-second limit twice while setting up the shared CTC-01 AP242 PMI fixture on Python 3.11. The same fixture took 292.87 seconds on the green Render source-scoped AP242 edge and face finish PMI #2180 PR head and 287.51 seconds on this PR's Python 3.10 job. A same-machine comparison of main and this PR measured 51.28 and 51.67 seconds, both with seven repacks; the new table trigger did not fire on CTC-01. Commit bbd88f2a gives only the CTC-01 PMI test class a bounded 360-second limit and removes a stale fixture timing claim. The targeted test, static checks, and marker-scope collection check passed locally. Fresh independent review verified that the marker covers module fixture setup and found no blocker. Fresh exact-head CI remains the merge gate.

Review and architecture

Fresh independent review of the complete rebased diff found no remaining actionable issue. ADR 1 keeps the one compiler pipeline; ADR 2 owns scale, views, corridor placement, and bounded measured repack; ADR 3 recognition stays unchanged; ADR 4 preserves authored/source requirements; ADR 5 judges placed ink independently and reports unresolved placement. ADR 2 has a preexisting internal contradiction: invariant 13 and the guard summary still say automatic principal-view removal is unbuilt, while the Open section describes the A2 thin-plate result and existing #1262 code/tests already remove redundant principals. This PR lets the thin-plate case reach that existing reduction path. The contradiction needs a separate maintainer-approved ADR correction; this PR changes no ADR text.

Required exact-head CI is the merge gate.

pzfreo added 13 commits October 4, 2026 09:18
Try up to twelve normal-aligned positions before the whole-view strip, through the existing corridor and exact-ink postsolve. Interior candidates must clear projected material and visible view edges. Finished-drawing lint reports remote placed datum shafts by measured page-space glyph size.

GRM03 AP242 through build_drawing: on explicit A4 2:1, A shortens from 38.96 mm to 7.13 mm while B remains 59.08 mm and is reported; on explicit A4 5:1, A/B are 7.13/14.58 mm. In-memory combination with the separate 5:1 layout worktree yielded A4 5:1, both datums local, and no warning/error lint.

Architecture: consumes the one IR datum and placed projected material field (ADRs 1, 3); uses the shared bounded corridor solve and preserves the source normal (ADR 2); changes no declaration semantics or ADR text (ADR 4); critic measures placed geometry independently of producer intent, with a named producer mutation (ADR 5).

Checks: all 28 test_gdt_placement tests; four focused public-path/critic/mutation tests after final edits; scripts/pr-check --static. The broader quality-code audit has six preexisting unclassified STEP title codes on origin/main and is outside this change.
@pzfreo
pzfreo merged commit 462d91f into main Oct 4, 2026
19 checks passed
@pzfreo
pzfreo deleted the fix/grm03-layout-2177 branch October 4, 2026 13:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

rc5: GRM-03 PMI sheet at 2:1 with crowded callouts, C0.5 on the part and detached datum leaders

1 participant