Skip to content

test(examples): evaluate the kinematic smoke scripts; pin the colliding arm fixture - #1383

Merged
w1ne merged 3 commits into
developfrom
fix/kinematic-smoke-exemptions-20261113
Nov 13, 2026
Merged

w1ne merged 3 commits into
developfrom
fix/kinematic-smoke-exemptions-20261113

Conversation

@w1ne

@w1ne w1ne commented Nov 13, 2026

Copy link
Copy Markdown
Owner

Summary

This PR closes the last three unclaimed EVALUATION_EXEMPT entries in tests/integration/fast/exampleParseSmoke.test.ts that are not environment-dependent. Two exemptions were stale. One intentional negative fixture is now pinned to its expected diagnostic. Test-only change; no engine or example source changes.

Reproduction (develop 80f7542be)

npx tsx src/agent/cli/index.ts evaluate examples/kinematic/end-to-end-smoke.kcad.ts
# [smoke] kc.kinematic.* end-to-end dispatch OK / Features: 12 / OK
npx tsx src/agent/cli/index.ts evaluate examples/kinematic/swept-collision-smoke.kcad.ts
# [smoke] swept-collision dispatch OK: cleanPoses=37, dirtyPoses>=13 / Features: 10 / OK
npx tsx src/agent/cli/index.ts evaluate examples/robot-arm/skill-built-supported-arm-01-colliding.kcad.ts --json
# ok:false, 5 x assembly.interference.overlap, first: Parts 'base-frame' and 'yaw-turret' overlap by 2585.37 mm³

The exemption reason for both kinematic scripts was "exits with unknown-joint error". Neither script reports that error now.

Changes

Entry Before After
kinematic/end-to-end-smoke.kcad.ts Exempt Evaluates cleanly
kinematic/swept-collision-smoke.kcad.ts Exempt Evaluates cleanly
robot-arm/skill-built-supported-arm-01-colliding.kcad.ts Exempt EXPECTED_FAILURE: assembly.interference.overlap, "Parts 'base-frame' and 'yaw-turret' overlap"

Results

  • Targeted run (3 examples + classification test): 7/7 passed. end-to-end-smoke 0.8 s, colliding fixture 0.5 s; budget 15 s.
  • Full exampleParseSmoke.test.ts: 259/259 passed (68 s).
  • ESLint on the changed file: clean.

Limits

🤖 Generated with Claude Code

github-actions Bot and others added 3 commits November 13, 2026 18:13
…ng arm fixture

end-to-end-smoke and swept-collision-smoke were exempt from the evaluate
smoke test with "exits with unknown-joint error". On develop 80f7542 both
evaluate ok and print their dispatch-OK lines, so the exemption is stale.
Remove it so the test evaluates both.

skill-built-supported-arm-01-colliding is an intentional repair-loop
fixture. Move it from the exemption list to EXPECTED_FAILURE, pinned to its
'base-frame'/'yaw-turret' assembly.interference.overlap diagnostic.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: w1ne <41898282+w1ne@users.noreply.github.com>
The mate solver grounds the first declared part and walked only that
part's component. Mates in any other component were silently dropped:
the child stayed at its authored pose. Both the lowered geometry
(mateFk) and solveMates (swept collision, reviews) were affected.

The kernelcad-kinematic cookbook 05-clamshell-hinge-swept declares an
unmated `table` first. Its `lid` never swung: evaluate reported a
180000 mm3 base/lid overlap at hinge 90, and checkSweptCollision
reported 31/31 poses colliding. Declaring `table` last gave 3/31.

Now every mated component is walked from its first declared part,
which stays where its `at` puts it, like the grounded part.
solveMates solves disconnected components by default;
`solveDisconnectedComponents: false` keeps the old grounded-only walk.

The assembly-sequence-gearbox example relied on its shaft/gear mates
being ignored; its seats did not sit at the gear centres. Put the
seats at the modelled gear centres so the mates keep every part where
it is drawn. The placement-ignored-by-mate-fk test now expects the
note for the mated child of an unreached component.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: w1ne <41898282+w1ne@users.noreply.github.com>
…t part"

This reverts commit 91b9522.

Signed-off-by: w1ne <41898282+w1ne@users.noreply.github.com>
@w1ne

w1ne commented Nov 13, 2026

Copy link
Copy Markdown
Owner Author

Commit 91b9522 (mate solver fix) was pushed to this branch by mistake. Commit 2674201 reverts it; the tree now matches 055a0a3. The fix is now in #1385. No change to this PR's scope.

@w1ne
w1ne merged commit 0df5a19 into develop Nov 13, 2026
17 checks passed
@w1ne
w1ne deleted the fix/kinematic-smoke-exemptions-20261113 branch November 13, 2026 21:37
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.

1 participant