mirror of
https://github.com/windmill-labs/windmill.git
synced 2026-10-30 16:17:25 +00:00
2e4c0789a25a51ec9fdb05ea6f57e1e70c73e591
5
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
2e4c0789a2 |
feat: agent to flow, tabbed agent page, one webhook panel with an AI prompt (#11903)
* feat: open a flow linking an agent from its menu Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix: toast when the flow handoff cannot be stored Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * feat: turn an agent into a flow from its editor, and into a chat app from its page Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix: let sandboxed apps run agents, and keep the flow handoff race-free Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix: save the new flow as a draft before letting the agent draft go Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix: offer the chat app only to those who may build apps Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * feat: give the agent page's chat app section a tab on small screens Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix: show the flow handoff as an info alert, framed around context and output Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix: keep the flow handoff from operators and say why the chat app is locked Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix: collapse the flow handoff hint to its title and button Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix: show the flow handoff as a corner hint, as the flow editor shows its own Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix: name the agent on the app button and say why it is disabled Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix: ask whether the agent needs steps before or after it Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix: name what a flow adds around the agent in its hint Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix: say a never-deployed agent turns into a flow Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * revert: leave agent runs and the raw-app guidance to the chat SDK's runnable transport Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * feat: show the agent page's sections as tabs at every width, as a chat-mode flow's page does Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * feat: one webhook panel for scripts, flows and agents, with an AI prompt and chat-mode examples Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * docs: describe the preprocessor's event argument instead of the v1 wm_trigger Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * docs: give the flow chat's preprocessor example the v2 event signature Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * feat: group a webhook's request choices and examples under an HTTP tab, beside the AI prompt and chat SDK Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * chore: drop a comment about guidance this branch no longer adds Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix: say where the AI prompt expects the webhook token Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix: tell the chat-flow prompt that memory_id is required Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix: keep the webhook tabs next to their content Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix: keep the webhook's REST tab name Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * feat: build an agent's chat app from a template, not an AI session Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix: don't send the agent chat app's message on an IME confirmation Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * feat: agent API tab with one row of call examples and a copy-prompt button Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * feat: open build app in an AI session when AI sessions are on Co-Authored-By: Claude Opus 5.5 <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> * fix: keep build app in the editor when windmill ai is off Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * feat: webhook panel with http and chat sdk tabs over toggle settings 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> * fix: keep the webhook panel's http and chat sdk tabs close to their content 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> * feat: show the webhook request formats in a card with their toggle Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * feat: put the chat sdk example in the same card as the http request Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * feat: add a windmill app tab to chat-mode flow pages Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * feat: title the webhook example cards and label the ai prompt Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * feat: offer the chat app from the conversations sidebar instead of a tab Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * chore: raise the chat app's chat-sdk floor to 1.851.0 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix: render the agent's chat app card only once the workspace is known Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix: gate the flow's build chat app menu item like the sidebar card Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix: build the agent's chat app through the page's navigation, for app-only authors too Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix: keep an imported app in the editor inside a session preview Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * feat: build a form app from an agent without managed memory Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * test: cover the agent form app's generated source Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> |
||
|
|
e0da560516 |
feat: build MCP OAuth urls from the api base url, narrowable per surface (#12010)
* 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> |
||
|
|
34de8bc06d |
feat: slack agents through a workspace's own slack app (#11912)
* feat: let Slack agents answer through a workspace's own Slack app, with signing secrets set from the UI The instance Slack app's signing secret can be set in its OAuth setting as well as SLACK_SIGNING_SECRET, and a workspace's own Slack app takes its own in the workspace settings. Each secret only vouches for the workspaces connected through its app, so /windmill keeps working for a workspace whose app has none set. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix: keep Slack signing secrets out of logs and verify an own app without a secret with the instance's Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix: report a workspace app's own signing secret in the Slack agents status Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix: check Slack approval callbacks against the instance signing secret only An approval can be sent through any Slack resource, so the team's workspace connections do not tell which app signed its callback. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix: share the Slack app setup instructions and require the signing secret for agents Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix: tidy the Slack signing secret copy and show a set secret as masked Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix: check a workspace app only against its own signing secret, and approvals against their workspace's Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix: accept a Slack approval signed by the workspace's app or the instance's Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix: check Slack's signature on approvals only when sent through the workspace's Slack connection Any other Slack resource may belong to any Slack app, so its callbacks rest on the payload HMAC alone. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix: address review findings on Slack signature checks and the signing secret field - reject Slack signatures older than five minutes, so a captured request cannot be replayed - let a reachable workspace's command script take a message before another workspace's help reply - remove a saved workspace signing secret from its field: the button reads Remove when it is empty - set the signing secret on connect only when one was entered - tell non-admins who can set the signing secret Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix: keep SLACK_SIGNING_SECRET for workspace apps without a secret, and route a verified request only to its workspaces - a workspace on its own app with no secret of its own is checked against SLACK_SIGNING_SECRET, which may hold that app's secret from before workspaces had one; the instance setting's secret still never applies to it - once a secret verifies a request, only the workspaces it verified take it, command scripts included: it proves which app sent the request - compute the replay window with abs_diff, which cannot overflow Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * chore: update ee-repo-ref to c8d562aa9d75a7e99bf0ecd1ac224f532452a07e This commit updates the EE repository reference after PR #907 was merged in windmill-ee-private. Previous ee-repo-ref: 0864b0ab943defa8b8d55838ef09ab7dacfac17f New ee-repo-ref: c8d562aa9d75a7e99bf0ecd1ac224f532452a07e Automated by sync-ee-ref workflow. --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: windmill-internal-app[bot] <windmill-internal-app[bot]@users.noreply.github.com> |
||
|
|
394d345e0c |
fix: give the agent page's API and Slack sections tabs on small screens (#11901)
* fix: give the agent page's API and Slack panel a tab on small screens Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix: keep the agent pane mounted across the small-screen breakpoint Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix: make the covered agent pane inert on the API tab Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix: flatten the agent page's API and Slack sections into its small-screen tabs Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix: fall back to the API tab when the agent has no Slack section Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> |
||
|
|
35b250e767 |
feat: let AI agents answer in Slack (#11630)
* feat: let AI agents answer in Slack Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix: dedupe Slack deliveries by message and route only connected workspaces Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix: key Slack conversations with the workspace secret and require signed Slack requests Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix: keep a named agent on its thread after an empty question and flag a missing Slack signing secret Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix: register the slack_agents token scope domain Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * feat: name the Slack bot, offer Slack only for chat agents, align the agent API tab with webhooks Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix: warn when Slack can't be reached instead of showing a placeholder bot name Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * feat: chat SDK, streaming examples and a copyable integration prompt on the agent API tab Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix: keep the base path in the chat SDK example, list slack_agents token scopes, bound the bot name lookup Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * feat: opt into the AI agent Slack scopes at connect, store the signing secret in instance settings, surface the integration prompt Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix: dispatch Slack agents only on a verified request, warn when the connection lacks the agent scopes, register the callback redirect URLs Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix: point the agent chat examples at @windmill-labs/chat-sdk Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix: build the agent API examples on the configured API base URL Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix: say that a channel's default agent takes its /windmill commands Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * feat: list the channels answered by an agent in the workspace Slack settings Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * refactor: keep the Slack signing secret in SLACK_SIGNING_SECRET, warn at connect when it is missing, move the integration prompt to a tab Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix: wrap copyable code blocks at word boundaries Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix: open the agent panel on its API tab, put the AI prompt first, list channels like the critical alert channels, cap the manifest's height Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * feat: group the agent API examples by AI prompt, TypeScript and HTTP, with React and framework-free chat SDK examples Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix: have the agent integration prompt read the token from WINDMILL_TOKEN Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix: trim the agent API tab intro, name the Slack app in mentions, define the SDK example's output Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * feat: share agents in selected Slack channels, run as their identity Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * feat: share agents in Slack channels with anyone or workspace members only Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * feat: set who can ask an agent in Slack and its channels from its settings Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix: treat a missing Slack audience as workspace members Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * feat: list Slack channels before who can ask, name the run-as user in each choice Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix: name the next deploy's run-as user in Slack choices, turn agents on by default when connecting Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * feat: answer agents on mentions only, group agent settings into sections Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * feat: show how to ask an agent in Slack first, keep agent scopes opt-in Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * feat: list agents shared in Slack in a setting card and table Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * chore: update ee-repo-ref to 10bc314c95094c0851743cbca31b50a3b37d42fd This commit updates the EE repository reference after PR #865 was merged in windmill-ee-private. Previous ee-repo-ref: 47d8fbac461171bd93d888b49cc1c7730a2b3f96 New ee-repo-ref: 10bc314c95094c0851743cbca31b50a3b37d42fd Automated by sync-ee-ref workflow. --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Ruben Fiszel <ruben@windmill.dev> Co-authored-by: windmill-internal-app[bot] <windmill-internal-app[bot]@users.noreply.github.com> |