Repository navigation
fix(desktop): mechanisms print as their answers say, and a failed call leaves nothing behind - #358
Open
ManuelStaggl wants to merge 6 commits into
Open
ManuelStaggl wants to merge 6 commits into
ManuelStaggl wants to merge 6 commits into
Conversation
…ck, not left under "not built" A joint SolidCraft refused, or a guide whose travel could not be measured, left the knuckles and cuts in the design while the answer said "Not built"; the next call built them again (audit 2026-11-12, H-02: 2 -> 11 -> 20 features). Every step since the undo depth read before the build is now undone in one batch, and the answer names SolidCraft's failed command and its reason instead of its raw JSON. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
…t twice between two bodies SolidCraft takes a joint name twice; sweep and limits by that name then met the first joint (audit 2026-11-12, N-mechanik-3: the answer gave the first hinge's limits, the second had limits null, a third call built a third joint between the same parts). Measured after: second joint "Hinge (2)" with limits [-67, 145], the repeated call refused with the design unchanged. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
…ille The finger notch was cut after the bead and took away the part of it past the wall's plane: the bead ended on the plane and caught nothing, in the tool and in the hinged box template (audit 2026-11-12, N-mechanik-2). The notch is now cut first. Measured: bead reach past the wall 0.000 -> 0.250 mm (walls 1.6, 2 and 10 mm, rooms 20x12 and 56x36, radius 0, 2 and 8, the template), flat lid 0.250 mm as before, no interference. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
…ys how the parts print The groove's ceiling was level and 13.9 mm wide at the defaults (up to 102 mm), a gap over the rail's head, while the tool called every mechanism "printed in one piece without support" (audit 2026-11-12, T5 and N-mechanik-6). Where the moving body stands high enough over the rail's face the ceiling is now a roof at 45° with a ridge of 5 mm; where not, it stays flat and the answer says so, with how to lay the part. The two parts print apart, which the description and the answer now say. Measured with the print check of this branch, PLA 0.4: default guide warn 418 mm² -> ready, dovetail to plug warn 389 mm² -> ready; gap, travel and body count as before. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
…all that is there The answer said knuckles above the bed "stand on webs at 45°, so they print without support", and the print check still found 90 mm² (barrel 6), 121 mm² (8) and 619 mm² (40), up to 89.5° (audit 2026-11-12, N-mechanik-4): each web ended a gap before the other body, so the far half of every barrel hung, and so did the pin inside the moving knuckles. A web was also drawn to the wall's plane where the wall had ended, 4.64 mm in the air under a lid plate (N-mechanik-5). - The web starts where the barrel leans 45° on the far side; the other body is cut back by the same profile a gap further out. - A second trial rod, inside each wall just under the web's foot, says whether the wall reaches down there: a body without it gets no web, and the answer names it. - The pin is cut flat underneath inside each moving knuckle: a level bridge from one fixed knuckle to the next. The default knuckle count of a lying hinge keeps that bridge at 10 mm or less (30 mm of line: 5 knuckles, was 3). - The answer says "without support" only where every knuckle stands on a web and the bridge is within 10 mm; otherwise what is left. Measured, print check of this branch, PLA 0.4: hinge on 16 mm blocks warn 121 mm² -> ready (barrel 6: 90 -> ready, 40: 619 -> ready), on the template's shells 174 -> ready; lid plate in the air: no web under it, said so. Gap 0.400 mm, no shared volume, one shell per body, limits as before. The template keeps its joint on the pin's round top and draws every profile at its own place. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
…l's webs The template built the hinge without the webs of the mechanism tool: its knuckles began 12 mm above the bed in the air, under a file that says every template prints without support (audit 2026-11-12, T3). It now names the walls of its two halves and the bed, as the tool measures them, and the webs follow length and height like the rest of the hinge. Measured, print check of this branch, PLA 0.4: warn, overhang 189 mm² up to 87° -> ready; after length 80, height 24: no overhang finding either. Gap 0.400 mm, no shared volume, one shell per body, and the lid closes to the bead's snap at 175.6° as before. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes the severity-A findings of the full audit (2026-11-12) in the mechanism tool (
mechanisms.ts,mechanismTool.ts) and the hinged box template (templates.ts). Built on #353: every number below is measured with that print check (PLA, 0.4 mm nozzle, 45°) on SolidCraft 0.40.1 through the audit harness (tools/audit, casesmechanik-hingeandmechanik-others, 100 scenes), before and after.Findings
edit.undoin one batchNot built: {\n "applied": [], …Not built: SolidCraft refused joint.as_built: <failed.error>. Everything was taken back.limits: null, third call builds a third jointHinge (2)with its own limits [-67, 145]; the repeated call is refused before anything is built (2 joints, bodies unchanged)warn418 mm² (dovetail to plug: 389 mm²)readyfor both. Lower bodies and wider rails keep the flat ceiling (width 20: 838 mm², 60 × 20: 3058 mm², as before) and the answer says so, with how to lay the partwarn90 mm² (barrel 6), 121 mm² (8), 619 mm² (40), up to 89.5°; on the template's shells 174 mm²readyin all fourhingedBoxwithout webswarn189 mm² up to 87°ready; still no overhang finding after length 80, height 24; lid closes to the bead's snap at 175.6° as beforeAlong the way: the pin is flat underneath inside each moving knuckle (a level bridge from one fixed knuckle to the next), which also takes about 25 mm² off every hinge lying on the bed (default hinge 156 → 127 mm²). To keep that bridge at 10 mm or less, a lying hinge on 30 mm of line now gets 5 knuckles by default instead of 3; upright hinges keep the old rule.
Nothing got worse in the other scenes: 78 of 100 are unchanged in body count, shells, smallest gap, shared volume, limits and check; the 22 that differ are the ones above plus lying hinges with less overhang. One scene needs a word: a lid block whose wall ends 6.5 mm under the line (
g1-lid-underside-lowest) had a web that just fitted and now gets none, since the full web needs 6.74 mm (check 25 → 50 mm²); the answer says so.What the assistant is told now
MECHANISM_GUIDANCE: "it builds the geometry with the right gaps" (was "the print-in-place geometry").Contract test expectations changed (not run here)
apps/desktop/e2e/solidcraft.contract.spec.ts, each scene rebuilt in the harness to read the new answer:3 knuckles→5 knuckles; the web sentence → the new one;overhang … 25 mm²→ no overhang finding.3 knuckles, barrel 6 mm→5 knuckles, barrel 6 mm(limits -145° to 67° unchanged).Not built: 3 piece(s) … Everything was taken back; call again with the line moved.→Not built: 5 piece(s) … Everything was taken back.Checked
pnpm run typecheck,eslint,vitest runinapps/desktop(720 passed).test/mechanism.test.tsandtest/templates.test.ts, each with its counter-case.Left open
hingedBoxwithwall3 mm: thin wall 0.26 mm between the knuckles' rooms and the lip's foot, as before this change (108 → 93 mm²).🤖 Generated with Claude Code