Files
windmill/backend/windmill-api
Guilhem LemouelandClaude Opus 5 21eb5d28bd feat(sessions): open deployed pages from the preview panel
The preview panel showed an item's editor and nothing else. It now shows the
deployed page too, as a tab of its own, and that page is where a deployed run
happens.

**Two sides, two tabs.** The editor and the deployed page are different things
to look at, so `isItemTabFor` keys on the side rather than the item: asking for
a side already open focuses it, asking for the other opens it alongside. Two
editors for one item still cannot coexist — they would race its single
(kind, path) cell — but an editor beside a viewer is safe, since the viewer
reads the deployed version over the API and holds no cell. The tab breadcrumb
keeps re-pointing in place; `Exit & see details` and the detail page's `Edit`
open the other side instead of consuming the one you are on.

**The picker opens what exists.** A row opens the deployed page, or the editor
when nothing is deployed there, and carries a Draft / Draft only badge in the
review dock's words. `WorkspaceItem` gained `draftOnly` and `hasDraft` from the
listers, which already returned both; deploys now invalidate the picker cache,
so a just-deployed item stops reading as a draft. Rows also carry a hover Edit
action, reachable from the keyboard with the pick modifier.

**Deployed runs adopt the page.** `run_script` and `run_flow` open the item's
own deployed page with the model's arguments in its run form, announced by the
strip that says the agent is waiting and declines the call. Run hands those
arguments to the parked call rather than starting a job, so the tool still owns
the run and the chat card still gets its logs; the tab then becomes that run.
Test runs keep the chat's own form — they execute the draft, which the deployed
page would not.

`open_preview` gained a `mode`, narrowed out of the advertised schema for a
session that cannot write drafts and re-checked per path in the handler, where
a refusal reports "couldn't check" apart from "denied".

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-30 02:32:59 -07:00
..
2024-04-08 01:42:43 +02:00

Windmill API

The API server, exposing functionality to other components and the frontend

This crate exposes both a library as well as a binary target.