Skip to content

Commit 5dae3d4

Browse files
authored
Update QA Lab Crabline integration (#97941)
* Update QA Lab Crabline integration * Refresh docs map
1 parent b7b2e1f commit 5dae3d4

8 files changed

Lines changed: 67 additions & 33 deletions

File tree

docs/concepts/qa-e2e-automation.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ pnpm openclaw qa run \
7474
```
7575

7676
Use `smoke-ci` for deterministic profile proof with mock model providers and
77-
Crabline fake provider servers. Use `release` for Stable/LTS proof against live
77+
Crabline local provider servers. Use `release` for Stable/LTS proof against live
7878
channels. Use `all` only for explicit full-taxonomy evidence runs; it selects
7979
every active maturity category and can be dispatched through the `QA Profile
8080
Evidence` workflow with `qa_profile=all`. When a command also needs an OpenClaw
@@ -890,7 +890,7 @@ At the architecture level, the split is:
890890

891891
Adding a channel to the YAML QA system requires the channel implementation plus
892892
a scenario pack that exercises the channel contract. For smoke CI coverage, add
893-
the matching Crabline fake provider server and expose it through the `crabline`
893+
the matching Crabline local provider server and expose it through the `crabline`
894894
driver.
895895

896896
Do not add a new top-level QA command root when the shared `qa-lab` host can own the flow.

docs/docs_map.md

Lines changed: 45 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1129,6 +1129,7 @@ Do not edit it by hand; run `pnpm docs:map:gen`.
11291129
- H2: ClawSweeper activity forwarding
11301130
- H2: Manual dispatches
11311131
- H2: Runners
1132+
- H2: Runner registration budget
11321133
- H2: Local equivalents
11331134
- H2: OpenClaw Performance
11341135
- H2: Full Release Validation
@@ -1756,6 +1757,7 @@ Do not edit it by hand; run `pnpm docs:map:gen`.
17561757
- Headings:
17571758
- H2: Commands
17581759
- H3: Author
1760+
- H3: Provider Scaffold
17591761
- H3: Install
17601762
- H4: Marketplace shorthand
17611763
- H3: List
@@ -2885,6 +2887,12 @@ Do not edit it by hand; run `pnpm docs:map:gen`.
28852887
- Headings:
28862888
- H2: What it is
28872889
- H2: Where it shows up
2890+
- H2: Default usage footer mode
2891+
- H3: Three distinct session states
2892+
- H3: Precedence
2893+
- H3: Resetting vs. turning off
2894+
- H3: Toggle behavior
2895+
- H3: Config
28882896
- H2: Custom /usage full footer
28892897
- H3: Shape
28902898
- H3: Contract Paths
@@ -4188,6 +4196,7 @@ Do not edit it by hand; run `pnpm docs:map:gen`.
41884196
- H3: Health checks
41894197
- H3: LAN vs loopback
41904198
- H3: Host Local Providers
4199+
- H3: Claude CLI backend in Docker
41914200
- H3: Bonjour / mDNS
41924201
- H3: Storage and persistence
41934202
- H3: Shell helpers (optional)
@@ -4592,6 +4601,32 @@ Do not edit it by hand; run `pnpm docs:map:gen`.
45924601
- H2: Troubleshooting tips
45934602
- H2: Related
45944603

4604+
## maturity/scorecard.md
4605+
4606+
- Route: /maturity/scorecard
4607+
- Headings:
4608+
- H1: Maturity scorecard
4609+
- H2: What this page is for
4610+
- H2: At a glance
4611+
- H2: Score bands
4612+
- H2: Surface explorer
4613+
- H2: QA evidence summary
4614+
- H3: Readiness by area
4615+
4616+
## maturity/taxonomy.md
4617+
4618+
- Route: /maturity/taxonomy
4619+
- Headings:
4620+
- H1: Maturity taxonomy
4621+
- H2: How to read this page
4622+
- H2: Maturity levels
4623+
- H2: Product areas
4624+
- H2: Details
4625+
- H3: Core
4626+
- H3: Platform
4627+
- H3: Channel
4628+
- H3: Provider and tool
4629+
45954630
## network.md
45964631

45974632
- Route: /network
@@ -4922,6 +4957,8 @@ Do not edit it by hand; run `pnpm docs:map:gen`.
49224957
- H2: Install the CLI (required for local mode)
49234958
- H2: Launchd (Gateway as LaunchAgent)
49244959
- H2: Version compatibility
4960+
- H2: State directory on macOS
4961+
- H2: Debug app connectivity
49254962
- H2: Smoke check
49264963
- H2: Related
49274964

@@ -5126,20 +5163,12 @@ Do not edit it by hand; run `pnpm docs:map:gen`.
51265163

51275164
- Route: /platforms/macos
51285165
- Headings:
5129-
- H2: What it does
5130-
- H2: Local vs remote mode
5131-
- H2: Launchd control
5132-
- H2: Node capabilities (mac)
5133-
- H2: Exec approvals (system.run)
5134-
- H2: Deep links
5135-
- H3: openclaw://agent
5136-
- H2: Onboarding flow (typical)
5137-
- H2: State dir placement (macOS)
5138-
- H2: Build and dev workflow (native)
5139-
- H2: Debug gateway connectivity (macOS CLI)
5140-
- H2: Remote connection plumbing (SSH tunnels)
5141-
- H3: Control tunnel (Gateway WebSocket port)
5142-
- H2: Related docs
5166+
- H2: Download
5167+
- H2: First run
5168+
- H2: Choose a Gateway mode
5169+
- H2: What the app owns
5170+
- H2: macOS detail pages
5171+
- H2: Related
51435172

51445173
## platforms/oracle.md
51455174

@@ -5437,6 +5466,7 @@ Do not edit it by hand; run `pnpm docs:map:gen`.
54375466
- H2: Plugin install
54385467
- H2: Quickstart
54395468
- H2: Supported providers
5469+
- H2: BYOK
54405470
- H2: Auth
54415471
- H2: Configuration surface
54425472
- H2: Compaction
@@ -6830,6 +6860,7 @@ Do not edit it by hand; run `pnpm docs:map:gen`.
68306860
- H3: Tool-result middleware
68316861
- H3: Terminal outcome classification
68326862
- H3: Agent-end side effects
6863+
- H3: User input and tool surfaces
68336864
- H3: Native Codex harness mode
68346865
- H2: Runtime strictness
68356866
- H2: Native sessions and transcript mirror

extensions/qa-lab/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
"@openclaw/plugin-sdk": "workspace:*",
1717
"@openclaw/slack": "workspace:*",
1818
"@openclaw/whatsapp": "workspace:*",
19-
"@openclaw/crabline": "0.1.4",
19+
"@openclaw/crabline": "0.1.5",
2020
"openclaw": "2026.5.28"
2121
},
2222
"peerDependencies": {

extensions/qa-lab/src/crabline-transport.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Qa Lab tests cover Crabline fake-provider transport integration behavior.
1+
// Qa Lab tests cover Crabline local-provider transport integration behavior.
22
import fs from "node:fs/promises";
33
import path from "node:path";
44
import { OPENCLAW_CRABLINE_MANIFEST_PATH } from "@openclaw/crabline";
@@ -18,7 +18,7 @@ function createSelection(channel: "slack" | "telegram" | "whatsapp" = "telegram"
1818
}
1919

2020
describe("crabline transport", () => {
21-
it("configures OpenClaw's Telegram plugin against a Crabline fake provider server", async () => {
21+
it("configures OpenClaw's Telegram plugin against a Crabline local provider server", async () => {
2222
await withTempDir("qa-crabline-transport-", async (outputDir) => {
2323
const transport = await createQaCrablineTransportAdapter({
2424
outputDir,
@@ -59,7 +59,7 @@ describe("crabline transport", () => {
5959
});
6060
});
6161

62-
it("configures OpenClaw's Slack plugin against a Crabline fake provider server", async () => {
62+
it("configures OpenClaw's Slack plugin against a Crabline local provider server", async () => {
6363
await withTempDir("qa-crabline-transport-", async (outputDir) => {
6464
const transport = await createQaCrablineTransportAdapter({
6565
outputDir,

extensions/qa-lab/src/crabline-transport.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Qa Lab plugin module implements Crabline fake-provider transport behavior.
1+
// Qa Lab plugin module implements Crabline local-provider transport behavior.
22
import fs from "node:fs/promises";
33
import path from "node:path";
44
import { setTimeout as sleep } from "node:timers/promises";
@@ -225,7 +225,7 @@ class QaCrablineTransport extends QaStateBackedTransportAdapter {
225225
}) {
226226
super({
227227
id: CRABLINE_TRANSPORT_ID,
228-
label: `crabline fake ${params.selection.channel}`,
228+
label: `crabline local ${params.selection.channel}`,
229229
accountId: params.adapter.accountId,
230230
requiredPluginIds: params.adapter.requiredPluginIds,
231231
state: params.state,
@@ -263,11 +263,11 @@ class QaCrablineTransport extends QaStateBackedTransportAdapter {
263263
cfg: OpenClawConfig;
264264
accountId?: string | null;
265265
}) => {
266-
throw new Error(`Crabline fake-provider transport does not support ${_params.action} yet.`);
266+
throw new Error(`Crabline local-provider transport does not support ${_params.action} yet.`);
267267
};
268268

269269
createReportNotes = (_params: QaTransportReportParams) => [
270-
`Runs OpenClaw's ${this.#selection.channel} channel plugin against a Crabline fake provider server.`,
270+
`Runs OpenClaw's ${this.#selection.channel} channel plugin against a Crabline local provider server.`,
271271
"No live channel service or external credential lease is required.",
272272
];
273273

