Commit Graph

7686 Commits

Author SHA1 Message Date
Guilhem
ad010444de style: use outline instead of border for group and subflow overlays
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 15:41:48 +00:00
Guilhem
528574fc38 style: align expanded group header with first node
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 15:40:20 +00:00
Guilhem
2c285e1732 style: keep fixed width and rounded-md for expanded group header
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 15:38:49 +00:00
Guilhem
9a7601861e style: reorder group dropdown menu and remove color label
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 15:32:26 +00:00
Guilhem
5702901ae2 refactor: replace group action buttons with ellipsis dropdown menu
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 15:20:58 +00:00
Guilhem
dfaa5a4ac0 refactor: remove expand button from GroupActionBar (handled by StepCountTab)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 15:12:51 +00:00
Guilhem
110e4c6789 feat: render subflows using GroupNodeCard with expand/collapse border
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 15:03:55 +00:00
Guilhem
006a77c31a feat: add StepCountTab component replacing stacked layers
Replace stacked layers and plain text step count badges with a reusable
StepCountTab component that renders a colored tab on the top-left of
collapsed/expanded containers and groups. The tab persists in both
states and toggles collapse/expand on click.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 14:49:18 +00:00
Guilhem
52f0cf7e03 nit 2026-03-04 14:49:18 +00:00
Guilhem
61e5a580c5 feat: collapse containers into single ModuleNode with stacked layers
Replace CollapsedContainerNode with inline collapsed state on ModuleNode.
Containers (forloop, whileloop, branchall, branchone) now render as a
single MapItem card with stacked layers and step count when collapsed.

- Add isCollapsedContainer/containerModules fields to ModuleN data
- Remove CollapsedContainerN type and emitCollapsedContainer function
- Add collapse/expand buttons to FlowModuleSchemaItem action bar
- Pass collapseContainer/expandContainer props through MapItem
- Change node drop-shadow from drop-shadow-base to drop-shadow-sm

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 14:49:18 +00:00
Guilhem
7f633dcc3f feat: offset collapsed group stacked layers by note height
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-04 14:47:46 +00:00
Guilhem
4a4f4ab15a style: use group color for collapsed stacked layers and step count text
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-04 14:47:46 +00:00
Guilhem
d4b4104cd7 remove useless pencil for edit id 2026-03-04 14:47:46 +00:00
Guilhem
9e97122687 style: center group summary text in group node card
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-04 14:47:30 +00:00
Guilhem
8897313c75 fix: suppress height reporting during note editing to prevent graph rebuilds
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-04 14:47:30 +00:00
Guilhem
2661202747 fix: allow double-click note editing in collapsed group nodes
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-04 14:47:30 +00:00
Guilhem
f7e18441a9 fix: enable note editing in collapsed group nodes
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 14:47:30 +00:00
Guilhem
936a2882b5 feat: add event-driven group membership updates on insert/delete/move
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 14:47:30 +00:00
Guilhem
f8a53a817d feat: add clickable step count to toggle group collapse/expand
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-04 14:47:00 +00:00
Guilhem
5b10e817f2 nit 2026-03-04 14:46:56 +00:00
Guilhem
738b79065a feat: show overlapping module icons in group headers and extract shared action bar
- Add GroupModuleIcons component showing up to 5 deduplicated overlapping
  circular icons (language, hub integration, flow, etc.) in group headers
- Replace generic Group icon with module icons when available
- Extract GroupActionBar shared component used by both expanded and
  collapsed group nodes (note, collapse/expand, settings, ungroup)
