* feat: ai agent steps base
* better backend and graph
* feat: anthropic, log viewer
* nit
* fix(frontend): hide tool nodes from timeline
* move ai agent actions from flow status to flow status module
* nits and workspace/hub scripts support
* tmp ref
* fix merge
* feat: display agent tools status in the graph
* fix reactivity
* fix flow status
* nit
* feat(flowEditor): add diff mode action buttons to inline script editor
- Add showHistoryDrawer state to FlowModuleComponent
- Bind showHistoryDrawer to EditorBar for history functionality
- Add showButtons={diffMode} prop to DiffEditor in flow editor
- Add on:hideDiffMode and on:seeHistory event handlers to DiffEditor
- Ensures inline script editor in flows has same diff mode buttons as main script editor
Fixes#6377
Co-authored-by: windmill-internal-app[bot] <windmill-internal-app[bot]@users.noreply.github.com>
* fix
---------
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
Co-authored-by: windmill-internal-app[bot] <windmill-internal-app[bot]@users.noreply.github.com>
Co-authored-by: centdix <farhadg110@gmail.com>
* Moved logic to FlowAssetsProvider
* Remove assetsMap in flow
* do not parse everything on mount + only check for missing assets fields
* add assets field in backend
* remove fallbackAccessTypes
* better structure and less queries / parsing
* Fix assets not showing when pulling raw_flow from jobs
* flow assets ctx for job run
* Fix transitive assets fetching
* Fix input args asset node
* enablePathScriptAndFlowAssets flag
* edit btn for variable
* untrack refresh
* move parseInputArgsAssets
* Assets tab in runs
* Update FlowStatusViewerInner to svelte 5 + fix asset sync bug
* avoid toast error on bad resource
* fetch res metadata for input arg asset
* Job assets viewer in run page
* r/w selector
* remove indigo badge
* store alt_access_type state in ScriptEditor
* Don't parse assets in flow script editor
* Add alt_access_type in backend
* show Read as selected by default to avoid giving the feeling of having made a decision
* keep alt_access_type when reparsing in flow raw scripts
* Remove variable asset kind, and save assets for scripts
* remove all backend asset parsing
* R/W/RW selector button nits
* fix insert into assets not saving alt access type
* support named arguments in python asset parser
* improve asset usage drawer R/W indicator
* update legacy $res: syntax
* reactivity issue
* remove last variable asset stuff
* sqlx prepare
* tooltip explainer
* deprecated variable asset nit
* assets migration
* parse assets (duckdb)
* iterate on assets
* S3 object Preview
* remove pagination
* filterText
* better occurence list
* tweak
* assets in JobPreview
* clone impl
* AssetsDetectedBadge
* improve DbManagerButton + asset dropdown button
* edit resource btn
* warning when incorrect resource
* +Resource in DuckDB
* +S3 Object editor bar
* nit fix rename
* flow asset badge
* More Generic OnChange
* Highlight assets used in modules
* Show occurence count in flow
* Better UX, avoid moving parts
* nit
* Asset nodes
* move to dedicated Asset ctx
* fix layoutNodes not handling first assetsMap
* explore asset btn in flow asset node
* correct offset
* single computeAssetNodes function
* Fix y positioning of nodes with assets
* resource editor
* write mode node (ui)
* accessType in ctx + fix insert button positioning
* right positioning when mixing read and write nodes
* right positioning when mixing R and W assets
* Better layout fix algorithm
* listAssetsByUsage and asset nodes on transitive usages
* refactor + remove linkAssets
* Refactor to allow for custom R/W modes
* AssetsDropdownButton in flow script editor
* R/W/RW selection and changes node pos in flow
* layoutNodes doesnt need recompute now
* fix wrong assumption that nodes recompute when assets change
* r/w/rw multi toggle
* MultiToggle cool animation + clearable
* rename + 1px nit
* remove mini toggle button group, use ToggleButtonGroup
* Combinator parser that detects R / W asset context
* nit fix missing flex-1
* missing order by
* better ui indication for access type
* special x offset case when only one asset node for clarity
* parse getResource in TS with swc ecma parser
* support load and write s3 detection in TS
* Python asset parser
* support wmill api calls without special $res: or s3:// syntax
* detect out of context asset uris python
* do not use access type override when not ambiguous in flow graph
* parse_assets match case in rust
* AsRef<str> refactor
* From impl
* Save flow assets
* Save script asset usages + fixes + save fallback access types
* asset sub icon
* max total asset node width to avoid overlap
* small refactor
* don't parse comments in duckdb assets
* fix assets clearing on parse error
* fix script asset save in wrong place
* load initial asset fallback access types
* support variables
* ui fixes
* Support S3Object as URI in TS client
* support new syntax in python client
* Support +S3Object in EditorBar for TS and python
* Reduce resource requests in assets page
* import windmill client when necessary
* update s3Types.d.ts
* nit fix
* Show input resources and s3 objects as assets
* improve asset icons
* DarkModeObserver refactor
* asset page tabs
* Moved resource variables and s3object pages to assets tabs
* fetch resource usages
* Get variables usages
* move assets usage dropdown to component
* Revert "move assets usage dropdown to component"
This reverts commit 622ea4ab12.
* Revert "Get variables usages"
This reverts commit b11ced4e29.
* Revert "fetch resource usages"
This reverts commit aa5187ad4b.
* Revert "Moved resource variables and s3object pages to assets tabs"
This reverts commit 4430487be4.
* Revert "asset page tabs"
This reverts commit dacc2f0da5.
* move assets usage dropdown to component
* asset icon in asset pages
* tooltip
* details
* Storage selector in S3 File Picker
* make edge less opaque
* Refactor computeAssetNodes to separate in and out nodes
* AssetsOverflowedNode
* nits
* fix assets not being parsed in flows sometimes
* show asset kind and resource_type
* ui nits
* support res:// in duckdb
* add banner for old deployments
* Fix permissionning
* fix broken disable /enable all
* assets page view permission for operators
* Disable ExploreAssetButton for operators
* asset kind as subtitle
* do not spam getResource in assets page. prob. revert fail
* update assets page on workspace change
* reload storage names on ws change
* delete assets on archive / deletion
* sqlx prepare
* missing update when updating user
* add indexes on asset
* better message
* missing loadInit: false
* dead code
* use transaction
* typo
* update package.json
* update package.json
---------
Co-authored-by: Ruben Fiszel <ruben@windmill.dev>
* Add initial loading status for flow steps
* Add loading state
* reset module initial if test flow initial is reset
* ensure all jobs are loaded before unmouning the preview
* only use loadIndividualStepsStates when no history
* Revert "only use loadIndividualStepsStates when no history"
This reverts commit bfc37b7e7f.
* wait for all flow child to be loaded befor loading flowSteps
* Revert "wait for all flow child to be loaded befor loading flowSteps"
This reverts commit 7da81756b0.
* Load individual steps on flow load
* Add loading status in graph
* Use a context to manage initial state and save to local storage
* Handle new flow
* nit
* nit
* nit
* Prevent loading step when mock is enabled
* Load jobs based on last flow run
* Revert "Load jobs based on last flow run"
This reverts commit 212cb7f785.
* Change step initial display status
* nit
* Add parallelisation limit on step job loading
* fix: ai button in inline script editor to open AI chat in flow builder
- Add openAiChat prop to ScriptGen component to control AI button behavior
- When openAiChat=true, AI button opens AI chat manager in script mode
- When openAiChat=false (default), AI button shows direct generation popover
- Update flow builder (FlowModuleComponent) to use openAiChat=true for inline scripts
- App builder continues using direct generation (openAiChat defaults to false)
- Import AIMode enum properly to fix TypeScript error
Resolves request from @HugoCasa to make flow AI button open chat instead of direct generation while keeping app builder unchanged.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-authored-by: Ruben Fiszel <rubenfiszel@users.noreply.github.com>
* refactor: extract repeated logic into reusable functions in ScriptGen.svelte
- Created determineModeFromEditor() to centralize mode setting logic
- Added callCopilot() to unify copilot function calls with proper typing
- Added handleAiButtonClick() as single handler for button click scenarios
- Created safeLocalStorageOperation() for generic localStorage error handling
- Added getPromptStorageKey() for centralized storage key generation
Reduces code duplication and improves maintainability.
Co-authored-by: HugoCasa <HugoCasa@users.noreply.github.com>
* refactor: extract duplicate determineModeFromEditor call in handleAiButtonClick
Remove code duplication by calling determineModeFromEditor() once at the
beginning of handleAiButtonClick() instead of in both conditional branches.
Co-authored-by: HugoCasa <HugoCasa@users.noreply.github.com>
* nits
* better color
---------
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
Co-authored-by: Ruben Fiszel <rubenfiszel@users.noreply.github.com>
Co-authored-by: HugoCasa <HugoCasa@users.noreply.github.com>
Co-authored-by: HugoCasa <hugo@casademont.ch>
* replace on click wt on pointer down on flow node click
* pointerdown on virtualitems
* Load monaco async with a placeholder to avoid size flash
* monaco placeholder for editor
* less flashing
* simulate first line bg
* better match to monaco
* more fine tune
* fix for increased browser font sizes
* flow nodes feel much better to click on
* move setTimeout upwards
* only load async in flow editor
* load async monaco in app
* lots of components dont respect the type and pass undefined
* weird outline when opening and closing OutputPicker
* fixed hover flow nodes
* moved setTimeout upwards
* hover color for virtual items
* wrong Cargo.lock
* disable interaction if not selectable
* pixel perfect editor placeholder
* fake monaco editor perfect in flow editor
* fake monaco for app json editor
* (temp) never load editor monaco
* os dependant constants in monaco
* Revert " (temp) never load editor monaco"
This reverts commit c20fca134d.
---------
Co-authored-by: Diego Imbert <diego@windmill.dev>
* runs on svelte 5
* Line component from svelte-chartjs
* Replaced all svelte-chartjs occurrences with custom wrapper
* Fix props mistake
* Fix illegal table structures
* self-closing-tags fix
* aria labels
* Fixed trivial warnings and errors
* @tanstack/svelte-table fix
* upgrade to vite 6
* svelte-kit sync before running svelte-check
* Remove on:clear which is actually on:removeAll and already handled by on:change
* fix worker tags not displaying in Autoscaling
* Try to fix svelte-kit sync not working during CI
* remove warnings
* Fix add flow page crashing
* access worldStore before assignment fix
* fix infinite recursions in App Editor
* Replaced JSON.stringify with proper deepEqual
* component mount api changed (no longer classes)
* fix ci errors
* Fix infinite loops in background runnable panel
* factored effect on deep equal logic in onObjChange
* fix "Add" not working in AgGrid Table
* Replaced legacy component.$set api
* Fix multiselect infinite value reaction
* Fix flow input fields resetting when opening their edit tab
* fix date input resetting when typing year
* Remove !p-0 affecting subgrid dotted borders
* fix missing debounceTemplate causing hundreds of updates
* Fix AgGrid action refreshes and disppearing
* resolve getItems generating random ids every rerun
* fix cannot access items before init
* fix sort lambda arguments being undefined
* Revert "Remove !p-0 affecting subgrid dotted borders"
This reverts commit c62809bb45d682a48376b071680645ed4e1c601b.
* fix input not updating in decision tree editor
* Update frontend/src/lib/components/schema/EditableSchemaWrapper.svelte
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
* Re-added padding affecting subgrid dotted borders (#5479)
* remove !p-0 in preset components
* removed extra padding on accordion tabs subgrid
* Fix non-reactive SchemaForm
* dirty fix for the oneOf bug
* Fix warnings and update svelte-exmarkdown for svelte 5
* fix dnd not working
* don't mount component like objects
---------
Co-authored-by: Diego Imbert <diegoimbert@protonmail.com>
Co-authored-by: Diego Imbert <70353967+diegoimbert@users.noreply.github.com>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
* use melt menu in sidebar
* stop keyboard navigation for disabled items
* use melt menu for FavoriteMenu and WorkspaceMenu
* fix popover placement for menuButton
* use melt menu for operator menu
* fix notification
* fix operator menu
* Use melt menu in FlowJobsMenu
* use melt menu for AppMenu
* clean code
* clean code
* add use clickOutside option to Menu
* use pointerdown_outside
* use pointerdown_outside
# Conflicts:
# frontend/src/lib/components/meltComponents/Menu.svelte
* use pointerdown in menus
* add max-h to app dropdown menu
* keep more open in operator menu
* add a MenuItem component
* clean
* nit
* nit
* clean code
* put conditionalMelt as utility function
* remove unused Portal
* Add debounce effect in operator menu
* fix component jumping due to z-index
* format pages
* migrate dropdown to melt
* migrate toggle to melt
* migrate popup to melt popover
* fix missing toggle item
* feat: remove `pip` fallback option for python and ansible (#5186)
* refactor!: Remove `pip` fallback option for python and ansible
BREAKING CHANGE: pip was deprecated since 1.425.0 (2024-11-15)
* fix errors in main.rs
* fix tests
* remove nsjail for pip
* fix imports
* fix compilation error
* reinforce melt types
* fix racing condition issue in closing operator menu
* nit
* fix id conflix with melt element
* nit
* clean code
* use melt dropdown instead of menubar
* prevent modal from closing on click outside button in menu
* Apply automatic changes
* fix nit
* nit
* close dropdown when opening a new one
* replace MenuV2 with melt Menu (1/4) (#5214)
* use melt menu in sidebar
* stop keyboard navigation for disabled items
* use melt menu for FavoriteMenu and WorkspaceMenu
* fix popover placement for menuButton
* use melt menu for operator menu
* fix notification
* fix operator menu
* Use melt menu in FlowJobsMenu
* use melt menu for AppMenu
* clean code
* clean code
* add use clickOutside option to Menu
* use pointerdown_outside
* use pointerdown_outside
# Conflicts:
# frontend/src/lib/components/meltComponents/Menu.svelte
* use pointerdown in menus
* add max-h to app dropdown menu
* keep more open in operator menu
* add a MenuItem component
* clean
* nit
* nit
* clean code
* put conditionalMelt as utility function
* remove unused Portal
* Add debounce effect in operator menu
* fix component jumping due to z-index
* feat: remove `pip` fallback option for python and ansible (#5186)
* refactor!: Remove `pip` fallback option for python and ansible
BREAKING CHANGE: pip was deprecated since 1.425.0 (2024-11-15)
* fix errors in main.rs
* fix tests
* remove nsjail for pip
* fix imports
* fix compilation error
* reinforce melt types
* fix racing condition issue in closing operator menu
* nit
* fix id conflix with melt element
* nit
* prevent modal from closing on click outside button in menu
---------
Co-authored-by: pyranota <92104930+pyranota@users.noreply.github.com>
Co-authored-by: Ruben Fiszel <ruben@windmill.dev>
# Conflicts:
# frontend/src/lib/components/meltComponents/MenuItem.svelte
# frontend/src/lib/utils.ts
* clean
* fix z index and render
* fix initialize of dropdownmenu after melt migration
* feat: add support for | None and Optional in python (#5361)
* feat: add support for | None and Optional in python
* update python parser package
* add local rooting for MenuItem
* fix z index
* clean
* nit
* nit
* clean code
* nit
* nit
* clean code
* reinforce melt types
* wip
* reiforce instance select types for toggleButton
* nit
* fix double event
* fix selectedTable toggle
* fix sqs toggleButton
* fix potential issue with binding in toggleGroup
* Update frontend/src/routes/(root)/(logged)/runs/[...path]/+page.svelte
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
---------
Co-authored-by: pyranota <92104930+pyranota@users.noreply.github.com>
Co-authored-by: Ruben Fiszel <ruben@windmill.dev>
Co-authored-by: HugoCasa <hugo@casademont.ch>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>