extensions/qa-lab/src/suite.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// Qa Lab tests cover suite plugin behavior.
22
import fs from "node:fs/promises";
33
import path from "node:path";
4-
import { CRABLINE_FAKE_PROVIDER_CHANNELS } from "@openclaw/crabline";
4+
import { CRABLINE_SERVER_CHANNELS } from "@openclaw/crabline";
55
import { afterEach, describe, expect, it, vi } from "vitest";
66
import { QA_EVIDENCE_FILENAME, QA_EVIDENCE_SUMMARY_KIND } from "./evidence-summary.js";
77
import type { QaLabServerHandle } from "./lab-server.types.js";
@@ -387,7 +387,7 @@ describe("qa suite", () => {
387387
};
388388
expect(matrix.report?.result).toMatchObject({
389389
selectedChannel: "telegram",
390-
supportedChannels: [...CRABLINE_FAKE_PROVIDER_CHANNELS].toSorted(),
390+
supportedChannels: [...CRABLINE_SERVER_CHANNELS].toSorted(),
391391
});
392392
const smoke = JSON.parse(
393393
await fs.readFile(path.join(outputDir, "crabline-fake-provider-smoke.json"), "utf8"),

pnpm-lock.yaml

Lines changed: 9 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pnpm-workspace.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ packages:
77
minimumReleaseAge: 2880
88

99
minimumReleaseAgeExclude:
10-
- "@openclaw/[email protected].4"
10+
- "@openclaw/[email protected].5"
1111
- "@openclaw/[email protected]"
1212
- "@openclaw/[email protected]"
1313
- "acpx"

0 commit comments

Comments
 (0)