Repository navigation
Expose geometry-only KCL sessions in Python - #14432
Merged
Merged
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
r-barton
marked this pull request as ready for review
October 8, 2026 15:32
Merging this PR will not alter performance
Comparing Footnotes
|
adamchalmers
approved these changes
Oct 8, 2026
rifont
added a commit
to taucad/modeling-app
that referenced
this pull request
Oct 11, 2026
* Account for WebSocket::Close and display WebSocket read errors in test output (KittyCAD#13976) * Stabilize unit settings Playwright coverage (KittyCAD#13982) * Reinstate CPU rendered tests for KCL samples (KittyCAD#13981) Co-authored-by: Adam Chalmers <adam.chalmers@zoo.dev> * Require a successful build to run desktop tests (KittyCAD#13986) * KCL: Yield in loop to avoid spinloop (KittyCAD#13985) Before this PR, the loop body will hold the RWLock guard on a resource, and then rerun the loop (dropping the guard at the end of the loop body), then immediately grab the lock again. So no other task has the chance to get this resource. This is bad because we're looping over something, waiting for the locked value to change, while preventing any other tasks from changing it. By yielding this task, tokio can run other tasks (including the task that might change the value). And we should drop the guard before yielding, otherwise tasks that might change this value can't. * Update defined datum MBD visual test assets (KittyCAD#13974) * Add fast-check ref to src/AGENTS.md (KittyCAD#13978) * Select duplicate sketch instances in reports and PNG rendering (KittyCAD#13882) Co-authored-by: Adam Chalmers <adam.chalmers@zoo.dev> * Serialize artifact helper executions per manager (KittyCAD#13764) * KittyCAD#13964 Fix popup scroll after paste (KittyCAD#13965) * Record the first Modeling shutdown trigger (KittyCAD#13995) * Fix sketch point constraint colours (KittyCAD#13734) * Repair ui-components lockfile (KittyCAD#13997) * Use npm ci in workflows (KittyCAD#13999) * Preserve first failed Playwright artifacts (KittyCAD#13893) * Expose renderless execution in KCL Python bindings (KittyCAD#13990) * Record WebRTC disconnect diagnostics (KittyCAD#14000) * KCL: Fix quadratic behavior in post-extrude (KittyCAD#14007) * Benchmark koch star (KittyCAD#14010) * Separate intentional execution interrupt logs (KittyCAD#14014) * Coalesce Zookeeper project reloads (KittyCAD#14015) * KCL Python: Persistent connection after executing KCL (KittyCAD#13991) Currently there's a bunch of "execute_and_do_thing" functions in zoo-kcl, e.g. execute, execute+snapshot, execute+measure, execute+export. Python users often want to execute a file and then do many of these -- both snapshot, and measure, and export. But the current zoo-kcl (aka kcl-python-bindings) library forces them to re-execute KCL to do this. For a long time, I was told this didn't matter much, because the KCL execution is very fast compared to the rest of our ML stack (i.e. LLM and AI calls). But now we're finally executing complex enough models that the KCL can become the bottleneck! This is an exciting problem to have. Co-authored-by: Jordan Noone <jordan@kittycad.io> * Pass KCL session video resolution to Engine (KittyCAD#14030) * More MBD test asset updates (KittyCAD#14004) Co-authored-by: Jordan Noone <jordan@kittycad.io> * Delay settings reset success toast (KittyCAD#14035) * Preserve settings edits during disk reload (KittyCAD#13755) * Wait for grid setting updates in E2E test (KittyCAD#14034) * Wait for shared cloud copy sync before opening (KittyCAD#14036) * Deduplicate current-buffer flush (KittyCAD#14037) * Require all VS Code extension tests to pass (KittyCAD#13786) * Route geometry-only integration tests to CPU engine pool (KittyCAD#13967) Co-authored-by: Jordan Noone <jordan@kittycad.io> * Upload KCL snapshot mismatch artifacts (KittyCAD#14040) * Preserve request IDs in native Engine errors (KittyCAD#13754) * Run nonvisual KCL tests on CPU Engines (KittyCAD#14053) * Warn when extrude MERGE has no parent body (KittyCAD#14057) * Increase macOS desktop build heap (KittyCAD#14061) * Tear down active Engine sessions after E2E tests (KittyCAD#14067) * Propagate CPU integration test Engine errors (KittyCAD#14069) * Clarify Ubuntu AppImage installation (KittyCAD#14050) * Dispose failed Electron fixtures before teardown (KittyCAD#13705) * Use a signal for onboarding startup pending state (KittyCAD#13844) Co-authored-by: Pierre Jacquier <pierre@zoo.dev> * Add support for running KCL tests across multiple versions (KittyCAD#14008) * Isolate Electron fixture settings resets (KittyCAD#14070) * Rename Insert to Import and hide URL import from the palette (KittyCAD#13770) * Bump actions/create-github-app-token from 2 to 3 (KittyCAD#14027) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Route more nonvisual Vitest suites to CPU Engines (KittyCAD#14063) * docs: Add a guide for migrating KCL programs from 2.0 to 3.0 (KittyCAD#13984) * Bump kcl crate versions to 186 (KittyCAD#13957) Co-authored-by: Adam Chalmers <adam.chalmers@zoo.dev> * Bump the patch group across 1 directory with 5 updates (KittyCAD#14075) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump astral-sh/setup-uv from 10.0.1 to 10.1.0 in the minor group (KittyCAD#14025) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump vitest from 4.1.11 to 5.0.0 in /packages/codemirror-lang-kcl (KittyCAD#13817) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Jace Browning <jacebrowning@gmail.com> * Bump brace-expansion from 1.1.15 to 1.1.21 (KittyCAD#13563) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Defer startup error reports until auth is ready (KittyCAD#14078) * Preserve extrusion when removing piped appearance (KittyCAD#14083) * Initialize cloud sync from the first upload (KittyCAD#14058) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Frank Noirot <frankjohnson1993@gmail.com> * Confirm before clearing Zookeeper chat (KittyCAD#13334) Co-authored-by: Patch Goblin <patch-goblin@users.noreply.github.com> * Rename export action to Export (KittyCAD#14086) * Reset snapshots (KittyCAD#14088) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * Generalize removal of piped operations (KittyCAD#14085) * Render KCL sim tests on CPU (KittyCAD#14077) * Bump kcmc, euler and gltf-rs (KittyCAD#14095) * Bump the security group across 1 directory with 3 updates (KittyCAD#14076) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Tag existing KCL 2.0 tests (KittyCAD#14073) Co-authored-by: Cursor <cursoragent@cursor.com> * Add report-only interaction performance measurements (KittyCAD#13963) * Bump postcss-selector-parser from 6.1.2 to 6.1.4 (KittyCAD#13565) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * KCL: Use persistent vector for cheaper sketch clones (KittyCAD#14009) On our stress test benchmarks, a lot of time is being spent cloning the paths in a sketch. We can use a persistent (aka immutable? I _think_ they're synonymous?) data structure like [`imbl::Vector`](https://docs.rs/imbl/latest/imbl/type.Vector.html) to speed this up. The imbl docs say, "Immutable data structures are data structures which can be copied and modified efficiently without altering the original." That's exactly what we need to make cloning large vectors of Paths (stored in Sketch) faster. The API of `imbl::Vector` is very similar to `std::Vector`, it's got slightly different names (push vs. push_back, or first() vs front(), straightforward stuff). * KCL: Send version when connecting to engine (KittyCAD#13920) * KCL: Get all physical properties at once (KittyCAD#14103) This should speed up our CI because very sim test requests all physical properties. It should improve Zookeeper for the same reason. * KCL python: fix test (KittyCAD#14109) * Prevent arithmetic metadata from growing exponentially (KittyCAD#14108) * Send Begin/End Execution commands (KittyCAD#12386) This _may_ speed up execution of complex models, by making them render at lower resolution while they're being built. For general ZDS use, the cost of IO roundtrips across the internet will dominate. But if your KCL client (e.g. ZDS, unit tests or CLI) is very close to the Zoo engine, then it might. For example, in my local network, with a self-hosted Zoo engine, this speeds up the complex car engine model from 37 seconds to 30 seconds. This should hopefully apply to Zookeeper too. * Exclude generated thumbnails from cloud sync deletions (KittyCAD#14106) * Fix lint (KittyCAD#14112) * feat(kcl): reserve use as a keyword in V3 (KittyCAD#14114) * Restore twelve-edge fillet refactor test on CPU (KittyCAD#14113) * Show Zookeeper credit refresh countdown in billing popover (KittyCAD#14100) * Tag existing KCL 1.0 tests (KittyCAD#14097) * Tag tests for KCL 3.0-preview (KittyCAD#14099) * KCL added_in attribute at the function level (KittyCAD#14087) * Keep merged-body edges in one fillet or chamfer call (KittyCAD#13658) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * Issue-3972: Handle Attachment Specific Errors (KittyCAD#14126) * Filter organization-owned projects from Personal Cloud (KittyCAD#14122) * feat(kcl): reserves import modified names in V3 (KittyCAD#14117) * KCL: Put distance at centroid (KittyCAD#14129) Closes KittyCAD/engine#4971 * Clean up development cloud projects using the E2E CI account (KittyCAD#14135) * Avoid resending unchanged scene settings (KittyCAD#14132) * Avoid reapplying unchanged camera projection (KittyCAD#14140) * Compare interaction latency against the base build (KittyCAD#13988) * Expand modeling interaction performance coverage (KittyCAD#14143) * feat(kcl): enums, type aliases, and named views are kcl v3 only (KittyCAD#14136) * KCL: New kittycad-point crate (KittyCAD#14142) * Bcorey/port legacy tests to sim (KittyCAD#14144) * Store conversation ID in project.toml (KittyCAD#14093) * Revert electron-builder bump to 26.15.3 (KittyCAD#14148) * Remove multi-project enforcement in e2e tests (KittyCAD#13941) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Pierre Jacquier <pierre@zoo.dev> * delete pipes_on_pipes (KittyCAD#14149) * Classify cloud sync failures by typed boundaries (KittyCAD#14150) * Default to KCL 3.0-preview in the pre-production app (KittyCAD#14137) * Build arm wheels for zoo-kcl python bindings (KittyCAD#14155) * fix(kcl)!: reject consumed solids in hide and flatten in KCL 3 (KittyCAD#14124) * Require documentation checks for application changes (KittyCAD#14154) * KCL Python: Remove the execute-string-of-code functions (KittyCAD#14153) These were useful when single-file KCL was the norm, but nowdays almost all KCL files are intended for multifile project use. So there's no real reason for ZK to execute a single KCL file by string. Let's get rid of them, it's annoying having to write two sets of tests for everything. I'm keeping the KclSession-from-code function for now, because it's only one extra function, that's not hard. @ksbharaj confirms the ML team's codebase never uses these functions anyway. * KCL: Use kittycad-point from crates.io (KittyCAD#14145) Part of KittyCAD#14134 * KCL Python: If execution fails, users should still get visualization (KittyCAD#14152) * KCL Python: Add API call IDs for correlating logs (KittyCAD#14156) * Bump kcmc to 240 (KittyCAD#14164) * Show 'description' for KCL inputs, and add one for 'Datums' inputs (KittyCAD#14161) * Release completed Zookeeper edit payloads from live chat history (KittyCAD#14047) * Update tiny change in sim test physical properties snapshot (KittyCAD#14169) See KittyCAD/engine#5193 for the change that necessitated this * Remove the OPFS cloud feature flag (KittyCAD#14151) * feat(kcl): require KCL 3 for `fail()` and `never` type (KittyCAD#14159) * Rename Project: clarify library ownership and validate new name (KittyCAD#14171) Co-authored-by: Jace Browning <jacebrowning@gmail.com> * Preserve model settings when evaluating KCL inputs (KittyCAD#14186) * KCL: Move default planes down into kcl-api (KittyCAD#14184) Part of KittyCAD#14187 Integrated into kcmc here: KittyCAD/modeling-api#1409 * Restore shaded Aquarium sample previews (KittyCAD#14193)x Alternative to KittyCAD#14193 In KittyCAD#14077 we switched KCL samples to render locally on CPU, not using expensive cloud GPUs, for cost savings. This changed both their image under `tests/kcl-samples/TEST_NAME/rendered.png` and also under `public/kcl-samples/screenshots/TEST_NAME.png`. We didn't realize that the Zoo Aquarium still populated thumbnails (aka preview images) from the `public/` dir in this repo, though, so this PR caused a lot of Aquarium images to use the debug-friendly Bevy renderer. Our test renderer was designed for, well, testing, not looking beautiful. So now a lot of samples look different and worse than the Zoo GPU rendered images. Solution: - Restore the nice Zoo GPU images under `public/` - Keep using CPU rendering for KCL sample sim tests, keep rendering PNGs (under `rust/kcl-lib/tests`) using our Bevy-based renderer. - Stop copying images from `rust/kcl-lib/tests` to `public/`, because we don't need to regenerate those beautiful PNGs anymore, we just need to check the debug PNGs to make sure there's no regressions. Long-term, the Aquarium should stop reading data from the KCL samples repo, we should migrate all the samples to be stored in the same database as other Aquarium models, with their own thumbnails there. Then we can delete the `public/` dir and simplify this repo. It was an honor for the modeling-app repo to host the KCL samples for so long, but they're all grown up now, and are ready to move out of here and into the aquarium. * KCL: Reduce stack space used in debug mode (KittyCAD#14094) In debug builds, KCL execution can cause stack overflows due to high stack memory usage of `run_with_caching`. This is because in debug mode, really big match expressions can use a lot of stack space. So we're splitting it up into smaller functions that cannot be inlined, in debug mode. Unchanged during release builds. Co-authored-by: Jonathan Tran <jonnytran@gmail.com> * Deduplicate value origins in control-flow errors (KittyCAD#14111) Co-authored-by: Adam Chalmers <adam.chalmers@zoo.dev> Co-authored-by: Jonathan Tran <jonnytran@gmail.com> * Use --save-exact sunnuvab (KittyCAD#14206) * Preserve registry service identity across reconfiguration (KittyCAD#14048) * Revert "fix(kcl)!: reject consumed solids in hide and flatten in KCL … (KittyCAD#14211) * Fix leaked settings subscription on project reopen (KittyCAD#14214) * Bump crate-ci/typos from 1.50.1 to 1.50.2 in the patch group (KittyCAD#14201) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Clarify export toast while waiting for save location (KittyCAD#14217) * Bump kcl to 187 for release (KittyCAD#14222) * Update rustls and quick-xml for security patches (KittyCAD#14204) * feat(kcl): configure physical sketch tolerance for KCL 3 (KittyCAD#14205) * [FaceApi PR3] Point-and-click selection payload overhaul (KittyCAD#10607) Co-authored-by: Jonathan Tran <jonnytran@gmail.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Andrew Varga <grizzly33@gmail.com> Co-authored-by: Pierre Jacquier <pierre@zoo.dev> * Use API amount due after credits for Zookeeper overrun (KittyCAD#14210) * Face API: Add back KCL-derived function names to faces.ts (KittyCAD#14224) * Consolidate axis expression generation (KittyCAD#14226) * KCL: Sim test for fillet chains (KittyCAD#14165) * Fix simulation test (KittyCAD#14240) I merged KittyCAD#14165 but recent Face API changes meant this test was incompatible with latest commits on main. * Add tests back in (KittyCAD#14230) * Fix face-order expectations in integration and e2e tests (KittyCAD#14252) * KCL: Make starting/stopping execution configurable (KittyCAD#14239) Closes KittyCAD#14236. In KittyCAD#12386, I made the KCL runtime send BeginExecution/EndExecution before/after execution. This always happened with no way to opt out. Now, this behaviour is configured by flipping the `configure_engine_render` bool on the ExecutorContext struct. Most clients should leave it at its default (true). But when executing KCL on the engine, the engine will set it to false, because the engine will handle rendering on its own. * Fix gdt distance to show annotation in the scene (KittyCAD#14227) * Bump vitest from 4.1.10 to 4.1.11 (KittyCAD#14232) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Support paginated project loading while keeping legacy API compatibility (KittyCAD#14218) * Set kcl_version in websocket query params (KittyCAD#14258) * fix(kcl): align KCL V3 point coincidence distances (KittyCAD#14259) * Revert "Fix face-order expectations in integration and e2e tests" (KittyCAD#14253) Co-authored-by: Kurt Hutten <k.hutten@protonmail.ch> * Forsake unnecessary E2E timeouts (KittyCAD#14269) * Bump syn from 3.0.5 to 3.0.6 in /rust in the patch group across 1 directory (KittyCAD#14198) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Remove `RouteProvider` (KittyCAD#14229) * Move Project Explorer imports to the context menu (KittyCAD#14178) * Update fillet error message in snap (KittyCAD#14271) * Bugfix for `rectangle` ignoring UoM (KittyCAD#14272) Co-authored-by: Shawn L. Kiser <35721408+slkiser@users.noreply.github.com> * Add ability to define dependencies on RegistryItemFactories (KittyCAD#14260) * Bump fast-uri from 3.1.6 to 3.1.8 (KittyCAD#14233) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Jace Browning <jacebrowning@gmail.com> * Fix systemIOActor subscription leak (KittyCAD#14279) * Convert the rotate axis origin to mm before sending it to the engine (KittyCAD#14282) Co-authored-by: Shawn L. Kiser <35721408+slkiser@users.noreply.github.com> `rotate(axis = { direction, origin }, angle)` passed the raw numbers of `origin` to the engine. In a file whose default unit is not mm (or with `origin = [1in, 0, 0]` in a mm file), the part was rotated about the wrong point. `rotate` now converts each origin component with `.to_mm()`, like `translate`, `mirror3d` and `patternCircular3d` already do. `direction` stays as it is, since only its direction matters. The new test checks the origin in the `SetObjectTransform` command for mm and inch files, with and without explicit units, and that the direction is sent unchanged. A mock run of all sim-test inputs and kcl-samples gives the same engine commands as before. * Close leaking subscription to file watchers on `app.openProject` (KittyCAD#14284) * Send set-kcl-version message to the engine (KittyCAD#14274) * remove legacy edges from gdt distance (KittyCAD#14288) * Clean up post reactive set_kcl_version calls (KittyCAD#14280) Co-authored-by: Jonathan Tran <jonnytran@gmail.com> * Face API: bring back generic codemod actor for Chamfer and Fillet (KittyCAD#14294) * Isolate `Setting` class into its own file, delete unused functions (KittyCAD#14293) * fix(kcl): preserve indentation in operator operands (KittyCAD#14287) * Swap to web as the default target for e2e (KittyCAD#14192) Co-authored-by: Cursor <cursoragent@cursor.com> * Drop the KCL output suffix on disk (KittyCAD#14296) * Enable sharding on web e2e tests (KittyCAD#14297) * Reduce matrix so that macOS web implies WebKit (KittyCAD#14298) * Complete pagination compatibility for remaining public-list callers (KittyCAD#14194) * Make tsc actually complain for P&C v. KCL drift (KittyCAD#12464) * Fix reliability of undo/redo e2e test (KittyCAD#14302) * Fix bodies to inherit face tags after subtract (KittyCAD#14303) * selection popover fix post face-api (KittyCAD#14243) Co-authored-by: Frank Noirot <frank@zoo.dev> Co-authored-by: Jace Browning <jacebrowning@gmail.com> * feat(kcl): enable KCL 3.0 (KittyCAD#14307) * Allow explicit credentials in Python KCL sessions (KittyCAD#14306) Python applications currently use process-wide environment variables to select credentials and the API origin for KCL sessions. Add optional, keyword-only `token` and `base_url` arguments to `new_kcl_session` and `new_kcl_session_code` constructors, so they can be configured more easily. * Convert revolve's bidirectionalAngle to degrees like angle (KittyCAD#14312) Copy of KittyCAD#14249, under my name for CI purposes. Fixes KittyCAD#14209. Part of KittyCAD#14220. Co-authored-by: Shawn L. Kiser <35721408+slkiser@users.noreply.github.com> * docs: Change the migration guide to 3.0, not beta testing 3.0-preview (KittyCAD#14326) * Default to KCL 3.0 on pre-production (KittyCAD#14324) * Update fillet and chamfer kcl-std docs (KittyCAD#14304) * Update an e2e test to expect consistent face ordering (KittyCAD#14336) * docs: Add initial steps to migration guide (KittyCAD#14339) * Add property tests to makefile (KittyCAD#14338) * docs(kcl): update docs for Kcl 3.0 (KittyCAD#14340) * Wire tangentChain in P&C (KittyCAD#14344) * KCL 190 (KittyCAD#14348) * Bump kittycad from 0.5.3 to 0.5.4 in /rust (KittyCAD#14355) * Bump thiserror from 2.0.20 to 2.0.21 in /rust in the patch group across 1 directory (KittyCAD#14354) * Lint rule for exhaustive switches (KittyCAD#14321) * Try limiting tsc to 2 checkers (KittyCAD#14369) * Migrate four public samples to KCL 2 (KittyCAD#14360) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * KCL: Fix crash around unknown units in revolve (KittyCAD#14341) Fixes KittyCAD#14328 # Root cause We parse KCL objects like `{ direction = [0, 1], origin = [1mm + 1deg, 0mm] }` into structured data like an `Axis2d`. To do this, we look for a KCL object, check it has a `.direction` field which contains a pair of numbers, check it has an `origin` field which contains a pair of numbers, and put those into an Axis2d. Later on, the KCL runtime uses that Axis2d, gets its origin field and uses that as a length for doing math. The problem is that we _don't_ validate that the numbers are actually lengths when we parse them. We just validate that they're some sort of number. Later, when we try to use them as a length, we try to convert the number to a length, fail, and explicitly panic. This bug has been lying dormant in the codebase since April 2025, so it's not a new issue. # Fixing The fix should really be two parts: 1. When parsing KCL arguments, don't just validate that they're numbers, also validate that they're the right type of number. E.g. if you expect a length, don't accept Unknown or Angle number. 2. When trying to use the KCL arguments, don't panic. Return a runtime KCL error if the coercion fails. I'm doing (1) in this PR as I think (2) will need some involved refactor work. I've also found several other related crashes in other similar places, e.g. the `axis` arg of a helix or the `direction` arg of a surface extrude. * KCL: Bump Cargo.lock (KittyCAD#14350) Co-authored-by: Jace Browning <jacebrowning@gmail.com> * Bump astral-sh/setup-uv from 10.1.0 to 10.2.0 in the minor group (KittyCAD#14358) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Revert "Remove `RouteProvider`" (KittyCAD#14376) * Address exhaustive-switch review follow-ups (KittyCAD#14371) * KC: Update snapshots for failing tests (KittyCAD#14377) Updates - clone_an_import - mirror3d_and_boolean Which were disabled during https://github.com/KittyCAD/engine/pull/5187 Closes https://github.com/KittyCAD/engine/issues/5273 * Fix negative distance (KittyCAD#14374) * Default to KCL 3.0 for new projects (KittyCAD#14379) * Refactor `Setting` class to use Preact Signals under the hood and contain a required `id` property (KittyCAD#14241) * face-api-PR3.2 sample and example migration (KittyCAD#12309) Co-authored-by: Jonathan Tran <jonnytran@gmail.com> Co-authored-by: Andrew Varga <grizzly33@gmail.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * fix(kcl): report invalid commas after statements (KittyCAD#14387) * Remove the KCL executor feature flag (KittyCAD#14384) * Bump crate-ci/typos from 1.50.2 to 1.50.3 in the patch group (KittyCAD#14357) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Jace Browning <jacebrowning@gmail.com> * KCL: Add a method for busting the cache (KittyCAD#14390) * Rename panicking functions to indicate that they panic (KittyCAD#14389) * feat(kcl): add a placeholder parser runtime flag (KittyCAD#14391) * KCL: Refactor Python code to use structs instead of many args (KittyCAD#14323) * Bump to Rust 1.99 (KittyCAD#14300) * Migrate missed face API stdlib examples (KittyCAD#14394) * Remove segments_based_regions feature flag (KittyCAD#14386) * Filter P&C args by KCL version (KittyCAD#14330) * Hide internal project ID from settings (KittyCAD#14147) * Bump the patch group across 1 directory with 15 updates (KittyCAD#14356) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Jessie Frazelle <github@jessfraz.com> * KCL: Surface extrude direction now converts UoM properly (KittyCAD#14404) Fixes KittyCAD#14343. Co-authored-by: Shawn L. Kiser <35721408+slkiser@users.noreply.github.com> * Contribute the explorer import action through the registry (KittyCAD#14273) * Wait for IndexedDB commit before acknowledging cloud sync metadata writes (KittyCAD#14396) * Close cloud sync IndexedDB connections after aborted cursor transactions (KittyCAD#14397) * Issue-2683: finish work before reconnecting (KittyCAD#14283) Co-authored-by: Jace Browning <jacebrowning@gmail.com> * Refresh KCL artifacts for precise STEP geometry (KittyCAD#14393) * Refresh snapshots and wait for completed interactions (KittyCAD#14419) * Make local dev build config folder for ZDS not match prod app on Linux (KittyCAD#14410) * Fix inline KCL color pickers after background parsing (KittyCAD#14180) * Remove unreachable selection ID switch (KittyCAD#14385) * refactor(kcl): remove the legacy lexer and its runtime flag (KittyCAD#14405) Co-authored-by: Jonathan Tran <jonnytran@gmail.com> * Lightly log client-engine latency (KittyCAD#14422) * Bump kcl version to 191 for release (KittyCAD#14424) * Update to use kcl-api 0.2.191 after release (KittyCAD#14427) * Add unit tests, follow-ups from @andrewvarga (KittyCAD#14388) * Use property tests to fix regression in `MeasurementTool` after Face API migration (KittyCAD#14411) * Revert "Preserve worker errors in Playwright reporting" (KittyCAD#14434) * Expose geometry-only KCL sessions in Python (KittyCAD#14432) * Remove dead code, add actual pinning tests for redirects (KittyCAD#14433) * Recommend desktop reinstall on unrecoverable errors (KittyCAD#14435) * fix(kcl): fix transitive dependenceis in cargo.lock (KittyCAD#14438) * Sync the production Vercel app with the GitHub release (KittyCAD#14441) * Use KCL summaries for command and toolbar descriptions (KittyCAD#14315) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * Break apart 3 classes within `KclManager.ts` (KittyCAD#14429) * Move "text wrapping" setting subscription out of app.ts into KclManager.ts (KittyCAD#14436) * Warn when sectional has no effect on KCL 3 sweeps (KittyCAD#14451) * Fix duplicated engine commands getting dispatched due to throttle implementation (KittyCAD#14430) * Render Markdown in KCL gutter messages (KittyCAD#14450) * Enable Local Drive imports in the web app (KittyCAD#14265) * Remove kcl-sample sync to docs (KittyCAD#14459) * Remove KclVersion from kcl-api (KittyCAD#14461) * Include KCL sample versions in the uploaded report (KittyCAD#14444) * Remove the hasLegacySketchMode helper (KittyCAD#14402) Co-authored-by: Cursor <cursoragent@cursor.com> * Bump kcmc to 250 (KittyCAD#14470) * CI: Remove node/npm setup from build-wasm.yml (KittyCAD#14473) * Clarify fillet and chamfer Face API documentation (KittyCAD#14457) * Take snapshots in CPU-only engine sessions (KittyCAD#14449) Closes KittyCAD#14445 * Add an option to skip Wasm optimization for non-runtime jobs (KittyCAD#14477) * Delete the legacy sketch mode feature flag (KittyCAD#14467) * Bump the minor group in /rust with 2 updates (KittyCAD#14484) * Bump the patch group across 1 directory with 4 updates (KittyCAD#14487) * Bump csscolorparser from 0.8.4 to 0.9.0 in /rust (KittyCAD#14485) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: jtran <10803+jtran@users.noreply.github.com> --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: Benjamin Corey <benjamin@zoo.dev> Co-authored-by: Frank Noirot <frank@zoo.dev> Co-authored-by: Adam Chalmers <adam.chalmers@zoo.dev> Co-authored-by: Jace Browning <jacebrowning@gmail.com> Co-authored-by: Mike Farrell <michael@kittycad.io> Co-authored-by: Pierre Jacquier <pierre@zoo.dev> Co-authored-by: Karan Bharaj <34198137+ksbharaj@users.noreply.github.com> Co-authored-by: Jordan Noone <jordan@kittycad.io> Co-authored-by: Andrew Varga <grizzly33@gmail.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Jonathan Tran <jonnytran@gmail.com> Co-authored-by: max <margorskyi@gmail.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Frank Noirot <frankjohnson1993@gmail.com> Co-authored-by: patch-goblin[bot] <281077144+patch-goblin[bot]@users.noreply.github.com> Co-authored-by: Patch Goblin <patch-goblin@users.noreply.github.com> Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: Jess Frazelle <jessfraz@users.noreply.github.com> Co-authored-by: Therapon Skoteiniotis <therapon@users.noreply.github.com> Co-authored-by: Violetta Zhao <violet@zoo.dev> Co-authored-by: Ryan Barton <ryan@zoo.dev> Co-authored-by: Harsh Patel <84212260+harsh181018@users.noreply.github.com> Co-authored-by: Caleb Goates <53098881+cgoates@users.noreply.github.com> Co-authored-by: Zoologist Lee <lee@zoo.dev> Co-authored-by: Kurt Hutten <k.hutten@protonmail.ch> Co-authored-by: Persis Randolph <73860643+persis-randolph@users.noreply.github.com> Co-authored-by: Shawn L. Kiser <35721408+slkiser@users.noreply.github.com> Co-authored-by: Ben Crabbe <ben@zoo.dev> Co-authored-by: Jessie Frazelle <github@jessfraz.com> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: jtran <10803+jtran@users.noreply.github.com>
This branch was successfully deployed
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.
Persistent KCL sessions currently always initialize rendering, so Python callers that need explicit per-session credentials cannot keep exports on the CPU engine pool. Add
geometry_onlyto both session constructors and forward it to the existing engine context options. The default remainsFalse, preserving snapshot and rendering behavior.