Commit Graph

12506 Commits

Author SHA1 Message Date
Ruben Fiszel
fa3440001c chore(main): release 1.612.1 (#7612)
* chore(main): release 1.612.1

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <275584+rubenfiszel@users.noreply.github.com>
v1.612.1
2026-01-19 18:41:41 +00:00
Ruben Fiszel
8daeccc89f fix: update git sync CLI to 1.612.0 2026-01-19 18:36:11 +00:00
Ruben Fiszel
1438b26310 fix: fix runs page initialization 2026-01-19 18:30:15 +00:00
Ruben Fiszel
75dab4886c chore(main): release 1.612.0 (#7609)
* chore(main): release 1.612.0

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <275584+rubenfiszel@users.noreply.github.com>
v1.612.0
2026-01-19 17:56:59 +00:00
Guilhem
9359ad820d fix(frontend): improve ai settings page (#7606)
* compute diff before save

* Use modal to configure ai prompts

* workspace ai to brand guidelines

* improve ai settings page

* nit

* nit

* nit
2026-01-19 17:48:51 +00:00
Guilhem
30da9e69f8 fix(frontend): improve loading centered modal ui (#7605) 2026-01-19 17:48:20 +00:00
Guilhem
c1ec159471 fix(frontend): fix centered page shift when scroll (#7610)
* fix(frontend): fix centered page shift overflow

* fix home page overflow

* fix all other page overflow
2026-01-19 17:47:10 +00:00
Ruben Fiszel
3ec94395dc feat(cli): add branch-specific items for folders and settings (#7611)
* feat(cli): add folders as branch-specific items

Folders can now be configured as branch-specific items in wmill.yaml:

```yaml
gitBranches:
  staging:
    specificItems:
      folders:
        - "f/env_*"
        - "f/config"
```

Branch-specific folder format: f/folder/folder.branchName.meta.yaml
(consistent with other item types where branch goes before the type suffix)

Example:
- Base: f/env_staging/folder.meta.yaml
- Branch-specific: f/env_staging/folder.main.meta.yaml

Changes:
- Add `folders?: string[]` to SpecificItemsConfig
- Add folder handling in toBranchSpecificPath()
- Add folder handling in fromBranchSpecificPath()
- Add folder pattern matching in isSpecificItem()
- Add folder detection in isBranchSpecificFile()
- Add folder detection in isCurrentBranchFile()
- Add 13 new tests for folder functionality

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

* feat(cli): add settings as branch-specific item and skip validation with --branch

- Add settings.yaml as a branch-specific item (settings: true in config)
  - settings.yaml -> settings.branchName.yaml conversion
- Skip "Create empty branch configuration" prompt when using --branch flag
  - User explicitly specifies branch, so skip validation prompts
- Add folders and settings fields to gitBranches type definitions

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

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 17:35:52 +00:00
Pyra
c04eb371cc feat: move job metrics from ee to ce (#7608)
* open source job metrics

Signed-off-by: pyranota <pyra@duck.com>

* fix

Signed-off-by: pyranota <pyra@duck.com>

* update

Signed-off-by: pyranota <pyra@duck.com>

---------

Signed-off-by: pyranota <pyra@duck.com>
2026-01-19 15:48:50 +00:00
Ruben Fiszel
1c8c7949fe chore(main): release 1.611.0 (#7604)
* chore(main): release 1.611.0

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <275584+rubenfiszel@users.noreply.github.com>
v1.611.0
2026-01-19 10:59:42 +00:00
Ruben Fiszel
4f8110eb98 fix(flow-chat): handle SSE timeout and fix temp message race condition
- Add proper handling for SSE timeout, ping, error, and not_found message
  types in handleStreamingMessage. On timeout after 30s, the connection
  now properly closes and reconnects instead of silently failing.

- Fix race condition where the first text bubble would disappear during
  streaming. The pollConversationMessages method was removing all temp
  messages on every poll interval, even while streaming was active. Now
  temp messages are only removed during the final poll after job completion.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 08:17:00 +00:00
Ruben Fiszel
83cf1d3d90 fix compile 2026-01-18 23:49:09 +00:00
Ruben Fiszel
1b9d1c56c7 feat: add HashiCorp Vault secret storage integration (#7599)
* feat: add HashiCorp Vault secret storage integration

- Create SecretBackend trait abstraction for secret storage
- Add VaultBackend implementation with CRUD operations
- Integrate secret backend into variable CRUD operations
- Add migration functions (DB → Vault and Vault → DB)
- Add frontend configuration UI for secret backend
- Add test connection and migration endpoints
2026-01-18 23:08:29 +00:00
Ruben Fiszel
4d8721c163 chore(main): release 1.610.1 (#7601)
* chore(main): release 1.610.1

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <275584+rubenfiszel@users.noreply.github.com>
v1.610.1
2026-01-17 21:30:19 +00:00
Ruben Fiszel
ff77154638 fix: use type cast instead of slice() for BlobPart compatibility
Avoids unnecessary data copying by using `as any` cast instead of
.slice() to work around TypeScript's ArrayBufferLike vs ArrayBuffer
type incompatibility between Deno and Node.js.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 21:22:05 +00:00
Ruben Fiszel
2eac74cef4 fix: resolve BlobPart type incompatibility between Deno and Node.js
Use .slice() on Uint8Array values before passing to File/Blob constructors
to create fresh ArrayBuffer-backed arrays, avoiding type errors from
ArrayBufferLike vs ArrayBuffer differences in TypeScript definitions.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 21:20:19 +00:00
Ruben Fiszel
437025a078 chore(main): release 1.610.0 (#7596)
* chore(main): release 1.610.0

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <275584+rubenfiszel@users.noreply.github.com>
v1.610.0
2026-01-17 21:08:41 +00:00
Ruben Fiszel
03daa341eb fix: handle missing storage key in S3Object for write_s3_file
Use .get("storage") instead of direct key access to prevent KeyError
when s3object doesn't contain the optional storage field.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 21:04:18 +00:00
Ruben Fiszel
73c4ce3012 feat: add workspace success handler with 60s TTL caching (#7598)
* feat: add workspace success handler with 60s TTL caching

Add a new workspace-level success handler that triggers when jobs complete
successfully, similar to the existing error handler. Key features:

- Database migration adds success_handler and success_handler_extra_args columns
- API endpoint for configuring success handler in workspace settings
- 60s TTL caching to avoid DB trips when checking handler existence
- Handler only triggers for top-level Script/Flow/SingleStepFlow jobs (not previews)
- Frontend UI with ScriptPicker and "Create from template" button for bunnative scripts
- EE warning alerts for CE users on success handler and critical alerts sections
- Backend tests for cache behavior and settings CRUD operations

The success handler receives: path, email, result, job_id, is_flow, workspace_id,
and started_at. It runs as the g/success_handler group.

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

* fix: update RawCode struct in tests to use new field names

Update test to use ConcurrencySettingsWithCustom and DebouncingSettings
instead of the deprecated individual fields.

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

* Update backend/windmill-api/src/workspaces.rs

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

* test: improve success handler test to verify job creation

Update test_success_handler_triggered_on_success to actually verify that:
- A success handler job is created in v2_job table
- The job has the correct runnable_path (configured script)
- The job runs as success_handler@windmill.dev
- The job has correct parent_job and root_job references
- The trigger starts with 'success.handler.'

This provides better test coverage for the success handler feature.

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

* fix: fix success handler test and root_job parameter

- Fix test to use JobPayload::ScriptHash (JobKind::Script) instead of
  JobPayload::Code (JobKind::Preview) since previews don't trigger handlers
- Add required 'lock' column to script inserts for deployed scripts
- Fix duplicate lines in workspaces.rs
- Set root_job correctly in push_success_handler
- Update test assertions to match actual behavior (root_job optimization)

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

* sqlx

* refactor: reduce duplication in workspace handler cache logic

- Extract database queries into fetch_error_handler_from_db and
  fetch_success_handler_from_db helper functions
- Use shared WORKSPACE_HANDLER_CACHE_TTL_SECONDS constant for 60s TTL
- Reduces code from ~116 lines to ~54 lines while maintaining identical behavior

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

* Add cache propagation warning to workspace success handler UI

Note that changes may take up to 60 seconds to propagate due to caching.

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

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
2026-01-17 13:24:58 +00:00
Ruben Fiszel
b3cb41efa4 feat: add private npm registry proxy support for ATA in webide (#7597) 2026-01-17 10:44:30 +00:00
Ruben Fiszel
8dd5e81a32 fix: improve job deletion performance and batching 2026-01-17 07:35:46 +00:00
Ruben Fiszel
857d031b2b chore(main): release 1.609.0 (#7593)
* chore(main): release 1.609.0

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <275584+rubenfiszel@users.noreply.github.com>
v1.609.0
2026-01-16 22:19:31 +00:00
Diego Imbert
c7a6a05925 fix: Fix MS SQL S3 Mode (#7595) 2026-01-16 22:14:36 +00:00
Alexander Petric
86ebf9e25a fix: transparency issue of instance setting save button (#7594) 2026-01-16 22:43:40 +01:00
centdix
437bad4cb7 chore: move mcp logic to windmill-mcp (#7584)
* draft

* clean up mcp logic

* cleaning

* cleaning

* better code

* error logging

* cleaning
2026-01-16 20:55:14 +00:00
Ruben Fiszel
dcee9fe7b1 feat: cli branch override (#7592)
* fix(cli): prevent duplicate 'Using non-dotted paths' log message

Add a flag to track whether the message has already been logged,
so it only prints once even if setNonDottedPaths is called multiple times.

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

* feat(cli): add --branch option to sync pull/push commands

Add a --branch argument that allows overriding the current git branch
for sync operations. This enables:
- Using branch-specific settings even when not in a git repository
- Overriding the detected git branch when needed

The branch override is applied to:
- getEffectiveSettings() for branch-specific config overrides
- getSpecificItemsForCurrentBranch() for branch-specific items

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

* fix(cli): correct log message for workspace fork branches

Use rawGitBranch instead of currentBranch in the log message when
showing the origin of a workspace fork branch.

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

* feat(cli): extend --branch support to specificItems functionality

Update getBranchSpecificPath and isCurrentBranchFile to accept optional
branchOverride parameter. This ensures that branch-specific file handling
(for variables, resources, triggers) works correctly with --branch flag.

Updated functions:
- getBranchSpecificPath(): now accepts branchOverride
- isCurrentBranchFile(): now accepts branchOverride
- elementsToMap(): now accepts branchOverride
- compareDynFSElement(): now accepts branchOverride
- prettyChanges(): now accepts branchOverride

All call sites updated to pass opts.branch through the call chain.

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

* fix(cli): resolve TypeScript type errors

- Fix Timeout type in dev.ts using ReturnType<typeof setTimeout>
- Add proper type casts for unknown error types
- Cast FlowModule to any to resolve generated type mismatch
- Cast Uint8Array to BlobPart for Blob constructor compatibility

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

* test(cli): add unit tests for branch detection and --branch override

- Add specific_items.test.ts with 35 tests covering:
  - toBranchSpecificPath and fromBranchSpecificPath conversions
  - isSpecificItem pattern matching
  - isBranchSpecificFile detection
  - Round-trip path conversions
  - branchOverride parameter functionality

- Add conf_branch_override.test.ts with 6 tests covering:
  - getEffectiveSettings with branchOverride parameter
  - Branch-specific overrides application
  - promotionOverrides precedence
  - Fallback to top-level settings

- Fix containerized_backend.ts to use dynamic paths instead of
  hardcoded user home directories

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

* chore(cli): add conf.ts barrel file for test imports

Re-exports from src/core/conf.ts to support existing test imports.

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

* all

* fix(cli): pass --branch override to workspace resolution

Previously, the --branch flag was only used for config resolution but
not for workspace resolution. This caused confusing log messages that
showed the git branch (e.g., master) before showing the override branch.

Changes:
- Add branchOverride parameter to tryResolveBranchWorkspace()
- Add branchOverride parameter to resolveWorkspace()
- Pass opts.branch from sync pull/push to resolveWorkspace()
- Log "Using branch override" early in workspace resolution
- Remove duplicate log from getEffectiveSettings()

Now when using --branch foobar, the logs show:
  Using branch override: foobar
  Applied settings for Git branch: foobar
  ...

Instead of the confusing previous output that mentioned both master
and foobar.

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

* refactor(cli): remove redundant branch detection in elementsToMap

isCurrentBranchFile() already validates that a branch exists (via
branchOverride or git detection) before returning true. No need to
pre-compute currentBranch before calling it.

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

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 20:55:01 +00:00
Ruben Fiszel
cf44c7a7ee chore(main): release 1.608.0 (#7589)
* chore(main): release 1.608.0

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <275584+rubenfiszel@users.noreply.github.com>
v1.608.0
2026-01-16 10:55:55 +00:00
Ruben Fiszel
1819713450 feat: add streamJob to raw apps 2026-01-16 10:47:52 +00:00
centdix
7c898579f5 fix compilation (#7588) 2026-01-16 10:45:48 +00:00
Diego Imbert
b6ef536098 fix: S3 secondary storage client and UI fixes (#7587)
* fix storage selector broken

* Fix writeS3File not returning secondary storage
2026-01-16 10:33:22 +00:00
Ruben Fiszel
d8d6c39131 rmcp compilation error 2026-01-16 07:19:42 +00:00
Ruben Fiszel
548d1af654 chore(main): release 1.607.1 (#7586)
* chore(main): release 1.607.1

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <275584+rubenfiszel@users.noreply.github.com>
v1.607.1
2026-01-16 00:12:11 +00:00
Ruben Fiszel
21ebaa4196 update git sync 2026-01-16 00:07:50 +00:00
Ruben Fiszel
cd88a03791 update git sync version 2026-01-15 23:08:34 +00:00
Ruben Fiszel
a0bab87e54 cli improvements 2026-01-15 23:01:38 +00:00
Ruben Fiszel
d5fa3d8dec fix: fix wmill app dev with workspace scripts 2026-01-15 22:58:52 +00:00
Ruben Fiszel
483b7d699f fix: improve raw app builder malformed files 2026-01-15 17:51:33 +00:00
Ruben Fiszel
74dccc73d3 chore(main): release 1.607.0 (#7573)
* chore(main): release 1.607.0

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <275584+rubenfiszel@users.noreply.github.com>
v1.607.0
2026-01-15 10:32:00 +00:00
centdix
62c1fd4ee7 feat(flow): add diff viewer in deployment history (#7575) 2026-01-15 10:12:28 +00:00
Ruben Fiszel
303b673a75 fix(frontend): detect [windmill] log marker anywhere in content, not just at start (#7583)
When logs stream quickly at job start, preamble content (job metadata,
execution headers) appears before the [windmill] compacted log marker.
The LogViewer now searches for the marker within the first 2000 chars
and renders the "Show more..." button inline at the correct position.

Optimizations:
- Fast early bail-out using short '[windmill]' search before long prefix matching
- Skip expensive ansi_to_html computation when splitHtml is active

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 10:01:54 +00:00
Ruben Fiszel
86714f2d03 feat: allow resume urls at flow level for pre-generation (#7582) 2026-01-15 08:56:09 +00:00
Diego Imbert
2a4a288160 Refactor runs page search params state logic (#7543)
* start refactoring runs page query params state

* more refactor

* more migration

* more refactor

* per_page migrate

* refactor

* char consistency layout

* runs filter wrong logic

* fix autosetFilter

* nit remove Default Email filter

* Revert "nit remove Default Email filter"

This reverts commit b46b3872a9.

* nit

* arg nits

* fix filters.arg reactivity

* RunsFilter pass 1

* Refactor JobsLoader into useJobsLoader

* fix lastFetchWentToEnd

* update claude.md

* debounce to avoid flicker

* debounce

* callback mistake

* missing return

* change to null

* dead code file (SavedInputs was replaced with V2)

* arg and result filter nits

* better flicker prevention

* avoid duplicates when loading more jobs

* fix broken type

* nit type

* improve date filter state mgmt + encode URI component on all params
2026-01-15 07:20:04 +00:00
Diego Imbert
54db9eeed3 Fix suspend step duplicate forms (#7581)
* nit totalEventsWaiting

* remove temp console log

* loading indicator in Resume button

* refactor

* Revert "refactor"

This reverts commit eae6213cdd.

* useThrottle

* fix promises

* Revert "fix promises"

This reverts commit 90a5613245.

* svelte 5 migration

* Fix duplicate resume forms

* Check all flow_jobs
2026-01-15 06:09:14 +00:00
Guilhem
1d5d28ae7a fix(frontend): remove workspace invites (#7579)
* disable auto invite outside cloud and legacy

* Add confirmation modal and warning
2026-01-14 21:04:20 +00:00
Ruben Fiszel
62eeec63ac update ui builder 2026-01-14 20:41:51 +00:00
Diego Imbert
2296b2cc8a fix ts client datatable type parsing (#7578) 2026-01-14 17:59:23 +00:00
Guilhem
15842ad638 fix overflows in the app builder [Merge ui-builder first] (#7576)
* fix raw app header overflow

* update ui-builder hash
2026-01-14 15:45:49 +00:00
wendrul
0c78aebe6a fix: remove audit logs page overflow scrollbars (#7572) 2026-01-14 14:52:52 +00:00
Ruben Fiszel
d4f1d7fbb5 chore(main): release 1.606.1 (#7568)
* chore(main): release 1.606.1

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <275584+rubenfiszel@users.noreply.github.com>
v1.606.1
2026-01-14 14:51:14 +00:00
Ruben Fiszel
40d00734f3 fix: improve debugger behavior 2026-01-14 14:45:23 +00:00