Bug: You can see here that the two programs under tests/ are equivalent, just one uses
pipelines and one always assigns to a new sketchgroup. However, the pipeline
produces weird visual bugs. Jess did a git bisect to figure out this was the problem that
Mike was experiencing, around weird visual artifacts with filleting.
Ultimately the bug was that my rewritten `execute_pipe_body` function was executing
the first expression of the pipeline body twice! In most unit tests this didn't matter,
because the first expression in a pipeline was startSketchAt. No big deal to run that
twice. However, in Mike's program, the first expression was `make_circle` or `pentagon`,
user-defined functions that sent a lot of API calls. This meant the pipeline duplicated a lot
of geometry, causing Z-fighting and weird artifacts.
* Bump ts lib
* Make engine background color driven by theme setting
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* Force snapshots to dark mode, fix theme init
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* Don't assume we have engineCommandManager in CameraControls,
because for some reason it's being loaded before engineConnection in test environments?
* Merge branch 'main' into change-bg-color
* Replace optional chaining with this.engineCommandManager
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* Okay now all snapshot tests are actually in dark mode
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* trigger ci
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Kurt Hutten Irev-Dev <k.hutten@protonmail.ch>
* always enter edit mode
* initial blocking of extra code-mirror updates
* dry out code
* rejig selections
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* clean up
* stream clean up
* update export
* sketch mode can be entered and exited for extrude faces
But has bugs
* startSketchOn working in some cases, editsketch animation working but not orientation of instersection plane etc
* Revert "A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)"
This reverts commit 406fca4c55.
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* remove comment
* add sketch on face e2e test
* tweenCamToNegYAxis should respect reduced motion
* initial sketch on face working with test
* remove temporary toolbar button and xState flow
* un-used vars
* snapshot test tweak
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* type tidy up
* Revert "A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)"
This reverts commit c39b8ebf95.
* Revert "A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)"
This reverts commit fecf6f490a.
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* rename
* sketch on sketch on sketch
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* typo
* startSketchOn Endcaps
end works, start is weird still
* clear selections for entity_ids that are not recognised
* fix sketch on end cap of second order extrustion
* tiny clean up
* fix sketch on close segment/face
* clean up 'lastCodeMirrorSelectionUpdatedFromScene'
* add code mode test for sketchOnExtrudedFace
* make end cap selection more robust
* update js artifacts for extrudes
* update kcl docs
* clean up
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* add workflow
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Make tag last optional param
* Update all test assertions with correct tag format
* Format ts
* Some progress on tests and code mods
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* More sketch fixes
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* Only 1 test left
* Clean up console.log
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* Fix last ts test
* Clean up fmt
* Fix clippy too
* Update docs and fix small oversight on angled lines
* Fix more rust tests
* Make typescript happy
* Fmt
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Jess Frazelle <jessfraz@users.noreply.github.com>
* Rename GlobalStateContext to SettingsAuthContext
* Naive initial impl of settings persistence to file system
* Update app identifier in tauri config
* Add "show in folder" tauri command
* Load from and save to file system in Tauri app
* Add documents drive to tauri permission scope
* Add recursive prop to default dir selection dialog
* Add success toast to web restore defaults action
* Add a way to validate read-in settings
* Update imports to use separate settings lib file
* Validate localStorage-loaded settings, combine error message
* Add a e2e test for validation
* Clean up state state bugs
* Reverse validation looping so new users don't error
* update settingsMachine typegen to remove conflicts
* Fmt
* Fix TS errors
* Fix import paths, etc post-merge
* Make default length units `mm` and 'metric'
* Rename to SettingsAuth*
* cargo fmt
* Revert Tauri config identifier change
* Update clientSideInfra's baseUnits from settings
* Break apart CommandBar and CommandBarProvider
* Bugfix: don't validate defaultValue when it's not configured
* Allow some TauriFS functions to no-op from browser
* Sidestep circular deps by loading context and kclManager only from React-land
* Update broken import paths
* Separate loaders from Router, load settings on every route
* Break apart settings types, utils, and constants
* Fix Jest tests by decoupling reliance on useLoaderData from SettingsAuthProvider
* Fix up Router loader data with "layout routes"
https://reactrouter.com/en/main/route/route#layout-routes
* Move settings validation and toast to custom hook so the toast renders
* fmt
* Use forks for Vitest
https://vitest.dev/guide/common-errors.html#failed-to-terminate-worker
* $APPCONFIG !== $APPDATA only on Linux
+ change the identifier back since it really doesn't seem to affect app signing
* Debugging on Linux
* Better directory validation, fix reset settings button
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* defaultDirectory can be empty in browser
* fmt
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* re-trigger CI
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Handle many files as a zip archive
* Hopefully fix the test
* Try again
* Use latest kittycad/cli version
* update gitignore and push gltf-standard into snapshot array
* Extract zipped gltf; use 8 cores for CI
* Ignore unzipped files
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
---------
Co-authored-by: Kurt Hutten Irev-Dev <k.hutten@protonmail.ch>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Make onboarding links underlined and a different color
* Override underlined links that shouldn't be
* Update "KittyCAD" to "Zoo" camera controls, copy edits
* Copy edits through CodeEditor step, add counter to onboarding
* Notes through ParametricModeling step
* Notes through UserMenu step
* Add three-dots icon, separate Zoo logo link from project button
* Feedback through end of onboarding
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* Fix ESLint warnings
* Revert cameraControls to 'KittyCAD', ensure we get type errors if that isn't correct in the future
* fmt
* Missed a reverted "Zoo" cameraControls item
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* try and make test more robust
* unused import
* add logging
* fix bug in export test
* Revert "unused import"
This reverts commit 0fb7090eca.
* revert more
* more fixes
* fix
* ultra snapshot test
* Revert "ultra snapshot test"
This reverts commit 17a883727e.
* Add new exportFile icon
* Isolate exportFromEngine command
* Naive initial export command
* Update types to accept functions for arg defaultValue, required, and options
* Make existing helper functions and configs work with new types
* Make UI components work with new types
support resolving function values and conditional logic
* Add full export command to command bar
* Replace ExportButton with thin wrapper on cmd bar command
* fmt
* Fix stale tests and bugs found by good tests
* fmt
* Update src/components/CommandBar/CommandArgOptionInput.tsx
* Update snapshot tests and onboarding wording
* Move the panel open click into doExport
* Don't need to input storage step in export tests anymore
* Remove console logs, fmt, select options if we need to
* Increase test timeout
---------
Co-authored-by: Kurt Hutten <k.hutten@protonmail.ch>
* implement dual camer sync direction
The existance of the client side scene requires two cameras to stay in sync, really these need to be a master-slave relationship, intitial this was implemented with the client side scene taking the lead and sending updates to the server using the endpoint (as it didn't require an new endpoints), but even though we added a sequence property to this endpoint and sent it over udp, it was still an abuse of this endpoint as the engine didn't have this endpoint setup with a fload of messages and low-latency in mind.
Now we have migrated back to sending mouse events to the engine instead, but with the engine replying with camera details on drag_end etc so that we can keep the client camera in sync.
The client side camera still does take the master role in sketch mode as it makes sense to keep the low latency benfits of the local camera for the locallay rendered assets in sketch mode, moving the camera in this mode already did hide the engine camera while the camera is moving so as to avoid ghoasting so this works well.
The camera controls now work by syncing in either direction depending on what's appropiate
* fmt
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* update default plane extrude numbers
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* trigger-ci
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* client side sketch scene not respecting base-unit-scale
* test tweak
* remove dead code
* fix test
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* test fix up
* trigger ci
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* trigger ci
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* short term cam fix
* fix
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* trigger ci
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* pull out network indicator logic
* rename callbacks
* re-execute on reconnection
* make sure tool bar is disabled on start up
* clean up
* node safety
* disable toolbar buttons properly
* grey scale action icon icons dodgy
* test tweaks
* Revert "grey scale action icon icons dodgy"
This reverts commit c3d12a0f05.
* Disable modeling commands when network is bad (#1486)
* Disable modeling commands when network is bad
* disabel on execute too
* fmt
---------
Co-authored-by: Kurt Hutten Irev-Dev <k.hutten@protonmail.ch>
* disable playwright snapshots temporarily
* disable export test instead
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
---------
Co-authored-by: Frank Noirot <frank@zoo.dev>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* solve a couple of scene scale bugs
* Some cam fixes (#1520)
* rotate and zoom basics working
* intergrate mouse guards, and add pan
* implement orthographic camera again
* implement switch to perspective camera again
* migrate dollyzoom
* make pan robust for differnt FOV and orthographic cam
* tween to quaternion and default plane selection working with quirks
* fix pan
It the up and right was derived from the camera's up, which is a static [0,0,1] not the camera's current cameras real up, which aligns itself as best to [0,0,1] but is not that especially when looking straight up or down, and the pan felt very awkward in these vertical look sintuations
* fix raycastRing to use new camera
* fix tween to quaternion for camera lock situations
And get all playwright tests passing
* fix up CamToggle, even thought this component is not setup properly to use react properties from our scene class
* add animation to cameras back in
* first big clean up of sceneInfra
* move more cam stuff out of sceneInfra
* clean up mouse guard logic
* clean up camera change callbacks
* fix some sitations where animation to xy doesn't work great
* needs to take the target into consideration
* last bits of clean up
* more clean up
* make vitest happ
* fix up remaining interaction guards
* make scrolling less sensative for trackpads
* remove debug cube
* fix snapshot tests
* Rename useCalc
* Move CommandBar so it has access to settings and kcl
* Create codemirror variable mention extension
* Make project path a dep of TextEditor useMemo
* Add incomplete KCL input for CommandBar
to replace current number arg type
* Add previous variables autocompletion to kcl input
* Fix missed typos from merge
* Working AST mods, not working variable additions
* Add ability to create a new variable
* Add icon and tooltip to command arg tag if a variable is added
* Polish variable naming logic, preserve when going back
* Allow stepping back from KCL input
* Don't prevent keydown of enter, it's used by autocomplete
* Round the variable value in cmd bar header
* Add Playwright test
* Formatting, polish TS types
* More type wrangling
* Needed to fmt after above type wrangling
* Update snapshot tests to account for new variable name autogeneration
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* Merge branch 'main' into cmd-bar-make-variable
* Update all test instances of var name with number index after merge with main
* Partial revert of "Polish variable naming logic, preserve when going back"
This reverts commit dddcb13c36.
* Revert "Update all test instances of var name with number index after merge with main"
This reverts commit 8c4b63b523.
* Revert "Update snapshot tests to account for new variable name autogeneration"
This reverts commit 11bfce3832.
* Retry a refactoring of findUniqueName
* minor feedback from @jgomez720
- better highlighting of kcl input
- consistent hotkeys
- disallow invalid var names
* Polish stepping back state logic
* Fix tests now that keyboard shortcut changed
* Remove unused imports
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* Fix tests
* Trigger CI
* Update src/components/ProjectSidebarMenu.test.tsx
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* re-trigger CI
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Kurt Hutten <k.hutten@protonmail.ch>
* Trim space off the return type before continuing
My nightly compiler has a space at the end that the stable compiler
doesn't. This will trim space, if it exists, before removing the generic
bracket, which will work for both stable and current nightly, future
stable.
In the future this may be worth doing a trim on "> " but I don't reckon
today is that day.
Signed-off-by: Paul R. Tagliamonte <paul@kittycad.io>
* Add icons for arc and settings
* Update arc icon in toolbar
* Use settings icon instead of gear for settings
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* test that fails for when to enable extrude and sketch features
* add fix to make test pass
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* draft line snapshots
Make sure they don't get broken at some point, visual regression is only way to test these really
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* snapshot extrude on each default plane
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* respect camera target
* make default planes scale
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Rename GlobalStateContext to SettingsAuthContext
* Naive initial impl of settings persistence to file system
* Update app identifier in tauri config
* Add "show in folder" tauri command
* Load from and save to file system in Tauri app
* Add documents drive to tauri permission scope
* Add recursive prop to default dir selection dialog
* Add success toast to web restore defaults action
* Add a way to validate read-in settings
* Update imports to use separate settings lib file
* Validate localStorage-loaded settings, combine error message
* Add a e2e test for validation
* Clean up state state bugs
* Reverse validation looping so new users don't error
* update settingsMachine typegen to remove conflicts
* Fmt
* Fix TS errors