Intent Management
Intents are the core unit of work in Studio. Each Intent represents a distinct data question or pipeline and keeps its own Conversation. Build and Fix always use an Intent Branch and Ephemeral Workspace. Detect can also run without those managed resources while still using the Domain repository, production data, Secrets Scope, plugins, tools, model, and a writable agent-container workspace.
Creating a New Intent
- In the sidebar, click New Intent.
- In Create Intent, choose the Agent identity: Build, Fix, or Detect.
- When you choose Detect, decide whether to select Create an Intent branch and ephemeral workspace. It is unchecked by default. Select it when the investigation needs managed code or data-platform changes.
- Click Create. Studio creates, activates, and opens the Intent through the normal setup flow.
Build and Fix always create an Intent Branch and Ephemeral Workspace, so they do not show the checkbox. The Detect choice cannot be changed after creation. Studio initially names the Intent New Intent and opens rename editing; you can rename it later from the context menu.
Tip: The New Intent button is disabled when the active domain is archived. Switch to an active domain first.
Searching Intents
Use the Search intents... bar at the top of the sidebar to filter the intent list:
- Click the search bar (or press the Search Intents icon when the sidebar is collapsed).
- Start typing — the list filters in real time.
- Click the × button at the right of the search field to clear and show all intents.
Search matches against the intent title, case-insensitively.
Intent List Sections
Intents are grouped into collapsible sections, each with a header showing the section name and a count badge:
| Section | Contents | Default state |
|---|---|---|
| Starred | Pinned intents that are not archived. Only shown if at least one exists. | Expanded |
| Recents | Non-pinned, non-archived intents. Always shown. | Expanded |
| Archived | Archived intents. Only shown if at least one exists. | Collapsed |
Click the section header chevron to expand or collapse each section.
When there are no intents at all, a centered message reads: "No intents yet. Create one to get started." (or "No intents match your search" when a search query is active).
Intent Card Anatomy
Each intent card in the list shows:
| Element | Position | Description |
|---|---|---|
| Archive icon | Before the title | Small archive icon, only shown for archived intents |
| Title | Left side | Truncated intent title; selected intent is highlighted in blue; archived intents have reduced opacity |
| Status pill | Right side | Labeled summary of the server-reported Intent status |
| Star | Right side | Filled amber star if the intent is pinned/starred. Always visible (not just on hover). |
| Workspace status | Right side | Spinning loader when an ephemeral workspace is being created; red alert icon on failure |
| Three-dot menu | Right side | Appears on hover (or when open); gives access to all intent actions |
Opening an Intent
Select an Intent card to enter its workspace. Studio uses the card's current status to decide whether it can attach immediately or must restore the session first:
- Ready, Working, and Waiting for confirmation attach immediately when Studio can confirm that the existing agent session is yours and healthy.
- Sleeping, Runtime failed, and Runtime disconnected restore or reconnect the retained Conversation before enabling the workspace. They do not start the work again.
- Watching, Archived, and Terminal open read-only.
- Setup and recovery states such as Draft, Provisioning, Activation failed, Release pending, Unarchiving, and Invalid keep their status-specific controls instead of opening an agent session.
An immediate attachment confirms that you still hold the Intent's Edit Lease before Studio enables drive controls. If confirmation fails, Studio returns to the Intent's Domain and shows the specific cause: The edit lease is no longer available, You no longer have permission to drive this Intent, This Intent is no longer available, or Lease confirmation could not be completed. The existing agent session remains online; select the Intent again after resolving the cause.
If an Intent that is already selected becomes Sleeping, Studio returns you to its Domain without showing a connection-loss warning. A Runtime disconnected failure also ends the selection, but Studio reports the lost connection. In either case, select the Intent again to make a deliberate reconnect attempt.
Context Menu Actions
Hover over an intent card to reveal the ⋯ (three-dot) context menu. Click it to see these options:
Details
Opens the Intent Details modal showing:
- Title
- Agent
- Intent resources — Required or Not required
- GitHub Branch — shown only when Intent resources are required
- Ephemeral data-platform resource — shown only when Intent resources are required; its label and link depend on the Domain platform
Star / Unstar
Toggles the pinned state of the intent. Starred intents show a filled amber star badge that is always visible on the card (not just on hover). The menu item label toggles between "Star" and "Unstar" based on current state.
Share Intent
Copies a direct URL to this intent to your clipboard. The URL uses the ?intent=<id> query parameter format. A toast notification confirms "Link copied to clipboard".
Rename
- Click Rename in the context menu.
- The intent title becomes an inline text input, pre-selected.
- Edit the title and press Enter to save, or Escape to cancel.
- Clicking outside the input also saves the new title.
Pause
Only the person who holds the active Edit Lease sees Pause in an active Intent's ellipsis menu. Pause remains available while a Turn is running or waiting for confirmation. Choose it when you want Studio to settle that work, release your Edit Lease, close the Intent, and return you to the selected Domain so you can choose another Intent there. Studio returns to Workspace only when no Domain is selected; changing Domain is a separate action.
After you choose Pause, the Intent shows a Pausing… state and does not accept new messages or other driving actions. Studio keeps your Edit Lease until the agent reaches a safe settled state. Once it does, Studio leaves the Intent even if container cleanup is still finishing. If Pause fails, the Intent stays open, keeps the lease, and accepts input again so you can retry.
If the agent doesn't settle within about 30 seconds, Studio shows This Intent's agent isn't responding and asks whether to stop the container; unsaved work may be lost. Choosing Stop the container stops it even though it's unresponsive and finishes Pause the same way a normal Pause does — releasing your Edit Lease and leaving the Intent dormant. Choosing Cancel leaves the runtime untouched and Pause stays available to try again.
Pause always ends with the Intent dormant, never with a fresh session in place. To start over with a fresh agent runtime — for example after changing action-confirmation settings, or to reload MCP connections — Pause the Intent, then open it again. Opening keeps the Intent, Conversation, edit lease eligibility, presence, and any managed resources intact and starts a new AgentSession the same way opening any dormant Intent does.
Use the chat Stop button instead when you want to interrupt a Turn but remain in the Intent. Stop leaves the Intent open and the Edit Lease held.
There is no duplicate Stop item in the ellipsis menu and no native right-click menu. /conversation/cancel is only the endpoint behind the chat Stop button; it is not a separate Cancel action.
While an agent Turn is running or waiting for confirmation, Mark as Merged, Close, Archive, and Delete are disabled for that Intent. Use Stop agent to end the current Turn or Pause to release the Intent, then retry the lifecycle action after the Turn settles. Other Intents remain available.
Pause is optional. Leaving an Intent, switching to another Intent, or closing the page does not pause the conversation; it only stops browser heartbeat and presence. Viewers do not keep the AgentSession alive. Once the ordinary lease and any active work finish, the runtime may sleep. Studio then returns every attached viewer to the Domain and clears their Presence; any eligible person can select the Intent to open it again.
A successful Pause closes the shared AgentSession for everyone watching that Intent. Studio returns every attached browser to the Domain; reopening starts a fresh AgentSession on the same durable Conversation.
When other people have the Intent open, the footer shows who is editing and the earliest connected viewer by name. If more viewers are present, Studio shows their number as +x instead of listing every name. Your own browser user and the editor are not included in that viewer count.
Repair
If a card is Invalid, hover the invalid-state icon to see a product explanation of the affected runtime, conversation, Branch, Ephemeral Workspace, or edit access. An invalid Intent cannot be opened.
For an Active Intent, Repair appears in the ⋯ menu only when every invalid condition is an unavailable Branch, unavailable Ephemeral Workspace, or a runtime that needs reset. Other invalid states are Close-only.
The Repair this Intent? dialog explains the recovery Studio will try. Depending on the problem, Studio recreates the Branch from the current tip of the Domain's default Branch, creates a fresh Ephemeral Workspace from the Domain binding, resets the stale runtime, or combines those actions. Choose Cancel to leave the Intent unchanged or Repair to proceed.
Studio reports repair success only after checking that the Intent is no longer invalid. If any problem remains, the dialog shows the remaining repair plan and stays open. Choose Repair again to retry; there is no attempt limit, and Studio does not open the Intent after an incomplete repair.
After a successful repair, Studio immediately attempts a normal Open. If that Open fails, the dialog offers Retry Open. Close remains available in the ⋯ menu.
Archive / Unarchive
- Archive — tears down the AgentSession, keeps the Conversation and any managed Intent resources, and moves the Intent to the Archived section.
- Unarchive — restores the Intent to Active. Resource-backed Intents reuse their retained Branch and Workspace. A resource-less Detect Intent creates no resources; its next cold Open clones the Domain's then-current default Branch.
Both operations are available from the context menu. The menu item label toggles between "Archive" and "Unarchive".
Archiving a resource-less Detect Intent intentionally discards files in its disposable clone without staging, committing, or pushing them. The Conversation remains available.
Fork
Choose Fork to create a new Intent with a copy of the source Conversation. The source remains unchanged. Build and Fix children always receive a new Intent Branch and Ephemeral Workspace. Forking a Detect Intent opens Fork Intent and repeats the Create an Intent branch and ephemeral workspace choice, unchecked by default; the child's choice is independent of the source.
A resource-backed child of a resource-less Detect source starts from the Domain default Branch and provisions a new Ephemeral Workspace. Fork never copies disposable file changes from a resource-less source; it copies the Conversation context.
Fork remains available while the source agent is running. Studio takes a safe Conversation snapshot and lets the source keep running. For a resource-backed source, any uncommitted workspace changes from that live Turn are not copied; the child starts from the source Branch's durable tip.
To fork from a message, hover over an eligible user or assistant message and choose Fork from here. The child includes that message and earlier Conversation history; later messages remain in the source. The message is not put into the child composer or submitted again.
An agent can also create the same parallel Intent from its current work without interrupting its active Turn. The agent-created Fork keeps the default <source title> (Fork) name and starts without an initial message; send the child a follow-up when it is ready for work.
Mark as Merged
Resource-backed work can use Mark as Merged under the normal lifecycle and PR rules. For resource-less Detect, the item remains visible where applicable but is disabled with the explanation Mark as Merged requires an Intent branch and ephemeral workspace. A direct Complete API call is a successful no-op and does not change the Intent's state.
Delete
- Click Delete in the context menu (red text).
- Confirm the deletion in the confirmation dialog.
Deletion is permanent. Studio hides the Conversation for a seven-day audit tombstone and reclaims any managed Intent resources; there is no restore action.
If the intent's agent is mid-turn, the delete is blocked and Studio explains that the running turn must be stopped first — the intent is left untouched rather than reported as deleted.
Intent States
| State | Visual indicator |
|---|---|
| Selected | Blue background on the card |
| Status | User-scoped status pill on the right, shown only while you are Driving or Watching that Intent |
| Status unavailable | The server status could not be confirmed; the card remains visible but cannot be selected |
| Runtime disconnected | The live connection to the retained Conversation was lost; sending is unavailable until you select the Intent again |
| Starred | Filled amber star badge — always visible |
| Archived | Small archive icon before the title, reduced opacity; listed in the collapsed Archived section |
| Clone pending | "Setting up workspace" banner with spinner in the chat area |
| Clone failed | Error banner with actionable message and Retry Setup button |
| Workspace creating | Spinning loader icon on the right; banner shows "Creating Fabric workspace and lakehouse..." |
| Workspace failed | Red alert circle icon; details available in Intent Details modal |
If a card shows Status unavailable, Studio automatically refreshes its status once. If the status remains unavailable, open the context menu and choose Refresh status to try again. Until the server returns a complete status, the menu shows only Details and Refresh status; actions that change the Intent are unavailable.
Quick Reference
| Action | How |
|---|---|
| Create intent | Click New Intent button in sidebar |
| Search | Type in the Search intents... bar |
| Clear search | Click × in the search bar |
| Rename | Context menu → Rename → edit → Enter |
| Star/unstar | Context menu → Star or Unstar |
| Share | Context menu → Share Intent → copies ?intent=<id> URL |
| View details | Context menu → Details |
| Fork | Context menu → Fork |
| Fork from here | Eligible message hover → Fork from here |
| Mark as Merged | Context menu → Mark as Merged (resource-backed only) |
| Pause | Ellipsis menu → Pause (only while you hold the Edit Lease) |
| Fresh session | Pause the Intent, then open it again |
| Repair | Ellipsis menu → Repair → confirm |
| Archive | Context menu → Archive |
| Unarchive | Context menu → Unarchive |
| Delete | Context menu → Delete → confirm |