- Add step count to collapsed group nodes, always right-aligned
- Add modules field to CollapsedGroupN data type in graph builder

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 14:46:56 +00:00
Guilhem
e305b8105a refactor: use TextInput component for group summary inline editing
Replace raw <input> with TextInput component using transparent
background. Add subtle hover background on the summary label.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 14:46:56 +00:00
Guilhem
8c5e3f6896 feat: add inline-editable summary field to group header
Click the group name in edit mode to rename it inline. The input
replaces the label, saves on blur/Enter, and cancels on Escape.
Wired from both GroupOverlay and CollapsedGroupNode.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 14:46:56 +00:00
Guilhem
f86ca0ef4f refactor: simplify group description to note, controlled by top-level Notes toggle
Rename "description" to "note" across schema, types, and UI components.
Remove per-group show/hide toggle and description_collapsed_by_default
persistence — group notes are now controlled by the existing top-level
"Notes" toggle. Add "+add note" / "remove note" buttons in the group
action bar. The Notes toggle also appears when any group has a note set.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 14:46:56 +00:00
Guilhem
a40ab1e147 feat: add toggleable markdown description to flow groups
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-04 14:46:56 +00:00
Guilhem
b1575303f7 feat: separate persistent collapsed_by_default from runtime collapsed state
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-04 14:45:51 +00:00
Guilhem
892372b437 feat: add hover border transition and fix header action visibility
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 14:45:51 +00:00
Guilhem
dc977ae9a9 feat: apply note colors to group header and remove shadow on expanded
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 14:45:51 +00:00
Guilhem
2635e8e4ea feat: full-width group header with step count and inline actions
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 14:45:51 +00:00
Guilhem
cb7d87a1bb refactor: extract shared GroupNodeCard component for group header
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 14:45:51 +00:00
Guilhem
e866a85542 feat: render collapsed group node like imported flow module
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-04 14:45:51 +00:00
Guilhem
22182d4fe2 feat: collapse groups as single graph nodes like subflows
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 14:45:51 +00:00
Guilhem
b862a3dc62 feat: improve group overlay with always-visible border, note-style spacing and action bar
- Always-visible thin solid 1px border (no background, no dashed)
- Push nodes down for group label space (same pattern as group notes)
- Label positioned above the border, aligned to left edge
- Flat action bar matching group note style (collapse, color picker, delete)
- Remove Popover/Toggle, use inline NoteColorPicker and X delete button
- Re-layout on group changes via derived dependency

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 14:45:51 +00:00
Guilhem
e4280861d9 feat: move group name edit to label with pen icon on hover
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-04 14:45:51 +00:00
Guilhem
160bec57c9 feat: add flow group nodes frontend UI with hover overlay and CRUD
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-04 14:45:51 +00:00
Guilhem
9b1d735d4c feat: add flow group nodes frontend UI with hover overlay and CRUD
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 14:45:51 +00:00
hugocasa
d709f896ac feat: add variable and resource types to flow env variables (#8214)
* feat: add variable and resource types to flow env variables

Flow env variables can now reference workspace variables ($var:path)
and resources ($res:path) that are resolved at runtime. Adds Variable
and Resource type options to the flow env editor with ItemPicker and
ResourcePicker components, and resolves references in both the flow
worker (via transform_json) and the API fallback endpoint.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix(frontend): use inline DollarSign icon for variable picker

Replace the separate "Pick" button with the standard inline DollarSign
icon overlay that appears on hover, matching the existing ArgInput
pattern. Also add the icon to the string type input for quick variable
linking from any string field.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* refactor: simplify flow env var resolution and json_path handling in API

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix(frontend): always show flow env variables in property picker

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix: update flow_env openapi type to allow any JSON value

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* refactor(frontend): remove redundant variable type from env var dropdown

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix(frontend): use Label component and fix alert text in flow env vars editor

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix(frontend): avoid redundant stringify/parse roundtrip in env type switch

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix: address PR review comments for flow env vars

- Deduplicate db_authed in jobs.rs $var/$res resolution
- Add warn logging on variable/resource resolution failures
- Consolidate $effect blocks and remove auto-type-correction effect
- Make linked variable text a clickable link to variable editor
- Add hash-based variable editor opening on variables page

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* perf: avoid cloning entire FlowValue to resolve flow_env references

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 14:20:50 +00:00
Ruben Fiszel
a202480190 add full-code app import with tabbed YAML/JSON format selection (#8224)
Combine YAML/JSON import into tabs within a single drawer (YAML default)
and add full-code app import option. Uses sessionStorage to persist import
data across the full page reload required by cross-origin isolation headers
when navigating to /apps_raw/add.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 13:29:51 +00:00
Guilhem
f156439346 add context menu with delete option to preprocessor nodes (#8223)
* fix: add context menu with delete option to preprocessor nodes

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* feat: add delete styling and shortcuts to right-click context menu

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-04 12:48:02 +00:00
claude[bot]
0dac7acc68 add data tables comment to scheduled poll templates (#8221)
Add a comment to each scheduled poll template (Python, Deno, Bun, Go)
mentioning that data tables can be used for more complex states, with
a link to the documentation.

Closes #8220

Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: windmill-internal-app[bot] <windmill-internal-app[bot]@users.noreply.github.com>
2026-03-04 11:47:36 +00:00
Guilhem
9e91a88472 feat: add move, delete, and duplicate to flow node context menu (#8050)
* feat: add context menu, multi-select actions, and keyboard shortcuts to flow editor

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: address review feedback on context menu PR

- Revert accidental static import of @scalar/openapi-parser (keep lazy-loaded)
- Restore [data-context-menu] in portalDivs for clickOutside compatibility
- Make noteDisabled reactive ($derived) in ModuleNode
- Use platform-aware shortcut hint (⌫ on Mac, Del on Windows/Linux)
- Optimize resolveSelectedModuleIds with single-pass ancestor map

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: address additional review feedback on flow context menu PR

- Use $derived.by instead of $derived for computed bounds in SelectionBoundingBox
- Remove redundant structuredClone wrappers around $state.snapshot
- Add null guard for originalModules/targetModules in move handler
- Add upper-bound guard (n < 10000) to copyId loop
- Fix fragile toggle comparison in moveManager with full array equality

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 10:53:01 +00:00
Diego Imbert
e5cc2f68dd feat: persistent Db manager state in URI (#8134)
* DB Manager state in URL

* Fix state not saving

* shorted uri params

* infer db_type from prefix

* Revert "infer db_type from prefix"

This reverts commit 7415fbed3d.

* dbm syntax

* infer database type

* Omit main and public

* remove legacy #dbmanager:

* Preserve hash

* nit

* Fix remaining dbManagerDrawer objects
2026-03-04 10:46:34 +00:00
Diego Imbert
02b4e222ea feat: Ducklake typechecker (#8118)
* Typedchecked ducklake queries

* Display script preview error as SQL error

* Fix duplication

* fix replacer

* Revert "fix replacer"

This reverts commit c5492033c8.

* Don't recompile regex every call

* nit OOB

* avoid potential panic

* Apply suggestions from code review

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>

* safety throw

* Update backend/windmill-worker/src/duckdb_executor.rs

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>

* Try catch individual chunks in prepareDatatableQueries

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>

* format

* nit comment

* Revert "Try catch individual chunks in prepareDatatableQueries"

This reverts commit ae64a8ad27.

* Correct try catch

* better error messages

* nit unused variable

* comment

* handle non describable queries

* npm i

---------

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
2026-03-04 10:46:08 +00:00
Ruben Fiszel
c717c9bbb2 chore(main): release 1.649.0 (#8198)
* chore(main): release 1.649.0

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <275584+rubenfiszel@users.noreply.github.com>
2026-03-04 07:14:00 +00:00
hugocasa
1b04f69219 feat(frontend): add script recorder for offline replay (#8200)
* feat(frontend): add script recorder for offline replay of script test executions

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix(frontend): use Video icon for recording instead of Circle

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix(frontend): use Disc icon for recording

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix(frontend): improve script recorder replay and recording privacy

- Record schema at capture time in ScriptRecording (lockfile unavailable for previews)
- Read schema from recording instead of job object in replay view
- Remove lockfile tab (not available via normal job API for preview jobs)
- Use text-xs for code/schema views, remove max-height limits
- Disable log download button in replay (endpoint won't work without real job)
- Truncate UUIDs in downloaded recordings (last 8 chars) for privacy
- Make activeReplay a $state so $derived(isReplay) in FlowStatusViewerInner
  updates reactively, preventing stale reads that caused API calls during replay
- Use JSON round-trip instead of structuredClone to unwrap $state proxies

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 18:41:11 +00:00
wendrul
1a8e0e0c0c Remove edit in fork button for app.windmill.dev (#8213)
* Remove edit in fork button for app.windmill.dev

* remove duplicate import
2026-03-03 18:39:24 +00:00
Ruben Fiszel
49904649e2 feat: move index management out of /srch/, add storage size reporting (#8169)
* feat: move index management endpoints out of /srch/, add storage size reporting

- Mount management_service() at /api/indexer (authenticated)
- Add management_service() OSS stub in indexer_oss.rs
- Update OpenAPI: /indexer/delete/{idx_name} and /indexer/storage
- Show disk + S3 storage sizes in IndexerMemorySettings UI

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* feat: add index storage section with refresh button

Move storage sizes into a dedicated "Index storage" section with a
refresh button to reload sizes after clearing an index.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* feat: add indexer status endpoint with liveness detection and improve settings UI

Add GET /indexer/status endpoint that combines lock-based liveness
detection with storage sizes. Frontend now shows running/stopped
indicators with last-active timestamps for each indexer.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* update ee ref

* fix

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 16:46:10 +00:00
Henri Courdent
e5d3368d45 Error frontend links (#8210) 2026-03-03 16:11:54 +00:00
Guilhem
56c135c14f fix(frontend): prevent subflow expansion from hiding all insertion points (#8203)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-03 13:26:29 +00:00
Ruben Fiszel
104bd5fbb1 fix: clean up slow-load toast interval on component destroy (#8207)
The slowStreamIntervalId (which fires "Loading is taking a long time..."
toasts every 15s) was not cleared in onDestroy, causing it to keep
firing after navigating away from the runs page.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 13:25:17 +00:00