* gizmo 2.0
nice and clickable
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* initial mouse position fix
when the scene first loads, mouse position is 0,0, which renders the gizmo selected.
* animation loop / disposal optimization
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* reset camera tweak
* add cam target to debug panel
* test stub
* reset camera position handle removed from gizmo
it is now a button in the debug panel
* gizmo refactoring
* small fix
* reset camera view
bug fix
* nicer updateCameraToAxis
now gizmo rotates around the target instead of world 0,0,0
* micro refactoring
* playwright update
* playwright remove timeout + fmt
* hide gizmo while loading stream
* Revert "A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)"
This reverts commit f0a506d6b9.
* Revert "A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)"
This reverts commit 2781261331.
* try make gizmo test more realiable
* tweak
* refactoring
* increase timeout time
* 1 sec wait after mouse click
* 3 sec timeout
* better clickPosition
* test with 10 sec timeout
* 0.5 sec timeout
* add passive update for gizmo to avoid some edge cases
* default_camera_get_settings after click
* try and remove timeouts
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Kurt Hutten Irev-Dev <k.hutten@protonmail.ch>
* Make sketch and extrude produce separate top-level constants
* Fix most tests
* Add a breaking test for sketch on face AST mod
* Use `extrude` instead of `part`
* Implement @Irev-Dev's branch changes from https://github.com/KittyCAD/modeling-app/pull/2472
* Get extrude on face working
* Update incorrect sketch on face test
* Update unit tests
* Fix up E2E test changes
* fmt
* Fix a couple of goofed up test updates
* More specific names for paths to node sent to modelingMachine
* Bump down playwright workers for now
* Slightly more explicit type coercion
* Update snapshot tests
* Missed one other new flow test that wasn't updated to use "sketch001"
* Typo
* Damn missed one more sorry
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* Re-run CI
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* I think the multiple sketches test reverted from under me
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Add keyboard custom icon
* Refactor Settings to be more modular
* Add basic keybindings view to settings
* Add more shortcuts
* Add link to see keyboard shortcuts tab
* Little more bottom padding
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* Add keybindings to settings search
* Add a playwright test for opening the the keyboard shortcuts
* fmt
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Reapply "Add ping pong health, remove a timeout interval, fix up netwo… (#1771)
This reverts commit 1913519f68.
* Fix build errors
* Add new error states to network status notification
* Remove unused variable
* Refactor to use Context API for network status
* Don't do any stream events if network is not ok
* Catch LSP errors on bad auth
* Show when authentication is bad (cookie header only)
* Fix formatting
* Fix up types
* Revert awaiting on lsp failure
* Fix tsc
* wip
* wip
* fmt
* Fix typing
* Incorporate ping health; yarn make:dev; faster video stream loss notice
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* run ci pls
* run ci pls
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* run ci pls again
* Remove unused variables
* Add new instructions on running Playwright anywhere
* Please the Playwright. Praise the Playwright.
* Correct a vitest
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* ci again
* Fix tests unrelated to this PR
* Fix flakiness in for segments tests
* Bump to 2 workers
* fmt
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* fmt
* fmt
* Fixups
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* ci
* Set workers to 1
* Wait for network status listeners before connecting
* Fix initial connection requirements and trying 2 workers again
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Update rectangle code gen to use profileStart to close shape
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* Re-run CI
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* WIP: Get existing tauri e2e tests to work on Windows
Will fix#2393
* Enable windows stage (will fail)
* WIP msedge version sync
* Move setup edge before build
* Manual debug build (no action)
* Specify v119 for npm package
* Fixes on auth test
* Working test on win10
* Clean up
* Disable yarn cache to help debug the mismatch issue
* Revert "Disable yarn cache to help debug the mismatch issue"
This reverts commit e6abc7db42.
* Explicit webviewOptions and remove tauri driver fork
* Double \\ workaround for windows
* Clean up
* Clean up and readme
* Quick fix
* Lint
* Clippy fix
* Back to tauri-action and disable windows CI tests for early merge
* Back to 10sec delay
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* Timer reset
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* Trigger CI
* Back to 1 pw worker
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* migrate one constraint
* typo
* update snap to y, snap to x, horz align, vert align, equal length
* add some e2e tests
* add e2e test for snap to axis contsraits
* remove works for now
* Add loading and success toasts to export engine command
* Move doExport out to a test utility, test visibility of loading spinner
* Add playwright test for export success toast
* Update Cargo.lock
* Remove loading assertion, it flashes too quickly for Playwright to pick up
* Navigate between files with single-click
* Better semantic name for optional event passed into FileTree
* Bug fix: reset modeling state when navigating to a new file
* Add more context to E2E test TODO comment
* Newly-created file tree items are immediately set to renaming mode
* Bug fix: redirect to working file if you delete your current one
* Remove ContextMenu, unrelated branch
* Turn off autocorrect in renaming form
* Gracefully handle renaming a folder that our current file is inside of
* Update cargo.lock
* Fix renaming queue
* Navigate to newly-created files
* Make delete project and delete file/folder share deletion confirmation component
* Bug fix: navigate to project root if we delete our current file's parent directory
* Don't navigate to newly-created directories
* remove semver from snapshots
* 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>
* start of overlay work
* add new icons
* add constraint symbols
* add three dots
* add primary colours
* refactor how we get constraint info for overlays
* refactor how we get constraint info for overlays
* get symbols working for tangential arc too
* extra data on constraint info
* add initial delete
* fix types and circular dep issue after rebase
* fix quirk with horz vert line overlays
* fix setup and tear down of overlays
* remove overlays that are too small
* throttle overlay updates and prove tests selecting html instead of hardcoded px coords
* initial show overaly on segment hover
* remove overlays when tool is equipped
* dounce overlay updates
* tsc
* make higlighting robust to small changes in source ranges
* replace with variable for unconstrained values, and improve styles for popover
* background tweak
* make overlays unconstrain inputs
* fix small regression
* write query for finding related tag references
* make delete segment safe
* typo
* un used imports
* test deleteSegmentFromPipeExpression
* add getConstraintInfo test
* test removeSingleConstraintInfo
* more tests
* tsc
* add tests for overlay buttons
* rename tests
* fmt
* better naming structure
* more reliablity
* more test tweaks
* fix selection test
* add delete segments with overlays tests
* dependant tag tests for segment delet
* typo
* test clean up
* fix some perf issus
* clean up
* clean up
* make things a little more dry
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* trigger ci
* Make constraint hover popovers readable on light mode
* Touch up the new variable dialog
* Little touch-up to three-dot menu style
* fix highlight issue
* fmt
* use optional chain
* Revert "A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)"
This reverts commit be3d61e4a3.
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* disable var panel in sketch mode
* fix overlay tests after mergi in main
* test tweak
* try fix ubuntu
* fmt
* more test tweaks
* tweak
* tweaks
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Frank Noirot <frank@kittycad.io>
* actually test that we dont exit sketch mode on first escape
Signed-off-by: Jess Frazelle <github@jessfraz.com>
* better test
Signed-off-by: Jess Frazelle <github@jessfraz.com>
---------
Signed-off-by: Jess Frazelle <github@jessfraz.com>
* zoom to fit on load
Signed-off-by: Jess Frazelle <github@jessfraz.com>
* updates
Signed-off-by: Jess Frazelle <github@jessfraz.com>
* lint
Signed-off-by: Jess Frazelle <github@jessfraz.com>
* add zoom to fit calls to the correct places
* update comment
* clean up comment
* add snapshot test zoom to git
Signed-off-by: Jess Frazelle <github@jessfraz.com>
* updates
Signed-off-by: Jess Frazelle <github@jessfraz.com>
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* subscribe to camera updates from zoom to fit
* fix types
* partial test fix
* updatges
Signed-off-by: Jess Frazelle <github@jessfraz.com>
* fix another test
* remove my enhancements
Signed-off-by: Jess Frazelle <github@jessfraz.com>
---------
Signed-off-by: Jess Frazelle <github@jessfraz.com>
Co-authored-by: Kurt Hutten Irev-Dev <k.hutten@protonmail.ch>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Check the winnow ParseError before indexing
From the winnow docs at[1]
> The location in ParseError::input where parsing failed
>
> Note: This is an offset, not an index, and may point to the end of input
> (input.len()) on eof errors.
This will bounds check the index before slicing into the `input` vec,
and return an EOF erorr rather than an unknown token error.
[1]: https://docs.rs/winnow/latest/winnow/error/struct.ParseError.html#method.offset
I have a hunch somewhere something is mixing up bytes and chars (more
specifically, a codepoint or grapheme), which is causing bounds to go
past the end of the list since something is talking byte indexes and
the other is dealing with char/codepoint indexes.
For now this is going to fix the crash, but the EOF error may be masking
an actual bad token error in some cases? Our code looks right, so I'm
not quite sure what is going on in the winnow internals here.
Signed-off-by: Paul R. Tagliamonte <paul@kittycad.io>
* draft #2279
Add client side gizmo #2279, work in progress
* draft #2279
unreliableSubscriptions
* draft #2279
nice Gizmo
* blue ring
give the canvas a round shape and a border, wrapping rounded div element around the canvas
* Refactor Gizmo Component
Extracted reusable constants
Modularized the code
Simplified the useEffect logic
Added TypeScript type annotations
Improved overall code structure and readability
* remove old gizmo
* fmt
* styling and relocation
Add className "pointer-events-none" to gizmo wrapper div (for now to prevent context menu)
Make LowerRightControls container element have these classNames: flex flex-col items-end gap-3
Move gizmo into LowerRightControls.tsx as the first child of the section element
Remove the fixed styling from the gizmo div so it flows in flexbox
* fmt
* fix camera up problem
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* up tweak
* Revert "up tweak"
This reverts commit a53a0ef240.
* test tweak
* tweak test
---------
Co-authored-by: Kurt Hutten Irev-Dev <k.hutten@protonmail.ch>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Frank Noirot <frank@kittycad.io>
There are many places in the executor codebase which evaluate an AST expression and produce a KCL memory item. They could be deduplicated and put into one central location.
Fixes <https://github.com/KittyCAD/modeling-app/issues/1931>.
Simplify the fuzzer a bit
This is the same code, but we'll offload the string parsing to the fuzz
lib, and we can inline the `if Ok(v)`
Signed-off-by: Paul R. Tagliamonte <paul@kittycad.io>
* Save part images when navigating home
* Load part images in project cards if available
* Polish home page
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* Merge branch 'main' into franknoirot/project-images
* Mostly restored link + form functionality
* Working cards with images
* Comment out project image stuff
* Little style tweaks
* Remove unused imports
* More minor styling tweaks
* Merge branch 'main' into franknoirot/project-images
* Was using the wrong imported `Project` type
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* Revert any docs changes
* Revert wasm-lib divergences
* Move ProjectCard into its component folder
* Remove unused hook useSaveVideoFrame
* Remove "hideOnLevel" config from theme setting
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* plumbus fixes
Signed-off-by: Jess Frazelle <github@jessfraz.com>
* Simplify the pentagon test
* Fix up triangle png
* Triangle plumbuses now face the camera
---------
Signed-off-by: Jess Frazelle <github@jessfraz.com>
Co-authored-by: Jess Frazelle <github@jessfraz.com>
Port forward to ts-rs 8.1
We're just waiting on a release that includes a PR that we sent[1] for this
to use the cargo version. For now we'll have to use the git release.
[1]: c5109a00e4
* Add keyboard shortcuts for sketch and modeling tools
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* Add a playwright test
* skip linux
Signed-off-by: Jess Frazelle <github@jessfraz.com>
* fmt fml
Signed-off-by: Jess Frazelle <github@jessfraz.com>
* Give more generous test timeout for worst case engine runs
* Fix up test mouse clicks after zoom bug fixes
---------
Signed-off-by: Jess Frazelle <github@jessfraz.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Jess Frazelle <jessfraz@users.noreply.github.com>
Co-authored-by: Jess Frazelle <github@jessfraz.com>
* make rust function with lots of tests
Signed-off-by: Jess Frazelle <github@jessfraz.com>
* pull thru function to tauri and app
Signed-off-by: Jess Frazelle <github@jessfraz.com>
* one more test;
Signed-off-by: Jess Frazelle <github@jessfraz.com>
---------
Signed-off-by: Jess Frazelle <github@jessfraz.com>
* Cut release v0.21.6
* 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>
* make sure there is at least one kcl file in the dir to show in list
Signed-off-by: Jess Frazelle <github@jessfraz.com>
* open the correct file not assuming main.kcl
Signed-off-by: Jess Frazelle <github@jessfraz.com>
* add file path tests
Signed-off-by: Jess Frazelle <github@jessfraz.com>
* update settings paths
Signed-off-by: Jess Frazelle <github@jessfraz.com>
* new images
Signed-off-by: Jess Frazelle <github@jessfraz.com>
* updates
Signed-off-by: Jess Frazelle <github@jessfraz.com>
---------
Signed-off-by: Jess Frazelle <github@jessfraz.com>
Reset inSequence back to 1 every time we connect to the Engine,
otherwise we'll continue to think the current sequence is a high number
(while the engine has no memory of the last session -- and may even be a
new engine instance!) and ignore messages until we pass that counter
again.
Signed-off-by: Paul Tagliamonte <paul@zoo.dev>
* Add stdlib functions for getting sketch profile start and its components
* Fix it up and actually generate snapshots
* cargo fmt
* Use `.to` instead of `.from`
* Update docs with EXPECTORATE=overwrite
* Add README
* fmt
* Update flow test to account for more autocompletion options when typing "start"
---------
Co-authored-by: Jess Frazelle <jessfraz@users.noreply.github.com>
* Disable logo link in browser, clean up menu components' organization
* Include the app name in Tauri as screenreader-only text
* Fix tsc issue in component test
* Add a playwright test to ensure logo is never a link in the browser
* Update broken component tests
* Add some JSDocs comments to types, convert some existing comments.
* Add JSDoc comments to EngineCommandManager
* Add deprecation message to `lastArtifactMap`
* fmt
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* Rerun CI
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* sketch dies on exit XY sketch
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* trigger ci
* fix test
* fix test
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Set default extrude distance expression to something more sensible, like 5
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* Rerun CI
* run CI
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* CI
* Use old 5 + 7 for highlight test it's touchy
* Same with sketch on face it seems to work better with 5 + 7 and that's fine
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Disable all pane resize handles except right
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Ensure onboarding buttons are visible on shorter screens
* Fix dismiss button hover styling
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* 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>
* Move the command bar out to the right in the AppHeader
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* trigger ci
* trigger ci
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Kurt Hutten <k.hutten@protonmail.ch>
* Revert "Revert "client side sketch updating properly with direct changes to t… (#2286)"
This reverts commit e7ab645267.
* rejig out side of xstate
* test tweak
* more test tweak
* refactor some codeManager stuff
* tsc
* try and fix tests
* revert small uneeded change
* fix
* snapshot tweak
* more test tweak
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* small tweak
* disable bad test
* fmt
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Bring back tauri e2e tests
Fixes#2061 once green
* Fix if
* Add bail mocha opt and more cleanup, disable second dir test
* Add mocha types and tsconfig
* Add 10sec delay for auth (worked in 22.04 local docker)
* Add back close settings click
* Disable open file
* Re-enable settings test
* Handle error page
* Back to brower.execute location.href
* Add --force to tauri-driver install (I think because of cache)
---------
Co-authored-by: Jess Frazelle <jessfraz@users.noreply.github.com>
* Remove tauri.release-macos.conf on debug builds
* BUILD_RELEASE: true
* Back to conditional BUILD_RELEASE for merge
* Remove tauri.release-macos.conf.json
* Search and highlight, no scroll yet
* Tweak toggle look
* Style search, fix state changes
* Separate out settings components
* Include description in results, minor style tweaks
* Fix tsc import
* Remove unused imports in Settings
* fmt
It's not permissible to transition the bundle policy during runtime, so
we need to maintain max-bundle, even if we know there's no ICE and it
won't matter any.
Signed-off-by: Paul R. Tagliamonte <paul@kittycad.io>
* Add test clicking through each onboarding step
* Revert "get rid of code pane shit (#2259)"
This reverts commit d341681c0d.
* Fix the missing #code-pane id
* fmt
* WIP: automate release, get PR info from commit
* Get version from PR title in script
* Add create release script call under comment, will wait for next release to test
* Test with v0.19.0
* Change to draft
* Clean up after v0.19.0 test
* Test for v0.19.1
* Clean up after test
---------
Co-authored-by: Jess Frazelle <jessfraz@users.noreply.github.com>
* more spped up wasm build
* try download again
* clean up
* rando change to rust to check it builds wasm
* make workflow more grokable/commented
* Revert "rando change to rust to check it builds wasm"
This reverts commit d2d9926b4b.
Pass the ?pool query param through to the backend.
This will slice off the ?pool= param and pass it to the WebSocket
request, which requests that the Zoo API use a particular pool of
engines. This isn't something any users of the zoo api require; but it's
needed for the internal engine Zoo development workflow. This may be
used in the future, but for now this'll be always enabled. Passing any
value in the production servers will result in a "no backend" error for
now.
* adding dark edge lines in light mode + enabling SSAO
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* Rerun CI
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Frank Noirot <frank@zoo.dev>
Co-authored-by: Frank Noirot <frank@kittycad.io>
* use engine animations for sketch on face, but not default planes
* massage things
* fix type issue
* small problem in playwright test<
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* some tests fixes
* more test tweaks
* more test tweaks
* clean up
* more tidy
* tests are a pain
* more test stuff
* test stuff again
* fix micro think axes in sketch mode
* more test shit
* more test shit more
* more test tweaks
* more test tweaks
* more test stuff
* trigger ci
* clean up
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* strongly type all websocket requests to the engine so we cant send a bad one
Signed-off-by: Jess Frazelle <github@jessfraz.com>
* udpates
Signed-off-by: Jess Frazelle <github@jessfraz.com>
* use new lib
Signed-off-by: Jess Frazelle <github@jessfraz.com>
* updates to lint
Signed-off-by: Jess Frazelle <github@jessfraz.com>
---------
Signed-off-by: Jess Frazelle <github@jessfraz.com>
* Initial draft rectangle appear on screen
* rectangle tool extra
* Fix draft lines in all quadrants
* Wait for first click to set up draft rectangle
* Working rectangle commit
* Update toolbar icon and disabling logic
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* fmt
* Working tool, one remaining bug around naively updating sketch nodes
* Break out rectangle AST utilities
* Remove unused imports
* Disable Rectangle tool if sketch is not empty
* Use existing tools for generating tag names
* Add snapshot test for tool
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* Rerun CI
* Add comments, remove unrelated changes
* fix rectangle bug from bad ast
* Make rectangle tool equippable when the line tool is equipped
* Change snapshot test to check the draft rectangle instead of commited one
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* Rerun CI
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* Rerun CI
---------
Co-authored-by: Kurt Hutten Irev-Dev <k.hutten@protonmail.ch>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Add exclamationMark icon
* Add basic LowerRightControls component
* Create a help menu
* Remove NetworkHealthIndicator from AppHeader
* Refactor Tooltip to be able to be corner-anchored
* Add a better flag back to the Tooltip
* Give tooltip a faint theme outline on light mode too
* Fix broken reset onboarding behavior on home page
* Fix bug with isInProject
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Add doc comment to getThemeColorForEngine
* Add a user-level setting for highlightEdges
* Add a custom settings action to update the edge line visibility
* Make the settings pane always open to user settings first
* Refactor engineConnectionMananer.start() to take a settings object
* Revert alway open user settings
* Set highlight edges on engine start up
* fmt fml
* Fix tsc error
* WIP: Custom updater modal
Fixes#1663
* First working example with data
* Clean up, moved code to index.tsx
* Clean up
* Nicer dialog
* Add relaunch dialog (macOS)
* max-height in case of a long text
* Clean up
* Add component tests and fix name consistency
* Update styling, re-add md parser
* Clean up
* Quick typo
* Clean up
* Rebase on tauri v2
* Clean up
* Add updater permissions
* Remove dialog from config
* Fix restart after install
* attempt to fix cookie token bullshit in another way
Signed-off-by: Jess Frazelle <github@jessfraz.com>
* format
Signed-off-by: Jess Frazelle <github@jessfraz.com>
* updates
Signed-off-by: Jess Frazelle <github@jessfraz.com>
* log in prod for now since im going insane
Signed-off-by: Jess Frazelle <github@jessfraz.com>
---------
Signed-off-by: Jess Frazelle <github@jessfraz.com>
* Make user avatar 404 in snapshot tests
* Make fallback menu button look better
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* Give AppHeader consistent height
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* Rerun CI
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* Rerun CI
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Fix sketch on face snapshot to click on face instead of default plane
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* Rerun CI
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Fix pointer-event logic depending on open panes, etc
* Little KclTextEditorPane style tweaks
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* Rerun CI
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Split ModelingSidebar out into own component
* Consolidate all ModelingPane components and config
* Make ModelingSidebar a directory of components and config
* Remove unused components
* Proper pane styling
* Make tooltip configurable to visually appear on hover only
* Remove debug panel from App
* Fix current tests
* Rename to more intuitive names
* Fix useEffect loop bug with showDebugPanel
* Fix snapshot tests
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* Rerun CI
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* Merge branch 'main' into franknoirot/sidebar
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* Rerun CI
* Maybe some flakiness in the validation initScripts?
* Avoid test flakiness by waiting for more signals that loading is completed
* Don't assert, just wait for the element to be enabled
* Don't let users accidentally click the gap between the pane and the side of the window
* Firm up extrude from command bar test
* Get rid of unused imports
* Add setting to disable blinking cursor (#2065)
* Add support for "current" marker in command bar for boolean settings
* Add a cursorBlinking setting
* Rename setting to blinkingCursor, honor it in the UI
* Fix scroll layout bug in settings modal
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* Rerun CI
* CSS tweaks
* Allow settings hotkey within KclEditorPane
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Rerun CI
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* Rerun CI
* Ensure the KCL code panel is closed for camera movement test
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* Make sure that the camera position inputs are ready to be read from
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* Remove repeat awaits
* Make camera position fields in debug pane update when the pane is initialized
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* Undo that CameraControls change because it made other things weird
* retry fixing camera move test
* Fix race condition where cam setting cam position parts were overwriting each other
* Rerun CI
* Rerun CI
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Remove stale linux snapshots
* Update test names to be different in more than just casing to boot
* Just delete all the engine scale snapshots for now so only the correct ones get committed
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* Rerun CI
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Fix vite build (tauri build still broken)
* Fix yarn builds with a couple of shortcuts
* Fix file creation
* Fix documentDir behavior
* Got stream with default file
* Clean up
* Clean up
* Use 'unstable'; fix devtools callsite
The API changed a bit here, which forces us to use the unstable crate
feature. The call to open devtools is also new; it's now on the
webview not window.
Signed-off-by: Paul R. Tagliamonte <paul@kittycad.io>
* Bring back read_dir_recursive from v1
* Fix dates
* More fixes, incl. conf files
* cargo fmt
* Add Updater plugin
* Fix types
* Fix isTauri detection and updater bootup
* Schemas
* Clean up
* Disable devtools
* Attempt at fixing builds
* WIP Ubuntu dep
* WIP Ubuntu dep
* WIP keys in debug
* Enable updater only on release builds
* Reenable webtools on debug
* No linux bundles
* Typo
* Attemp at fixing --bundles none
* Manual tauri debug build
* Empty commit to trigger the CI
* Fix settings
* Empty commit to trigger the CI
* Merge branch 'main' into pierremtb/issue1349
* Add allow-create perm
* tauri-driver no cap
* Empty commit to trigger the CI
* Clean up
* Clean up
* Migrate to tauri v2
Fixes#1349
* Fix fmt
* Allow the nightly builds to be installed side-by-side with released builds
Fixes#1867
* Clean up
* Merge branch 'main' into pierremtb/issue1349
* Force BUILD_RELEASE: true
* Bump tauri to new beta
* Merge branch 'main' into pierremtb/issue1349
* Fix linux tests
* Fix types
* Add --verbose to tauri-action
* Move --verbose to front
* Back to tauri-driver@0.1.3 and single \ for win
* Back to latest driver, and windows wip
* Disable release conf temporarily
* Rollback to 2.0.0-beta.2
* Rollback to 2.0.0-beta.1
* Move bundle to root for src-tauri/tauri.release.conf.json
* All packages to latest (add http and shell to package.json)
* Testing latest commit for tauri-action
* Remove tauri action
* Add cat
* WIP
* Update ci.yml
* Disable release conf
* Disable rust cache
* Add tauri-action back for release builds
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* Update .codespellrc
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* Trigger CI
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* Fix type
* Clean up
* More clean up
* Fix path concatenation with join
* Attempt at fixing linux tests
* Config clean up
* Downgrade to tauri-driver@0.1.3
* Looks like tauri v2 is actually doing better with linux package names ah!
* Change Linux apt packages
* Increase wdio connectionRetryTimeout
* Revert connectionRetryTimeout and bump tauri packages
* Back to latest tauri-driver
* Disable linux e2e tests
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* Trigger CI
* Clean up
* Update snapshots
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* Trigger CI
* Remove @sentry/react
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* Rename migrated.json to desktop.json
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* Trigger CI
* Clean up
* Fix json command
---------
Signed-off-by: Paul R. Tagliamonte <paul@kittycad.io>
Co-authored-by: Paul R. Tagliamonte <paul@kittycad.io>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Adam Chalmers <adam.chalmers@zoo.dev>
* fixing fillet changes
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* Trigger CI with empty commit
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* Rerun CI
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Frank Noirot <frank@kittycad.io>
* Revert Playwright tests to use addInitScript to adjust storage state
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* Fix tsc
* Rerun CI
* Rerun CI
* Only use page.addInitScript within tests
because technically adding multiple init scripts to the context has an indeterminate run order, per the [Playwright docs](https://playwright.dev/docs/api/class-page#page-add-init-script)
* Rerun CI
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Fix vite build (tauri build still broken)
* Fix yarn builds with a couple of shortcuts
* Fix file creation
* Fix documentDir behavior
* Got stream with default file
* Clean up
* Clean up
* Use 'unstable'; fix devtools callsite
The API changed a bit here, which forces us to use the unstable crate
feature. The call to open devtools is also new; it's now on the
webview not window.
Signed-off-by: Paul R. Tagliamonte <paul@kittycad.io>
* Bring back read_dir_recursive from v1
* Fix dates
* More fixes, incl. conf files
* cargo fmt
* Add Updater plugin
* Fix types
* Fix isTauri detection and updater bootup
* Schemas
* Clean up
* Disable devtools
* Attempt at fixing builds
* WIP Ubuntu dep
* WIP Ubuntu dep
* WIP keys in debug
* Enable updater only on release builds
* Reenable webtools on debug
* No linux bundles
* Typo
* Attemp at fixing --bundles none
* Manual tauri debug build
* Empty commit to trigger the CI
* Fix settings
* Empty commit to trigger the CI
* Merge branch 'main' into pierremtb/issue1349
* Add allow-create perm
* tauri-driver no cap
* Empty commit to trigger the CI
* Clean up
* Clean up
* Migrate to tauri v2
Fixes#1349
* Fix fmt
* Merge branch 'main' into pierremtb/issue1349
* Force BUILD_RELEASE: true
* Bump tauri to new beta
* Merge branch 'main' into pierremtb/issue1349
* Fix linux tests
* Fix types
* Add --verbose to tauri-action
* Move --verbose to front
* Back to tauri-driver@0.1.3 and single \ for win
* Back to latest driver, and windows wip
* Disable release conf temporarily
* Rollback to 2.0.0-beta.2
* Rollback to 2.0.0-beta.1
* Move bundle to root for src-tauri/tauri.release.conf.json
* All packages to latest (add http and shell to package.json)
* Testing latest commit for tauri-action
* Remove tauri action
* Add cat
* WIP
* Update ci.yml
* Disable release conf
* Disable rust cache
* Add tauri-action back for release builds
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* Update .codespellrc
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* Trigger CI
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* Fix type
* Clean up
* More clean up
* Fix path concatenation with join
* Attempt at fixing linux tests
* Config clean up
* Downgrade to tauri-driver@0.1.3
* Looks like tauri v2 is actually doing better with linux package names ah!
* Change Linux apt packages
* Increase wdio connectionRetryTimeout
* Revert connectionRetryTimeout and bump tauri packages
* Back to latest tauri-driver
* Disable linux e2e tests
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* Trigger CI
* Clean up
* Update snapshots
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* Trigger CI
* Remove @sentry/react
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* Rename migrated.json to desktop.json
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* Trigger CI
* Change wasm url to http on Windows
---------
Signed-off-by: Paul R. Tagliamonte <paul@kittycad.io>
Co-authored-by: Paul R. Tagliamonte <paul@kittycad.io>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Adam Chalmers <adam.chalmers@zoo.dev>
* Clean up batch code
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* Remove 'flush_batch: bool' from send_modeling_cmd
It was always being set with false, and it was
bugged for true. If true was set, the cmd would
never actually be run.
* Fix derive-docs
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Cut release v0.17.3
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* Rerun CI
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Send a WsMsg::Close before we bail normally.
This will hopefully trigger engine-manager to release the engine back to
the pool faster, allowing us to increase the number of threads we can
run the modeling-app tests with.
Signed-off-by: Paul R. Tagliamonte <paul@zoo.dev>
* Fix project directory setting input
* Remove unused imports
* Almost working Tauri test
* Finish Tauri e2e test
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* fmt
* Try a different Webriver selector
* Update themeColor component to use new updateValue API
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* Rerun CI
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Add a setting for themeColor
* Add primary-color to Tailwind, driven by themeColor setting
* Get rid of most uses of "energy" colors
* Change out the rest of the energy colors
* Tweak NetworkHealthIndicator light mode checkmarks
* Handful of other CSS tweaks while I'm here:
- remove the AppHeader bg and border
- pane margins
- better dark mode button styles
* Make Zoo logomark a badge
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* Re-run CI post-snapshots
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* Retrigger CI
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Make it possible to include a setting only on the Settings dialog, not also in the command bar.
* Add web-only setting to permanently dismiss banner
* Honor the dismiss web banner setting
* Remove unused state from useStore
* Make the banner only appear in production builds again
* Print WebSocket errors when we get them
Previously, we eat them and ignore them, but now we'll seek out
and actively print error messages to stderr. We'd previously get a
websocket closed error, but we'll usually get an Error message over the
WebSocket before its closed on us.
Here's some example output during a crash
```
got ws error: WebSocket protocol error: Connection reset without closing handshake
Caused by:
Connection reset without closing handshake
thread 'serial_test_cube_mm' panicked at tests/executor/main.rs:1136:10:
called `Result::unwrap()` on an `Err` value: engine: KclErrorDetails { source_ranges: [SourceRange([180, 188])], message: "Modeling command failed: websocket closed early" }
test serial_test_cube_mm ... FAILED
got error message: {
"error_code": "bad_request",
"message": "Too many active connections, only 2 allowed per user."
}
```
* Rename cargo-criterion to cargo-bench
* Use iai not criterion in CI
We want to benchmark the KCL parser and tokenizer to make sure we don't
accidentally slow them down. Generally Rust projects use Criterion to
benchmark code. Criterion runs your functions a few thousand times to
get reliable wall-clock measurements.
This is good for locally benchmarking but bad for benchmarking in CI.
Why? Because in CI, you're running a container on some shared VM, so
wall-clock time might have a lot of interference from noisy neighbours.
Also, your benchmarks take a long time to run and eat up paid CI minutes.
A better approach for benchmarking in CI is to just count the number of
CPU instructions executed. This correlates with wall-clock time, but it
only needs to run the function once, so it takes much less time. It also
isn't changed by any noisy neighbours running on the same VM or hardware.
This PR adds a new benchmark suite which counts instructions using `iai`,
from the creator of criterion. He says iai and criterion complement each
other nicely. We can run criterion locally and run iai in CI.
* Update image in markdown docs
* Cut release v0.17.2
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* 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>
* dynamic cursor depending on mouse scene state
* hover stuff
* bump min length
* clean up
* sketch on face failing randomly
* more time out for extrude snapshots
* Update src/clientSideScene/sceneEntities.ts
Co-authored-by: Frank Noirot <frank@zoo.dev>
* move for profileStart handle, and select when no tool equiped
---------
Co-authored-by: Frank Noirot <frank@zoo.dev>
* get branch up to where it was before
* setup dots properly
* only show extra handle on hover
* use partical texture for plus button
* fix regression
* fix deleted line
* fix sketch on face test
* caluclate segment length in screen-space/in-pixels
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* side small segment handles on resize
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* Make sure this works on setup and update of segments
* Add to tangential arcs
* Revert "A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)"
This reverts commit 5dc1adacae.
* Revert "A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)"
This reverts commit b8ceea179c.
* try and fix sketch on face in CI
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* more test fix
* convert scaling to be based on pixels
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* trigger ci
* Revert "A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)"
This reverts commit 6287c943dd.
* Revert "A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)"
This reverts commit 1baa3819db.
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* Update src/clientSideScene/segments.ts
Co-authored-by: Frank Noirot <frank@zoo.dev>
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* reduce line thickness
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* trigger CI
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* trigger CI
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* trigger CI
* try putting init script back in
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Frank Noirot <frank@zoo.dev>
* fix member expression in object expression
Signed-off-by: Jess Frazelle <github@jessfraz.com>
* new renders
Signed-off-by: Jess Frazelle <github@jessfraz.com>
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* empty trigger
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* empty
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
---------
Signed-off-by: Jess Frazelle <github@jessfraz.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* BROKEN: start of scopes for each setting
* Clean up later: mostly-functional scoped settings!
Broken command bar, unimplemented generated settings components
* Working persisted project settings in-folder
* Start working toward automatic commands and settings UI
* Relatively stable, settings-menu-editable
* Settings persistence tweaks after merge
* Custom settings UI working properly, cleaner types
* Allow boolean command types, create Settings UI for them
* Add support for option and string Settings input types
* Proof of concept settings from command bar
* Add all settings to command bar
* Allow settings to be hidden on a level
* Better command titles for settings
* Hide the settings the settings from the commands bar
* Derive command defaultValue from *current* settingsMachine context
* Fix generated settings UI for 'options' type settings
* Pretty settings modal 💅
* Allow for rollback to parent level setting
* fmt
* Fix tsc errors not related to loading from localStorage
* Better setting descriptions, better buttons
* Make displayName searchable in command bar
* Consolidate constants, get working in browser
* Start fixing tests, better types for saved settings payloads
* Fix playwright tests
* Add a test for the settings modal
* Add AtLeast to codespell ignore list
* Goofed merge of codespellrc
* Try fixing linux E2E tests
* Make codespellrc word lowercase
* fmt
* Fix data-testid in Tauri test
* Don't set text settings if nothing changed
* Turn off unimplemented settings
* Allow for multiple "execution-done" messages to have appeared in snapshot tests
* Try fixing up snapshot tests
* Switch from .json to .toml settings file format
* Use a different method for overriding the default units
* Try to force using the new common storage state in snapshot tests
* Update tests to use TOML
* fmt and remove console logs
* Restore units to export
* tsc errors, make snapshot tests use TOML
* Ensure that snapshot tests use the basicStorageState
* Re-organize use of test.use()
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* Update snapshots one more time since lighting changed
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* Fix broken "Show in folder" for project-level settings
* Fire all relevant actions after settings reset
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* Properly reset the default directory
* Hide settings by platform
* Actually honor showDebugPanel
* Unify settings hiding logic
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* fix first extrusion snapshot
* another attempt to fix extrustion snapshot
* Rerun test suite
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)
* trigger CI
* more extrusion stuff
* Replace resetSettings console log with comment
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Kurt Hutten Irev-Dev <k.hutten@protonmail.ch>
* set selection as top level event only
* target quirk fix
* fix old bug
* 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>
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.
On `main`, the new test program in `tests/executor` causes a stack overflow. Running a flamegraph via `sudo cargo flamegraph --test executor -- serial_test_mike_stress_lines` shows that the problem: `fn execute_pipe_body` is very recursive.
When there's a long pipe, `execute_pipe_body` executes the next child expression, which is always a CallExpression. So `execute_pipe_body` calls `CallExpression::execute`. Which then calls `execute_pipe_body` again.
Fix is simple: `execute_pipe_body` now iterates over pipe subexpressions instead of recursing. This fixes the stack overflow, and is much faster too.
Closes https://github.com/KittyCAD/modeling-app/issues/1891.
./get-latest-wasm-bundle.sh # this will download the latest main wasm bundle
```
That will build the WASM binary and put in the `public` dir (though gitignored)
finally, to run the web app only, run:
@ -68,7 +74,13 @@ finally, to run the web app only, run:
yarn start
```
## Developing in Chrome
If you're not an KittyCAD employee you won't be able to access the dev environment, you should copy everything from `.env.production` to `.env.development` to make it point to production instead, then when you navigate to `localhost:3000` the easiest way to sign in is to paste `localStorage.setItem('TOKEN_PERSIST_KEY', "your-token-from-https://zoo.dev/account/api-tokens")` replacing the with a real token from https://zoo.dev/account/api-tokens ofcourse, then navigate to localhost:3000 again. Note that navigating to localhost:3000/signin removes your token so you will need to set the token again.
### Development environment variables
The Copilot LSP plugin in the editor requires a Zoo API token to run. In production, we authenticate this with a token via cookie in the browser and device auth token in the desktop environment, but this token is inaccessible in the dev browser version because the cookie is considered "cross-site" (from `localhost` to `dev.zoo.dev`). There is an optional environment variable called `VITE_KC_DEV_TOKEN` that you can populate with a dev token in a `.env.development.local` file to not check it into Git, which will use that token instead of other methods for the LSP service.
### Developing in Chrome
Chrome is in the process of rolling out a new default which
Which will run our suite of [Vitest unit](https://vitest.dev/) and [React Testing Library E2E](https://testing-library.com/docs/react-testing-library/intro/) tests, in interactive mode by default.
For running the rust (not tauri rust though) only, you can
```bash
cd src/wasm-lib
cargo test
@ -152,6 +165,7 @@ console.log(
- `)
)
```
grab the md list and delete any that are older than the last bump
2. Merge the PR
@ -181,39 +195,49 @@ $ cargo +nightly fuzz run parser
docker run --network host --rm --init -it playwright/chrome:playwright-1.43.1
```
and in another terminal, run:
```bash
PW_TEST_CONNECT_WS_ENDPOINT=ws://127.0.0.1:4444/ yarn playwright test --project="Google Chrome" <test suite>
```
An example of a `<test suite>` is: `e2e/playwright/flow-tests.spec.ts`
YOU WILL NEED A PLAYWRIGHT-SECRETS.ENV FILE:
```bash
# ./e2e/playwright/playwright-secrets.env
token=<your-token>
snapshottoken=<your-snapshot-token>
```
then replace "your-token" with a dev token from dev.zoo.dev/account/api-tokens
then:
run playwright
```
yarn playwright test
```
run a specific test suite
```
yarn playwright test src/e2e-tests/example.spec.ts
```
run a specific test change the test from `test('...` to `test.only('...`
(note if you commit this, the tests will instantly fail without running any of the tests)
run headed
```
yarn playwright test --headed
```
run with step through debugger
```
PWDEBUG=1 yarn playwright test
```
However, if you want a debugger I recommend using VSCode and the `playwright` extension, as the above command is a cruder debugger that steps into every function call which is annoying.
With the extension you can set a breakpoint after `waitForDefaultPlanesVisibilityChange` in order to skip app loading, then the vscode debugger's "step over" is much better for being able to stay at the right level of abstraction as you debug the code.
@ -258,12 +282,11 @@ Where `./store` should look like this
</details>
However because much of our tests involve clicking in the stream at specific locations, it's code-gen looks `await page.locator('video').click();` when really we need to use a pixel coord, so I think it's of limited use.
#### Some notes on CI
The tests are broken into snapshot tests and non-snapshot tests, and they run in that order, they automatically commit new snap shots, so if you see an image commit check it was an intended change. If we have non-determinism in the snapshots such that they are always committing new images, hopefully this annoyance makes us fix them asap, if you notice this happening let Kurt know. But for the odd occasion `git reset --hard HEAD~ && git push -f` is your friend.
The tests are broken into snapshot tests and non-snapshot tests, and they run in that order, they automatically commit new snap shots, so if you see an image commit check it was an intended change. If we have non-determinism in the snapshots such that they are always committing new images, hopefully this annoyance makes us fix them asap, if you notice this happening let Kurt know. But for the odd occasion `git reset --hard HEAD~ && git push -f` is your friend.
How to interpret failing playwright tests?
If your tests fail, click through to the action and see that the tests failed on a line that includes `await page.getByTestId('loading').waitFor({ state: 'detached' })`, this means the test fail because the stream never started. It's you choice if you want to re-run the test, or ignore the failure.
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.