惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

aimingoo的专栏
aimingoo的专栏
B
Blog RSS Feed
Recent Announcements
Recent Announcements
Vercel News
Vercel News
M
MIT News - Artificial intelligence
阮一峰的网络日志
阮一峰的网络日志
L
LangChain Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Microsoft Security Blog
Microsoft Security Blog
H
Help Net Security
T
The Blog of Author Tim Ferriss
Y
Y Combinator Blog
G
Google Developers Blog
罗磊的独立博客
爱范儿
爱范儿
宝玉的分享
宝玉的分享
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园_首页
S
SegmentFault 最新的问题
WordPress大学
WordPress大学
月光博客
月光博客
人人都是产品经理
人人都是产品经理
Apple Machine Learning Research
Apple Machine Learning Research

Recent Commits to openclaw:main

test: merge chat side-result checks · openclaw/openclaw@ddd2c2a test: merge cron history checks · openclaw/openclaw@f7eb746 test: merge responsive navigation shell checks · openclaw/openclaw@c2e4b47 docs(changelog): add codex oauth fixes · openclaw/openclaw@628e6cd test: merge navigation routing cases · openclaw/openclaw@5d8cecb Tests: mock channel registry bundled fallback · openclaw/openclaw@2b08233 Secrets: avoid broad web search discovery for single plugin config · openclaw/openclaw@a464f59 test: merge config view browser checks · openclaw/openclaw@20cf511 fix(status): align oauth health with runtime · openclaw/openclaw@eed7116 feat: add macOS screen snapshots for monitor preview (#67954) thanks … · openclaw/openclaw@f377db1 fix: report shared auth scopes in hello-ok (#67810) thanks @BunsDev · openclaw/openclaw@0b6c39b Auto-reply: avoid eager bundled route fallback · openclaw/openclaw@3ea1bf4 Tests: narrow session binding contract setup · openclaw/openclaw@54e4e16 fix(macOS): enable undo/redo in webchat composer text input (#34962) · openclaw/openclaw@00951dc Tests: speed up channel setup promotion · openclaw/openclaw@82b529a Docs: refresh agent instructions · openclaw/openclaw@5775fe2 fix(auth): serialize OAuth refresh across agents to fix #26322 (#67876) · openclaw/openclaw@8e79080 test: allow ollama public surface boundary test · openclaw/openclaw@7d4f1a6 Docs: add test performance guardrails · openclaw/openclaw@89706d3 Tests: restore context-engine usage proof · openclaw/openclaw@e4c4f95 Tests: slim context engine runtime coverage · openclaw/openclaw@74c198f ci: retry failed custom checkouts · openclaw/openclaw@0ee5baf test: trim duplicate provider auth onboarding cases · openclaw/openclaw@1ffc02e matrix: fix sessions_spawn --thread subagent session spawning (#67643) · openclaw/openclaw@1ce2596 test: reduce auth choice fixture churn · openclaw/openclaw@857b9cd test: mock health status config boundaries · openclaw/openclaw@9d5ab4a test: mock onboard config io boundary · openclaw/openclaw@299694d test: mock legacy state plugin boundaries · openclaw/openclaw@2713089 test: mock channel install boundaries · openclaw/openclaw@b945248 test: mock doctor preview channel boundaries · openclaw/openclaw@b1a3ad4
test: fold lifecycle and package proof into QA Lab (#9311...
RomneyDa · 2026-06-18 · via Recent Commits to openclaw:main

File tree

      • lib/plugin-lifecycle-matrix

Original file line numberDiff line numberDiff line change

@@ -51,8 +51,15 @@ describe("qa scenario catalog", () => {

5151

expect(

5252

pack.scenarios

5353

.filter((scenario) => scenario.execution?.kind !== "flow")

54-

.map((scenario) => scenario.id),

55-

).toStrictEqual(["control-ui-chat-flow-playwright"]);

54+

.map((scenario) => scenario.id)

55+

.toSorted(),

56+

).toStrictEqual(

57+

[

58+

"control-ui-chat-flow-playwright",

59+

"package-openclaw-for-docker",

60+

"plugin-lifecycle-probe",

61+

].toSorted(),

62+

);

5663

expect(

5764

pack.scenarios

5865

.filter((scenario) => scenario.execution.kind === "flow")

Original file line numberDiff line numberDiff line change

@@ -0,0 +1,26 @@

1+

title: Plugin lifecycle probe evidence

2+
3+

scenario:

4+

id: plugin-lifecycle-probe

5+

surface: plugins

6+

coverage:

7+

primary:

8+

- plugins.lifecycle

9+

secondary:

10+

- plugin-validation-and-repair

11+

- plugin-setup

12+

objective: Exercise strict plugin load/uninstall proof parsing through QA Lab evidence.

13+

successCriteria:

14+

- Enabled loaded plugin inspect JSON is accepted as proof.

15+

- Pending or missing inspect JSON is rejected instead of treated as loaded.

16+

- Malformed config during uninstall proof fails with a bounded diagnostic.

17+

docsRefs:

18+

- docs/plugins/manifest.md

19+

- docs/cli/plugins.md

20+

- docs/concepts/qa-e2e-automation.md

21+

codeRefs:

22+

- test/e2e/qa-lab/plugins/plugin-lifecycle-probe.e2e.test.ts

23+

execution:

24+

kind: vitest

25+

path: test/e2e/qa-lab/plugins/plugin-lifecycle-probe.e2e.test.ts

26+

summary: Vitest coverage for plugin lifecycle proof parsing.

Original file line numberDiff line numberDiff line change

@@ -0,0 +1,28 @@

1+

title: Docker package artifact QA evidence

2+
3+

scenario:

4+

id: package-openclaw-for-docker

5+

surface: docker-podman-hosting

6+

coverage:

7+

primary:

8+

- docker-e2e-package-artifact-generation

9+

secondary:

10+

- package-manager-installs

11+

- runtime.package-update

12+

objective: Exercise bounded OpenClaw package artifact generation through QA Lab evidence.

13+

successCriteria:

14+

- Package artifact output flags are parsed strictly.

15+

- The Docker package path uses the single bounded build-all step before npm pack.

16+

- Changelog trimming is restored after successful and failed ignore-scripts packaging.

17+

- Timed-out and externally terminated child process groups are cleaned up without leaked descendants.

18+

- Captured command output is bounded.

19+

docsRefs:

20+

- docs/install/updating.md

21+

- docs/help/testing.md

22+

- docs/concepts/qa-e2e-automation.md

23+

codeRefs:

24+

- test/e2e/qa-lab/runtime/package-openclaw-for-docker.e2e.test.ts

25+

execution:

26+

kind: vitest

27+

path: test/e2e/qa-lab/runtime/package-openclaw-for-docker.e2e.test.ts

28+

summary: Vitest coverage for Docker package artifact creation and cleanup behavior.

Original file line numberDiff line numberDiff line change

@@ -17,12 +17,10 @@ PACKAGE_TGZ="$(docker_e2e_prepare_package_tgz plugin-lifecycle-matrix "${OPENCLA

1717

docker_e2e_package_mount_args "$PACKAGE_TGZ"

1818
1919

docker_e2e_build_or_reuse "$IMAGE_NAME" plugin-lifecycle-matrix "$ROOT_DIR/scripts/e2e/Dockerfile" "$ROOT_DIR" "bare" "$SKIP_BUILD"

20-

OPENCLAW_TEST_STATE_SCRIPT_B64="$(docker_e2e_test_state_shell_b64 plugin-lifecycle-matrix empty)"

2120

DOCKER_ENV_ARGS=(

2221

-e COREPACK_ENABLE_DOWNLOAD_PROMPT=0

2322

-e OPENCLAW_SKIP_CHANNELS=1

2423

-e OPENCLAW_SKIP_PROVIDERS=1

25-

-e "OPENCLAW_TEST_STATE_SCRIPT_B64=$OPENCLAW_TEST_STATE_SCRIPT_B64"

2624

)

2725

if [ -n "${OPENCLAW_PLUGIN_LIFECYCLE_PHASE_TIMEOUT_MS:-}" ]; then

2826

DOCKER_ENV_ARGS+=(-e "OPENCLAW_PLUGIN_LIFECYCLE_PHASE_TIMEOUT_MS=$OPENCLAW_PLUGIN_LIFECYCLE_PHASE_TIMEOUT_MS")

@@ -45,6 +43,6 @@ docker_e2e_run_with_harness \

4543

"${DOCKER_ENV_ARGS[@]}" \

4644

"${DOCKER_E2E_PACKAGE_ARGS[@]}" \

4745

"$IMAGE_NAME" \

48-

bash scripts/e2e/lib/plugin-lifecycle-matrix/sweep.sh

46+

tsx test/e2e/qa-lab/plugins/plugin-lifecycle-probe-runtime.ts --lifecycle-matrix

4947
5048

echo "Plugin lifecycle matrix Docker E2E passed."

Original file line numberDiff line numberDiff line change

@@ -251,6 +251,8 @@ docker_e2e_harness_mount_args() {

251251

DOCKER_E2E_HARNESS_ARGS=(

252252

-v "$ROOT_DIR/scripts/e2e:/app/scripts/e2e:ro"

253253

-v "$ROOT_DIR/scripts/lib:/app/scripts/lib:ro"

254+

-v "$ROOT_DIR/test/e2e/qa-lab:/app/test/e2e/qa-lab:ro"

255+

-v "$ROOT_DIR/test/helpers:/app/test/helpers:ro"

254256

-v "$ROOT_DIR/scripts/windows-cmd-helpers.mjs:/app/scripts/windows-cmd-helpers.mjs:ro"

255257

)

256258

}

Original file line numberDiff line numberDiff line change

@@ -592,7 +592,10 @@ const TOOLING_SOURCE_TEST_TARGETS = new Map([

592592

["scripts/package-changelog.mjs", ["test/scripts/package-changelog.test.ts"]],

593593

["scripts/package-mac-app.sh", ["test/scripts/package-mac-app.test.ts"]],

594594

["scripts/package-mac-dist.sh", ["test/scripts/package-mac-dist.test.ts"]],

595-

["scripts/package-openclaw-for-docker.mjs", ["test/scripts/package-openclaw-for-docker.test.ts"]],

595+

[

596+

"scripts/package-openclaw-for-docker.mjs",

597+

["test/e2e/qa-lab/runtime/package-openclaw-for-docker.e2e.test.ts"],

598+

],

596599

["scripts/postinstall-bundled-plugins.mjs", ["test/scripts/postinstall-bundled-plugins.test.ts"]],

597600

["scripts/prepare-git-hooks.mjs", ["test/scripts/prepare-git-hooks.test.ts"]],

598601

[

@@ -648,14 +651,6 @@ const TOOLING_SOURCE_TEST_TARGETS = new Map([

648651

"scripts/e2e/lib/plugin-lifecycle-matrix/measure.mjs",

649652

["test/scripts/plugin-lifecycle-measure.test.ts"],

650653

],

651-

[

652-

"scripts/e2e/lib/plugin-lifecycle-matrix/probe.mjs",

653-

["test/scripts/plugin-lifecycle-probe.test.ts"],

654-

],

655-

[

656-

"scripts/e2e/lib/plugin-lifecycle-matrix/sweep.sh",

657-

["test/scripts/plugin-lifecycle-probe.test.ts"],

658-

],

659654

[

660655

"scripts/e2e/release-media-memory-docker.sh",

661656

["test/scripts/docker-e2e-plan.test.ts", "test/scripts/release-media-memory-scenario.test.ts"],

Original file line numberDiff line numberDiff line change

@@ -897,7 +897,10 @@ describe("test-projects args", () => {

897897

},

898898

{

899899

config: "test/vitest/vitest.e2e.config.ts",

900-

forwardedArgs: ["test/openclaw-launcher.e2e.test.ts"],

900+

forwardedArgs: [

901+

"test/e2e/qa-lab/plugins/plugin-lifecycle-probe.e2e.test.ts",

902+

"test/openclaw-launcher.e2e.test.ts",

903+

],

901904

includePatterns: null,

902905

watchMode: false,

903906

},