* fix: logging information about the login
* chore: improving the withBaseURL workflow
* chore: moving VITE_KC_API_BASE_URL to the helper function
* fix: env to helper function api base url
* chore: fixing another api base url
* chore: shortlinks with base api helper function
* chore: prompt edit with base helper function
* fix: auto fmt
* fix: withAPIBaseURL for all urls
* fix: AI caught my typo, RIP
* fix: expected
* fix: renaming this so it is less specific to environment
---------
Co-authored-by: Jace Browning <jacebrowning@gmail.com>
## Goal
Currently, there's no way in KCL to get fields of a plane, e.g. the underlying X axis, Y axis or origin.
This would be useful for geometry calculations in KCL. It would help KCL users write transformations between planes for rotating geometry.
For example, this enables
```kcl
export fn crossProduct(@vectors) {
a = vectors[0]
b = vectors[1]
x = a[1] * b[2] - (a[2] * b[1])
y = a[2] * b[0] - (a[0] * b[2])
z = a[0] * b[1] - (a[1] * b[0])
return [x, y, z]
}
export fn normalOf(@plane) {
return crossProduct([plane.xAxis, plane.yAxis])
}
```
## Implementation
My goal was just to enable a simple getter for planes, like `myPlane.xAxis` and yAxis and origins. That's nearly what happened, except I discovered that there's two ways to represent a plane: either `KclValue::Plane` or `KclValue::Object` with the right fields.
No matter which format your plane is represented as, it should behave consistently when you get its properties. Those properties should be returned as `[number; 3]` because that is how KCL represents points.
Unfortunately we actually require planes-as-objects to be defined with axes like `myPlane = { xAxis = { x = 1, y = 0, z = 0 }, ...}`, but that's a mistake in my opinion. So if you do use that representation of a plane, it should still return a [number; 3]. This required some futzing around so that we let you access object fields .x and .y as [0] and [1], which is weird, but whatever, I think it's good.
This PR is tested via planestuff.kcl which has a Rust unit test.
Part of the hole efforts, see https://github.com/KittyCAD/modeling-app/discussions/7543
* fix: ignoring url checker files
* fix: url checker
* fix: auto fmt and cleanup
* fix: moving the bash scripts and known files into the scripts repo
* fix: removed all url_results and made it be all in memory
* fix: fixed the newline issue
* fix: url checking as a step to the static analysis
* fix: removed old code
* chore: writing documentation on our static checker pattern
* fix: updating the docs more to be clearer
* fix: copy and paste without understanding requirements of ci cd dependencies? do i need all of these?
* fix: updating
* fix: I thought this got in?
* Update CONTRIBUTING.md
Co-authored-by: Jace Browning <jacebrowning@gmail.com>
---------
Co-authored-by: Jace Browning <jacebrowning@gmail.com>
* Add display of units in UI modals with calculated KCL values
* Fix command bar display to handle units
* Add display of units in the command bar
* Fix more cases of NaN from units
* Fix to support explicit plus for exponent in scientific notation
* Fix display in autocomplete
* Change to parseFloat to be more resilient
* Add e2e test for command bar
* Change an existing test to use explicit inline units
* Fix case when input string can't be parsed
* Enterprise plans should not have the upgrade button
Fixes#7627
* Move the check to BillingDialog
* Hide home box and change bool check
* Add component tests
* Clean up
* Allow point-and-click Substract to take in multiple tools
Fixes#7612
* Change target to solids for consistency and make it support multi select too
* Improve err message
* Update src/lang/modifyAst/boolean.ts
Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
* Update src/lang/modifyAst/boolean.ts
Co-authored-by: Kurt Hutten <k.hutten@protonmail.ch>
* Good bot
* Reduce array to single value if len 1
* Remove console.log
---------
Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
Co-authored-by: Kurt Hutten <k.hutten@protonmail.ch>
* Make sure mode-related args are hidden in point-and-click commands after option args change
Fixes#7589
* WIP improving helix flows and fixing tests
* Fix 2 more tests
* Add test step for opt arg
* Fix last helix test
* Clean up tests, hope to fix CI
Closes https://github.com/KittyCAD/engine/issues/3494. Thanks to @nadr0 for helping on the JS side.
If users set their units, the grid will stop auto scaling, and instead will be set to 10 of whatever unit they used.
If users set their units, and those units are metric, then it'll include a scale bar (see screenshot). Imperial units won't have that bar.
This behaviour is configurable via settings.
## Limitations
- The scale bar below the grid cannot be disabled in metric units, and cannot be enabled in imperial units
<img width="1690" alt="Screenshot 2025-06-05 at 7 51 41 PM" src="https://github.com/user-attachments/assets/c597087c-f96d-4c30-95f4-b3d8ba2b5567" />
* Enable optional arguments in point-and-click Sweep
Fixes#7578
* Fix bug and add e2e test step
* Fix review not triggering bug and e2e test
* WIP: Enable optional arguments in point-and-click Loft
* Add edit flow for loft
* WIP: e2e test and fix
* Got it
* Got it v2 🤦
* use face edge info for some mirrors
* add functionality for other mirror function
* Fix to create new Sketch when mirror results in a new path
* use the original ids and clone the sketches
* remove mirror param
* clippy fix
* debuggin, rm yarn
* Revert "remove mirror param"
This reverts commit a848e243f8.
* use arrbitrary edge_id as sketch mirror id
* additinoal clenaup
* Update rust/kcl-lib/src/std/mirror.rs
Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
* set .mirror for continuous case
* fix warning
* works without the for loops
* add error handling
* remove duplicate setter
* rm unused var
* clenaup
* unused import
* remove unused let
* Update snapshots
* Update snapshots
* cleanup
* update sim tests
---------
Co-authored-by: gserena <serena@zoo.dev>
Co-authored-by: Jonathan Tran <jonnytran@gmail.com>
Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Add building the artifact graph in mock execution
* Update output
* Add updating the artifact graph after mock execution
* Fix spelling
* Fix to return it all the way
* Fix to not make artifact fields undefined in TS