Commit Graph
7650 Commits
Author SHA1 Message Date
GuilhemandClaude Opus 5.5 725b15f546 fix: change an app's access mode under the deploy row lock (#11965)
* fix: change an app's access mode under the deploy row lock

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix: defer a mode change to deploy on an app run as another user

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix: hold the access toggle while its change is in flight

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* revert: leave the deploy panel's access toggle to the settings drawer PR

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix: keep the caller's draft on a mode-only app update

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix: refuse a builder's mode-only change on an unsandboxed app

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-23 14:49:05 +02:00
72c6b10821 fix: make the autoscaling Test scaling button run the integration (#11972)
* fix: make the autoscaling Test scaling button run the integration

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

* chore: bump ee ref

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

* fix: bound the test scaling worker input at zero

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

* chore: update ee-repo-ref to a2a23aebcf91985778fb632a415a6990d022f7c8

This commit updates the EE repository reference after PR #917 was merged in windmill-ee-private.

Previous ee-repo-ref: c9e8c8853e2042a11797e322e1e4bb4be241380c

New ee-repo-ref: a2a23aebcf91985778fb632a415a6990d022f7c8

Automated by sync-ee-ref workflow.

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: windmill-internal-app[bot] <windmill-internal-app[bot]@users.noreply.github.com>
2026-10-23 14:43:36 +02:00
Ruben FiszelandClaude Opus 5.5 fb193d7a81 fix: list usr columns explicitly in whoami's user lookup (#11970)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 13:51:05 +02:00
Ruben FiszelandClaude Opus 5.5 6d1e3952be settle async diff tallies in workspace comparison tests (#11963)
test_compare_secret_variables_by_value planted workspace_diff rows with a
plain INSERT after a DELETE, but the variable creates tally those rows from
a spawned git-sync task that can land between the two, failing with a
workspace_diff_pkey violation. Upsert the plant instead.

test_rename_records_the_vacated_path could read the inline create's
`write` event, or have it overwrite `rename_from`, since both deploys
tally from their own spawned task. Wait for the create's tally before the
rename and poll for the event that replaces it.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 05:11:01 +02:00
Ruben Fiszelandrubenfiszel 39cacd71ae chore(main): release 1.847.0 (#11937)
* chore(main): release 1.847.0

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <275584+rubenfiszel@users.noreply.github.com>
2026-10-23 01:38:08 +02:00
8a0318a28f feat: worker group toggle to keep the worker's proxy out of jobs (#11958)
* feat: worker group setting to strip env vars from the nsjail sandbox

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

* fix: apply the nsjail env denylist to profile envar directives too

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

* refactor: drop the nsjail env denylist spawn hook

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

* feat: replace the nsjail env denylist with a worker group toggle for the job proxy

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

* fix: honor the job proxy toggle in duckdb and drop the env var fallback

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

* fix: pre-install duckdb extensions with the proxy when jobs run without it

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

* chore: update ee-repo-ref to 5cfc0dc6760ea7f631fc98ea1edd39adfc55bf11

This commit updates the EE repository reference after PR #914 was merged in windmill-ee-private.

Previous ee-repo-ref: 8394f2d1b67765ba854205836185342e62df841e

New ee-repo-ref: 5cfc0dc6760ea7f631fc98ea1edd39adfc55bf11

Automated by sync-ee-ref workflow.

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: windmill-internal-app[bot] <windmill-internal-app[bot]@users.noreply.github.com>
2026-10-23 00:47:12 +02:00
AlexRV12andRuben Fiszel 0dd131b380 fix: compare fork secret variables by decrypted value (#11952)
* fix: compare fork secret variables by decrypted value

* test: restore MIN_VERSION even when the secret compare test fails

* fix: re-evaluate cached variable diffs once after the secret compare fix

* refactor: decrypt already-loaded secret rows when comparing variables

* docs: state the authorization contract of decrypt_secret_value

* fix: compare external-backend secrets by their resolved values

---------

Co-authored-by: Ruben Fiszel <ruben@windmill.dev>
2026-10-22 23:50:32 +02:00
AlexRV12 8a7b1481bd fix: compare a null resource description as empty (#11947) 2026-10-22 23:32:08 +02:00
hugocasaandClaude Opus 5.5 c6a93a9b56 feat: chat with a saved agent from a raw app through an agent runnable (#11921)
* feat(chat-sdk): chat through a raw app's backend runnable

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

* fix(chat-sdk): finish a lost stream and wait out a stopped turn in streamChatTurn

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

* fix(chat-sdk): show the answer when a stream is lost before a tool call

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

* feat(chat-sdk): send attachments through the raw app runnable

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

* docs(chat-sdk): point sandboxed attachments at the runnable section

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

* feat: agent runnables for raw apps

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

* fix: build agent runnables without the parquet feature, cache the agent check query

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

* fix: address review nits on the agent picker and the CLI schema doc

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

* feat: run an agent runnable once when it is given no memory_id

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

* feat: accept previous_messages on agent runs, read-checking the files it quotes

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

* fix: refuse an anonymous agent turn while one with the same memory still runs

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

* fix: show the agent's settings in the raw-app runnable panel, size its button like the row

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

* feat: offer an agent runnable memory_id or previous_messages after the agent's memory

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

* feat: take previous_messages in a memory-off agent's run form, type agent attachments as s3object

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

* fix: file an anonymous agent turn as a conversation, so its memory is collected and its turns serialized

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

* fix: own anonymous agent conversations under a fixed name that fits created_by

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

* fix: own anonymous agent conversations as anonymous and keep them out of conversation lists

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

* docs: point file_chat_turn at the anonymous conversation owner

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

* fix: title the runnable picker after what it lists, in sentence case

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

* fix: start a chat with local history listing its stored conversations

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

* feat: chat through a raw app's agent runnable with { wmill, runnable }

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

* fix: key an agent runnable chat's local history by its app as well

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

* fix: address review findings on agent runnables

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

* fix: offer memory_id to an agent runnable over an older auto memory

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

* fix: drop inherited static inputs from an agent runnable, show the memory-off note only when it is off

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

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 21:01:09 +02:00
Ruben Fiszelandwindmill-internal-app[bot] 5ef19a88a9 fix: stop audit inserts from silently rolling back saves (#11938)
* fix: let non-admins write audit rows for jobs run as another user

* fix: keep logging audit failures on pool connections

* chore: point ee-repo-ref at the import fix

* chore: update ee-repo-ref to 06b2eb32cd7d40fd93078285d8b6150648384602

This commit updates the EE repository reference after PR #910 was merged in windmill-ee-private.

Previous ee-repo-ref: da546d93c846192ed599b02a5aa3edd5d1ecdcfd

New ee-repo-ref: 06b2eb32cd7d40fd93078285d8b6150648384602

Automated by sync-ee-ref workflow.

---------

Co-authored-by: windmill-internal-app[bot] <windmill-internal-app[bot]@users.noreply.github.com>
2026-10-22 17:15:05 +02:00
hugocasaandClaude Opus 5.5 eeb48f0c26 feat: add job_id and flow_path to flow step error objects (#11941)
* feat: add job_id to step error objects in bun, deno, python and php wrappers

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

* feat: add job_id to the duckdb data-test step error

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

* feat: add flow_path to step error objects

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

* fix: close the job_id guard before flow_path in the deno wrapper

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

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 16:34:08 +02:00
dc1fb5087b feat: let native triggers act through per-user or shared connections (#11352)
* fix: only let an oauth account's creator or readers link it to a variable

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

* fix: drop an oauth account link the caller may not hold instead of failing

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

* test: cover relinking an oauth account through a variable update

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

* test: cover a permitted relink through a variable update

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

* fix: keep an oauth account's creator in step with the user's username

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

* fix: follow a non-member superadmin's instance username on the OAuth accounts they created

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

* refactor: link a variable to its OAuth account only in the connect flow

The variable endpoints no longer take an account link from the caller. The connect
flows create the token variable first and pass its path to create_account, which
links it server-side. This replaces the creator check and the created_by
bookkeeping, along with both migrations.

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

* chore: keep the MCP secret variable test's formatting

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

* fix: link the account to the token variable AppConnect created, even if the path is edited mid-save

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

* fix: stop exporting the OAuth account a variable links, and regenerate the chat tool schema

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

* chore: pin the EE refresh and linking checks

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

* fix: delete AppConnect's token variable when linking its account fails, so Save can be retried

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

* fix: keep the resource AppConnect fills when linking its account fails

Deleting a variable also deletes the resource at its path, so the rollback
is skipped when filling an existing resource.

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

* refactor: create an OAuth token variable and its account in one request

createAccount takes the variable and the store creates both in one
transaction, so a connect is either fully saved or not at all. The connect
flows make that single call instead of creating the variable and linking it
afterwards.

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

* fix: stop listing the ignored account input in the chat's write_variable instructions

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

* chore: drop the account visibility helper the oauth refresh route no longer uses

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

* feat: let native triggers act through per-user or shared connections

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

* fix: bind native trigger oauth state to its user and follow connection renames

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

* fix: authorize oauth account links and scope native trigger disconnects

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

* chore: order the native trigger connection migration after account ownership

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

* fix: delete only the scope-checked triggers when disconnecting

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

* fix: skip triggers moved since their scope check when disconnecting

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

* fix: scope-check the connection path when connecting, keep a connection still in use

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

* fix: key token write-back by account and serialize trigger creation with disconnect

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

* feat: let an admin share one native trigger connection with the whole workspace

Members can use the shared connection without reading its token. It reuses
workspace_integrations.resource_path, so existing workspace connections stay
usable by members after upgrading.

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

* feat: pick the workspace connection like other workspace resources, connect and disconnect from the picker

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

* fix: label the disconnect action in the connection picker

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

* fix: drop the own-account note from the workspace connection field

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

* fix: let admins share any connection, serialize service removal with trigger creation

An admin can already read every connection, so restricting sharing to their own
added nothing. Removing a service now takes each connection's lock and keeps
everything if a trigger was created meanwhile.

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

* feat: show each native trigger service's OAuth app status and keep removal apart

Remove now only appears with a workspace OAuth app, since a workspace using the
instance app has nothing of its own to remove.

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

* feat: configure a native trigger service's OAuth app in a dialog

The card states once which OAuth app is in use, with a single Configure action,
and the form follows the design system.

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

* fix: drop a stray brace from the OAuth app dialog binding

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

* fix: lead the OAuth app row with which app is in use, with a link to change it

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

* fix: compact the native trigger service card

Edit and Remove sit on the workspace OAuth app row, and the workspace connection
reads as part of the same section.

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

* feat: show the OAuth app status in each native trigger card's header

App actions move into a menu, the card body holds only the shared account, and
service descriptions name what fires the trigger.

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

* fix: say who configured each native trigger service, and name removal for what it removes

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

* feat: say what members can do with each native trigger service, keep the shared account optional

Nextcloud, whose webhooks need an admin account, offers connecting and sharing one
directly instead.

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

* fix: pick the shared account with an inline select, and keep Nextcloud's own-account path in its wording

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

* feat: one status line per native trigger service, a Nextcloud admin hint, and clearer refusals

The shared account is a regular form field, Nextcloud shows an alert while no
admin account is shared, a non-admin Nextcloud account gets a message saying why
it cannot create triggers, and the OAuth dialog only accepts a full server URL.

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

* fix: point native trigger error hints at the account picker and the shared account

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

* fix: say members can browse what a shared native trigger account can access

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

* fix: make the OAuth app dialog's open prop required

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

* fix: keep pre-connection triggers working, and guard reconnects and service removal

- The migration recovers a service's connection when the workspace row lost its path,
  which saving the OAuth app or an abandoned instance connect used to do.
- A trigger created without a connection uses the shared account, as older clients and
  trigger specs expect.
- Only whoever connected a path, or an admin, may reconnect over it.
- Removing a service or sharing an account checks a path-scoped token against what it touches.

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

* feat: connect native trigger accounts at a chosen path through the resource drawer, and reconnect from the picker

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

* chore: date the native trigger connection migration after main's newest

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

* fix: say a disconnect deletes the triggers other members created on the account

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

* fix: offer Reconnect next to an existing trigger's account and point the refresh hints at it

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

* chore: date the native trigger connection migration after main's newest

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

* chore: update ee-repo-ref to da49c12e3006fc77de789277f1462a4d8d7d92ce

This commit updates the EE repository reference after PR #829 was merged in windmill-ee-private.

Previous ee-repo-ref: 58681a2e7eafb5689ed739cd2560fa0f5d82c3dc

New ee-repo-ref: da49c12e3006fc77de789277f1462a4d8d7d92ce

Automated by sync-ee-ref workflow.

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: windmill-internal-app[bot] <windmill-internal-app[bot]@users.noreply.github.com>
2026-10-22 16:17:51 +02:00
d6adac8b75 fix: link a variable to its OAuth account only in the connect flow (#11361)
* fix: only let an oauth account's creator or readers link it to a variable

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

* fix: drop an oauth account link the caller may not hold instead of failing

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

* test: cover relinking an oauth account through a variable update

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

* test: cover a permitted relink through a variable update

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

* fix: keep an oauth account's creator in step with the user's username

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

* fix: follow a non-member superadmin's instance username on the OAuth accounts they created

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

* refactor: link a variable to its OAuth account only in the connect flow

The variable endpoints no longer take an account link from the caller. The connect
flows create the token variable first and pass its path to create_account, which
links it server-side. This replaces the creator check and the created_by
bookkeeping, along with both migrations.

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

* chore: keep the MCP secret variable test's formatting

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

* fix: link the account to the token variable AppConnect created, even if the path is edited mid-save

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

* fix: stop exporting the OAuth account a variable links, and regenerate the chat tool schema

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

* chore: pin the EE refresh and linking checks

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

* fix: delete AppConnect's token variable when linking its account fails, so Save can be retried

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

* fix: keep the resource AppConnect fills when linking its account fails

Deleting a variable also deletes the resource at its path, so the rollback
is skipped when filling an existing resource.

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

* refactor: create an OAuth token variable and its account in one request

createAccount takes the variable and the store creates both in one
transaction, so a connect is either fully saved or not at all. The connect
flows make that single call instead of creating the variable and linking it
afterwards.

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

* fix: stop listing the ignored account input in the chat's write_variable instructions

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

* chore: drop the account visibility helper the oauth refresh route no longer uses

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

* chore: update ee-repo-ref to da49c12e3006fc77de789277f1462a4d8d7d92ce

This commit updates the EE repository reference after PR #829 was merged in windmill-ee-private.

Previous ee-repo-ref: 58681a2e7eafb5689ed739cd2560fa0f5d82c3dc

New ee-repo-ref: da49c12e3006fc77de789277f1462a4d8d7d92ce

Automated by sync-ee-ref workflow.

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: windmill-internal-app[bot] <windmill-internal-app[bot]@users.noreply.github.com>
2026-10-22 16:17:05 +02:00
34de8bc06d feat: slack agents through a workspace's own slack app (#11912)
* feat: let Slack agents answer through a workspace's own Slack app, with signing secrets set from the UI

The instance Slack app's signing secret can be set in its OAuth setting as well as
SLACK_SIGNING_SECRET, and a workspace's own Slack app takes its own in the workspace
settings. Each secret only vouches for the workspaces connected through its app, so
/windmill keeps working for a workspace whose app has none set.

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

* fix: keep Slack signing secrets out of logs and verify an own app without a secret with the instance's

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

* fix: report a workspace app's own signing secret in the Slack agents status

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

* fix: check Slack approval callbacks against the instance signing secret only

An approval can be sent through any Slack resource, so the team's workspace
connections do not tell which app signed its callback.

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

* fix: share the Slack app setup instructions and require the signing secret for agents

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

* fix: tidy the Slack signing secret copy and show a set secret as masked

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

* fix: check a workspace app only against its own signing secret, and approvals against their workspace's

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

* fix: accept a Slack approval signed by the workspace's app or the instance's

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

* fix: check Slack's signature on approvals only when sent through the workspace's Slack connection

Any other Slack resource may belong to any Slack app, so its callbacks rest
on the payload HMAC alone.

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

* fix: address review findings on Slack signature checks and the signing secret field

- reject Slack signatures older than five minutes, so a captured request cannot be replayed
- let a reachable workspace's command script take a message before another workspace's help reply
- remove a saved workspace signing secret from its field: the button reads Remove when it is empty
- set the signing secret on connect only when one was entered
- tell non-admins who can set the signing secret

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

* fix: keep SLACK_SIGNING_SECRET for workspace apps without a secret, and route a verified request only to its workspaces

- a workspace on its own app with no secret of its own is checked against SLACK_SIGNING_SECRET,
  which may hold that app's secret from before workspaces had one; the instance setting's secret
  still never applies to it
- once a secret verifies a request, only the workspaces it verified take it, command scripts
  included: it proves which app sent the request
- compute the replay window with abs_diff, which cannot overflow

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

* chore: update ee-repo-ref to c8d562aa9d75a7e99bf0ecd1ac224f532452a07e

This commit updates the EE repository reference after PR #907 was merged in windmill-ee-private.

Previous ee-repo-ref: 0864b0ab943defa8b8d55838ef09ab7dacfac17f

New ee-repo-ref: c8d562aa9d75a7e99bf0ecd1ac224f532452a07e

Automated by sync-ee-ref workflow.

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: windmill-internal-app[bot] <windmill-internal-app[bot]@users.noreply.github.com>
2026-10-22 13:51:09 +02:00
Ruben Fiszelandrubenfiszel 01084cd405 chore(main): release 1.846.1 (#11932)
* chore(main): release 1.846.1

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <275584+rubenfiszel@users.noreply.github.com>
2026-10-21 22:04:23 +02:00
Ruben Fiszelandrubenfiszel 2a2334862e chore(main): release 1.846.0 (#11930)
* chore(main): release 1.846.0

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <275584+rubenfiszel@users.noreply.github.com>
2026-10-21 21:21:36 +02:00
Ruben Fiszelandrubenfiszel d98a26b1c8 chore(main): release 1.845.0 (#11927)
* chore(main): release 1.845.0

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <275584+rubenfiszel@users.noreply.github.com>
2026-10-21 20:08:04 +02:00
Ruben Fiszelandrubenfiszel 7516a3ef0b chore(main): release 1.844.0 (#11925)
* chore(main): release 1.844.0

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <275584+rubenfiszel@users.noreply.github.com>
2026-10-21 19:24:46 +02:00
Ruben FiszelandClaude Opus 5.5 037355ddec unbreak windows worker build and retry cosign signing (#11926)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 19:24:29 +02:00
892334f008 feat: serve the ai session toolset over mcp at /api/mcp (#11738)
* feat: add a workspace mcp server with the ai session toolset

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

* fix: keep workspace mcp tool calls on their own routes

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

* fix: keep a token's job tag fence on workspace mcp tool calls

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

* fix: state the workspace mcp token rule in its refusal message

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

* feat: let the workspace mcp server span workspaces chosen per token

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

* feat: let the mcp url form choose between the tools and workspace servers

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

* feat: serve the workspace mcp server as windmill mcp v2 at /api/mcp/v2

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

* feat: add read-and-run access to windmill mcp v2

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

* feat: serve the full windmill mcp experience at /api/mcp, sign-in first

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

* fix: align the mcp url form with the brand guidelines

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

* feat: serve every mcp token from /api/mcp, with one access picker

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

* feat: rename mcp access levels and keep selections to scripts and flows on /api/mcp

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

* fix: name the mcp access levels in the url caption

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

* chore: name the mcp server windmill

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

* fix: lead the mcp access picker with build and run, and spell out what a selection excludes

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

* feat: show the tools each mcp access level gives

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

* fix: list the mcp tools in a collapsible section under the access row

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

* fix: offer all scripts and flows as typed mcp tools again, as wildcard scopes

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

* fix: label the mcp selection access as scripts and flows as tools

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

* feat: link mcp run, app draft and deploy results to their windmill pages

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

* fix: mirror the session tool changes from main in the mcp server

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

* fix: keep an ai agent's identity when the ai chat deploys its resource

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

* refactor: call the api in-process from the mcp session tools

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

* fix: keep a draft that rebase_draft could not return whole

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

* fix: let read-and-run mcp tokens run scripts and flows that take secrets

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

* feat: ask mcp clients to open windmill links in a browser the user sees

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

* feat: send mcp clients condensed instructions and serve the full rules on demand

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

* refactor: put the core rules first in the mcp instructions instead of condensing them

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

* fix: go straight to the mcp sign-in page after login, without the workspace picker

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

* fix: no workspace error toast on the mcp sign-in page while logged out

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

* feat: open raw app previews on the preview alone, from mcp links and in sessions

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

* feat: link mcp script, flow and agent drafts to their editors, and agents to their page

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

* fix: keep the session preview's saved sidebar choice, fold the build log in preview-only views

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

* fix: hold mcp tokens below full access to their level on the per-workspace urls

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

* fix: revoke tokens with the new mcp scopes when the migration is reverted

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

* fix: keep an mcp token's scopes when its editor is saved without changing access

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

* fix: mint one jwt per mcp tool call, accept the old approve body, list the new scopes

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

* fix: reset the mcp token editor's picker state for each token

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

* refactor: mark only mcp selections, read levels imply no endpoint tools

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

* chore: update ee-repo-ref to b3fd7d49f2ba58f5080fabc3a5686c34a0b2684c

This commit updates the EE repository reference after PR #877 was merged in windmill-ee-private.

Previous ee-repo-ref: 9e960246d51401a2b0487dcffcadd0b43cd67d39

New ee-repo-ref: b3fd7d49f2ba58f5080fabc3a5686c34a0b2684c

Automated by sync-ee-ref workflow.

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: windmill-internal-app[bot] <windmill-internal-app[bot]@users.noreply.github.com>
Co-authored-by: Ruben Fiszel <ruben@windmill.dev>
2026-10-21 19:12:49 +02:00
Ruben Fiszelandrubenfiszel d2e9768f81 chore(main): release 1.843.0 (#11917)
* chore(main): release 1.843.0

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <275584+rubenfiszel@users.noreply.github.com>
2026-10-21 18:38:29 +02:00
Ruben FiszelandClaude Opus 5.5 b87486141d feat: ship php only on the full images (#11922)
* feat: ship php only on full images with a clear missing-php error

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

* fix: let a bare php or composer path resolve through PATH

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

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 18:01:38 +02:00
Ruben FiszelandClaude Opus 5.5 2c6bcc09c9 fix: refuse restarting a flow past an approval that was never granted (#11920)
Restarting a flow at the step right after an approval step copied the
approval step as completed, and the worker skips the gate at the restart
step, so a flow whose approval timed out or was disapproved could be
restarted past it without anyone approving. Restart resolution now
refuses a restart whose copied steps include an approval gate that never
opened, naming the step to restart from instead.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 17:48:58 +02:00
21d2a49971 feat: configurable workspace roles with per-workspace overrides (#11821)
* feat: configurable workspace roles with per-workspace overrides

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

* fix: close role review gaps in pickers, declarative sync and removal

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

* docs: keep resolve_role_name doc on its function

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

* fix: validate overrides on instance role changes and bill admins fully

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

* fix: allow pipeline drafts and keep role checks on one connection

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

* docs: list data pipelines in operator_can_draft

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

* test: expect a 403 role refusal when an operator resolves jobs

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

* feat: require a valid license for custom workspace roles

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

* fix: freeze workspace roles when the license lapses

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

* chore: pin the ee companion for workspace roles

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

* refactor: broadcast role override changes from the write path, not a trigger

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

* chore: update ee-repo-ref to b5294d38db082bdd104d5358a47695390694c05d

This commit updates the EE repository reference after PR #891 was merged in windmill-ee-private.

Previous ee-repo-ref: 688e00c5982865b14098f530d54280e2311994c0

New ee-repo-ref: b5294d38db082bdd104d5358a47695390694c05d

Automated by sync-ee-ref workflow.

* fix: let an admin row that kept the operator flag hold full rights everywhere

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

* fix: treat superadmin members as admins and return role names from get user

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

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: windmill-internal-app[bot] <windmill-internal-app[bot]@users.noreply.github.com>
2026-10-21 15:51:54 +02:00
Alexander PetricandClaude Opus 5.5 c04477723c fix: revoke mcp oauth grants on password change and reset (#11908)
* fix: revoke mcp oauth grants on password change and reset

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix: revoke pending mcp codes and serialize grants against revocation

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix: run mcp refresh theft check on the grant transaction

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix: log commit failures of rejected mcp oauth exchanges

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-21 13:58:03 +02:00
78fb800904 fix(worker): render TEMP_SCRIPT_REFS placeholder in Python runner-group loader.py (#11915)
* fix(worker): render TEMP_SCRIPT_REFS placeholder in Python runner-group loader.py

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

* chore: drop unrelated rustfmt churn in python_executor.rs

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

* test: cover relative imports in a python runner group, keep the raw loader private

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

* chore: update ee-repo-ref to 32784f3907f0a25fee4a9f96fa172420f17b3fea

This commit updates the EE repository reference after PR #908 was merged in windmill-ee-private.

Previous ee-repo-ref: 6c36ef6e94dda5e43e04a5a08c00ef7eabb6d9a8

New ee-repo-ref: 32784f3907f0a25fee4a9f96fa172420f17b3fea

Automated by sync-ee-ref workflow.

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Ruben Fiszel <ruben@windmill.dev>
Co-authored-by: windmill-internal-app[bot] <windmill-internal-app[bot]@users.noreply.github.com>
2026-10-21 13:29:55 +02:00
hugocasa c41d772f1d chore: update ee ref 2026-10-21 10:39:31 +02:00
AlexRV12 eda610b2f4 [ee] fix: stop handlers, apps and agents resolving untrusted refs (#11893)
* fix: stop handler, app and agent jobs resolving untrusted references

* perf: skip decoding untrusted args that hold no dollar or escape

* test: drop the transaction the recovery handler no longer takes

* fix: flag reserved names in object keys and tighten the jsonb parity test
2026-10-21 10:19:20 +02:00
Ruben Fiszelandrubenfiszel f400d520d6 chore(main): release 1.842.0 (#11878)
* chore(main): release 1.842.0

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <275584+rubenfiszel@users.noreply.github.com>
2026-10-20 19:27:15 +02:00
8ddb358198 fix: refresh oauth tokens without holding a pool connection (#11905)
* fix: refresh oauth tokens without holding a connection across the exchange

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

* chore: pin ee ref for the oauth refresh fix

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

* chore: update sqlx cache for the oauth refresh queries

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

* fix: coalesce forced oauth refreshes and drop the redundant mcp visibility check

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

* fix: store refreshed oauth tokens at every linked variable and only reuse a fresh one

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

* fix: date oauth expiry from the exchange and fan out only to secret variables

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

* chore: update ee-repo-ref to 3546b6b080e0234335ed2c8e2e9cc3d595bbadca

This commit updates the EE repository reference after PR #906 was merged in windmill-ee-private.

Previous ee-repo-ref: 12d1fb5978e66af462398c789b861706a2367ed0

New ee-repo-ref: 3546b6b080e0234335ed2c8e2e9cc3d595bbadca

Automated by sync-ee-ref workflow.

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: windmill-internal-app[bot] <windmill-internal-app[bot]@users.noreply.github.com>
2026-10-20 19:23:02 +02:00
8afe0607ab fix: keep schedule push, flow advance, wac approval and scim on one pool connection (#11904)
* fix: keep schedule push, flow advance and wac approval on one pool connection

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

* fix: read flow args on the status-update tx instead of preloading them

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

* chore: pin ee ref for the scim update_group fix

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

* chore: update ee-repo-ref to c465c042eeae3c5d9a0180f62a56e8f8d3e9e162

This commit updates the EE repository reference after PR #905 was merged in windmill-ee-private.

Previous ee-repo-ref: dc4d0327044ddc10ef53ad0b21ae37b96cf4aad2

New ee-repo-ref: c465c042eeae3c5d9a0180f62a56e8f8d3e9e162

Automated by sync-ee-ref workflow.

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: windmill-internal-app[bot] <windmill-internal-app[bot]@users.noreply.github.com>
2026-10-20 19:20:00 +02:00
2c559b452f fix: stop holding a pool connection while waiting for another (#11902)
* fix: stop holding a pool connection while waiting for another

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

* fix: count only earlier occurrences as schedule handler history

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

* chore: update ee-repo-ref to ac53164fd27fe962a020f3ee944949df1f760603

This commit updates the EE repository reference after PR #904 was merged in windmill-ee-private.

Previous ee-repo-ref: 047764f902f10fce0156138c4240ba5d1a2e969a

New ee-repo-ref: ac53164fd27fe962a020f3ee944949df1f760603

Automated by sync-ee-ref workflow.

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: windmill-internal-app[bot] <windmill-internal-app[bot]@users.noreply.github.com>
2026-10-20 19:11:46 +02:00
Ruben FiszelandClaude Opus 5.5 e6c8ef18a1 fix: write a push's runnable settings before it opens its transaction (#11897)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 18:31:38 +02:00
hugocasaandClaude Opus 5.5 c3112f8e07 add missing sqlx cache entry for the Slack disconnect query (#11892)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 10:26:00 +02:00
5d0a8a9c15 fix(mcp): escape JSON inlined in the MCP OAuth callback page (#11880)
* fix(mcp): escape JSON inlined in the MCP OAuth callback script

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

* chore: update ee-repo-ref to dd0c7087f9b2453260f3d73b0d589042b4393a1d

This commit updates the EE repository reference after PR #900 was merged in windmill-ee-private.

Previous ee-repo-ref: b8384a2346c2c228ac645e3209a04b1f08627278

New ee-repo-ref: dd0c7087f9b2453260f3d73b0d589042b4393a1d

Automated by sync-ee-ref workflow.

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: windmill-internal-app[bot] <windmill-internal-app[bot]@users.noreply.github.com>
Co-authored-by: Ruben Fiszel <ruben@windmill.dev>
2026-10-19 23:22:00 +02:00
4c254c60ed chore: read the caller once in workspace settings handlers (#11881)
* chore: read the caller once in workspace settings handlers

* chore: update ee-repo-ref to bfbf9154df83c5256a35181fc9ea3b715b66c35f

This commit updates the EE repository reference after PR #901 was merged in windmill-ee-private.

Previous ee-repo-ref: 6fbcc79cdd5bb30b362ae2a44e651ede66830ee3

New ee-repo-ref: bfbf9154df83c5256a35181fc9ea3b715b66c35f

Automated by sync-ee-ref workflow.

---------

Co-authored-by: windmill-internal-app[bot] <windmill-internal-app[bot]@users.noreply.github.com>
Co-authored-by: Ruben Fiszel <ruben@windmill.dev>
2026-10-19 23:18:23 +02:00
35b250e767 feat: let AI agents answer in Slack (#11630)
* feat: let AI agents answer in Slack

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

* fix: dedupe Slack deliveries by message and route only connected workspaces

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

* fix: key Slack conversations with the workspace secret and require signed Slack requests

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

* fix: keep a named agent on its thread after an empty question and flag a missing Slack signing secret

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

* fix: register the slack_agents token scope domain

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

* feat: name the Slack bot, offer Slack only for chat agents, align the agent API tab with webhooks

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

* fix: warn when Slack can't be reached instead of showing a placeholder bot name

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

* feat: chat SDK, streaming examples and a copyable integration prompt on the agent API tab

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

* fix: keep the base path in the chat SDK example, list slack_agents token scopes, bound the bot name lookup

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

* feat: opt into the AI agent Slack scopes at connect, store the signing secret in instance settings, surface the integration prompt

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

* fix: dispatch Slack agents only on a verified request, warn when the connection lacks the agent scopes, register the callback redirect URLs

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

* fix: point the agent chat examples at @windmill-labs/chat-sdk

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

* fix: build the agent API examples on the configured API base URL

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

* fix: say that a channel's default agent takes its /windmill commands

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

* feat: list the channels answered by an agent in the workspace Slack settings

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

* refactor: keep the Slack signing secret in SLACK_SIGNING_SECRET, warn at connect when it is missing, move the integration prompt to a tab

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

* fix: wrap copyable code blocks at word boundaries

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

* fix: open the agent panel on its API tab, put the AI prompt first, list channels like the critical alert channels, cap the manifest's height

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

* feat: group the agent API examples by AI prompt, TypeScript and HTTP, with React and framework-free chat SDK examples

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

* fix: have the agent integration prompt read the token from WINDMILL_TOKEN

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

* fix: trim the agent API tab intro, name the Slack app in mentions, define the SDK example's output

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

* feat: share agents in selected Slack channels, run as their identity

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

* feat: share agents in Slack channels with anyone or workspace members only

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

* feat: set who can ask an agent in Slack and its channels from its settings

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

* fix: treat a missing Slack audience as workspace members

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

* feat: list Slack channels before who can ask, name the run-as user in each choice

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

* fix: name the next deploy's run-as user in Slack choices, turn agents on by default when connecting

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

* feat: answer agents on mentions only, group agent settings into sections

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

* feat: show how to ask an agent in Slack first, keep agent scopes opt-in

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

* feat: list agents shared in Slack in a setting card and table

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

* chore: update ee-repo-ref to 10bc314c95094c0851743cbca31b50a3b37d42fd

This commit updates the EE repository reference after PR #865 was merged in windmill-ee-private.

Previous ee-repo-ref: 47d8fbac461171bd93d888b49cc1c7730a2b3f96

New ee-repo-ref: 10bc314c95094c0851743cbca31b50a3b37d42fd

Automated by sync-ee-ref workflow.

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Ruben Fiszel <ruben@windmill.dev>
Co-authored-by: windmill-internal-app[bot] <windmill-internal-app[bot]@users.noreply.github.com>
2026-10-19 23:16:17 +02:00
Ruben Fiszelandrubenfiszel de66e47b1c chore(main): release 1.841.0 (#11860)
* chore(main): release 1.841.0

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <275584+rubenfiszel@users.noreply.github.com>
2026-10-19 01:53:42 +02:00
Ruben FiszelandClaude Opus 5.5 a7561fd8bd fix: insert ApiAuthed into request extensions in no-auth mode (#11868)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 01:38:00 +02:00
Ruben FiszelandClaude Opus 5.5 69d36f77da feat: probe nsjail with a real jail and add a gVisor compat mode (#11865)
* feat: probe nsjail with a real jail and add a gVisor compat mode

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

* fix: route dbt captured phases through the gVisor compat step and harden the probe dir

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

* feat: patch nsjail with a gvisor_compat option instead of applying rlimits from the worker

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

* fix: keep DuckDB jailed on a sandboxed worker whose nsjail probe failed

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

* docs: link the upstream gVisor issues from the nsjail patch

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

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 01:33:35 +02:00
Ruben FiszelandClaude Opus 5.5 5c205fa469 feat: let ALLOW_PRIVATE_MCP_SERVER_URLS name the private hosts it allows (#11869)
* feat: let ALLOW_PRIVATE_MCP_SERVER_URLS name the private hosts it allows

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

* fix: warn once about invalid MCP private-host entries

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

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 01:18:52 +02:00
Ruben FiszelandClaude Opus 5.5 19ec5d3cd8 fix: reject out-of-range integer args to narrow SQL types instead of wrapping (#11864)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 12:27:06 +02:00
Ruben FiszelandClaude Opus 5.5 578437885a clarify the no-tags autoscaling warning (#11861)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 11:12:17 +02:00
8b14a78822 fix: warn when an autoscaled worker group has no tags to count (#11859)
* fix: warn when an autoscaled worker group has no tags to count

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

* fix: drop warning autoscaling events when rolling the migration back

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

* fix: drop the autoscaling warning event and its migration

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

* fix: tell agent groups to match custom tags to their token tags

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

* chore: update ee-repo-ref to a673d2e3fe12927921be86c3a52bd9c956759c65

This commit updates the EE repository reference after PR #898 was merged in windmill-ee-private.

Previous ee-repo-ref: bbb21dad8a18f0593a2e1a2f2930b427f44404cd

New ee-repo-ref: a673d2e3fe12927921be86c3a52bd9c956759c65

Automated by sync-ee-ref workflow.

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: windmill-internal-app[bot] <windmill-internal-app[bot]@users.noreply.github.com>
2026-10-18 10:47:48 +02:00
be23abb360 feat: let agent workers authenticate with a workload identity token (#11858)
* feat: let agent workers authenticate with a workload identity token

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

* fix: throttle failed workload identity key fetches per issuer

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

* fix: keep stale workload identity keys through an issuer outage

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

* fix: refuse workload identity rules with an empty claim value

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

* fix: validate workload identity issuers in declarative sync and share the JWKS cache

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

* fix: say workload identity issuers are optional in agent worker settings

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

* chore: update ee-repo-ref to 96e8e2aa15bdc5968a1dae10f4e81d47d7ea49e0

This commit updates the EE repository reference after PR #897 was merged in windmill-ee-private.

Previous ee-repo-ref: 0e98880edb8db269d53120ca606025c81f320f5c

New ee-repo-ref: 96e8e2aa15bdc5968a1dae10f4e81d47d7ea49e0

Automated by sync-ee-ref workflow.

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: windmill-internal-app[bot] <windmill-internal-app[bot]@users.noreply.github.com>
2026-10-18 10:44:50 +02:00
Ruben FiszelandClaude Opus 5.5 9e5c988770 gate unix-only bun staging items for the Windows worker build (#11856)
* fix: gate unix-only bun staging items so the Windows worker build compiles

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

* fix: compile bun_install_can_stage only where it is used

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

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 02:47:24 +00:00
Ruben Fiszelandrubenfiszel 35d59e9020 chore(main): release 1.840.0 (#11840)
* chore(main): release 1.840.0

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <275584+rubenfiszel@users.noreply.github.com>
2026-10-17 23:24:18 +02:00
Ruben FiszelandClaude Opus 5.5 7a2d913458 perf: opt into sqlx test templates through SQLX_TEST_TEMPLATE (#11853)
* perf: opt into sqlx test templates through SQLX_TEST_TEMPLATE

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

* fix: raise the sqlx test connection cap so concurrent tests cannot starve

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

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 23:23:53 +02:00
Ruben FiszelandClaude Opus 5.5 47b736ef27 chore: bump npm in worker images to 12 (#11839)
* fix: pass --save-text-lockfile only to bun installs

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

* fix: run bun and npm installs under nsjail sandboxing

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

* fix: strip workspace-dependencies header from npm-mode package.json

* chore: bump npm in worker images to 12

* docs: describe npm 12 install-script policy in install comment

* fix: mount npmrc cafile paths given with ${VAR} or ~ in the install jail

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

* perf: keep bun's cache hardlinks for jailed installs

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

* fix: harden the bun install staging dir and npm-mode jail mounts

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

* fix: reach the bun staging dir only through no-follow descriptors

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

* fix: create bun staging files new and check outputs after the move

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

* feat: add DISABLE_BUN_INSTALL_SANDBOX to run bun installs unjailed

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

* feat: retry npm installs refused git or remote fetches with a deprecation warning

* fix: point the npm fetch fallback warning at config that works on CE too

* fix: read npm fetch refusals from its debug log and honor every npm config source

* fix: force text output for the npm config check

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

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 22:59:34 +02:00
Ruben FiszelandClaude Opus 5.5 03b540979a test: lift the shared sqlx test pool cap so concurrent tests cannot starve (#11855)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 22:58:56 +02:00