A session could only move into a direct fork of its workspace. The picker
now lists the whole family and lets a new fork be based on any of its
workspaces, and /drafts/transfer accepts any target with the same root.
A fork the move creates from elsewhere holds that base's drafts, so its
drafts are never replaced.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix(cli): resolve /ui/ in app dev and lint, and its bare imports from the app
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix(cli): match shared ui/ files by real path so a symlinked ui/ still redirects
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix(cli): keep relative css @import in shared ui/ resolving next to the file
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix(cli): let esbuild resolve relative css @import in ui/ so suffixes keep working
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* feat: rebuild raw apps on a ui/-only change and fail sync push on ui/ errors
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: catch unquoted css ui/ imports and surface app lookup errors
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: match the raw app metadata file on windows sync paths
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* feat: add ai review to deployment requests
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: bound ai review fetches and surface unreadable items
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat: add fix in ai session and model picker to deployment ai review
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat: add workspace instructions for deployment ai review
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: read review instructions from the parent and bind ai review to the fork
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: pin the fix-all session preview to the fork's compare page
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: show the protection-rule bypass toggle inline
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: make the bypass toggle small and red
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* refactor: drop workspace-settings instructions from deployment ai review
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat: folder-scoped review instructions for the deployment ai review
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat: review the selected items with ai on compare and deploy
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: keep reviewing when review instructions cannot be listed
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* docs: say the review instruction floor is a prompt request, not enforcement
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: mark an ai review out of date when its items change
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* chore: update ee-repo-ref to 77703cf32e58964906d87ee83ddda44b5b8d1b7e
This commit updates the EE repository reference after PR #926 was merged in windmill-ee-private.
Previous ee-repo-ref: e30ab9e69d1854fcaed5620c934ace32acb0a729
New ee-repo-ref: 77703cf32e58964906d87ee83ddda44b5b8d1b7e
Automated by sync-ee-ref workflow.
* feat: review git sync pull requests with wmill review
* fix: withhold retyped resources and encryption keys, fall back from the responses route
* fix: withhold fileset children, workspace-specific resources and pathspec-named files
* feat: include the ready-to-post review in wmill review --json
* feat: review a workspace synced into a repository subfolder
* docs: say what wmill review takes from flags rather than wmill.yaml
* feat: review git sync pull requests with ai on the instance
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PjsYvwbvQh6Traiw1J3fRM
* chore: update ee-repo-ref for the ai review fixes
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PjsYvwbvQh6Traiw1J3fRM
* feat: point git sync ai review at the published hub script
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PjsYvwbvQh6Traiw1J3fRM
---------
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: add ai review to deployment requests
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: bound ai review fetches and surface unreadable items
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat: add fix in ai session and model picker to deployment ai review
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat: add workspace instructions for deployment ai review
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: read review instructions from the parent and bind ai review to the fork
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: pin the fix-all session preview to the fork's compare page
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: show the protection-rule bypass toggle inline
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: make the bypass toggle small and red
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* refactor: drop workspace-settings instructions from deployment ai review
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat: folder-scoped review instructions for the deployment ai review
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat: review the selected items with ai on compare and deploy
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: keep reviewing when review instructions cannot be listed
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* docs: say the review instruction floor is a prompt request, not enforcement
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: mark an ai review out of date when its items change
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* chore: update ee-repo-ref to 77703cf32e58964906d87ee83ddda44b5b8d1b7e
This commit updates the EE repository reference after PR #926 was merged in windmill-ee-private.
Previous ee-repo-ref: e30ab9e69d1854fcaed5620c934ace32acb0a729
New ee-repo-ref: 77703cf32e58964906d87ee83ddda44b5b8d1b7e
Automated by sync-ee-ref workflow.
* feat: review git sync pull requests with wmill review
* fix: withhold retyped resources and encryption keys, fall back from the responses route
* fix: withhold fileset children, workspace-specific resources and pathspec-named files
* feat: include the ready-to-post review in wmill review --json
* feat: review a workspace synced into a repository subfolder
* docs: say what wmill review takes from flags rather than wmill.yaml
---------
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: issue oidc tokens to a deployed flow's dynamic select
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: leave dyn select previews on a dedicated worker unproven
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: match every dedicated worker tag shape in the dyn select check
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: cover hashed dedicated worker tags of long workspace ids
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: keep a flow dyn select claimed when a script or app shares its sub
---------
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Ruben Fiszel <ruben@windmill.dev>
* feat: add ai review to deployment requests
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: bound ai review fetches and surface unreadable items
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat: add fix in ai session and model picker to deployment ai review
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat: add workspace instructions for deployment ai review
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: read review instructions from the parent and bind ai review to the fork
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: pin the fix-all session preview to the fork's compare page
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: show the protection-rule bypass toggle inline
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: make the bypass toggle small and red
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* refactor: drop workspace-settings instructions from deployment ai review
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat: folder-scoped review instructions for the deployment ai review
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat: review the selected items with ai on compare and deploy
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: keep reviewing when review instructions cannot be listed
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* docs: say the review instruction floor is a prompt request, not enforcement
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: mark an ai review out of date when its items change
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* chore: update ee-repo-ref to 77703cf32e58964906d87ee83ddda44b5b8d1b7e
This commit updates the EE repository reference after PR #926 was merged in windmill-ee-private.
Previous ee-repo-ref: e30ab9e69d1854fcaed5620c934ace32acb0a729
New ee-repo-ref: 77703cf32e58964906d87ee83ddda44b5b8d1b7e
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>
The AI proxy resolved every credential field of a resource except base_url,
so a base_url set with "Insert a Variable" reached URL validation as the
literal $var: path and failed with "relative URL without a base".
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* feat: fork capability per role and fork role mapping on rulesets
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: keep unset fork for unrestricted roles and apply fork role mapping to fork-owner adds
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat: fork_roles feature usage telemetry
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: derive an unset fork in the role editor as the server does
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* chore: update ee-repo-ref to d535972f0b35c6a7f257720816bdaec18465adef
This commit updates the EE repository reference after PR #929 was merged in windmill-ee-private.
Previous ee-repo-ref: 4a8d59cd1563382fcec85b1367f7e15e09bc13c2
New ee-repo-ref: d535972f0b35c6a7f257720816bdaec18465adef
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>
* chore: apply the untrusted-input check to trigger, resume and asset args
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* chore: apply the check to every native trigger and slack/teams commands
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* chore: accept resume references the approver can read
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* chore: refuse every reference in a resume payload
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* chore: update ee-repo-ref to 5e7b1de9a07114e277a22e9e3c68b0809c06f18d
This commit updates the EE repository reference after PR #927 was merged in windmill-ee-private.
Previous ee-repo-ref: 15733e7ee1e8ab0efa56a429801be31fe40277e2
New ee-repo-ref: 5e7b1de9a07114e277a22e9e3c68b0809c06f18d
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>
* refactor: harmonize flow and script settings layout
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
* fix: keep the priority input open while it is edited
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
* feat: confirm run-as on flow and script deploy, mute from editor menu
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
* fix: keep settings rows open while edited and name the deploying user for non-admins
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
* fix: reread the deployed run-as user after a deploy that keeps the editor open
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
* fix: write a setting before its row opens and show its real state while edited
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
* fix: slide settings rows open to their full height
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
* fix: send the popover's deployment message when Deploy is clicked
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
* fix: remount a settings row's fields when its toggle turns it on
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
* fix: send the popover's deployment message from Deploy & Stay here
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
* fix: clear the deployment message after a successful deploy
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
* fix: read the deployed row before muting from the menu, title Deploy only when icon-only
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: app conversations through the memory_id query parameter, chat-mode flows included
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* chore: regenerate the mcp session instructions
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: type backendAsync's memoryId option in the eval diagnostics
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* chore: pin git-sync hub scripts to windmill-cli 1.849.0
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat: memoryId option on the sync backend call too
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* chore: bump the ui builder artifact for the memoryId option
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* chore: shared-utils 1.0.14
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* chore: cli takes shared-utils 1.0.14 for the memoryId option
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* test: pin the app conversation scoping and the memoryId signatures
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* test: assert the ownership refusal, not any refusal
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* test: match the memoryId option in the cli wmill.ts signature tests
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: file an app's turns as the deployed flow's conversation, preview included
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* fix: drop superseded list replies after a workspace or filter change
* fix: build resources filter suggestions from the visible tab
* test: pin that latestRequest peek never supersedes a request
* fix: keep a superseded email trigger load from ending the loading state
* fix: stop the breadcrumb sliding when switching sessions
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* docs: state the band offset constraint without the old arrangement
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* feat: render mcp run tools as an mcp apps run card
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: back off run card polling and pin its run summary
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: keep the run card polling after a failed get_run
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat: add run details, run form, diff and item views to the mcp card
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: guard the mcp card's run form and diff errors
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: honour the host's dark theme in the mcp card without its colours
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: keep untouched run form arguments and drop stale run refreshes
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: let the run form re-send references and label diff links by target
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: parse literals typed over run form references by field type
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat: version the mcp card uri and declare its empty csp
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat: keep the mcp card to runs, group loop and branch steps, restyle it
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: say when the mcp card cannot read a finished run's details
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat: show runs, run tables and deploy reviews through dedicated mcp tools
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: review the whole draft before deploying from the mcp card
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat: follow host card guidelines: header link, collapsible steps, review summary, no run form
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: keep fullscreen review diffs whole and match drafts by storage path first
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: link to windmill where a host has no fullscreen, cap inline logs, shrink the card back
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: say in the review summary why a draft cannot be deployed from the card
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat: link the review to compare and deploy, cap inline tables, open long results
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: flag a cut result or log by what was kept, keep a lone log line
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: mark the mcp card's fullscreen buttons with the expand icon
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: capitalize the mcp card's windmill link labels
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat: add a show_item card for workspace items, collapsible sections in fullscreen
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat: apply windmill brand guidelines to the mcp card and show errors as windmill does
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat: show more windmill result kinds in the mcp run card
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: tidy the mcp card layout and let oversized drafts deploy from the review
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat: name a shown run by its summary, cap long item values, drop variable cards
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: link an app draft's card to its editor
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat: show a running flow's progress in the mcp card, open cut blocks on click, link each step
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: read only a running step's log tail and skip the preprocessor in the progress bar
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat: mcp card headers carry a kind icon, and a summary names the item over its path
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: skip result streams in log tail reads, keep the cut-result link when it fits
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: link app drafts and agents to their own pages, offer Cancel only to tokens that can cancel
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat: simple inline mcp cards with a tabbed fullscreen run view and step drill-in
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: draw the mcp card's tabs as windmill's underlined tabs
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: link to windmill for what an mcp card hides when the host has no fullscreen
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat: mcp run card steps as a tree beside the selected step, nested progress, danger cancel
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat: draw image results in the mcp run card, and a collapse control in fullscreen
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat: copy controls on the mcp card's results, logs and code
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: mcp card links read as text, hover tint only on buttons
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat: windmill's names, icons, status colours and type scale in the mcp card, within the hosts' rules
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: keep images out of mcp run table rows, and re-read only single-field image results
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: measure a re-read mcp image result as postgres prints it, so wrapped images draw
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat: mcp review deploys the selected drafts, loops list every iteration's result, branches and subflows named
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat: mcp review diffs open on demand, as on the compare page
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat: mcp script cards fade their code in inline, item sections open whole in fullscreen
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat: mcp item cards link what a schedule or trigger runs, show a trigger's key settings and a schedule's arguments as rows
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: mcp card lists a loop's latest 10 iterations, trigger topics by name
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat: mcp trigger cards open their other settings from a last table row
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: mcp draft badge in windmill's indigo without a spinner, show-more as a list's last row
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: consistent mcp cards: one expand icon and rule, aligned tables, path titles, error and empty states
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: mcp item cards offer fullscreen for cut values and overflowing code, name script steps by path
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat: mcp cards show ai agents: their answer, named tool calls, what a waiting agent asks, saved agents
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: mcp saved-agent runs label tool calls by tool, never by the internal root step
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat: a saved agent's run card names its steps tab Tool calls
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: an mcp card says an agent waits only while its run is going
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: mcp card paths wrap at slashes beside their icon; oauth approval offers all workspaces to a user in none
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: mcp card view read carries the cache hints 2026-07-28 clients require
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat: mcp card leaves leaving fullscreen to the host's own close control
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: mcp cards name a saved agent's test run by the agent's path, without .chat
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* perf: mcp get_run builds no card data; the run card refreshes through show_run
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: mcp show_deploy_review refuses a token that cannot deploy, not only hides from it
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: mcp session tools carry a title and explicit read-only, destructive and open-world hints
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: mcp run card reads only the end of a run's log; create_datatable_migration is destructive
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: mcp run card counts log offsets from 1 and reads a finished run's archived log in full
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: mcp item card rechecks clipped code on resize; oauth hint hides once the toggle is on
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: mcp item card uncuts a code block once a wider card fits it
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* feat: guidance for building standalone ai agents in ai sessions
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: agent guidance for resource-only sessions, no flow tools
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: tell the user to deploy a drafted tool script with its agent
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: scope plain agent values, document tool_inputs, list agents in get_instructions
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat: test and run ai agents from ai sessions, open agents in their editor
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: full-bleed agent editor tabs, back to the run form for agent tests
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: describe read-and-run as running agents too, pin agent run links
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat: host the agent editor natively in session tabs
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: switch the agent editor to tabs below 900px
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: name an agent's session tab after its summary
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat: show deployed agents in session tabs, open and run them from the chat
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat: deploy agents from the chat, report agent tabs as the active editor
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat: pick agents from the tab picker, name their tabs, scope the agent page to its workspace
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: leave open editors alone on agent writes, read the agent page's workspace user
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: refresh an agent's deployed page when the chat deploys or deletes it
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: name agent tabs before they load, mark agents in the changes drawer, stay on a deleted agent's tab
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: keep a cleared agent summary out of its tab name
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: keep the resource drawer's json option that the resources list still passes
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat: open an agent in an AI session from its pages, fix review findings on agent tabs
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* docs: name the reserved agent tool names in the agent guidance
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: reload an agent's editor on a discard, open a new agent in a session
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: show agents as agents on compare and deploy, name a never-deployed one by its path
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: keep a deployed agent's type in its draft diff
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: link a fork row to the agent editor only on the side that holds the agent
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: guard agent page paths, mark drafted agents in the picker, side-aware agent rows on fork compare
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
The transfer bypasses the syncer that keeps localDraftHints, and lists
prefer a hint over the server's flag, so the parent kept its markers after
"Remove these drafts". The parent's hints are cleared for removed drafts
and the fork's set for copied ones.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The editors stay mounted while the move drains them, and a keystroke
typed during that drain was lost when they closed, or left in the parent
of an existing fork. The preview tabs are inert from the move's first
step, so nothing new reaches an editor after the drain starts.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The lineage check compared a hex rendering of every script hash, which
ruled out the primary key and scanned the target's script versions for
each script draft, fork creation included. It now converts the draft's
16-digit hex to the bigint column, guarded so a malformed value never
reaches the cast.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The JSON editors parse a flushed buffer in an effect, so the check reads
the registry after a tick, as RunForm and the page drawer already do. The
message says the editor is in the preview.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
That text never reaches the draft, and the move closes the editor holding
it. The move now refuses before closing anything, as opening a session
from a page drawer already does.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
- The chat manager refuses sends, retries and message edits while a move
runs, from its first step, handing the text back. The composer was
locked but a retry or an edit could still start a turn in the parent.
- A move into an existing fork checks again for a running turn after
saving that fork's pending edits.
- repoint_unresolvable_draft_identities documents that it authorizes
nothing and when its unscoped form may be used.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Closing an editor drops an edit it has not yet handed to its draft save,
so a keystroke typed just before the move could be lost. The editors are
now flushed while still mounted, and closed right after with no await in
between.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
A script draft kept its base and parent_hash on the grounds that a fork
shares its parent's script hashes. That holds for what the fork cloned,
but not for a version deployed in the parent afterwards, and a deploy in
the fork naming it as parent is refused. The copy now keeps the lineage
only when the target has that version.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
* refactor: harmonize flow and script settings layout
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
* fix: keep the priority input open while it is edited
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
* fix: keep settings rows open while edited and name the deploying user for non-admins
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
* fix: write a setting before its row opens and show its real state while edited
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
* fix: slide settings rows open to their full height
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
* fix: remount a settings row's fields when its toggle turns it on
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
* fix: put the AI prompt behind a settings toggle
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat: summarize active runtime and permission settings on the metadata tab
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* refactor: move the active settings chips into the settings header
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: bring back the active setting icons on the settings tabs
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-authored-by: Ruben Fiszel <ruben@windmill.dev>
* feat: show the draft badge on Home's favorite and recent cards
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
* fix: show the draft badge on Home's agent cards
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: remove the home and AI sessions composer view transition
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
* docs: drop view transition rationale from composer 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>
The proxy rebuilds the hub URL instead of passing the request through, so a
`?version=` on it was dropped and the current version exported in its place.
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* feat: add ai review to deployment requests
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: bound ai review fetches and surface unreadable items
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat: add fix in ai session and model picker to deployment ai review
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat: add workspace instructions for deployment ai review
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: read review instructions from the parent and bind ai review to the fork
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: pin the fix-all session preview to the fork's compare page
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* refactor: drop workspace-settings instructions from deployment ai review
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat: review the selected items with ai on compare and deploy
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: mark an ai review out of date when its items change
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat: post all ai review findings as comments at once
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* chore: update ee-repo-ref to 77703cf32e58964906d87ee83ddda44b5b8d1b7e
This commit updates the EE repository reference after PR #926 was merged in windmill-ee-private.
Previous ee-repo-ref: e30ab9e69d1854fcaed5620c934ace32acb0a729
New ee-repo-ref: 77703cf32e58964906d87ee83ddda44b5b8d1b7e
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: configurable public base url for the MCP gateway
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: keep mcpTokenUrlDisabled's doc comment on its function
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat: build MCP OAuth urls from the api base url, narrowable per surface
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: save and discard companion setting keys in the per-category settings flow
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* fix: show the protection-rule bypass toggle inline
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: make the bypass toggle small and red
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Fork creation re-points an app policy or trigger in a cloned draft that
names nobody in the fork at its creator, since a deploy there rejects an
identity that does not resolve. The transfer copied drafts without that
step, and replace_existing overwrote the clone's repaired copy. The draft
half of the repoint is now shared and runs on the rows a transfer copies.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
- Monaco's Editor registers in pendingEditorFlush next to SimpleEditor,
and the move drains that registry, so SimpleEditor buffers (step input
expressions, resource and variable JSON fields) also land before it.
The separate keystroke registry is gone.
- A flow, script or app editor tab closed for a move says it reopens
once the move ends, instead of showing the parent's viewer.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
They keep their edits as drafts like the other editors, so an edit during
the move could save one in the workspace being left. Their state lives in
the draft, so closing them loses nothing; they reopen in the fork.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
* feat(ai-agent): built-in approval tool that parks the agent
An AI agent step can now be given a built-in "Request approval" tool. The model
calls `request_approval` with a message; the agent stores its conversation in
the new `ai_agent_checkpoint` table, releases its worker by parking its own
queue row like a workflow-as-code parent, and resumes with the answer (approved,
approver, comment) or a timeout once someone answers from the run page.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix(ai-agent): tie approval answers to their request and hold the turn
- A turn that asks for approval runs none of its other calls; they are refused
so the model repeats them after the answer.
- The run page sends the request's call id. An answer naming another request is
ignored and the agent parks again for the time left; `suspend` is zeroed when
the answer is read, so answers sent while the agent runs are refused.
- The checkpoint is read whatever the current roster holds, the answer's
outcome is written by position, and a cancel that beats the park completes
the job as cancelled.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix(ai-agent): say why calls beside an invalid approval request were refused
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix(ai-agent): one approval form per request, none on a finished run
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat(ai-agent): answer approval requests from a flow's chat
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix(ai-agent): show chat approvals for agents that do not stream
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat(ai-agent): approval as a per-tool setting, built-in tool asks a question
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix(ai-agent): say when a nested agent leaves out tools that require approval
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat(ai-agent): show chat approvals and questions on the tool's own card
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat(ai-agent): question choices, and approval buttons shared with approval steps
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat(ai-agent): show a waiting agent as suspended, and refused calls as not run
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix(ai-agent): each added chat card shows its own call, answered marker keyed by job
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* test(ai-agent): approve and reject a held call through resume_suspended
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat(ai-agent): require approval in a tool settings tab, plain descriptions on built-in tool panes
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix(ai-agent): sentence case for the web search tool label
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat(ai-agent): built-in tool drawers explain themselves in the header subtitle
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix(ai-agent): clearer question tool subtitle
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix(ai-agent): badge the tool settings tab like run settings
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* chore(ai-agent): regenerate system prompts and MCP session files
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Variable, resource and trigger editors save on click and write no draft,
so closing them during a move protected nothing and lost a half-filled
form when the move stopped. Only the editors that save drafts close, and
the pipeline tab names the move instead of Use mode.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
* fix: detect attached -c and --no-config in DENO_FLAGS
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: keep tracing span on handle_deno_job
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
An edit in the session's preview during a move saves a draft in the
workspace being left, after the move listed what it brings, at any of
its awaits. The session now reads as read-only for the whole move, so
the preview shows its items without an editor until the move ends.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The move's fork gate checked only the workspace's forking rule. A role
missing a capability would get the default role in a fork it creates, so
the gate also refuses restricted roles, as the workspace picker does.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Creating the fork takes seconds, during which an edit in the session's
preview can save a draft in the parent that the move's list did not have.
The move now flushes and lists the drafts again before the transfer, and
reopens the dialog on the created fork when they changed.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
* fix: serve new MCP OAuth sign-ins the session toolset on /api/mcp/gateway
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: keep the mcp:session marker across every token scope edit
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: serve marked MCP sign-ins the session toolset on the per-workspace URL too
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: let a restricted caller re-save a token's mcp:session marker
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: preselect build and run when an MCP client requests every scope
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: advertise only granting MCP scopes in protected resource metadata
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: apply the blanket-request default on the consent page only
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix: treat only an mcp:all request with both narrowings as blanket
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>