Commit Graph

789 Commits

Author SHA1 Message Date
jyviko 9acdd5ec66 Wave 393/509: Point and Plane Along Path: exact on the path's curves by arc length, and a t outside 0…1 is refused (and 2 more)
3 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- e7e613b6f jyviko: Records: the item budget bounds input, not the kernel's own results (Refs #3992)
- cf2b3a62f jyviko: Fair Surface: a face of degree 1 one way fairs along its curved way, and a face with nothing free is left as it is
- 16d467e14 jyviko: Point and Plane Along Path: exact on the path's curves by arc length, and a t outside 0…1 is refused

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-29 20:41:33 -04:00
jyviko d0a8be5939 Wave 392/509: Compare Bodies: each region measured exactly, on the cut of the two bodies (and 3 more)
4 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- 97935eed8 jyviko: Inspect: the centre of mass from the exact faces, as Measure takes it
- d094d43f2 jyviko: Compare Bodies: each region measured exactly, on the cut of the two bodies
- 864bcbccb jyviko: Compare Bodies: a region the exact cut cannot measure has no volume and says why, never an estimate
- a1dbb7c08 jyviko: Kernel rig: the two G2 corner cases are graded clear of the vertices, as the ladder grades them

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-29 20:26:56 -04:00
jyviko 98ec65d94d Wave 388/509: Ladder: the golden recorded on SMLib 60b1c6a with tiers 05, 06 and 12's new cases
1 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- 023017747 jyviko: Ladder: the golden recorded on SMLib 60b1c6a with tiers 05, 06 and 12's new cases

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-29 17:58:06 -04:00
jyviko 8ac38056c1 Wave 341/509: Designs before format 14: a split's pieces take the names its later features use them by (and 3 more)
4 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- 319e6b8b3 jyviko: Kernel tests: the chamfer on a tangent wall junction is measured on meshes fine enough
- 68a217d98 jyviko: Reference tests: the loft case is analytic, SolidCraft's correspondence with its closed form
- 73b028b5b jyviko: Kernel: a drafted extrusion of a profile with holes, every wall leaning on the material's side
- b2c5b1f5e jyviko: Designs before format 14: a split's pieces take the names its later features use them by

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-29 00:49:29 -04:00
jyviko 2480af1907 Wave 312/509: Tests: the kernel-cases ladder is the reference for what the kernel builds; the seeded robustness goldens go
1 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- 17465a63b jyviko: Tests: the kernel-cases ladder is the reference for what the kernel builds; the seeded robustness goldens go

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-28 21:37:39 -04:00
jyviko 08156eb6d0 Wave 298/509: Fillet dialog: Setback shows its default as a length and flags one too small before OK (and 2 more)
3 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- 06fbcdfec jyviko: Fillet dialog: Setback shows its default as a length and flags one too small before OK
- baa44fc64 jyviko: Fillet dialog: a setback the field flags is not refused again under the dialog
- b7d813bd6 jyviko: Open and import card: three plain steps instead of a status line

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-28 08:42:59 -04:00
jyviko 65b02ff7ab Wave 292/509: STEP import: a refused solid comes in as a surface body of its exact faces (and 3 more)
4 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- fd5319a0e jyviko: docs: the kernel's move from truck to SMLib, as written up on #4012
- 4cb0d6ee9 jyviko: STEP import: a refused solid comes in as a surface body of its exact faces
- e19785620 jyviko: STEP import: a refused solid's surface body faces as the file has it
- 529fb7cf3 jyviko: Release: macOS builds on macos-15 (GitHub retires macos-14 on 2026-11-02)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-28 12:48:43 -04:00
jyviko 01be42ef41 Wave 278/509: Tapped holes: the tap maker's drill for every form, and a drill of the user's within 5% (and 1 more)
2 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- 05f1c6b9a jyviko: Tapped holes: the tap maker's drill for every form, and a drill of the user's within 5%
- 87e7fe472 jyviko: Tapped holes: a preference keeps metric's major-less-pitch drill

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-27 12:27:35 -04:00
jyviko e98cd0a0e2 Wave 277/509: Tapped holes: Rc and NPT take the tap maker's tabulated drill
1 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- e7994d48c jyviko: Tapped holes: Rc and NPT take the tap maker's tabulated drill

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-27 11:15:38 -04:00
jyviko cc2de29abb Wave 276/509: Tapped holes: Rc and NPT, and a modelled thread with the thread's End (and 3 more)
4 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- 9717fab2f jyviko: Tapped holes: Rc and NPT, and a modelled thread with the thread's End
- 72e0e0094 jyviko: Ladder 06/017: the golden entry from a run of the case
- 376a91ad7 jyviko: Hole presets: a modelled tapped thread and its End, and every catalogued size
- b6c3b32a9 jyviko: Tapped holes: an Rc or NPT hole takes the stocked drill under its standard minor

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-27 10:56:34 -04:00
jyviko 4531ab6182 Wave 275/509: Thread: the pipe forms in the dialog, ISO 7-1's Rp, a chamfered tip on a taper thread (and 3 more)
4 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- 361b35afe jyviko: Thread: a shoulder thinner than the overrun's reach is still a shoulder
- 5fe141c0f jyviko: Thread: the start never fades; ease_in is gone
- 386598282 jyviko: Thread dialog: the Ends section is Start (None, Chamfer) and End (Square, Fade)
- 80e47130b jyviko: Thread: the pipe forms in the dialog, ISO 7-1's Rp, a chamfered tip on a taper thread

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-27 07:57:20 -04:00
jyviko 64dfa3ca11 Wave 274/509: Thread: ISO 228-1, ISO 7-1 and NPT pipe threads, taper threads by a radial law (and 1 more)
2 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- 2c4212c04 jyviko: Thread: the chamfered tip at the start or at both ends
- 75deb73aa jyviko: Thread: ISO 228-1, ISO 7-1 and NPT pipe threads, taper threads by a radial law

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-27 03:07:57 -04:00
jyviko d1b64fb2ff Wave 273/509: Continuity in words: surface dialogs and Continuity Analysis show no G codes (and 3 more)
4 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- 28e3b8a19 jyviko: Continuity in words: surface dialogs and Continuity Analysis show no G codes
- 81ecc872f jyviko: Guide: the Fillet dialog's Type and Corners in their new words
- d1a8f0417 jyviko: Thread: a boss thread keeps clear of the plate below
- a30a85698 jyviko: Thread: the chamfered tip reaches ISO 724's external minor diameter

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-27 01:58:51 -04:00
jyviko 57b4ce6453 Wave 267/509: geom: fill_matched, a height field G1/G2 to the faces beside its loop (and 2 more)
3 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- faffa6664 jyviko: Profiler: the diagnostics.profile test holds while other tests record
- 7fde0bdff jyviko: Profiler: docs/perf.md says how to switch it on and read it
- 29225d2c8 jyviko: geom: fill_matched, a height field G1/G2 to the faces beside its loop

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-26 12:32:39 -04:00
jyviko 88736dc9e4 Wave 259/509: thread: main's screw direction (#4414) out; the thread's hand is the one direction (and 2 more)
3 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- a57ce13e7 jyviko: thread: a shaft thicker than a modelled thread is refused, never turned down
- 6b9f5e0e4 jyviko: thread: main's screw direction (#4414) out; the thread's hand is the one direction
- 5fc160732 jyviko: Main's new callers of the placing calls that now return their error

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-26 19:21:58 -04:00
jyviko 5238a30bef Wave 255/509: kernel-cases: the ladder's golden recorded on SMLib a15b5a2
1 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- fb5b2520a jyviko: kernel-cases: the ladder's golden recorded on SMLib a15b5a2

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-26 11:55:44 -04:00
jyviko d94ed7adb9 Wave 250/509: kernel-cases: the ladder's golden recorded after the thread rework (and 1 more)
2 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- 8edf5b873 jyviko: kernel-cases: the ladder's golden recorded after the thread rework
- 2e1c1097a jyviko: geom: a degenerate point's normal steps into the parameter interval

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-26 10:56:37 -04:00
jyviko cc425a6e5c Wave 248/509: Thread runouts: the groove fades out instead of stopping square (and 3 more)
4 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- 3287bcba9 jyviko: Threads with several starts
- 7bfc184e8 jyviko: A modelled thread's chamfered tip (ISO 4753)
- d433ce2c9 jyviko: Thread runouts: the groove fades out instead of stopping square
- fdede5a0a jyviko: Thread work in rustfmt's layout

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-26 09:50:52 -04:00
jyviko 5047403bb1 Wave 247/509: Threads in the standard forms, right- or left-handed or both
1 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- b4549d270 jyviko: Threads in the standard forms, right- or left-handed or both

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-26 09:19:00 -04:00
jyviko db2552f078 Wave 242/509: kernel-cases: the ladder takes twelve cases for this round's kernel fixes
1 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- 376363c73 jyviko: kernel-cases: the ladder takes twelve cases for this round's kernel fixes

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-26 07:33:13 -04:00
jyviko 9a508571fd Wave 215/509: brep: an edge on a line, circle or ellipse carries the NURBS form SMLib holds it as (and 1 more)
2 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- b1326e48d jyviko: brep: an edge on a line, circle or ellipse carries the NURBS form SMLib holds it as
- 6adba90e2 jyviko: solidcraft-smlib: circle edges on their NURBS form, SMLib's trims kept on them (fork deec9cb)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-22 17:35:54 -04:00
jyviko 227e4b7794 Wave 209/509: solidcraft-smlib: the fork at f6b7a66, SMLib's trims on every curved face
1 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- 50bc9f302 jyviko: solidcraft-smlib: the fork at f6b7a66, SMLib's trims on every curved face

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-22 14:12:17 -04:00
jyviko bfae336ce1 Wave 207/509: brep: a face on a cylinder, cone, sphere or torus carries the NURBS form SMLib holds it as (and 2 more)
3 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- b6a3b31ff jyviko: brep: a face on a cylinder, cone, sphere or torus carries the NURBS form SMLib holds it as
- 2e26e0567 jyviko: solidcraft-smlib: the export reads FACE_NURBS_FORM
- 03db54a23 jyviko: solidcraft-smlib: SMLib at the merged fixes: slice, seam check, analytic revolve, draft corners, blend refusal, union of many, NURBS forms (fork 03c14ca)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-22 13:34:10 -04:00
jyviko e2723501ab Wave 201/509: solidcraft-smlib: SMLib at the candidate: solver statuses, range-end refinement, arc sweeps as cylinders (fork 1c8e415)
1 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- 99024b368 jyviko: solidcraft-smlib: SMLib at the candidate: solver statuses, range-end refinement, arc sweeps as cylinders (fork 1c8e415)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-22 09:01:26 -04:00
jyviko 540aa0da1b Wave 185/509: engine: feature replies carry no boolean diagnostics (and 1 more)
2 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- 88b1ba507 jyviko: doc: a feature result has no boolean diagnostics any more
- 1ecf00b5a jyviko: engine: feature replies carry no boolean diagnostics

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-22 07:36:40 -04:00
jyviko b9e0543ef5 Wave 178/509: kernel-cases: the rig runs SMLib only and keeps each run's SMLib dumps
1 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- 001c62ab1 jyviko: kernel-cases: the rig runs SMLib only and keeps each run's SMLib dumps

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-22 07:31:00 -04:00
jyviko 4eff79e57e Wave 112/509: solidcraft-smlib: pcurves on B-spline faces are SMLib's own UV trims (and 2 more)
3 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- 667cd3356 jyviko: solidcraft-smlib: pcurves on B-spline faces are SMLib's own UV trims
- e57f2f2a5 jyviko: brep: a face's points search one grid of its surface, made once
- 1bc0df6d0 jyviko: doc: a join of many tools into one target unions them in a balanced tree

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-21 23:39:37 -04:00
Brennen Herbruck 043d213ce1 Wave 98/509: docs/kernel-cases.md: the rig on both kernels at c65fc91a
1 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- 45f8e2916 Brennen Herbruck: docs/kernel-cases.md: the rig on both kernels at c65fc91a

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-21 12:39:31 -04:00
Brennen Herbruck 532027f7a6 Wave 93/509: docs: SMLib vs truck triage of the sweeps, threads and shell cases (and 3 more)
4 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- 96bdbbf3b bherbruck: docs: SMLib vs truck triage of the sweeps, threads and shell cases
- 82fe0e59e Brennen Herbruck: solidcraft-smlib: Brep::imprint
- 7e208529c Brennen Herbruck: solidcraft-step: each record face names its face in the file
- 863afb5e3 Brennen Herbruck: solidcraft-smlib: an arc past a full turn goes to SMLib a turn back

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-21 11:25:39 -04:00
bherbruck 11aa1db4a4 Wave 74/509: docs/kernel-cases.md: first full run of the kernel regression rig
1 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- ae8809a4b bherbruck: docs/kernel-cases.md: first full run of the kernel regression rig

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-21 07:15:20 -04:00
jyviko e931576723 Wave 28/509: brep: splines closed on themselves are periodic for pcurves and tessellation (and 3 more)
4 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- 27e996c44 jyviko: brep: splines closed on themselves are periodic for pcurves and tessellation
- 204b650d9 jyviko: brep: check_geometry refuses loops that enclose no area or turn the wrong way
- 19cf3d94a jyviko: brep: orientation, not position, tells a face's outer loop
- 2196129f1 jyviko: kernel: side-by-side boolean runner calls SMLib's boolean

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-21 04:59:26 -04:00
Brennen Herbruck 39118d67a9 Wave 25/509: solidcraft-step: refuse loops across a closed spline surface's seam; conformance parts and truck volumes (and 1 more)
2 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- 91e482fc8 Brennen Herbruck: solidcraft-step: refuse loops across a closed spline surface's seam; conformance parts and truck volumes
- 8f31c088f jyviko: brep: a budget of 4,000,000 items, pcurves included

