Skip to content

Commit dff3335

Browse files
jakstclaude
andauthored
Bring the quarantine guide and MCP reference up to date (#21)
Updates the quarantine guide and MCP reference to match the product: quarantined tests run without retries, and active rules can be edited (dashboard, `quarantine update`, `update_quarantine_rule`). 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
1 parent 0b03cd4 commit dff3335

2 files changed

Lines changed: 39 additions & 13 deletions

File tree

‎src/content/docs/guides/quarantine-tests.mdx‎

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@ Run your suite in Endform first so you can select it in the dashboard.
3333
- **Playwright project:** Match a project such as `chromium`.
3434
- **Branch:** Match a branch such as `main`.
3535
4. Select **Preview matches** to check the scope.
36-
5. Under **Reason & expiry**, optionally add context for your team and an expiry
37-
date. The expiry input uses your local time.
36+
5. Optionally add **Context** for your team and an **Expiry** date. The expiry
37+
input uses your local time.
3838
6. Select **Create rule**. The rule applies to matching tests in new suite runs.
3939

4040
All filled-in fields must match exactly. Empty fields match any value within the
@@ -62,15 +62,20 @@ npx endform@latest quarantine create \
6262
```
6363

6464
Creation requires `--suite-id` and at least one of `--test-id`, `--project`, or
65-
`--branch`. List active rules, include inactive rules, or deactivate a rule by
66-
its exact ID:
65+
`--branch`. List active rules, include inactive rules, update an active rule, or
66+
deactivate a rule by its exact ID:
6767

6868
```bash
6969
npx endform@latest quarantine list
7070
npx endform@latest quarantine list --all
71+
npx endform@latest quarantine update rule_789 --test-id test_456 --ends-at 2026-12-01T12:00:00Z
7172
npx endform@latest quarantine deactivate rule_789
7273
```
7374

75+
`quarantine update` replaces all of a rule's settings. Omitted `--test-id`,
76+
`--project`, or `--branch` options match any value, and an omitted `--reason`
77+
or `--ends-at` is cleared. The suite cannot change.
78+
7479
An AI coding agent can follow the same sample-driven workflow through the
7580
[Modify quarantine rules with AI](/docs/guides/modify-quarantine-rules-with-ai)
7681
guide.
@@ -110,9 +115,8 @@ branches in the selected suite.
110115
The selected test is matched by its ID. Renaming or moving it, or changing its
111116
describe blocks, creates a different test ID that this rule will not match.
112117

113-
On a new run, the test still executes with its configured retries. If it fails
114-
after exhausting retries, the suite can still pass when the other tests pass
115-
and there are no blocking errors.
118+
On a new run, the test runs once, without retries. If it fails, the suite can
119+
still pass when the other tests pass and there are no blocking errors.
116120

117121
<figure>
118122
<Image
@@ -174,8 +178,8 @@ Endform's stored outcomes. If you use HTML, JUnit, or custom reporters, read
174178
## Rule timing and overlapping rules
175179

176180
Endform determines which rule applies when a suite run starts. Creating,
177-
expiring, or deactivating a rule does not change an ongoing run or rewrite
178-
historical results.
181+
editing, expiring, or deactivating a rule does not change an ongoing run or
182+
rewrite historical results.
179183

180184
When several active rules match a test, the oldest matching rule applies. After
181185
it expires or is deactivated, the next matching active rule can apply to future
@@ -194,6 +198,8 @@ Check for other matching active rules: deactivating one rule does not remove
194198
quarantine if another still matches. Start a new suite run to verify the test is
195199
no longer quarantined.
196200

197-
To change a rule's conditions, reason, or expiry, deactivate it and create a
198-
replacement. Historical runs keep their association with the rule that
199-
originally applied.
201+
To change an active rule's conditions, context, or expiry, choose **Edit rule**
202+
from its actions menu, or run `quarantine update`. The rule keeps its ID and its
203+
priority among overlapping rules, and the changes apply to new runs. Expired and
204+
deactivated rules cannot be edited, so create a new rule instead. Historical
205+
runs keep their association with the rule that originally applied.

‎src/content/docs/reference/mcp-server.mdx‎

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ Returns raw OpenTelemetry trace data for a test attempt. The trace can show Play
156156

157157
## Manage quarantine rules
158158

159-
These tools let an AI agent list, create, and deactivate quarantine rules. See [Modify quarantine rules with AI](/docs/guides/modify-quarantine-rules-with-ai) for example conversations.
159+
These tools let an AI agent list, create, update, and deactivate quarantine rules. See [Modify quarantine rules with AI](/docs/guides/modify-quarantine-rules-with-ai) for example conversations.
160160

161161
### `list_quarantine_rules`
162162

@@ -191,6 +191,26 @@ Creates a quarantine rule for an exact suite and scope. Use `query_samples` to r
191191

192192
In addition to `suiteId`, provide at least one of `testId`, `projectName`, or `branch`. Omitted scope fields match any value within the suite.
193193

194+
### `update_quarantine_rule`
195+
196+
Replaces all editable settings of an active quarantine rule, keeping its ID and its priority among overlapping rules. Use `list_quarantine_rules` to retrieve the ID. The suite cannot change, and inactive rules cannot be edited.
197+
198+
<ParameterTable>
199+
200+
| Parameter | Type | Description |
201+
| --- | --- | --- |
202+
| `ruleId` | string | Exact quarantine rule ID returned by `list_quarantine_rules`. |
203+
| `testId` | string \| null | Exact persisted `test.id`, or null to match all tests in the suite. |
204+
| `projectName` | string \| null | Exact Playwright project name, or null to match any project. |
205+
| `branch` | string \| null | Exact branch name, or null to match any branch. |
206+
| `reason` | string \| null | Reason for quarantining the matching tests, or null to clear it. |
207+
| `endsAt` | RFC 3339 string \| null | Future expiry timestamp, or null for no expiry. |
208+
| `organizationId` | string | Optional organization. Omit it to use the organization from the active login. |
209+
210+
</ParameterTable>
211+
212+
Supply every editable field explicitly. At least one of `testId`, `projectName`, or `branch` must remain set.
213+
194214
### `deactivate_quarantine_rule`
195215

196216
Deactivates one quarantine rule by its exact ID. Use `list_quarantine_rules` to retrieve the ID.

0 commit comments

Comments
 (0)