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>
* 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>
* 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>
* 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>
* 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>
* feat: scroll and search the group drawer's member lists
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
* fix: stop the add member picker loading after a failed username load
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
* 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>
* 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>
* 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>
* 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>
* fix: hold home's ai composer space with a matching placeholder while it loads
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: skip remembering the composer height when a draft holds it open
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* feat: home recent cards include items opened on their own page
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: bump recent items untracked so an effect recording a visit does not loop
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* fix: home search suggests filters whose name matches the typed text
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: close the home filter hint once the list is navigated
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* feat: flat list toggle in the home list settings
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: reset the flat list's row cap on a view change, idle its arrows under content search
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* chore: drop the beta badge from the ai session greeting
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* feat: restore home sort order and library script toggle in a list settings menu
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat: hide other users' folders from the list settings, remember open folders and list settings
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* feat: open empty ai sessions with the home build-with-ai composer
* feat: vertically center the empty session composer
* fix: drop the stray indent on the session composer's rotating placeholder
* fix: give the starter composer a stable accessible name
* feat: pick workspace, fork and permission mode from the home composer
* fix: hand off the workspace home displays, not only an explicit pick
* feat: drop the starter prompt chips from the empty session
* feat: home and empty ai sessions share one session composer
* fix: keep session draft attachments across home and session page
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
* fix: drop superseded home ai-hidden responses
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
* fix: load home session starter lazily to keep monaco out of home
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
* feat: redesign home composer and items list
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
* feat: align the composer chat icon, share the folder row, add a home preview page
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
* refactor: drop home tech debt, fix phone layout and keyboard access, remove the home preview page
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
* perf: read filter chip positions before hiding any in clampRows
Co-Authored-By: Claude Opus 5.5 (1M context) <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: e922599943c472a6d0f736f629ae04081f866686
New ee-repo-ref: dd0c7087f9b2453260f3d73b0d589042b4393a1d
Automated by sync-ee-ref workflow.
* fix: align the home separator, drop the dark composer band, unclip pin menu and session suggestions
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
* fix: give the home composer the input background in dark mode
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
* feat: put home items in a card, keep the row menu visible, colour kinds, add-to-context button
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
* fix: settle the session composer before the transition captures it, ease the greeting in after it lands
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
* fix: let the empty-workspace placeholder take the card's background
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
* fix: keep a remounted home composer open when its draft holds text
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
* feat: show favorites and recent edits as cards above the home tree (#11894)
* feat: show favorites and recent edits as cards above the home tree
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
* fix: keep label-filter paging on the home tree and skip draft agents in recent
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
* fix: star raw apps as apps on home cards, open filtered tree folders, keep cards under filters
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
* style: set the favorites & recent label in normal weight and sentence case
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
* feat: add a playground comparing layouts for home's favorites & recent
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
* feat: scroll home's favorites & recent cards, add section settings and counts
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
* fix: drop stale favorites loads and keep home cards restorable without the AI beta
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
* fix: clear stale favorites on a failed load and gate card menu on role
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
---------
Co-authored-by: Guilhem Lemouel <guilhemlemouel@gmail.com>
Co-authored-by: Claude Opus 5.5 (1M context) <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>
* 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>
* feat: move the open in AI session button to the page header
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
* fix: address local review findings on the header session button
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
* fix: update header fold comments and test the page header session source
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
* fix: show the header session button to users who cannot edit the item
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
* feat: place the header session button right before the page's main action
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
* fix: drop an always-true guard and stale comments around the header session button
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
* fix: keep the compact autosave label for screen readers and correct two comments
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
* fix: compact the AI chat history between tool iterations
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: budget the in-flight turn when compacting mid-turn
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* test: pin mid-turn compaction off a provider usage report
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: leave unreplayed reasoning out of the mid-turn size check
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: count replayed anthropic thinking in the mid-turn size check
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: leave room for replayed thinking when compacting mid-turn
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* test: assert the second mid-turn summary folds in the first
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* 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>
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>
* 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.
* feat: add workspace roles settings UI and role pickers
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: show the server's reason when a settings save fails
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: default role pickers to a defined role and confirm resets of unknown capabilities
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: treat null role capabilities as unset and key role drafts by map
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat: gate the frontend on workspace role capabilities
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: gate deploys, bulk actions and chat composition per role kind
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: treat a superadmin as full in deploy permission checks
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: leave page visibility out of isRestricted, as the server does
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: let a member discard their own draft without the authoring right
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: show custom roles as inactive without a valid license
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: keep the user store import on the agent page
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: show custom roles as frozen without a valid license
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: reorder instance roles with a drag handle
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* 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>
* fix: move the instance role label into the expanded panel
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>
* 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>
* 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>
* 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>
* 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
* 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>
* 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>
* 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>
* perf: show the AI sessions composer before the chat code loads
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
* fix: keep the composer placeholder's focus, IME input and draft through the swap
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
* fix: drop the composer focus hand-off when the session goes inactive
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
* fix: let an explicit composer focus request override a left placeholder
Co-Authored-By: Claude Opus 5.5 (1M context) <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: e922599943c472a6d0f736f629ae04081f866686
New ee-repo-ref: dd0c7087f9b2453260f3d73b0d589042b4393a1d
Automated by sync-ee-ref workflow.
---------
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-authored-by: windmill-internal-app[bot] <windmill-internal-app[bot]@users.noreply.github.com>