You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: en/ai-sre/apps.mdx
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -63,7 +63,7 @@ After changing namespace access or permissions, run the installation command aga
63
63
64
64
### Edit and revoke
65
65
66
-
You can edit the cluster name, scope, and namespace access from the Kubernetes App list. Revoking immediately invalidates the connection and token, but it does not remove the in-cluster agent or RBAC automatically. Run the uninstall command shown by the console in the target cluster. It removes only resources for this Kubernetes App and preserves the shared `flashduty` namespace.
66
+
You can edit the cluster name, scope, and namespace access from the Kubernetes App list. Changing the scope to **Shared** carries the same gate as creating a Shared App: only the account owner or admins can do it — a regular member is denied even for their own team's App and can only move an App to teams they belong to. Revoking immediately invalidates the connection and token, but it does not remove the in-cluster agent or RBAC automatically. Run the uninstall command shown by the console in the target cluster. It removes only resources for this Kubernetes App and preserves the shared `flashduty` namespace.
Copy file name to clipboardExpand all lines: en/ai-sre/artifacts.mdx
+8-2Lines changed: 8 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -49,7 +49,7 @@ Each card shows:
49
49
50
50
- A kind icon in the preview area: determined by file extension and content type — images, PDF, HTML, Markdown, tables (CSV / TSV), JSON, archives, and source code each get a dedicated icon, falling back to a generic file icon when the type can't be recognized;
51
51
- The title (single line, truncated beyond that; hover to see the full title);
52
-
-An "Edited …" relative timestamp — just now / N minutes ago / N hours ago / N days ago, or a specific date beyond 30 days;
52
+
-A **Created …** relative timestamp shown first — just now / N minutes ago / N hours ago / N days ago, or a specific date beyond 30 days. An **Edited …** line appears alongside only when the edit time differs from the creation time (the artifact was updated after creation); legacy rows without `created_at` show only "Edited …";
53
53
- A scope badge in the bottom right: team artifacts show the team name (highlighted green); personal artifacts show the creator's name (gray).
54
54
55
55
Clicking the card body opens the artifact's detail page. Hovering over a card reveals a "More actions" button in the top-right corner (always visible on touch devices).
@@ -91,10 +91,14 @@ The detail page route is `/ai-sre/artifacts/:artifactId`. The top toolbar offers
91
91
-**Share**: opens the share panel, where you can choose between "Account only" and "Public link" visibility — see [Share an artifact](#share-an-artifact) below;
92
92
-**Delete**: shown only when you have edit permission; requires confirmation;
93
93
-**More actions**: this menu appears only when at least one of the following is available —
94
-
-**Open session**: shown when you still have access to the artifact's source session; opens that session's full conversation (messages, tool calls, artifact history);
95
94
-**Download**: shown when the artifact is linked to a file.
96
95
-**Change scope**: shown when you have edit permission. You can move the artifact to an accessible team; the creator can also change it back to Personal.
97
96
97
+
Below the title there is a **source-session strip**:
98
+
99
+
- It shows the artifact's own "Created …" / "Edited …" timestamps (like the list cards: both are shown only when they differ);
100
+
- When you still have access to the artifact's source session, the strip also shows a **"Recently updated from session 〈session name〉"** button — the session name is resolved from the source session via `/safari/session/get`, and clicking it opens that session's full conversation (`chat?session_id=<sessionID>`, messages, tool calls, artifact history). If the source session was deleted or you no longer have access, the button is hidden and the artifact itself remains fully viewable.
101
+
98
102
The body renders the artifact according to its actual content type (for example, an HTML report renders inline as a page).
99
103
100
104
## Share an artifact
@@ -110,6 +114,8 @@ The **Share** button in the detail page toolbar opens the share panel. **Manage
110
114
111
115
### Public link
112
116
117
+
<Tip>**Plan requirement**: Public links require an On-call Pro or higher subscription, opening together with the AI SRE public beta. [Learn more](https://flashcat.cloud/flashduty/price/)</Tip>
118
+
113
119
After you choose **Public link**, the panel first shows a content preview and a risk notice; the link only takes effect once you click **Generate public link**:
Copy file name to clipboardExpand all lines: en/ai-sre/automations.mdx
+4-8Lines changed: 4 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -180,10 +180,10 @@ Run history is shown as a table with these columns:
180
180
181
181
| Column | Notes |
182
182
|---|---|
183
-
| Trigger | The trigger type of the run, such as `Schedule`, `HTTP POST`, `On-call incident`, or a manual run |
184
-
| Trigger details | A summary of the trigger context — for example severity, channel, or incident ID (depends on the trigger type; shows "None" when there is no context) |
183
+
| Name | The hidden session behind this run. The backend batch-resolves each run's session title (`session_name`, the hidden session's auto-generated name); when it can't be resolved, the cell falls back to the session ID (`session_id`) |
185
184
| Started at | The start time of the run |
186
185
| Duration | How long the run took |
186
+
| Triggers | The trigger type of the run, such as `Schedule`, `HTTP POST`, `On-call incident`, or `Run manually`|
187
187
| Status | The status of the run (see the table below) |
188
188
189
189
Run status values:
@@ -202,11 +202,7 @@ Three filters are available above the table:
202
202
203
203
-**Time range**: defaults to the **last 30 days**, adjustable, with a maximum span of **180 days**.
204
204
-**Status**: filter by the run statuses above, or choose **All statuses**.
The "Trigger type" filter currently does not include an On-call incident option — even though the "Trigger" column itself can display an `On-call incident` label, you cannot filter by it separately yet.
Run records returned by the API also include `trigger_kind`, which can be `schedule`, `manual`, `http_post`, `oncall_incident`, or `debug`. `manual` means the run was started through the run-now API, and `oncall_incident` means it was started by a matching On-call incident event.
212
208
@@ -241,7 +237,7 @@ Automation rules share the same two-level scope model as the other resources und
241
237
242
238
| Dimension | Rule |
243
239
|---|---|
244
-
| Ownership |**Personal rules** (`team_id=0`) belong to their creator; **team rules** (`team_id>0`) belong to that team. To create a team rule, the rule Owner must be a real member of the target team; account Owners and admins have no exemption. You can change a rule's scope: for personal-to-team and team-to-team changes, the rule Owner must belong to the destination team; team-to-person changes can only be made by the rule Owner. Before every run, the system also checks that the Owner of a team rule still belongs to its team. |
240
+
| Ownership |**Personal rules** (`team_id=0`) belong to their creator; **team rules** (`team_id>0`) belong to that team. To create a team rule, the rule Owner must be a real member of the target team; account Owners and admins have no exemption. You can change a rule's scope: personal rules can be moved to a team and team rules to another team — in both cases the rule Owner must belong to the destination team. However, a **team rule cannot be taken personal**: when editing a team rule, the scope selector no longer offers the "Personal" option (the backend rejects the conversion as well), and the rule stays with its team. If you need a personal copy, use the **Clone** button on the rule's detail page and pick the Personal scope in the prefilled create form before saving. Before every run, the system also checks that the Owner of a team rule still belongs to its team. |
245
241
| Visibility / list | The account Owner and admins see all rules; ordinary members see rules they created and rules of teams they belong to. |
246
242
| Edit / manage (team rules) | The account Owner and admins can manage any team rule; ordinary team members can manage rules of teams they belong to (enable / disable, edit, delete). |
247
243
| Edit / manage (personal rules) | Only the creator can manage a personal rule. The account Owner and admins have **no** exemption for other members' personal rules — they cannot even view its detail page; opening one returns "access denied" outright, not just a grayed-out button. |
Copy file name to clipboardExpand all lines: en/ai-sre/knowledge.mdx
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -139,7 +139,7 @@ Every Knowledge Pack has a scope: account-level (visible across the entire accou
139
139
140
140
**Edit permissions**: the Account Owner or account admin can edit any Knowledge Pack; team members can edit their team's team-level pack; there is no "creator retains extra rights" rule. The console grays out rows the current user cannot edit, and disables toggles and action buttons when you lack edit permission.
141
141
142
-
**Create and reassign**: to create a new team-level pack, you must belong to the target team; account-level creation is limited to the Account Owner or admins. When editing an existing pack, the Account Owner or admins can move it to any team to recover resources left behind by empty teams or departed members; regular members can move it only to teams they belong to.
142
+
**Create and reassign**: to create a new team-level pack, you must belong to the target team; account-level creation is limited to the Account Owner or admins. When editing an existing pack, the Account Owner or admins can move it to any team to recover resources left behind by empty teams or departed members; regular members can move it only to teams they belong to. Promoting an existing pack to account scope (**Set to Shared**) carries the same gate as creating an account-scope pack: only the Account Owner or admins can do it — a regular member cannot self-serve this even for their own team's pack.
143
143
144
144
**Runtime visibility**: at session start, only **account-level** resources plus resources belonging to the **team bound to the current session** are loaded. The bound team is either explicitly specified or derived from the team associated with the war-room incident. Other teams' knowledge is mounted on demand mid-session, when the agent reads that team's `DUTY.md`.
Copy file name to clipboardExpand all lines: en/ai-sre/mcp.mdx
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -203,7 +203,7 @@ MCP shares the same **two-level scope** model as other resources (Skills, Knowle
203
203
204
204
**Edit permissions**: Account owners or account admins can edit any MCP server; team members can edit team-level MCP servers that belong to **their team**. There is no creator-retains-rights exception. When you lack edit permission, the toggle and action buttons for that row appear as **read-only**.
205
205
206
-
**Create and reassign**: to create a new team-level MCP server, you must belong to the target team; account-level creation is limited to the account owner or admins. **Marketplace installs are the exception**: they are always account-scope, and any account member can install one (no owner/admin permission required). When editing an existing MCP server, the account owner or admins can move it to any team to recover resources left behind by empty teams or departed members; regular members can move it only to teams they belong to. However, **Marketplace-installed MCP servers cannot be reassigned to a team** — their scope is shown as a fixed account value in the edit form. A small number of legacy team-scoped Marketplace rows from earlier versions can still be changed back to account scope (promoted to shared); the reverse is not allowed.
206
+
**Create and reassign**: to create a new team-level MCP server, you must belong to the target team; account-level creation is limited to the account owner or admins. **Marketplace installs are the exception**: they are always account-scope, and any account member can install one (no owner/admin permission required). When editing an existing MCP server, the account owner or admins can move it to any team to recover resources left behind by empty teams or departed members; regular members can move it only to teams they belong to. However, **Marketplace-installed MCP servers cannot be reassigned to a team** — their scope is shown as a fixed account value in the edit form. A small number of legacy team-scoped Marketplace rows from earlier versions can still be changed back to account scope (promoted to shared); the reverse is not allowed. **Promoting to shared carries the same gate as account-level creation: only the account owner or admins can do it** — a regular member is denied even for servers belonging to their own team, and the prompt now reads "ask an admin to make it shared" instead of naming the owning team.
207
207
208
208
**Runtime visibility**: At session start, the agent is offered only **account-level** MCP servers and servers belonging to the **team bound to the current session**. Once the agent reads a team's knowledge during an investigation, that team's MCP servers and Skills are mounted into the session on demand. **The account is the only security boundary at runtime; the team is an ownership and editing tag only.**
Click the plus button at the lower left of the input box to choose files, or paste images directly. Supported formats include images, PDFs, text / Markdown / CSV / HTML, and Office documents (Word / Excel / PowerPoint), up to **20 MB** per file. HTML files are read as plain text and rendered in the sandbox — any scripts inside them are not executed. A single message can carry at most **9 attachments**, and the total size of all attachments in one message cannot exceed **50 MB**; exceeding either limit shows a corresponding message, and the 50 MB total is enforced server-side against the actual sizes of successfully uploaded files. Screenshots can be pasted directly into the chat.
122
+
Click the plus button at the lower left of the input box to choose files, or paste images directly. Supported formats include images, PDFs, text / Markdown / CSV / HTML, and Office documents (Word / Excel / PowerPoint), up to **20 MB** per file. HTML files are read as plain text and rendered in the sandbox — any scripts inside them are not executed. A single message can carry at most **9 attachments**, and the total size of all attachments in one message cannot exceed **50 MB**; both limits are validated client-side as soon as you pick the files, and exceeding either shows a corresponding message — at this point the attachments are only staged locally (pending chips) and uploaded together when the message is sent. Screenshots can be pasted directly into the chat.
123
123
124
124
Extensions not listed above — such as code and config files like `.go`, `.py`, `.yaml` — are also accepted as plain text, as long as the entire file content is valid UTF-8. Empty files are the exception and are still rejected.
125
125
@@ -129,6 +129,8 @@ Type a message in the input box at the bottom and press Enter to send. The input
129
129
-**Per-file validation**: every file in the folder is still checked against the single-file rules (20 MB per file, 50 MB total, type validation). Files that fail are skipped, and after you pick a folder the input area shows a "Skipped N files" list naming each file and its skip reason (over 20 MB / over the 50 MB attachment total / not a text file / unsupported file type).
130
130
-**Attachment counting**: the whole folder counts as **1 attachment** in a message, toward the same 9-attachment limit.
131
131
-**Directory structure preserved**: the relative path of every file in the folder (including the top-level folder name) is preserved and staged into the sandbox. The agent sees a path-sorted file listing (an envelope with the file count and total size) rather than the file contents inlined into context; it reads individual files on demand with the read / bash / grep tools inside the sandbox.
132
+
133
+
**Inline truncation of large files**: attachments reach the agent as extracted text. When the extracted text exceeds **64 KB**, only the first **32 KB** is inlined (cut at a valid UTF-8 boundary), and the attachment envelope carries a pointer to the full file staged in the sandbox (like `~/.flashduty/attachments/...`) — if the full content matters, ask the agent to read the file from the sandbox with the read / bash tools; nothing is lost. In addition, PDFs larger than **3 MB** are no longer passed natively to the model; they fall back to text extraction under the same truncation rule.
132
134
</Accordion>
133
135
<Accordiontitle="Context references"icon="link">
134
136
When you enter AI SRE from an incident, alert, monitor rule, monitor target, or service topology page, the related object is embedded into the input box as a **reference capsule** — a small inline tag indicating the kind of object referenced — an incident, alert event, alert, monitor rule, host, monitor target, service topology, or on-call analytics — that travels with the message so the agent can start its analysis from that object directly. Click the capsule to open the referenced object in a new tab, or click its close button to remove the reference before sending. A single message can carry multiple references. Besides objects carried in automatically from a related page, you can also type `@` directly in any session's input box to trigger an incident search dropdown (supporting fuzzy keyword search and a list of recent incidents); selecting one inserts the same kind of reference capsule — a standalone entry point available at any time.
@@ -270,14 +272,17 @@ The card also has a free-text box to add specifics (optional). On submit, the fe
270
272
271
273
As a conversation grows longer, the session context approaches the model's context-window limit. AI SRE automatically compacts older conversation history — summarizing it into a digest while preserving recent content — to free up context space without losing critical information.
272
274
273
-
Compaction is triggered in three ways:
275
+
Compaction is triggered in four ways:
274
276
275
277
| Trigger | Timing |
276
278
|---|---|
277
279
| Automatic (before a turn) | Before a turn starts, when context usage exceeds the threshold |
278
280
| Automatic (mid-turn) | During a turn, if context continues to grow and crosses the threshold again |
281
+
| Automatic (event count) | Once the conversation reaches about **500 events**, even if token usage is still below the threshold |
279
282
| Manual | You explicitly trigger compaction with the `/compact` command |
280
283
284
+
The **event-count trigger** is a safety net: in a session made of many short turns, the token estimate can stay below the threshold for a long time while the number of events (messages, tool calls, and so on) keeps growing. Compaction fires once the count reaches about 500, so the history window cannot freeze against the model's per-load row cap. If you see compaction happen while the Context percentage is well below the threshold, this is why.
285
+
281
286
### What You Will See
282
287
283
288
-**Compaction in progress**: A status line reading "Compacting conversation context…" appears in the chat stream, showing elapsed time and progress; it disappears automatically when compaction finishes.
0 commit comments