Skip to content

v0.17.0 — kernelCAD release

Choose a tag to compare

@w1ne w1ne released this 21 Sep 22:28
· 1539 commits to develop since this release

kernelCAD v0.17.0

Summary

This release contains the changes merged since v0.16.0, including the agent skill guidance from the MUSE sweep (verify-before-submit, design-intent checks, recurring failure classes).

Highlights

Features

  • feat(skill): recurring failure classes in the troubleshooting section (b938ba5)
  • feat(skill): require verified models and design-intent checks (56e86e0)
  • feat(scripts): wrapper typechecker for .kcad.ts examples (70dee6a)
  • feat(cli): heap re-exec for mesh-heavy commands; env fallback (962bb50)
  • feat(scripts,studio): demo capture tuning, cutaway hide and camera refit (8ebf0a5)
  • feat(scripts): add --fps/--width/--height to captureDemo (ab736d4)
  • feat(kernel): close deferred twist/sweep/revolve gaps on merged tree (a4269fc)
  • feat(examples): v0.17 single-spool turbojet hero with render evidence (198fe09)
  • feat(studio): photo attachments in the agent composer (#725) (c8da2fa)
  • feat(studio): simplify the agent rail to one composer (#721) (66dc545)
  • feat(modeling): twisted loft sections, NURBS section placement, real extrude twistAngle (b73defa)
  • feat(direct-edit): drag-to-clearance hero, e2e, demo evidence (ba4084b)
  • feat(studio): direct-edit translate gizmo with ghost preview (c0f79ff)
  • feat(studio): drag snap and nudge math (0353868)
  • feat(studio): staged-edit spec badge, validity delta, gated accept (7c6fb4a)
  • feat(studio): staged-edit direct fields + candidate review (d0f1a8d)
  • feat(server): dev-only PUT save-back for example sources (0153676)
  • feat(direct-edit): plan atomic drag edits (e64759b)
  • feat(direct-edit): resolve per-axis motion specs (a402cf0)
  • feat(direct-edit): resolve named entities to AST call sites (ca53415)
  • feat(diagnostics): catalogue direct-edit codes (ee329b8)
  • feat(sdf): add translate transform to SDF fields (800517f)

Fixes

  • fix(site): keep the editable-source note on the landing hero (9ee2666)
  • fix(site): keep the simplified capability names on the landing (98cb896)
  • fix(site): restore the manufacturable-geometry landing hero (9c991d7)
  • fix(examples): connect the turbojet mechanism; refresh evidence (f84f01e)
  • fix(capture): refuse local imports loudly; dedupe option guards (8cf7119)
  • fix(mates): count mate-vocabulary joints in validate and MCP (1ff5f2c)
  • fix(modeling): close twist-feature review gaps and API truth pass (d215cbb)
  • fix(eval): pass generation events into sweep scoring transcripts (1a94f82)
  • fix(eval): return judge payload on wrapper stdout so categories are parsed (af1fa9d)
  • fix(lint): split hasNonemptyGeometry; sync onReady ref in effect (0661fb5)
  • fix(embed): wait for displayed model, not just source download (df3b916)
  • fix: move OCCT wasm poison detection into shared for layering/CLI (d32607f)
  • fix: recover from OCCT wasm heap poison in long-lived Node/export (bde00f6)
  • fix(e2e): use Playwright getByLabel in studio gate spec (c76688a)
  • fix(scripts): update kinematic facade smoke assertions (6dd0ec1)
  • fix(occt): drop overly narrow return type on resolvePlaneDirectionsFallback (3555378)
  • fix(lint): layering regex matched same-directory siblings named like a layer (2a0722a)
  • fix(assembly): keep name an own property; pin the joint-support hint (732dc63)
  • fix(assembly): restore diagnostic hints and docs after split (2de7174)
  • fix(lint): exempt the two composition roots from one edge only (1e8f0ce)
  • fix(lint): layering patterns were overridden by the shim block (5b3c002)
  • fix(studio): restore recompute timing and original effect semantics after hook split (82db8b1)
  • fix(layering): repoint moved imports and restore inspectStep message text (8dddabc)
  • fix(lint): close layering rule gaps and add kinematic layer (c1d969a)
  • fix(quality): refuse to launder ratchet regressions, tighten shrink handling (3b5050d)
  • fix(direct-edit): fail closed on anchor reassignment; user-visible save failures (96cd759)
  • fix(bom): report flat sheet-metal bbox and split rows on density mismatch (d15bf83)
  • fix(studio): detect mate-driven parts; harden gizmo races; cover gizmo logic (a2bd089)
  • fix(studio): guard approve re-entrancy and post-await staleness (8da3061)
  • fix(studio): validate review endpoint payload shape (2247c7c)
  • fix(direct-edit): signal candidate evaluation failure with 422 (3cc0643)
  • fix(direct-edit): separate review success from interference evidence (75dc3ac)
  • fix(direct-edit): review candidates via source-capable review endpoint (a594903)
  • fix(server): realpath guard and unique tmp save path (363d3b6)
  • fix(direct-edit): reject non-finite deltas; dedicated shared-param code (06d3454)
  • fix(direct-edit): dedupe shared params; severity from registry (a8a4a06)
  • fix(direct-edit): fail closed on reassigned variable anchors (d628435)
  • fix(direct-edit): treat sdf/lib roots as benign in prefix scan (d3e6e6c)
  • fix(direct-edit): follow identifier aliases in prefix-transform scan (45e8de7)
  • fix(direct-edit): downgrade drag edits after prefix rotations (7e7f068)
  • fix(direct-edit): require terminal spine translate; symbol-accurate param resolution (623b7ef)
  • fix(direct-edit): resolve signed and parenthesized numeric literals (e2aefab)
  • fix(direct-edit): fail closed on shadowed params; read numeric literal values (9152b30)
  • fix(direct-edit): fail closed on ambiguous anchors; cover error branches (fd3f627)
  • fix(diagnostics): sync catalogue count titles; clarify unresolved hint (f3f5666)
  • fix(sdf): validate translateField offsets; document translate in fields skill (2439492)

Quality And Robustness

  • refactor(modeling): rename createApi to createModelingApi (9a981aa)
  • refactor(occt): break NURBS lowerer cycles via nurbsKnots leaf (35aae2f)
  • refactor(composition): own kinematic attachment in the script API (8a1378a)
  • refactor(occt): break occtBackend-sceneToWorldFrame cycle via type-only import (3e0b534)
  • refactor(occt): break edgeQueries-occtBackend cycle via type-only import (6c06dec)
  • refactor(naming): break index-queryEvaluator cycle via topoRef import (a371ca6)
  • refactor(kernel): split extrude profiles out; clear ratchet findings (720f6b4)
  • perf(validate,render): prune clash candidates; inspect views + mask cap (5cde391)
  • refactor(composition): own script entry wiring and thread sweep evaluator (09bb4de)
  • refactor(funnel): split GallerySection by phase (3f34730)
  • test(funnel): characterise GallerySection before split (9c3730f)
  • refactor(studio): split Header by phase (4557d1b)
  • refactor(studio): split useMarkingCanvas by phase (4554f63)
  • refactor(studio): split ParametricLayer by phase (9f1aa69)
  • refactor(studio): split Toolbar by phase (21076ba)
  • test(studio): characterise ParametricLayer before split (ae78ec8)
  • refactor(reconstruct): split buildMeshLedger by phase (49b5cab)
  • refactor(studio): split captureInspectionChannels by channel render (454b358)
  • refactor(studio): split useRecomputeResult by phase (fcf5aa0)
  • refactor(occt): split labelToEdgeQuery by phase (d37e1f8)
  • refactor(studio): split ViewerScene by layer phase (fb1b754)
  • refactor(modeling): split measureJointVisuals by phase (a533ffc)
  • refactor(studio): split useProjectLiveUpdates by phase (3003be3)
  • test(studio): characterise ViewerScene before split (9a03f45)
  • refactor(studio): split AIAssistant by phase (c0498bc)
  • refactor(occt): split renderObliqueSection by phase (7edec2d)
  • refactor(occt): split lowerSheetMetalBend by phase (37fedb6)
  • test(studio): characterise useProjectLiveUpdates before split (ecaf9cf)
  • refactor(modeling): split meshFeaturesPerFeature by phase (444cb54)
  • refactor(modeling): split fetchPartFromUrlHost by phase (b9f3cc5)
  • refactor(studio): split useRelowerSubscription by phase (12fdff2)
  • refactor(occt): split renderSections by phase (0567b12)
  • refactor(studio): split ViewGizmo by phase (c8730e2)
  • refactor(studio): split MePage by phase (53811e4)
  • refactor(studio): split ServerRevisionHistory by phase (cac5f70)
  • refactor(render): split runFrameLoopPhase by phase (a434878)
  • refactor(reconstruct): split buildBody by phase (39ef046)
  • refactor(studio): split NumericScrubInput by phase (7cd7a9d)
  • test(studio): characterise MePage before split (2c7ed6f)
  • refactor(kernel): split resolveTopoRef by phase (b075b2a)
  • refactor(studio): split enqueue by transition kind (3325a41)
  • refactor(modeling): split makeCaptureMethods by phase (10b1b49)
  • refactor(kernel): split makeQuery by phase (7f1ff52)
  • refactor(studio): split UserMenuInner by phase (10138ec)
  • refactor(kinematic): split analyzeLoadedPart by phase (fd73d7a)
  • refactor(modeling): split convertSketchEntitiesToConstraints by phase (8a1e7ee)
  • refactor(studio): split Viewer by phase (331f415)
  • test(studio): characterise Viewer before split (3ae5596)
  • refactor(studio): split useAIAssistantChat by phase (6574355)
  • refactor(mcp): split listFacesTool by phase (b9c1563)
  • test(studio): characterise useAIAssistantChat before split (ff0f8d6)
  • refactor(capture): split makePartRef by chain method (95b3a78)
  • refactor(reconstruct): split adoptFragments by phase (7b14283)
  • refactor(mcp): split summarizeLineage by phase (b9ee3c1)
  • test(reconstruct): characterise adoptFragments before split (39ffbfa)
  • refactor(studio): split CodeProvider by phase (e2a41f0)
  • refactor(occt): split tryExtractPlaneFromPlaneRecord by phase (0acce97)
  • refactor(drawing): split applyRadialCallouts by phase (40e7c19)
  • refactor(agent): split exportSvgDrawing by phase (8b2cfc5)
  • refactor(studio): split useDemoAutoLoad by phase (a24de77)
  • refactor(mcp): split reviewPaintPeekLatestTool by phase (a459d47)
  • refactor(drawing): split collectDimensionEdges by phase (6369998)
  • refactor(occt): split tryExtractPlaneViaReplicadHelper by phase (c000d59)
  • refactor(occt): split tryGetVolume by phase (a47269f)
  • refactor(agent): split runAnimate by phase (cbd11b6)
  • refactor(mcp): split diffGeometryTool by phase (dca19f7)
  • refactor(studio): split SceneBrowser by phase (a1179f2)
  • refactor(vision): split extractSilhouettePolyline by phase (557e658)
  • test(mcp): characterise reviewPaintPeekLatestTool before split (ad1362b)
  • refactor(reconstruct): split classifyRegions by phase (1629034)
  • refactor(occt): split drawingForLoop by phase (546cce7)
  • refactor(mcp): split drawingToCadTool by phase (86d686a)
  • refactor(occt): split placeRadiusAndChamferNotes by phase (9f80290)
  • refactor(cli): split evaluate action by phase (8cb397c)
  • refactor(reconstruct): split emitCutoutOps by phase (93fc5c9)
  • refactor(cli): split renderCommand by phase (7d968f0)
  • refactor(import): split chainLoops by phase (933f123)
  • refactor(mcp): split summarizeAssemblies by phase (f02b3df)
  • refactor(cli): split evaluateAndBuildScript by phase (cfcebec)
  • refactor(occt): split resolveEdgesRef by phase (0987b53)
  • test(reconstruct): characterise emitCutoutOps before split (8ed1e0b)
  • test(occt): characterise resolveEdgesRef before split (f6363fc)
  • refactor(studio): split EmbedPage by phase (593ca2b)
  • test(studio): characterise EmbedPage before split (8dfc340)
  • refactor(studio): split StudioShell by phase (ac4a26a)
  • refactor(mates): split resolveStaticLoads by phase (ef52d5c)
  • refactor(studio): split ProjectProvider by phase (3100c69)
  • refactor(dfm): split checkMinWall by sample and hit phases (78c1a95)
  • refactor(usd): split buildLinkBlocks by phase (14835e5)
  • refactor(capture): split computeConstructionClosure by phase (61ff776)
  • refactor(mates): split validateActuatorLimit by phase (4a0eb82)
  • refactor(capture): split detectAttributeShadowing by phase (1c50d4f)
  • refactor(explode): split mateAxisOffsets by edge-select and step phases (cc9b834)
  • refactor(studio): split SceneTab by phase (42c29f3)
  • refactor(mates): split validateMatePhysicalRealization by phase (241ecac)
  • refactor(modeling): split lowerProjectCurve by phase (93162ba)
  • refactor(capture): split buildHelixTubeMesh by phase (f9896a5)
  • refactor(mechanism-truth): split buildPartAdjacency by edge source (db9cef5)
  • test(studio): characterise SceneTab before split (a87fec0)
  • refactor(mates): split buildPoseEnvelopeSamples by phase (c34ec4d)
  • refactor(mates): split pointTriangleDistanceSquared by phase (9a670d0)
  • refactor(assembly): split checkPoseLimits by phase (485917e)
  • refactor(capture): split forwardKinematics by phase (4a4fd6c)
  • refactor(mates): split jointTransformForMate by phase (646949d)
  • refactor(dfm): split analyzeBuildDirection by phase (4be847f)
  • refactor(modeling): split pointTriangleDistanceSq by region cascade (4c3070b)
  • refactor(mates): split resolveSolvedLoads by phase (e07ff3d)
  • refactor(capture): split buildEmbossTextFeatureSpec by phase (a202074)
  • refactor(compute): split lowerAndEmit by phase (d194e8f)
  • refactor(mates): split mateFk by phase (87f0896)
  • refactor(capture): split validateDfmSpecCheckFields by phase (b6b51da)
  • refactor(mates): split validateSolvedContact by phase (3d228c7)
  • refactor(occt): split buildNurbsSketchOnPlane by phase (c709298)
  • refactor(server): split sourceHandler by phase (d2e204f)
  • refactor(studio): split useAnimationPlayback by phase (9de9afd)
  • refactor(reconstruct): split decomposeRun by phase (5a65319)
  • refactor(mcp): split shapeDraftEdit by phase (4d614ce)
  • refactor(mcp): preserve addTransmissionSource emit bytes (0fb6b6c)
  • refactor(reconstruct): split fitGuidedLoop by phase (e9c5f41)
  • test(mcp): characterise shapeDraftEdit before split (5df0478)
  • refactor(studio): split BillingPage by phase (7a000ed)
  • refactor(mcp): split evaluateSide by phase (516c869)
  • refactor(studio): split ProjectManagerDialog by phase (d0420ab)
  • refactor(cli): split trustedManifestPath by phase (b73582b)
  • refactor(studio): split useNumericScrub by phase (9b13380)
  • test(reconstruct): characterise fitGuidedLoop before split (f4824a1)
  • test(studio): characterise BillingPage before split (7aa5bf3)
  • refactor(reconstruct): split rectilinearCorners by phase (349a86d)
  • refactor(studio): split SelectionProvider by phase (b849609)
  • refactor(mcp): split repairScriptTool by phase (2694386)
  • refactor(studio): split StatusBar by phase (7e8581e)
  • refactor(codegeneration): split stepPunct by phase (3352c5d)
  • refactor(drawing): split readTitleBlock by phase (be9cc2a)
  • refactor(reconstruct): split reconstructFromSoup by phase (6678bad)
  • refactor(codegeneration): split handleTypeKeyword by phase (f71b027)
  • test(studio): characterise SelectionProvider before split (d3a2b7a)
  • refactor(mcp): split solveMatesTool by phase (500eeb2)
  • refactor(studio): split direct-edit drag planning by phase (63c0024)
  • test(drawing): characterise readTitleBlock before split (49f1268)
  • refactor(server): split createSessionPool by phase (684dd89)
  • test(codegeneration): characterise handleTypeKeyword before split (0afc243)
  • refactor(mcp): split consumeLexicalContext by phase (06b0d15)
  • refactor(codegeneration): split skipTemplate by phase (fb225b3)
  • test(codegeneration): characterise skipTemplate before split (945cdbb)
  • test(reconstruct): characterise reconstructFromSoup before split (8e8ba7e)
  • refactor(runtime): split walkResolve by phase (af265dd)
  • refactor(studio): split CameraHandler by phase (760c2b6)
  • refactor(studio): split GenerateHero by phase (76e0f02)
  • refactor(mcp): split addTransmissionSource by phase (e2bb1f7)
  • refactor(reconstruct): split emitOp by phase (df6679a)
  • refactor(repair): split recentreEmbossAnchor by phase (9cd0715)
  • refactor(studio): split StagedEditContextDetails by phase (b007e56)
  • test(reconstruct): characterise emitOp before split (270c56a)
  • refactor(mcp): split scanArgEnd by phase (7ba4be1)
  • test(repair): characterise recentreEmbossAnchor before split (0d5357c)
  • refactor(modeling): split variableSweep by phase (c3c2a8e)
  • refactor(capture): split recordSubAssembly by phase (b3e4c24)
  • refactor(cli): split evaluateWithEnvelope by envelope phase (6290653)
  • refactor(occt): split renderAnnotations dispatch by phase (cca6bd6)
  • refactor(occt): split lowerAssemblyModel by phase (b769c64)
  • refactor(mates): split validateJointVisualExposure by phase (1daa851)
  • refactor(capture): split buildRenderEnvironmentFeatureSpec by phase (0c19516)
  • refactor(drawing): split splitAtJunctions by junction phase (ef5f52b)
  • refactor(occt): split recogniseChamfers by phase (a854d92)
  • refactor(occt): split applyVariableEdgeFeature by phase (8b48e0b)
  • refactor(export): split urdfInertialToSdf by phase (2bb8b9c)
  • refactor(mates): split analyzeMate by phase (8de2ba1)
  • refactor(modeling): split nearestSq by phase (7d89c75)
  • refactor(drawing): split levelNamer by naming phase (caa375f)
  • refactor(occt): split lowerVariableSweep by phase (93b47b5)
  • refactor(occt): split meshFaceToGeometry by phase (0cebb0c)
  • refactor(mates): split validateJointAxisBindingWithCache by phase (5cf0e9d)
  • refactor(codegeneration): split looksLikeGeneric by phase (b6ac7bb)
  • refactor(mcp): split addPathSpline by validation phase (0351d94)
  • refactor(mates): split reviewPhysicalUseCaseStatics by phase (cae7606)
  • refactor(intent): split isEmbossTextMetadata by phase (bc05a4e)
  • refactor(import): split parseTransform by phase (dc60caa)
  • refactor(mates): split reviewJointTopology by phase (650e269)
  • refactor(mcp): split captureAnimationTool by phase (82037e7)
  • refactor(mates): split reviewPoseEnvelope by phase (3806df0)
  • refactor(worker): split extrude by phase (921f224)
  • test(import): characterise parseTransform before split (d04c66f)
  • refactor(naming): split evalAst by phase (5e558a8)
  • test(worker): characterise extrude before split (be518cd)
  • refactor(dfm): split anchoredChord by phase (ec481d8)
  • refactor(capture): split validateMateCapacityOptions by phase (dca1eaf)
  • refactor(studio): split mateGraphDrivesPart by phase (3757c05)
  • refactor(occt): split meshShapeForExport by phase (cec8d55)
  • test(examples): twisted-blade loft fixture with geometry assertions (0399227)
  • refactor(occt): split findCanonicalFaceHash by phase (8405083)
  • refactor(occt): split processCommand by phase (e601c24)
  • refactor(mcp): split visualReviewFacts by phase (aa02974)
  • refactor(modeling): split raycast by leaf scan and child push (3c99adb)
  • refactor(agent): split computeRepairRegion by phase (5280248)
  • refactor(occt): split warnPlacementIgnoredByMateFk by phase (50daa8c)
  • refactor(capture): split generatePlanarUVs by phase (09f8c4f)
  • refactor(import): split number by phase (84bf8c1)
  • refactor(modeling): split collectMateRows by resolve/build/tolerance phase (d7c1279)
  • refactor(capture): split validateAnimationTracks by phase (b3dd56b)
  • refactor(mcp): split evaluateQueryTool by phase (941fc05)
  • refactor(occt): split resolveVariableSweepSpine by phase (90a186e)
  • refactor(agent): split buildSuggestedRepairPrompt by phase (e9aef7d)
  • refactor(modeling): split checkTendonBodyIntersectAtPose by phase (d628714)
  • refactor(export): split emitJoint by phase (3dee0a2)
  • refactor(mcp): split evaluateScriptTool by phase (95bba30)
  • refactor(occt): split lowerPattern by phase (5eb124c)
  • refactor(agent): split sceneToConnectorManifest by phase (cc4547f)
  • refactor(shared): split classifyVariable by shape marker table (c5f5596)
  • refactor(mates): split inferPinRadius by phase (9fe9d5f)
  • refactor(reconstruct): split fitCircle2D by phase (c2372e3)
  • refactor(capture): split validateSolvedAssemblyPoses by phase (470b72f)
  • refactor(funnel): split useGeneration submit by phase (04bf1c9)
  • refactor(studio): split ProjectClaimControl by claim state (c56aa84)
  • refactor(naming): split resolveCreated by phase (59dcba4)
  • refactor(mates): split inferPinRadius by phase (ae2106c)
  • refactor(reconstruct): split buildFaceBook by phase (6dd4f2e)
  • refactor(capture): split validateDfmSpecChannelEntries by phase (3975baa)
  • refactor(funnel): split parseBlock by phase (2473f4f)
  • test(studio): characterise ProjectClaimControl before split (a140bd5)
  • test(reconstruct): characterise buildFaceBook before split (6c703f7)
  • refactor(capture): split reflectSketchCommands arrow by phase (79c0f1f)
  • test(capture): characterise reflectSketchCommands before split (cd37d24)
  • refactor(capture): split loft by phase (fe889f5)
  • refactor(modeling): split countMouths by phase (9f48d7a)
  • refactor(cli): split exportPartsScript by phase (51c9065)
  • refactor(mcp): split getFaceLineageTool by phase (76510eb)
  • refactor(occt): split lowerHoles by phase (f6472a3)
  • refactor(studio): split SectionPanel by phase (cba09fc)
  • refactor(drawing): split resolveHoleExtent by phase (18b6419)
  • refactor(reconstruct): split buildBody block mapping by phase (252ad94)
  • refactor(occt): split tryExtractCylinderFromFace by phase (8f936d1)
  • refactor(drawing): split recoverArcs by phase (6516ed9)
  • refactor(worker): split bboxOf by phase (fccc72d)
  • refactor(sdformat): split sdfSerialize by phase (8dbb441)
  • test(occt): characterise tryExtractCylinderFromFace before split (2cdc3f2)
  • refactor(mcp): split scanLineForTopLevelReturn by phase (7d673d9)
  • refactor(fea): split computeFeaSummary by phase (d1d9229)
  • refactor(drawing): split buildLinearDimensions by phase (b18c721)
  • refactor(studio): split SidePanel by phase (68b2e07)
  • refactor(reconstruct): split paramProfile by phase (d6bf068)
  • refactor(mates): split analyzeDisconnectedMesh by phase (0d1cd2e)
  • refactor(mcp): split dfmPreflightTool by phase (1f3a2ca)
  • test(fea): characterise computeFeaSummary before split (44e30f5)
  • test(drawing): characterise buildLinearDimensions before split (20e5e29)
  • refactor(studio): split mergePhysicalUseCaseReview by phase (a6332c4)
  • refactor(mcp): split weakVisualCheckEvidence by phase (ebf9826)
  • refactor(reconstruct): split growPlanes by phase (36481f6)
  • test(mates): characterise analyzeDisconnectedMesh before split (87190ff)
  • refactor(import): split emitPath by phase (82da1f3)
  • refactor(mcp): split findPartTool by phase (0ed86e4)
  • refactor(parts): split fetchPartHost by phase (74f69fa)
  • refactor(studio): split workbenchReducer by phase (fab6ffa)
  • refactor(render): split captureAnimation by phase (e8ce465)
  • refactor(import): split importSvgText by phase (63ef04c)
  • refactor(mcp): split inspectRobotTool by phase (8f335f8)
  • refactor(occt): split flattenPattern by phase (32444da)
  • refactor(occt): split loftSketchSections by phase (040c7ec)
  • refactor(occt): split inspectContinuity by phase (f0c2e2b)
  • refactor(mcp): split resolveTopoRefTool by phase (0dad122)
  • refactor(modeling): split spring by phase (0b0f5a3)
  • refactor(capture): split recordMate by phase (6a99134)
  • refactor(reconstruct): split fitCylinder by phase (445bc38)
  • test(capture): characterise recordMate before split (8cd8d71)
  • refactor(capture): split spline by phase (7dc9476)
  • refactor(capture): split normalizeFdmSettings by phase (7e77abd)
  • refactor(joints): split preflightSupportedServoRevolute by phase (b6b4c1c)
  • refactor(modeling): split voxelize by phase (22f7ee0)
  • refactor(studio): split addRecordKeys by phase (d67bff4)
  • refactor(studio): split jointPrimitiveToSnapshot by phase (027394a)
  • refactor(compute): split processRecord by phase (7a3959e)
  • refactor(reconstruct): split segmentMesh by phase (11a1cb7)
  • refactor(mates): split checkRequiredSupport by phase (7446e16)
  • test(compute): characterise processRecord before split (b6f0fdb)
  • refactor(direct-edit): split planDrag by phase (0670851)
  • refactor(repair): split recentreHoleOnFace by phase (484d06d)
  • refactor(mates): split reviewMechanicalTransmission by phase (dfff69d)
  • refactor(studio): split AgentComposer by phase (2a93407)
  • refactor(export): split urdfSerialize by phase (f57cd81)
  • refactor(occt): split findEdgeByName by name form (1394f12)
  • refactor(capture): split emitSceneBackendFanout by phase (68ecf7b)
  • refactor(mates): split reviewCertifiedJointLoads by phase (5fd1f90)
  • refactor(drawing): split collectHolePositionDimensions by phase (ce994c7)
  • test(occt): characterise findEdgeByName before split (347f254)
  • refactor(occt): split lowerFillet by phase (f46c24b)
  • refactor(export): split materialBlock by phase (774ca36)
  • refactor(studio): split setSelectedFace by phase (7d7f021)
  • refactor(dfm): split checkClearance by phase (429fdd1)
  • refactor(capture): split parseJpeg by phase (1dcd290)
  • test(studio): characterise useFaceSelection before split (b42d190)
  • refactor(cli): split renderHuman by phase (ca54481)
  • refactor(funnel): split PricingTiers tier render by phase (294cb55)
  • refactor(modeling): split createApi into namespace modules (45abc80)
  • refactor(dfm): split buildNode by phase (bd27576)
  • refactor(drawing): split projectionSymbol by phase (e33875b)
  • refactor(naming): split formatAst by phase (5d4933d)
  • test(cli): characterise renderHuman before split (8714cda)
  • refactor(animation): split verifyAnimation by phase (8b1b11d)
  • refactor(occt): split buildMaterial by phase (fd99276)
  • refactor(intent): split isCurve3DMetadata by phase (cf2e5f3)
  • refactor(mcp): split addPatternFeatureTool by phase (77cfde5)
  • refactor(mcp): split drawingToCadTool by phase (ee65f4d)
  • refactor(capture): split bridgeCurves by phase (4d06a35)
  • refactor(occt): split classifyHoleFace by phase (20d7b83)
  • refactor(intent): split isVariableSweepMetadata by phase (9b10286)
  • refactor(mcp): split fetchPartTool by phase (4611e83)
  • refactor(occt): split resolveBendAxis by phase (d1b768f)
  • refactor(mcp): split exportModelTool by phase (4978247)
  • refactor(mcp): split getMassPropertiesTool by phase (d272633)
  • refactor(capture): split buildReferenceImageFeatureSpec by phase (4d602ec)
  • refactor(occt): split buildNurbsFace by phase (c78b7c2)
  • refactor(mcp): split runFeaTool by phase (344f742)
  • test(occt): characterise resolveBendAxis before split (510700d)
  • refactor(mates): split measureBearingCoplanarity by phase (ca2a0c7)
  • refactor(mcp): split exportPartTool by phase (5e4b4eb)
  • refactor(mates): split expandCertificatePoses by phase (eb0d9ed)
  • refactor(occt): split lowerCutout by phase (7bd74ef)
  • refactor(naming): split parseTopoRef by phase (4d1bdb1)
  • test(mcp): characterise runFeaTool before split (38ed7f9)
  • refactor(parts): split findPartHost by phase (cf17969)
  • refactor(occt): split getWire by phase (5e3f072)
  • refactor(capture): split imageDimensions by phase (2430812)
  • refactor(shared): split computeProjectedUVs by phase (621af9d)
  • test(occt): characterise getWire before split (7377a36)
  • refactor(capture): split buildEdgeFeatureRef by phase (d29870d)
  • refactor(reconstruct): split planPhases.ts into focused modules (b56e6ae)
  • refactor(mates): split suggestLimitFix by phase (ec1d5b0)
  • refactor(occt): split tryVec3 by phase (54ae4cd)
  • refactor(mates): split validateAssemblyWithMates by phase (f7c94f8)
  • refactor(mcp): split addVariableSweep by phase (b27ab53)
  • refactor(kinematic): split solveAnalytical by phase (21c3ee9)
  • refactor(kinematic): split runBeamMode by phase (9b2e85d)
  • refactor(mcp): split inspectTool by phase (cc46c1c)
  • test(kinematic): characterise solveAnalytical before split (57b3a54)
  • refactor(kernel): split occtBackend.ts into focused modules (aac2883)
  • refactor(occt): split lowerSheetMetalBend by phase (24e7b98)
  • refactor(server): split paramsHandler by phase (8570b7a)
  • refactor(mcp): split whyDidThisFailTool by phase (168def4)
  • refactor(modeling): split proxy.ts into focused modules (6e60dc2)
  • refactor(occt): split onmessage arrow by phase (804645d)
  • refactor(agent): split runAnimate by phase (4c72446)
  • refactor(modeling): split sketch.ts into focused modules (d62b810)
  • refactor(reconstruct): split fitPlane by phase (ccc67bf)
  • refactor(occt): split worker message handler by phase (45d0e1f)
  • refactor(runtime): split checkOrphanParts by phase (0d30bd3)
  • refactor(occt): split normaliseAutoAnnotate by phase (382778a)
  • refactor(vision): split traceFromImage by phase (1c5f106)
  • test(occt): characterise worker message handler before split (80836c4)
  • refactor(parts): split validateConnectorManifest by phase (28b2b6a)
  • refactor(occt): split normaliseAutoAnnotate by phase (012835b)
  • refactor(mates): split reviewPhysicalUseCasesWithReachability by phase (8e9be90)
  • refactor(drawing): split verifyReconstruction by phase (a95a8bb)
  • refactor(kinematic): split solveNumeric by phase (27ccb4a)
  • refactor(loop): split runClosedLoop by phase (d6b0507)
  • refactor(capture): split buildDrawingToleranceFeatureSpec by phase (024e1e7)
  • refactor(dfm): split runDfmChecksOnModel by phase (76f9c8f)
  • refactor(kinematic): inject sweep evaluator into sweepTolerance (4f3ffa5)
  • refactor(mates): split reviewMechanicalIntent by phase (802ce38)
  • refactor(mcp): split addPathNurbsSegment by phase (345b87f)
  • test(mates): characterise reviewMechanicalIntent before split (606e24a)
  • refactor(occt): split drawingAuto helpers into focused modules (43ff077)
  • refactor(mcp): split inspectSectionTool by phase (b1a45da)
  • refactor(mates): split resolveActuators by phase (7f168e3)
  • refactor(parts): split isPartRecord by phase (402243f)
  • refactor(mates): split requiredContactPathActuatorSources by phase (ef15e9f)
  • refactor(script-runtime): split computeBom by phase (a00a882)
  • refactor(cli): split renderScript by phase (c34deb5)
  • refactor(mcp): split findLastTopLevelReturnLine by phase (1229811)
  • refactor(reconstruct): split sliceAtZ by phase (129e2db)
  • refactor(mates): split makePhysicalUseCaseRecord by phase (950bdb6)
  • refactor(mcp): split addSurfaceFromBoundary by phase (444971d)
  • refactor(cli): split export action by phase (ae9c223)
  • test(mcp): characterise addSurfaceFromBoundary before split (ad33784)
  • refactor(mcp): split findLastTopLevelReturnLine by phase (01ee3db)
  • refactor(drawing): split parseDimensionText by phase (169de17)
  • refactor(runtime): split checkJointMeshContinuity by phase (d5e637f)
  • test(mcp): characterise sourceEditUtils before split (d50d8f5)
  • refactor(reconstruct): split fitLoop by phase (b329b24)
  • refactor(reconstruct): split analyseMesh by phase (473754a)
  • refactor(modeling): break the captureSession-buildModel import cycle (051277a)
  • refactor(occt): split pickFace by phase (58d9c6b)
  • refactor(validation): split validateCommonHoleFields by phase (ec7b90c)
  • test(reconstruct): characterise analyseMesh before split (ae21b66)
  • refactor(mcp): split lineContainsTopLevelReturn by phase (62ad809)
  • refactor(reconstruct): split growPlanes by phase (7213e4c)
  • refactor(mcp): split listFaceLabelsTool by phase (d8fdd83)
  • refactor(server): split animationBakeHandler by phase (13daaaa)
  • refactor(mcp): split designLoopTool by phase (f4179db)
  • refactor(drawing): split identifyViews by phase (c4c607e)
  • refactor(mates): split assessPhysicalUseCaseReachability by phase (a3d1efd)
  • refactor(occt): split inspectCurvature by phase (a20143a)
  • refactor(mates): split validateAssembly by phase (bf3f834)
  • refactor(occt): split fromTriangleMesh by phase (276cd62)
  • refactor(mcp): split buildSurfaceQualityOverlay by phase (5b81ffa)
  • refactor(kernel): split stitchCracks by phase (3bf6777)
  • refactor(capture): split collectTendonMeshes by phase (a348d17)
  • test(mcp): characterise buildSurfaceQualityOverlay before split (3f76c33)
  • refactor(occt): split buildNurbsSketchOnPlane by phase (4d01c3c)
  • test(capture): characterise collectTendonMeshes before split (6a7cec3)
  • refactor(mcp): split injectIntoChain by phase (1351a43)
  • refactor(joints): split withDefaults by phase (6efa8ae)
  • refactor(mcp): split findCloseCall by phase (186b7e9)
  • refactor(naming): split parseExpr by phase (8fc2e32)
  • refactor(studio): drop the set-state-in-effect disable in src/studio/App.tsx (935a75b)
  • refactor(studio): drop the set-state-in-effect disable in src/studio/components/demoPlayer/useDemoPlayerApi.ts (2420160)
  • refactor(studio): drop the set-state-in-effect disable in src/studio/components/demoPlayer/useDemoAutoLoad.ts (ce8d269)
  • refactor(studio): drop the set-state-in-effect disable in src/studio/context/geometry/usePreviewExecution.ts (4c00e6e)
  • refactor(studio): drop the set-state-in-effect disable in src/studio/context/geometry/useSessionToken.ts (146a23e)
  • test(studio): follow the agentEnabled derivation into its helper (10bc5cb)
  • refactor(studio): replace AnimationEngine classify switch with lookup sets (44d88e7)
  • refactor(studio): extract GenerateHero from GeneratePage (d3747bc)
  • refactor(studio): hoist StudioShell flag and count derivations (eb254ed)
  • refactor(studio): extract useViewportToggles from StudioShell (f28d706)
  • refactor(studio): extract SceneFeatureRow from SceneBrowser (7c76dae)
  • refactor(studio): extract SceneContextMenu from SceneBrowser (f66eb96)
  • refactor(studio): extract ScenePanel from SidePanel (b34826e)
  • refactor(studio): extract BuildLoopPanel from SidePanel (1dea857)
  • refactor(studio): extract AnimationTab view parts (3c9c74c)
  • refactor(studio): extract useStagedEditActions from StagedEditSlot (1db943f)
  • refactor(studio): extract useNumericScrub and ScrubRange from NumericScrubInput (48e75d9)
  • refactor(vision): split parseAndValidate by phase (1561b70)
  • refactor(import): split importDxfText by entity kind (c2333f6)
  • refactor(drawing): split hole candidate loop by phase (1373416)
  • refactor(occt): split classifyChain by phase (25c97c8)
  • refactor(modeling): split Shape.material by phase (7c2c073)
  • test(studio): follow the LLMService dynamic import into the extracted hook (299704c)
  • refactor(studio): extract drag hooks and controls from DirectEditGizmo (87da063)
  • refactor(studio): extract PlanSummaryCard from MePage (a5be574)
  • refactor(modeling): split buildFeaStudyFeatureSpec by phase (88f7e05)
  • refactor(kinematic): split evaluateCombo by phase (f882297)
  • refactor(studio): extract magic comment and safe-apply hooks from CodeContext (0ca70a8)
  • refactor(studio): extract useMePageData from MePage (bfb5023)
  • refactor(mcp): split listFaces face summariser by phase (a660169)
  • refactor(modeling): split assemblyToMjcf by phase (b6f8d84)
  • refactor(occt): split lowerEmbossText by phase (914a268)
  • refactor(studio): extract ProjectClaimControl from ProjectPage (f707300)
  • refactor(capture): split nurbsSegment by phase (6f619b7)
  • refactor(mcp): split renderPreviewWork by phase (746b46a)
  • refactor(studio): extract useProjectLiveUpdates from ProjectPage (a5c677d)
  • refactor(studio): extract ViewerScene and viewer hooks from Viewer (e2b5491)
  • refactor(studio): extract useWorkbenchValue from WorkbenchContext (e4d8b92)
  • refactor(reconstruct): split decomposeRun by phase (6446e97)
  • refactor(dfm): split analyzeBuildDirection by phase (ee613e2)
  • refactor(agent): split edgeMatchesQuery by phase (644c58f)
  • refactor(studio): extract phase helpers from buildMaterialFromPBR (d9a7b69)
  • refactor(studio): extract sendMessage phases from LLMService (7458daf)
  • refactor(studio): split isMatedAnchor into named phase helpers (9dce6a4)
  • test(animation): widen bake timeline budget for slow hosts (6eeb9ec)
  • test(scripts): widen ratchet scan timeouts for slow hosts (45079f9)
  • refactor(mates): split contact reachability out of reviewUseCases phase (d1da437)
  • refactor(joints): split validatePreflight by phase (8d7ddef)
  • refactor(mates): split reviewPoseEnvelope by phase (2fb6194)
  • refactor(render): split headlessRender by phase (0c7e612)
  • refactor(mates): split reviewPhysicalUseCases by phase (19e898d)
  • refactor(drawing): split annotation arrow by phase (c3549f3)
  • refactor(reconstruct): split reconstructFromSoup by phase (5366e08)
  • refactor(fea): split runFeaStudy by phase (d1adf8a)
  • refactor(capture): split meshFeaturesPerFeature by phase (184db52)
  • refactor(mcp): split renderPreviewTool by phase (c77d09e)
  • refactor(reconstruct): split detectEdgeBlends by phase (9c1b03a)
  • refactor(export): split usdIsaacSerialize by phase (bc01762)
  • refactor(render): split renderInspectBundle by phase (af25a91)
  • refactor(mates): split resolveStaticSample by phase (d78232c)
  • refactor(dfm): split components by phase (cc1138b)
  • refactor(export): split exportScript by phase (d5bec54)
  • refactor(studio): extract GenerationStatus from StudioGenerate (3fc2a72)
  • refactor(studio): extract GenerationReviewPanel from StudioGenerate (4d6d63d)
  • refactor(studio): extract GenerateForm from StudioGenerate (4ebca1a)
  • refactor(studio): extract ReferencePhotoPanel from StudioGenerate (3c94606)
  • refactor(studio): extract useConceptWorkflow from StudioGenerate (6b8a00d)
  • refactor(studio): extract MarkingIntentPanel from MarkingOverlay (958709d)
  • refactor(studio): extract useGenerationReview from StudioGenerate (a7c04f1)
  • refactor(studio): extract marking intent hook from MarkingOverlay (54437d6)
  • refactor(studio): extract useAgentGeneration from StudioGenerate (eb6f03c)
  • refactor(studio): extract marking canvas hook from MarkingOverlay (4ff54f4)
  • refactor(studio): extract playback tick and transport helpers from useAnimationPlayback (d3de9c6)
  • refactor(studio): extract review-paint persistence from MarkingOverlay (64fbfbc)
  • refactor(studio): extract bake cache and sampling helpers from useAnimationPlayback (17dedb8)
  • refactor(studio): extract usePromptDraft from StudioGenerate (31724a0)
  • refactor(studio): extract useReferencePhoto from StudioGenerate (322cbb7)
  • refactor(studio): extract mark raycast helpers from MarkingOverlay (ecaa0d6)
  • refactor(codegen): split skipType by phase (84ff836)
  • refactor(codegen): split stripTypeScriptSyntax by phase (b364c0b)
  • refactor(reconstruct): split cleanMesh by phase (037d1d1)
  • refactor(modeling): split reviewMechanicalPlausibility by phase (6493b7c)
  • refactor(import): split importSvgText by phase (3ec5eb3)
  • refactor(drawing): split readPdfPageVectors by phase (5dcc4bb)
  • refactor(import): split emitPath by phase (a5908af)
  • test(drawing): characterise readPdfPageVectors before split (d7a4b18)
  • refactor(render): split captureAnimation by phase (8e569e9)
  • refactor(modeling): split validateCertificateAtSolvedPose by phase (d90ff6d)
  • refactor(occt): split renderSvgDrawing by phase (5b22ac2)
  • refactor(modeling): split validateCertificateInput by phase (861c35c)
  • refactor(drawing): split runPipeline by phase (dce6f7f)
  • refactor(occt): split pickEdges by phase (f93e34e)
  • refactor(mcp): split findParamCall by phase (d74be8f)
  • refactor(kinematic): split checkStaticHold by phase (8ea6dad)
  • refactor(drawing): split analyseSheet by phase (8ee2884)
  • refactor(reconstruct): split buildPlan by phase (c2bc806)
  • refactor(modeling): import PerFaceMaterialWarning instead of duplicating it (cf38981)
  • refactor(mates): extract mechanismSummary builder to clear complexity gate (1762df2)
  • refactor(compute): split run by phase (1c5eb3a)
  • refactor(capture): split buildDfmSpecFeatureSpec by phase (c882594)
  • refactor(modeling): split onEvent by phase (60871be)
  • refactor(mates): split summarizeMechanismFitness by phase (f076e37)
  • refactor(occt): split tryExtractPlaneFromFace by phase (718f5fb)
  • test(occt): characterise tryExtractPlaneFromFace before refactor (296e2ed)
  • refactor(drawing): split renderAutoDrawing by placement phase (5f8593a)
  • refactor(script-runtime): split runAndExport by export phase (0440d64)
  • refactor(drawing): split reconstructPart into solver and phase modules (159ee90)
  • refactor(assembly): pass a typed state object instead of casting (8498d97)
  • refactor(occt): address review minors on the lowerers split (4ad29fa)
  • test(diagnostics): scan occt lowerers for emitted codes (b4cc54e)
  • refactor(assembly): move part and subAssembly recording into assemblyParts.ts (f61aa40)
  • refactor(assembly): move solve, solvedModel and SolvedKinematics out of assembly.ts (ef58aab)
  • refactor(modeling): inject kinematic facade instead of importing it (ffe107f)
  • refactor(assembly): move mechanical-intent recording into assemblyIntents.ts (34e02a1)
  • refactor(assembly): move joint, mate and tendon recording into assemblyJoints.ts (a4c3db7)
  • refactor(assembly): move assembly DSL types to assemblyTypes.ts (56d7ec4)
  • refactor(occt): replace lower() switch with a per-kind dispatch table (aec67f9)
  • refactor(kinematic): move sweepTolerance orchestration to agent layer (8fe3237)
  • refactor(materials): move engineering material data to shared/materials (656028a)
  • refactor(occt): move hole, pattern, sheet-metal, surface and curve lowering into lowerers/ (090eecb)
  • refactor(diagnostics): exhaustive legacy code order and truthful header (d3518a4)
  • refactor(occt): move sweep, loft, boolean and edge-feature lowering into lowerers/ (2047c79)
  • refactor(studio): split useScriptExecution into mesh-fetch, session, relower, and param-update hooks (0e04fe3)
  • refactor(occt): move primitive, import, sketch, extrude and revolve lowering into lowerers/ (cff57d3)
  • refactor(occt): thread a LowerContext through lower() (6a4afce)
  • refactor(studio): extract Toolbar buttons and publish hook (c82ba43)
  • refactor(studio): extract Header clusters and history hook (dd0808d)
  • refactor(studio): extract AIAssistant chat state and message rendering (a462d06)
  • refactor(studio): split DemoPlayerPage into playback hook and view components (d1be89a)
  • refactor(studio): split GeometryProvider into concern hooks (1cb613b)
  • refactor(diagnostics): split the diagnostic registry per domain (3c4a34b)
  • refactor(diagnostics): registry.ts becomes registry/index.ts (0ee1e7b)
  • test(diagnostics): snapshot registry projections and code order (e02c002)
  • refactor: move animation sampling to modeling and headless player entry to studio (9d41ddf)
  • refactor(kernel): move surface sew lowering and STEP inspection out of modeling/agent (8625cd3)
  • refactor(kernel): decouple verb curve bridge from modeling proxies via carrier interfaces (9ae291e)
  • refactor(kernel): move hermiteG2 solver to kernel/geometry (00a4232)
  • refactor(kernel): move massProperties below the backend interface (3febe29)

Documentation And Demos

  • docs(demos): re-capture turbojet demo for the connected mechanism (f002165)
  • docs(examples): demo no longer blocked; record capture settings (63fd03c)
  • docs(demos): capture v0.17 turbojet cutaway demo (b98811b)
  • docs(plan): mark easy-start plan complete after deployment verification (#750) (c10bf7d)
  • docs(examples): post-merge status and gap-log closure (6f5af45)
  • docs(demos): v0.17 turbojet whats-new, meta and capture prompt (cf388c5)
  • docs(superpowers): mark v0.17 turbojet plan executed with measured results (850c0e6)
  • docs: mark MUSE sweep spec implemented after first full run (a345a79)
  • docs: add MUSE 106-case sweep spec and implementation plan (351d0c6)
  • docs(superpowers): v0.17 turbojet hero spec and implementation plan (dd189b4)
  • docs(studio): cite the real test in usePreviewExecution comment (417df57)
  • docs(diagnostics): correct registry index header comments (db95d33)
  • docs(demo): show the drawing before the 3D rebuild (8b6324e)

Other Changes

  • Merge pull request #756 from w1ne/feat/agent-verify-intent (aee733c)
  • Merge pull request #755 from w1ne/fix/landing-restore-hero (4dedb56)
  • Merge pull request #754 from w1ne/feat/v0.17-turbojet-engine (2062e3e)
  • Merge remote-tracking branch 'origin/develop' into feat/v0.17-turbojet-engine (1fe0d33)
  • Merge remote-tracking branch 'origin/develop' into feat/v0.17-turbojet-engine (bd4c2f5)
  • Merge pull request #752 from w1ne/refactor/slice8-ownership (5b52300)
  • Merge pull request #753 from w1ne/refactor/cycle-clear (c719481)
  • chore(quality): clear cycleBaseline after breaking the five remaining cycles (c38c9eb)
  • chore(lint): drop the modeling->kinematic layering exception (8a775cd)
  • Merge pull request #735 from w1ne/refactor/slice8-sweeptolerance (54bda5a)
  • Merge pull request #727 from w1ne/fix/occt-wasm-poison-recovery (1cd0961)
  • Merge branch 'develop' into fix/occt-wasm-poison-recovery (610fb3f)
  • Merge branch 'develop' into refactor/slice8-sweeptolerance (34edfc2)
  • Merge pull request #751 from w1ne/refactor/ratchet-22 (9d6b8b9)
  • chore(quality): regenerate baseline — lowered-threshold pass complete (a1b7576)
  • Merge branch 'refactor/ratchet-22-f' into refactor/ratchet-22 (e8debd8)
  • Merge branch 'refactor/ratchet-22-e' into refactor/ratchet-22 (2781d55)
  • Merge branch 'refactor/ratchet-22-d' into refactor/ratchet-22 (866ffcc)
  • Merge branch 'refactor/ratchet-22-c' into refactor/ratchet-22 (f6c1635)
  • Merge branch 'refactor/ratchet-22-b' into refactor/ratchet-22 (81c584f)
  • Merge pull request #749 from w1ne/refactor/ratchet-21 (3d07e00)
  • Restore Studio homepage and move examples into Quick start (#748) (7af187e)
  • chore(quality): regenerate baseline after ratchet-21 wave (41c6a67)
  • Merge branch 'refactor/ratchet-21-f' into refactor/ratchet-21 (f278cac)
  • Merge branch 'refactor/ratchet-21-e' into refactor/ratchet-21 (77ff2ac)
  • Merge branch 'refactor/ratchet-21-d' into refactor/ratchet-21 (5a78904)
  • Merge branch 'refactor/ratchet-21-c' into refactor/ratchet-21 (d78802e)
  • Merge branch 'refactor/ratchet-21-b' into refactor/ratchet-21 (382847e)
  • Merge pull request #747 from w1ne/refactor/ratchet-20 (2a12232)
  • Make KernelCAD easy to try with free editable examples (#746) (d78a39b)
  • chore(quality): regenerate baseline after ratchet-20 wave (86ff1ac)
  • Merge branch 'refactor/ratchet-20-f' into refactor/ratchet-20 (405aac7)
  • Merge branch 'refactor/ratchet-20-e' into refactor/ratchet-20 (35879bb)
  • Merge branch 'refactor/ratchet-20-d' into refactor/ratchet-20 (e86bf62)
  • Merge branch 'refactor/ratchet-20-c' into refactor/ratchet-20 (ab6406d)
  • Merge branch 'refactor/ratchet-20-b' into refactor/ratchet-20 (e987ddd)
  • Merge pull request #745 from w1ne/refactor/ratchet-19 (fcb5a7b)
  • chore(quality): regenerate baseline after ratchet-19 wave (8d96c9d)
  • Merge branch 'refactor/ratchet-19-f' into refactor/ratchet-19 (5c39ea8)
  • Merge branch 'refactor/ratchet-19-e' into refactor/ratchet-19 (5fcd143)
  • Merge branch 'refactor/ratchet-19-d' into refactor/ratchet-19 (0ec34d3)
  • Merge branch 'refactor/ratchet-19-c' into refactor/ratchet-19 (727f318)
  • Merge branch 'refactor/ratchet-19-b' into refactor/ratchet-19 (7fa7a36)
  • Merge pull request #744 from w1ne/refactor/ratchet-18 (d6296e5)
  • chore(quality): regenerate baseline after ratchet-18 wave (48a1cc9)
  • Merge branch 'refactor/ratchet-18-f' into refactor/ratchet-18 (a00a874)
  • Merge branch 'refactor/ratchet-18-e' into refactor/ratchet-18 (6cd6014)
  • Merge branch 'refactor/ratchet-18-d' into refactor/ratchet-18 (4f35435)
  • Merge branch 'refactor/ratchet-18-c' into refactor/ratchet-18 (a1326c2)
  • Merge branch 'refactor/ratchet-18-b' into refactor/ratchet-18 (e8eb649)
  • Merge remote-tracking branch 'origin/develop' into feat/v0.17-turbojet-engine (1537f20)
  • Merge pull request #743 from w1ne/refactor/ratchet-17 (a1628d8)
  • chore(quality): regenerate baseline after ratchet-17 wave (6ca1fdc)
  • Merge branch 'refactor/ratchet-17-f' into refactor/ratchet-17 (d8994c3)
  • Merge branch 'refactor/ratchet-17-e' into refactor/ratchet-17 (14350f5)
  • Merge branch 'refactor/ratchet-17-d' into refactor/ratchet-17 (6583503)
  • Merge branch 'refactor/ratchet-17-c' into refactor/ratchet-17 (eeed7fc)
  • Merge branch 'refactor/ratchet-17-b' into refactor/ratchet-17 (d26fe32)
  • chore(release): bump version to 0.17.0 (25f0240)
  • Merge pull request #741 from w1ne/feat/muse-106-sweep (2d8cd25)
  • Merge pull request #742 from w1ne/refactor/ratchet-16 (4fd6424)
  • chore(quality): regenerate baseline after ratchet-16 wave (66db59d)
  • Merge branch 'refactor/ratchet-16-f' into refactor/ratchet-16 (bf95a54)
  • Merge branch 'refactor/ratchet-16-e' into refactor/ratchet-16 (3d18857)
  • Merge branch 'refactor/ratchet-16-d' into refactor/ratchet-16 (de395ab)
  • Merge branch 'refactor/ratchet-16-c' into refactor/ratchet-16 (1f9d066)
  • Merge branch 'refactor/ratchet-16-b' into refactor/ratchet-16 (382f505)
  • eval: record kernelCAD git provenance in sweep envelope and protocol (5259122)
  • eval: cap oracle CLI and judge spawns with timeouts (030da68)
  • Merge pull request #740 from w1ne/refactor/ratchet-15 (8b7fd9f)
  • chore(quality): regenerate baseline after ratchet-15 wave (5dcb8a1)
  • Merge branch 'refactor/ratchet-15-f' into refactor/ratchet-15 (fa57acd)
  • Merge branch 'refactor/ratchet-15-e' into refactor/ratchet-15 (a2115c1)
  • Merge branch 'refactor/ratchet-15-d' into refactor/ratchet-15 (d8a620e)
  • Merge branch 'refactor/ratchet-15-c' into refactor/ratchet-15 (8847d28)
  • Merge branch 'refactor/ratchet-15-b' into refactor/ratchet-15 (75173c6)
  • eval: ignore Python bytecode from oracle wrappers (d8f03a4)
  • eval: add mock fixture for MUSE sweep integration test (54ca441)
  • eval: add resumable parallel MUSE sweep CLI (ab1a660)
  • eval: add MUSE leaderboard/summary/protocol report generator (8e3b11d)
  • eval: add MUSE sweep preflight checks (a7cd499)
  • eval: add MUSE alignment-judge wrapper and TS judge module (2680beb)
  • eval: split runTask into generateCase and scoreCase for sweep resume (12112c5)
  • eval: exclude infra cases from MUSE aggregate denominators (9818c8f)
  • eval: add MUSE pillar aggregation with forced-zero semantics (cb665a9)
  • eval: harden sweep state reads and boundary tests (816e768)
  • Merge pull request #739 from w1ne/chore/ratchet-thresholds-15 (b820eab)
  • eval: add per-case sweep state machine (b347c02)
  • eval: validate mapPool limit and document rejection semantics (dee638e)
  • eval: add bounded-concurrency map helper (306f3fc)
  • chore(quality): lower ratchet thresholds to complexity 15 and 100 function lines (fa69261)
  • eval: add selectable system-prompt builder for sweep runs (63da3a3)
  • eval: harden OpenAI-compat client retries and tests (30d48eb)
  • eval: add OpenAI-compatible agent client for DeepInfra sweep runs (a3012a2)
  • eval(muse): import all 106 MUSE cases as tasks (a2ad2bd)
  • Merge pull request #738 from w1ne/refactor/complexity-tail-9 (6ec97c1)
  • chore(quality): regenerate baseline — all findings cleared (80837f4)
  • Merge branch 'refactor/complexity-tail-9-f' into refactor/complexity-tail-9 (40d7df7)
  • Merge branch 'refactor/complexity-tail-9-e' into refactor/complexity-tail-9 (8aa0050)
  • Merge branch 'refactor/complexity-tail-9-d' into refactor/complexity-tail-9 (b1e3532)
  • Merge branch 'refactor/complexity-tail-9-c' into refactor/complexity-tail-9 (397ca8f)
  • Merge branch 'refactor/complexity-tail-9-b' into refactor/complexity-tail-9 (0ec20c8)
  • Merge branch 'refactor/complexity-tail-9-a' into refactor/complexity-tail-9 (b4b18a2)
  • Merge pull request #737 from w1ne/refactor/complexity-tail-8 (7e7440c)
  • Merge pull request #736 from w1ne/fix/embed-loading-states (2dddc38)
  • chore(quality): regenerate baseline after the combined tail batch (818fe52)
  • Merge branch 'refactor/filelen-sketch' into refactor/complexity-tail-8 (fd0a521)
  • Merge branch 'refactor/filelen-proxy' into refactor/complexity-tail-8 (06cb15f)
  • Merge branch 'refactor/function-length-a' into refactor/complexity-tail-8 (4095477)
  • chore(quality): regenerate baseline after tail batch 8 merges (c55b62b)
  • Merge branch 'refactor/complexity-tail-8-c' into refactor/complexity-tail-8 (8816113)
  • Merge branch 'refactor/complexity-tail-8-b' into refactor/complexity-tail-8 (9cee6ce)
  • Merge pull request #733 from w1ne/refactor/complexity-tail-7 (89e425f)
  • Merge branch 'develop' into refactor/complexity-tail-7 (8036115)
  • Revert "refactor(occt): split normaliseAutoAnnotate by phase" (2bbed76)
  • Merge pull request #734 from w1ne/refactor/filelen-drawing-auto (12731cb)
  • chore(quality): regenerate baseline after tail batch 7 merges (520c8f1)
  • Merge branch 'refactor/complexity-tail-7-c' into refactor/complexity-tail-7 (5ecff4e)
  • Merge branch 'refactor/complexity-tail-7-b' into refactor/complexity-tail-7 (4b75274)
  • Merge pull request #732 from w1ne/refactor/complexity-tail-6 (882bb80)
  • Merge pull request #731 from w1ne/chore/masked-cycle-fix (b99b248)
  • chore(quality): regenerate baseline after tail batch 6 merges (39a3d98)
  • Merge branch 'refactor/complexity-tail-6-c' into refactor/complexity-tail-6 (13c0be1)
  • Merge branch 'refactor/complexity-tail-6-b' into refactor/complexity-tail-6 (6e593e7)
  • Merge pull request #730 from w1ne/refactor/complexity-tail-5 (39d19c5)
  • Merge branch 'develop' into refactor/complexity-tail-5 (8ad9848)
  • Merge pull request #729 from w1ne/chore/remove-set-state-disables (0f853f6)
  • chore(quality): regenerate baseline after tail batch 5 merges (ed687ed)
  • Merge branch 'refactor/complexity-tail-5-c' into refactor/complexity-tail-5 (b65c68a)
  • Merge branch 'refactor/complexity-tail-5-b' into refactor/complexity-tail-5 (8be1a17)
  • Merge pull request #728 from w1ne/refactor/studio-length (80bdb6a)
  • Merge branch 'develop' into refactor/studio-length (200caf4)
  • Merge pull request #726 from w1ne/refactor/complexity-tail-4 (bd7a2bc)
  • chore(quality): regenerate baseline after tail batch 4 merges (d46a67f)
  • Merge branch 'refactor/studio-length-c' into refactor/studio-length (7b3151b)
  • Merge branch 'refactor/studio-length-b' into refactor/studio-length (451801a)
  • Merge branch 'refactor/complexity-tail-4-c' into refactor/complexity-tail-4 (caeac13)
  • Merge branch 'refactor/complexity-tail-4-b' into refactor/complexity-tail-4 (25df445)
  • Merge pull request #723 from w1ne/refactor/studio-tail (405757a)
  • Merge branch 'develop' into refactor/studio-tail (da20042)
  • Merge pull request #722 from w1ne/chore/quality-followups (469a9a1)
  • Merge pull request #724 from w1ne/refactor/complexity-tail-3 (3415623)
  • chore(quality): regenerate baseline after studio tail merges (3df29c5)
  • chore(quality): regenerate baseline after tail batch 3 merges (4524448)
  • Merge branch 'refactor/studio-tail-llm' into refactor/studio-tail (fc7b30b)
  • Merge branch 'refactor/complexity-tail-3-c' into refactor/complexity-tail-3 (d8c117f)
  • Merge branch 'refactor/complexity-tail-3-b' into refactor/complexity-tail-3 (c869847)
  • Merge branch 'refactor/studio-tail-target' into refactor/studio-tail (cd9149c)
  • Merge pull request #720 from w1ne/refactor/studio-second-tier (fccc0a2)
  • Merge branch 'develop' into refactor/studio-second-tier (835ceb1)
  • Merge pull request #719 from w1ne/refactor/complexity-tail-2 (7c657fd)
  • Merge branch 'refactor/studio-second-tier-anim' into refactor/studio-second-tier (bc68a7e)
  • Merge branch 'refactor/studio-second-tier-gen' into refactor/studio-second-tier (d838714)
  • Merge branch 'refactor/complexity-tail-2-c' into refactor/complexity-tail-2 (35f9713)
  • Merge branch 'refactor/complexity-tail-2-b' into refactor/complexity-tail-2 (ec09716)
  • Merge pull request #718 from w1ne/refactor/complexity-tail-1 (104a481)
  • Merge branch 'refactor/complexity-tail-1-c' into refactor/complexity-tail-1 (4e6c3b7)
  • Merge branch 'refactor/complexity-tail-1-b' into refactor/complexity-tail-1 (16d9564)
  • Merge pull request #707 from w1ne/fix/engineer-stack-sister-links (d361ac6)
  • Merge pull request #717 from w1ne/integration/quality-ratchet-trial (827ccb7)
  • Merge pull request #711 from w1ne/refactor/import-layering (c043e2a)
  • Merge pull request #710 from w1ne/chore/quality-ratchet (5f22d52)
  • Merge branch 'refactor/studio-hotspots' into integration/quality-ratchet-trial (0b052e7)
  • Merge branch 'refactor/assembly-split' into integration/quality-ratchet-trial (f5b3b08)
  • Merge branch 'refactor/occt-lowerer-split' into integration/quality-ratchet-trial (c270384)
  • Merge branch 'refactor/kinematic-layering-2b' into integration/quality-ratchet-trial (25fc2e2)
  • Merge branch 'refactor/diagnostics-registry-split' into integration/quality-ratchet-trial (eb51f6e)
  • Merge branch 'refactor/import-layering' into integration/quality-ratchet-trial (0776599)
  • Merge branch 'refactor/import-layering' into refactor/kinematic-layering-2b (58295ed)
  • Merge branch 'refactor/import-layering' into refactor/studio-hotspots (d343480)
  • Merge branch 'refactor/import-layering' into refactor/assembly-split (de6f36d)
  • Merge branch 'refactor/import-layering' into refactor/occt-lowerer-split (9cb7f6c)
  • Merge branch 'refactor/import-layering' into refactor/diagnostics-registry-split (a88e04f)
  • chore(quality): regenerate baseline on the combined slices (23e6596)
  • Merge branch 'refactor/studio-hotspots' into integration/quality-ratchet-trial (07bac5b)
  • Merge branch 'refactor/assembly-split' into integration/quality-ratchet-trial (6acc1a2)
  • Merge branch 'refactor/occt-lowerer-split' into integration/quality-ratchet-trial (9590ea2)
  • Merge branch 'refactor/kinematic-layering-2b' into integration/quality-ratchet-trial (aab0faf)
  • Merge branch 'refactor/diagnostics-registry-split' into integration/quality-ratchet-trial (15d31ad)
  • chore: drop merged shim plumbing after the shim deletion (f8ed0e8)
  • Merge branch 'refactor/import-layering' into refactor/kinematic-layering-2b (e1623ef)
  • revert: kinematic facade injection and sweepTolerance move (8ccca50)
  • chore: fix stale path comment in moved sweepTolerance.ts (ab6dba7)
  • chore: remove deprecated re-export shims from slice 2 (4ae3da5)
  • chore(quality): regen ratchet baseline after Studio hotspot splits (27f8129)
  • chore(quality): regen ratchet baseline after diagnostics registry split (f8ddbf0)
  • lint: block direct imports of the deprecated re-export shims (0dc78d0)
  • Merge branch 'chore/quality-ratchet' into refactor/import-layering (f99d6f6)
  • chore(quality): add SPDX headers to ratchet scripts (db4202f)
  • chore(lint): exempt test files from the layering rule (d752f54)
  • chore(lint): enforce shared->kernel->modeling->agent->studio import direction (b746d25)
  • chore(quality): baseline import cycles and gate src against new ones (8d24531)
  • chore(quality): baseline complexity/size findings and gate src against growth (64fc499)
  • chore(quality): add eslint complexity/size finding collector with baseline diff (ed35653)
  • Merge pull request #709 from w1ne/feat/direct-edit-drag (ef78251)
  • Merge pull request #708 from w1ne/fix/bom-drifts (0ace26d)
  • Replace proto.cat with live sister-site links in the engineer stack footer. (7b270db)
  • Merge pull request #706 from w1ne/docs/v016-demo-shows-drawing (40f68c5)
  • Merge pull request #705 from w1ne/chore/release-v0.16.0 (7000942)
  • ci: stop Pages unsharded test colliding with required check; load gmsh libs (a06cdbb)