Co-authored-by: jyviko <2501648+jyviko@users.noreply.github.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-21 01:55:38 -04:00
jyviko d05b24fb5e Wave 16/509: brep: check_geometry, the geometric agreement of a record (and 3 more)
4 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- b85b51e81 Brennen Herbruck: solidcraft-smlib: blend faces come from the edge they replace
- 4a6494b48 jyviko: brep: check_geometry, the geometric agreement of a record
- 570028f31 jyviko: brep: the truck adapter checks a record's geometry before decoding it
- 30f5e617c jyviko: brep: document check_geometry in the validation section

Co-authored-by: Brennen Herbruck <brennen.herbruck@gmail.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-21 00:47:15 -04:00
jyviko 709191218c Wave 11/509: solidcraft-smlib: SMLib statically linked behind its C API, with a safe wrapper (and 1 more)
2 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- c06c3cb2c jyviko: brep: cones narrowing along z, and a linear duplicate-shell check
- 8695af8ac Brennen Herbruck: solidcraft-smlib: SMLib statically linked behind its C API, with a safe wrapper

Co-authored-by: Brennen Herbruck <brennen.herbruck@gmail.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-20 23:14:39 -04:00
jyviko cddc4db061 Wave 10/509: kernel: the truck adapter writes pcurves through brep::pcurve
1 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- 95b229516 jyviko: kernel: the truck adapter writes pcurves through brep::pcurve

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-21 00:14:18 -04:00
jyviko b96d239c16 Wave 6/509: brep: docs for schema 4, and a pcurve lift test (and 1 more)
2 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- 02abecd52 jyviko: brep: docs for schema 4, and a pcurve lift test
- 7f1e85f71 jyviko: naming: make the reference lookups a rebuild uses public

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-20 23:05:44 -04:00
jyviko 0b9d8600b5 Wave 5/509: brep: working tolerance, golden v5 records, cache producer 4
1 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- 2f4d6acac jyviko: brep: working tolerance, golden v5 records, cache producer 4

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-20 23:11:19 -04:00
Sloptimum 783ee91404 docs: a new label needs Arabic and Hebrew too (#3457) (#3458)
Arabic and Hebrew are complete catalogs since #3768, so
every_complete_catalog_carries_every_english_message fails a pull request
that adds an English message without them. The localization guide's list of
languages a new label needs now says so.

Co-authored-by: rootarchitect <7781866+rootarchitect@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 06:00:02 +00:00
ABDULLAH af07f4e0e5 Arabic interface language with right-to-left text (#3762) (#3768)
* claim: #3457

* Hebrew interface language with right-to-left text (#3457)

Adds a complete Hebrew catalog (assets/locales/he.json, original
translations) and registers `he`.

egui 0.36 shapes each font run with harfrust, so a run of Hebrew letters
is drawn right to left, but it places the runs of a line left to right in
stored order. The new `bidi` module runs the Unicode Bidirectional
Algorithm (unicode-bidi, MIT OR Apache-2.0) over each message of a
right-to-left catalog once, giving egui the runs in display order with
brackets mirrored and placeholders kept whole, while leaving each Hebrew
run's letters in reading order for the shaper. A test lays messages out
with a real Hebrew font and checks where the glyphs land.

Desktop builds append a system Hebrew font (Arial Hebrew / SF Hebrew,
Segoe UI / Arial, Noto Sans Hebrew / DejaVu Sans). Layout mirroring,
wrapped multi-line RTL paragraphs and a web Hebrew font are follow-ups.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Hebrew: translate the new Describe Command label; list he in the control protocol

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Hebrew: catch up with main's catalog and the new ribbon (#3457)

- Translate the 258 messages main added since the branch was cut, drop
  the 38 it removed (10 renamed ones keep their translation) and
  retranslate the two whose English changed (toolbar → application bar).
- The timeline title is ציר הזמן, matching the glossary.
- Ribbon buttons split their labels into two lines from the start of
  the string; Hebrew labels come in display order, so the first line
  showed the end of the phrase ("חדשה / סקיצה"). For right-to-left
  labels the first line now takes the words at the end of the string,
  and a shortened line loses characters, and shows its ellipsis, on the
  left. The word-boundary sweep checks Hebrew from the lines the galley
  is built from, since epaint's right-to-left rows carry zero-width
  glyphs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Hebrew: after rebasing onto main, load the Hebrew face with the cached system fonts

main now searches the system fallback faces once (SystemFonts, on a thread);
the Hebrew face joins that search with its coverage check. Drop the three
camera-animation messages main removed (#4296) from the Hebrew catalog.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Hebrew: translate the messages main added after the catch-up (#3457)

Translates the messages main added since the last catch-up: the history
bar's buttons and name toggles, the 3D mouse driver and axis mapping, the
thread size columns, the File view (home page), the redesigned Preferences, the new issue report
dialog, free orbit and the assistant's setup card. Drops the one message
main removed. The catalog has every English message again, so the
complete-catalog checks pass for he.

* Arabic interface language (right-to-left, on the Hebrew bidi path)

Adds an original Arabic translation of the whole English catalog
(assets/locales/ar.json, every message) and registers it. `ar` joins the
complete catalogs, so a message added to en.json later fails the build
until it is translated. It goes through the right-to-left path of #3458
unchanged: crate::bidi puts each message in display order and leaves
every Arabic word's letters in reading order for harfrust, which joins
them with the font's own tables. Ribbon labels use the right-to-left line
split from the same stack.

fonts.rs adds a system Arabic fallback after the Latin interface font,
which keeps spaces, digits and Latin text so each Arabic word stays one
shaped run: Segoe UI/Tahoma/Arial on Windows, SF Arabic/Geeza Pro/
Damascus/Tahoma on macOS, Noto Sans or Naskh Arabic/KACST One/DejaVu Sans
on Linux, or NotoSansArabic-Regular.ttf in CRAFT_FONTS_DIR. It is the first
fallback for an Arabic UI (Arial Unicode, a CJK candidate, has Arabic
letters without joining data) and the last otherwise; like Thai and
Hebrew it is never promoted for a CJK interface.

Tests: the catalog comes back in display order with no directional
controls, and Arabic laid out with a real font lands on screen word by word
in reading order.

* Hebrew: review the catch-up translations; restore the camera-animation messages (#3457)

- Review of the 533 messages translated in the previous commit: 21
  corrected. Keys in the motion dialog are keyframes (נקודות מפתח, as
  in Add Key), the Design workspace is תכן as in its label, a dropped
  "(Direct Driver)" is restored, terms aligned with the rest of the
  catalog (פורמט, סוכן קוד, רצועת הכלים), and a few calques reworded.
- Translate ui.animate_view_changes, ui.animation_speed and
  ui.look_at_anim_desc, which main has again, so he stays complete.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Arabic and Hebrew: translate the messages main added since (#3457, #3762)

Both catalogs again carry every English message. The 760 messages main added
since the last rebase (render workspace, material editor, standard views,
sheet metal Path Flange, AI app connections, document-on-disk notices and
more) come from A-AL-ANAZI's translations on #3768; the five Perforate dialog
messages are new here. The earlier Hebrew review is kept on top of them, and
33 of the new Hebrew messages are corrected: "completed" was "perfect"
(מושלם → גמור), Regrade read as ranking (now תיקון צבע מחדש), shaders,
guarantee, the Mirror reflection mode, simulations and displacement.

Co-authored-by: Abdullah <alksa2025@gmail.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Arabic and Hebrew: attribution rows as a pending file

main now takes new ATTRIBUTION.md rows as one file per change
(attribution/pending/), so the he.json and ar.json rows move there.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Arabic and Hebrew: translate the 23 messages main added since (#3457, #3762)

Both catalogs again carry every English message; the two theme-page messages
main removed are dropped. Twelve of the new messages (link updates while
loading, the agent chat's model choice, plugin search, render quality) come
from A-AL-ANAZI's translations on #3768; the sketch plane descriptions, the
rigid group and empty-boolean messages, free sketch points and the web update
note are new here.

Co-authored-by: Abdullah <alksa2025@gmail.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Arabic and Hebrew: translate the 12 messages main added since (#3457, #3762)

Eleven come from A-AL-ANAZI's #3768; "Turn Up Axis" in Hebrew follows the
catalog's existing up-axis wording, and the agent chat's no-tool-call message
is new in both.

Co-authored-by: Abdullah <alksa2025@gmail.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Arabic and Hebrew: translate the 22 messages main added since (#3457, #3762)

* Arabic and Hebrew: a label found by its English text comes back in display order too (#3457, #3762)

* Arabic and Hebrew: translate the 32 messages main added since (#3457, #3762)

* Arabic and Hebrew: translate the 34 messages main added since (#3457, #3762)

* Arabic and Hebrew: translate the 30 messages main added since (#3457, #3762)

* Arabic and Hebrew: translate the 7 messages main added since (#3457, #3762)

---------

Co-authored-by: rootarchitect <7781866+rootarchitect@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Abdullah alanazi <x1700@MacBook-Air-Abdullah-2.local>
2026-10-27 05:05:53 +00:00
github-actions[bot] b2189e3f4d Regenerate generated files and fold pending files [skip ci] 2026-10-27 04:31:59 +00:00
Victor Santos Oliveira 6e12f5954f Navigation: snap free orbit direction and roll with Shift (#6943) (#6949)
* claim: #6943 free orbit Shift snapping

* fix(ui): snap free orbit direction and roll with Shift

* test(ui): align free orbit coverage and complete snap help translations
2026-10-27 04:11:16 +00:00
Lars Jansen 2d629069c6 Dialogs: OK and Cancel at the top (#6708) (#6713)
* claim: #6708

* feat(dialogs): OK and Cancel at the top (#6708)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 02:42:23 +00:00
github-actions[bot] 237341423c Regenerate generated files and fold pending files [skip ci] 2026-10-27 02:49:11 +00:00
github-actions[bot] 1551c0acef Regenerate generated files and fold pending files [skip ci] 2026-10-27 01:51:03 +00:00
Lars Jansen f1cc49bcdb History: list a sketch under the feature built from it (#6489) (#6494)
* claim: #6489

* feat(history): list a sketch under the feature built from it (#6489)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 00:59:57 +00:00
github-actions[bot] 3bea744823 Regenerate generated files and fold pending files [skip ci] 2026-10-27 01:25:12 +00:00
yhamil04 ebb6cc53ab Crash reports: capture native crashes on macOS (#2113) (#6593)
* claim: #2113

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Crash reports: capture native crashes on macOS (#2113)

A signal handler for SIGSEGV, SIGBUS, SIGILL, SIGFPE, SIGTRAP and SIGABRT
writes the same <journal>.native.json as the Windows exception filter: the
signal, the faulting module and offset, the thread and a frame-pointer walk.
The next start reports it instead of "an unclean exit". The signal then goes
on to the previous handler or the default action, so macOS still writes its
own crash report.

native_crash_macos.rs joins the crash-safety skill's list of files that may
use unsafe (no safe API can catch these signals).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 00:14:00 +00:00
github-actions[bot] 924724dc89 Regenerate generated files and fold pending files [skip ci] 2026-10-27 00:34:00 +00:00
HiroKenEz 56bcd872cb Cone primitive: solid.cone with base and top radius (#5641) (#6250)
* claim: #5641

* Cone primitive: solid.cone with base and top radius (#5641)

A cone or truncated cone placed like the cylinder: base centre, axis,
base radius (or diameter), top radius (0, the default, is a full cone)
and height, with the new body / join / cut / intersect choice. It is
built from what the kernel already exposes, a revolve of its half
section about +Z through the origin, moved into place. Toolbar entry
after Torus, a Cone dialog that also places it on a picked face, Edit
Feature, a timeline icon, pending UI strings and attribution, and one
pending design-format change.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 23:57:43 +00:00
github-actions[bot] 367aa249bc Regenerate generated files and fold pending files [skip ci] 2026-10-27 00:07:22 +00:00