Commit Graph

9654 Commits

Author SHA1 Message Date
Ruben Fiszel f3f0b3d01a chore(main): release 1.501.1 (#6038)
* chore(main): release 1.501.1

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <275584+rubenfiszel@users.noreply.github.com>
v1.501.1
2025-06-24 16:56:33 +02:00
pyranota db000508ec make wmill reference correct windmill-api version (#6041)
* Use regex to split input to python import parser

* gitignore Cargo.toml

* gitignore cargo.toml

* Restore cargo.lock

* fix(rust): make wmill reference correct windmill-api

`wmill` crate of version `x` should reference `windmill-api` of the same version `x`
2025-06-24 16:36:40 +02:00
Ruben Fiszel 1bdd00a3e4 fix: optimize jobs list run incremental refresh performance 2025-06-24 16:21:23 +02:00
pyranota 29719ac504 nit: disable LSP for rust-client (#6040)
* Use regex to split input to python import parser

* gitignore Cargo.toml

* gitignore cargo.toml

* Restore cargo.lock
2025-06-24 15:44:01 +02:00
Ruben Fiszel 517b61e196 improve query performance of user stats 2025-06-24 13:36:50 +02:00
HugoCasa 29f6fab60c fix: pwsh skip already installed modules outside of cache (#6037) 2025-06-24 12:41:54 +02:00
Ruben Fiszel e03246eadb chore(main): release 1.501.0 (#6034)
* chore(main): release 1.501.0

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <275584+rubenfiszel@users.noreply.github.com>
v1.501.0
2025-06-24 09:43:10 +02:00
claude[bot] 7f58a1cb47 nit(mcp): filter out scripts without main function from tools list (#6022)
* nit(mcp): filter out scripts without main function from tools list

- Add no_main_func field to ScriptInfo struct  
- Update SQL query to select no_main_func from database
- Filter scripts where no_main_func is true in list_tools function
- Hub scripts remain unaffected as requested

Resolves #6021

Co-authored-by: Ruben Fiszel <rubenfiszel@users.noreply.github.com>

* perf(mcp): optimize script filtering with SQL WHERE clause

Move the no_main_func filtering from Rust code to SQL WHERE clause for better performance:
- Add conditional WHERE clause in inner_get_items for scripts only
- Remove Rust-level filtering loop in list_tools function
- Reduces data transfer and improves query performance by filtering at database level
- Handles NULL values properly with (o.no_main_func IS NOT TRUE OR o.no_main_func IS NULL)

Co-authored-by: centdix <centdix@users.noreply.github.com>

* fix

* refactor(mcp): optimize filtering by removing no_main_func field selection

Remove no_main_func field from ScriptInfo struct and SQL selection while keeping WHERE clause filtering. This improves performance by filtering at the database level without transferring unnecessary data to the application layer.

Co-authored-by: Ruben Fiszel <rubenfiszel@users.noreply.github.com>

---------

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: centdix <centdix@users.noreply.github.com>
Co-authored-by: centdix <farhadg110@gmail.com>
2025-06-24 09:35:07 +02:00
HugoCasa 5722014651 feat: ai flow chat prompt and UX improvements (#5942)
* feat: ai flow chat prompt and UX improvements

* fix scroll + better stop button + snapshots base

* tmp

* feat: apply reject

* feat: warning modal + retry last + nits + use flow preview for diff/test/export

* Update frontend/src/lib/components/copilot/chat/flow/core.ts

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* typo

* feat: step summary by AI

* nits

* reactivity nits flow builder

* nits

---------

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-06-24 09:29:38 +02:00
Guilhem 3a1b43e8bc refactor using triggerableByAi using action (#6012)
* refactor using triggerableByAi using action

* fix update loop

* remove disabled option

* nit

# Conflicts:
#	frontend/src/lib/components/RunForm.svelte

* fix potential issue

---------

Co-authored-by: centdix <farhadg110@gmail.com>
2025-06-24 09:25:48 +02:00
Guilhem a7bba4674b move test up to into test flwo dropdown (#6016) 2025-06-24 09:25:13 +02:00
Ruben Fiszel d6a0c026d4 app nits 2025-06-24 09:02:32 +02:00
Ruben Fiszel 27e12a1527 fix: improve reactivity of apps 2025-06-24 08:41:46 +02:00
Ruben Fiszel 18cb8324ed add more quotas to prevent abuse on cloud 2025-06-24 06:42:42 +02:00
Ruben Fiszel 8ac16ca94b chore(main): release 1.500.3 (#6030)
* chore(main): release 1.500.3

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <275584+rubenfiszel@users.noreply.github.com>
v1.500.3
2025-06-23 18:06:49 +02:00
Ruben Fiszel 6f3cb5eabb fix: fix conditional wrappre 2025-06-23 18:00:21 +02:00
centdix 6ac004ece5 internal: add pr opened trigger for pr review 2025-06-23 15:32:30 +02:00
centdix 5b5a64e6c2 add csharp and java to aichat (#6027) 2025-06-23 15:05:34 +02:00
centdix 172af24ead internal: use pat for claude review (#6025)
* use pat

* check emoji when pr closed
2025-06-23 10:08:23 +02:00
Ruben Fiszel 607c23dcfd chore(main): release 1.500.2 (#6020)
* chore(main): release 1.500.2

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <275584+rubenfiszel@users.noreply.github.com>
v1.500.2
2025-06-20 21:11:57 +02:00
Ruben Fiszel d1c33ab974 fix compile 2025-06-20 20:45:48 +02:00
centdix bcac9f1844 close old bump prs (#6019) 2025-06-20 20:38:46 +02:00
Ruben Fiszel 9c2f6a757f fix: consistency of root job propagation fixing cases where runFlow in scripts would fail 2025-06-20 20:24:53 +02:00
Ruben Fiszel 1c85bbb05a chore(main): release 1.500.1 (#6018)
* chore(main): release 1.500.1

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <275584+rubenfiszel@users.noreply.github.com>
v1.500.1
2025-06-20 19:51:35 +02:00
HugoCasa 1b1bee5b53 fix: git repository resource picker effect loop (#6017) 2025-06-20 19:31:38 +02:00
Ruben Fiszel f70b6f3052 update python paser 2025-06-20 18:24:17 +02:00
Ruben Fiszel 9466830810 chore(main): release 1.500.0 (#5998)
* chore(main): release 1.500.0

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <275584+rubenfiszel@users.noreply.github.com>
v1.500.0
2025-06-20 17:43:53 +02:00
pyranota f32159f412 fix: do not split main.py on 'def main' (#5895)
doesn't work well in edge cases:

```
@schedule(
    bla=True
)
def main(x: str):
    return x
```

```
error_message = """
Please ensure you have defined main(username, password) correctly.
The function def main( should be at the end.
"""

def main(x: str):
    return x
```

Co-authored-by: Ruben Fiszel <ruben@windmill.dev>
2025-06-20 16:40:30 +02:00
Guilhem 67e6bce9b2 feat(frontend): run steps from graph (#5915) 2025-06-20 16:39:24 +02:00
Guilhem 419defe05c improve filtering function (#6015) 2025-06-20 16:21:29 +02:00
Guilhem f3ecbe1792 runs filter popover close on click outside (#6013) 2025-06-20 14:35:34 +02:00
Ruben Fiszel 99e18aedea nit typo 2025-06-20 14:08:44 +02:00
centdix af6b724f0b internal: use git app for git actions (#6010)
* add flow to ask claude to review pr

* allow app for claude

* cleaning

* use app for change versions flow

* add owner

* fix

* rename
2025-06-20 13:32:33 +02:00
pyranota 88ab1a5136 Use regex to split input to python import parser (#6007) 2025-06-20 13:24:27 +02:00
claude[bot] 3e82282351 feat: add typescript client context to ai chat system prompt (#6004)
* feat: add typescript client context to ai chat system prompt

Add windmill client function signatures and descriptions to the TypeScript 
language context in the AI chat system. This provides users with inline 
documentation for key windmill client functions including resource operations,
state management, variables, script execution, S3 operations, and flow utilities.

The context is kept concise to avoid making the system prompt too large while
still providing the most useful function signatures for TypeScript scripts.

Resolves #6002

Co-authored-by: Ruben Fiszel <rubenfiszel@users.noreply.github.com>

* fix import

* feat: add python client context to ai chat system prompt

Add PYTHON_WINDMILL_CLIENT_CONTEXT with function signatures and descriptions for key windmill client functions in Python, including:
- Resource operations (get_resource, set_resource)
- State management (get_state, set_state, get_flow_user_state, set_flow_user_state)
- Variables (get_variable, set_variable)
- Script execution (run_script, run_script_async, wait_job)
- S3 file operations (load_s3_file, write_s3_file)
- Flow operations (run_flow_async, get_resume_urls)
- Utilities (whoami, get_job_status, set_progress)

The context is now included for Python language (python3) in the AI chat system prompt, providing users with helpful function signatures and descriptions when asking for coding assistance.

Co-authored-by: centdix <centdix@users.noreply.github.com>

---------

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: centdix <farhadg110@gmail.com>
Co-authored-by: centdix <centdix@users.noreply.github.com>
2025-06-20 12:31:52 +02:00
Ruben Fiszel b3b6c53430 remove WM_OIDC_JWT from context vars 2025-06-20 12:12:38 +02:00
Ruben Fiszel 934ae4fe57 rm WM_OIDC_JWT from ctx vars 2025-06-20 12:12:07 +02:00
Ruben Fiszel 86eb9074cc feat: blacklist remote agent worker token (#5985) 2025-06-20 12:07:33 +02:00
pyranota 06e61ee958 Add fake main function to fix Python AST parsing (#6006)
The changes ensure the Python AST parser can handle code snippets where the main
function was previously removed, by appending a dummy main function.
2025-06-20 09:28:30 +02:00
Diego Imbert b9e668b489 Remove last SelectLegacy (#6003)
* Replace SelectLegacy in AppPicker

* Better DynSelect

* remove select legacy

* fix unknown values not displayed

* undo tsconfig change

* better dyn select search

* index js remove

* use bindable defaults
2025-06-19 17:49:53 +02:00
Guilhem f2425362f9 display branchone default branch label (#6005) 2025-06-19 17:48:16 +02:00
claude[bot] 4ae5928788 fix: ai button in inline script editor to open AI chat in flow builder (#5989)
* 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>
2025-06-19 16:15:35 +02:00
centdix 9462d56be7 internal: better instructions for claude (#5996)
* better instructions for claude

* remove file

* better rules

* better claude action

* add api routes prefixes

* typo

* typo

* fix

* fix

* add typegen explanations

* remove npm run format
2025-06-19 15:36:10 +02:00
claude[bot] c4adaeeabd fix: improve piptar upload - sequential uploads via background task queue (#5994)
* feat: improve piptar upload with sequential background task queue

Replace simultaneous piptar uploads with sequential processing via background job queue while keeping dependency installation parallelized.

Key changes:
- Add PiptarUpload job kind and database migration  
- Queue piptar uploads instead of using tokio::spawn
- Implement job handler for sequential S3 uploads
- Maintain parallel dependency installation as requested

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Ruben Fiszel <rubenfiszel@users.noreply.github.com>

* Remove PiptarUpload job kind migration files

Refactoring piptar uploads to use tokio channel instead of Windmill jobs.
Migration files are no longer needed.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-authored-by: Ruben Fiszel <rubenfiszel@users.noreply.github.com>

* Refactor piptar uploads from Windmill jobs to tokio channel

Replace the complex job queue infrastructure for piptar uploads with a simple 
tokio channel approach as requested. This maintains sequential upload behavior
while keeping dependency installation parallel.

Key changes:
- Add PIPTAR_UPLOAD_CHANNEL global channel for sequential processing
- Replace JobPayload::PiptarUpload with simple channel send
- Remove PiptarUpload from JobKind enum and all job handling code
- Remove job dispatcher case from worker.rs
- Simplify upload logic while maintaining same functionality

Benefits:
- Reduced complexity by removing unnecessary job infrastructure
- Sequential uploads without blocking dependency installation
- Better separation of concerns

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-authored-by: Ruben Fiszel <rubenfiszel@users.noreply.github.com>

* Update worker.rs

* Update python_executor.rs

---------

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: Ruben Fiszel <ruben@windmill.dev>
2025-06-19 15:32:21 +02:00
Diego Imbert e4255e6276 fix: replace worker tags to listen multiselect (#5997)
* rename all multiselects to Legacy

* move Select

* Separate SelectDropdown

* fix click outside for select with portal

* multiselect v0

* multiselect clear btn

* move filterText logic to SelectDropdown

* ui nits

* console.log

* draggable

* Draggable multiselect

* multiselect search

* nit refacto

* autofocus multiselect input

* Replace in AppMultiSelectV2

* search icon

* app multi select nits

* arginput update multiselect

* fix autofocus scrolling up

* replace High priority tags multiselect

* autoscaling config editor multiselect replace

* fix clear btn not in border

* replace multiselect in cron input

* replace multiselect in savedinputs

* replace EventHandlerItem multiselect

* select dropdown shadow

* more multiselect migration

* hover opacity on drag

* TokensTable UI fixes + replace multiselect

* ai settings replace multiselect

* DefaultTags Multiselect replace

* prevent multiselect from opening on drag

* nit

* app multiselect css + simplify

* console log

* safeSelectItems cleanup

* Remove svelte-multiselect

* clip when wrap not allowed

* hide duplicate app components

* CSS works better  with multiselect in app editor

* allowOverflow

* allowClear

* replace tags to listen to with a multiselect

* fix custom createText messed up with search
2025-06-19 15:00:13 +02:00
Diego Imbert fa8d1b47db fix: new MultiSelect component (#5979)
* rename all multiselects to Legacy

* move Select

* Separate SelectDropdown

* fix click outside for select with portal

* multiselect v0

* multiselect clear btn

* move filterText logic to SelectDropdown

* ui nits

* console.log

* draggable

* Draggable multiselect

* multiselect search

* nit refacto

* autofocus multiselect input

* Replace in AppMultiSelectV2

* search icon

* app multi select nits

* arginput update multiselect

* fix autofocus scrolling up

* replace High priority tags multiselect

* autoscaling config editor multiselect replace

* fix clear btn not in border

* replace multiselect in cron input

* replace multiselect in savedinputs

* replace EventHandlerItem multiselect

* select dropdown shadow

* more multiselect migration

* hover opacity on drag

* TokensTable UI fixes + replace multiselect

* ai settings replace multiselect

* DefaultTags Multiselect replace

* prevent multiselect from opening on drag

* nit

* app multiselect css + simplify

* console log

* safeSelectItems cleanup

* Remove svelte-multiselect

* clip when wrap not allowed

* hide duplicate app components

* CSS works better  with multiselect in app editor

* allowOverflow

* allowClear

* fix custom createText messed up with search
2025-06-19 14:37:17 +02:00
Ruben Fiszel 054f2c134a improve decision tree builder 2025-06-19 08:07:11 +02:00
Ruben Fiszel 530a72ba83 chore(main): release 1.499.0 (#5990)
* chore(main): release 1.499.0

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <275584+rubenfiszel@users.noreply.github.com>
v1.499.0
2025-06-19 00:58:56 +02:00
claude[bot] 2a334421e8 fix: prevent keypress events from bubbling in decision tree drawer (#5993)
Fixes #5991

- Add keydown event handlers with stopPropagation() to prevent SvelteFlow 
  from receiving keypress events from text inputs in decision tree config
- Applied at individual input level (summary field) and container level 
  (configuration panel) to catch all input types
- Prevents accidental node deletion when typing in configuration inputs

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
Co-authored-by: Ruben Fiszel <rubenfiszel@users.noreply.github.com>
2025-06-19 00:34:44 +02:00
Ruben Fiszel c7c2efbbe5 nits 2025-06-18 23:46:21 +02:00