Files
wehub-resource-sync 426e9eeabd
Benchmark Bridge Tests / benchmark (bunx @biomejs/biome check packages/lifeops-bench/src, benchmark-lint) (push) Waiting to run
Benchmark Bridge Tests / benchmark (bunx vitest run --config packages/lifeops-bench/vitest.config.ts --root packages/lifeops-bench --passWithNoTests, benchmark-tests) (push) Waiting to run
Build Agent Image / build-and-push (push) Waiting to run
Chat shell gestures / Chat shell gesture + parity e2e (push) Waiting to run
ci / test (push) Waiting to run
ci / lint-and-format (push) Waiting to run
ci / build (push) Waiting to run
ci / dev-startup (push) Waiting to run
Cloud Gateway Discord / Test (push) Waiting to run
Cloud Gateway Webhook / Test (push) Waiting to run
Cloud Tests / lint-and-types (push) Waiting to run
Cloud Tests / unit-tests (push) Waiting to run
Cloud Tests / integration-tests (push) Waiting to run
Cloud Tests / e2e-tests (push) Blocked by required conditions
CodeQL Advanced / Analyze (javascript-typescript) (push) Waiting to run
Deploy Apps Worker (Product 2) / Determine environment (push) Waiting to run
Deploy Apps Worker (Product 2) / Deploy apps worker to apps-control host (${{ needs.determine-env.outputs.environment }}) (push) Blocked by required conditions
Deploy Eliza Provisioning Worker / Determine environment (push) Waiting to run
Deploy Eliza Provisioning Worker / Deploy worker to Hetzner host (${{ needs.determine-env.outputs.environment }} @ ${{ needs.determine-env.outputs.deployment_sha }}) (push) Blocked by required conditions
Dev Smoke / Classify changed paths (push) Waiting to run
Dev Smoke / bun run dev onboarding chat (push) Blocked by required conditions
Dev Smoke / Vite HMR dependency-level smoke (push) Blocked by required conditions
Electrobun Submodule Guard / electrobun gitlink is fetchable (push) Waiting to run
gitleaks / gitleaks (push) Waiting to run
Markdown Links / Relative Markdown Links (push) Waiting to run
Publish @elizaos/example-code / check_npm (push) Waiting to run
Publish @elizaos/example-code / publish_npm (push) Blocked by required conditions
Publish @elizaos/plugin-elizacloud / verify_version (push) Waiting to run
Publish @elizaos/plugin-elizacloud / publish_npm (push) Blocked by required conditions
Quality (Extended) / Homepage Build (PR smoke) (push) Waiting to run
Quality (Extended) / Comment-only diff guard (push) Waiting to run
Quality (Extended) / Format + Type Safety Ratchet (push) Waiting to run
Quality (Extended) / Develop Gate (secret scan + UI determinism) (push) Waiting to run
Quality (Extended) / Develop Gate (lint) (push) Waiting to run
Sandbox Live Smoke / Sandbox live smoke (push) Waiting to run
Snap Build & Test / Build Snap (amd64) (push) Waiting to run
Snap Build & Test / Build Snap (arm64) (push) Waiting to run
supply-chain / sbom (push) Waiting to run
supply-chain / vulnerability-scan (push) Waiting to run
Build, Push & Deploy to Phala Cloud / build-and-push (push) Waiting to run
Test Packaging / Validate Packaging Configs (push) Waiting to run
Test Packaging / PyPI on Python ${{ matrix.python }} (push) Waiting to run
Test Packaging / Pack & Test JS Tarballs (push) Waiting to run
Test Packaging / elizaos CLI global-install smoke (node + bun) (push) Waiting to run
UI Fixture E2E / ui-fixture-e2e (push) Waiting to run
UI Fixture E2E / fixture-e2e (push) Waiting to run
UI Story Gate / story-gate (push) Waiting to run
vault-ci / test (macos-latest) (push) Waiting to run
vault-ci / test (ubuntu-latest) (push) Waiting to run
vault-ci / test (windows-latest) (push) Waiting to run
vault-ci / app-core wiring tests (push) Waiting to run
verify-patches / verify patches/CHECKSUMS.sha256 (push) Waiting to run
Voice Benchmark Smoke / voice-emotion fixture smoke (push) Waiting to run
Voice Benchmark Smoke / voiceagentbench fixture smoke (push) Waiting to run
Voice Benchmark Smoke / voicebench-quality unit smoke (push) Waiting to run
Voice Benchmark Smoke / voicebench TypeScript unit (no audio) (push) Waiting to run
Voice Benchmark Smoke / voice bench smoke summary (push) Blocked by required conditions
Windows CI / windows ([bun run --cwd packages/app-core test bun run --cwd packages/elizaos test bun run --cwd packages/cloud/shared test], app-and-cli) (push) Waiting to run
Windows CI / windows ([bun run --cwd packages/scenario-runner test bun run --cwd packages/vault test bun run --cwd packages/security test bun run --cwd plugins/plugin-coding-tools test], framework-packages) (push) Waiting to run
Windows CI / windows ([bun run --cwd plugins/plugin-elizacloud test bun run --cwd plugins/plugin-discord test bun run --cwd plugins/plugin-anthropic test bun run --cwd plugins/plugin-openai test bun run --cwd plugins/plugin-app-control test bun run --cwd plugins/pl… (push) Waiting to run
Windows CI / windows ([node packages/scripts/run-turbo.mjs run build --filter=@elizaos/core --filter=@elizaos/shared --filter=@elizaos/agent --concurrency=4 node packages/scripts/run-bash-linux-only.mjs scripts/verify-riscv64-buildpaths.sh node packages/scripts/run… (push) Waiting to run
Windows CI / windows ([node packages/scripts/run-turbo.mjs run typecheck --filter=@elizaos/core --filter=@elizaos/shared --filter=@elizaos/cloud-shared --concurrency=4 bun run --cwd packages/core test bun run --cwd packages/shared test], core-runtime, 75) (push) Waiting to run
Test Packaging / Build & Test PyPI Package (push) Waiting to run
Voice Workbench / headless workbench (mocked backends) (push) Has been cancelled
Voice Workbench / real acoustic lane (nightly, provisioned only) (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:43:05 +08:00

503 lines
17 KiB
JSON

{
"version": 1,
"manualChecklistDoc": "packages/docs/apps/desktop/release-regression-checklist.md",
"workflowContracts": {
"pr": {
"files": [".github/workflows/test.yml"],
"scheduledSuites": [
"vitest-real",
"db-check",
"desktop-contract",
"validation-e2e",
"live-surface-audit",
"ui-playwright-smoke",
"live-cloud",
"regression-matrix-pr"
],
"bannedSnippets": [
"--exclude eliza/packages/agent/test/apps-e2e.e2e.test.ts"
]
},
"nightly": {
"files": [".github/workflows/nightly.yml"],
"scheduledSuites": [
"coverage",
"db-check",
"integration-deterministic",
"e2e-deterministic",
"desktop-contract",
"validation-e2e",
"live-surface-audit",
"ui-playwright-smoke",
"regression-matrix-nightly",
"desktop-heavy-matrix"
]
},
"release": {
"files": [".github/workflows/release-electrobun.yml"],
"scheduledSuites": [
"regression-matrix-release",
"live-cloud",
"e2e-heavy",
"desktop-packaged-macos",
"desktop-packaged-windows",
"desktop-playwright"
]
},
"release-contract": {
"files": [".github/workflows/test-electrobun-release.yml"],
"scheduledSuites": [
"release-contract",
"regression-matrix-release-contract"
]
}
},
"suites": {
"vitest-real": {
"tier": "required",
"command": "bun run test:ci:real"
},
"coverage": {
"tier": "required",
"command": "bun run test:coverage"
},
"db-check": {
"tier": "required",
"command": "bun run db:check"
},
"integration-deterministic": {
"tier": "required",
"command": "bun run test:integration"
},
"e2e-deterministic": {
"tier": "required",
"command": "bun run test:e2e"
},
"e2e-heavy": {
"tier": "heavy",
"command": "bun run test:e2e:heavy"
},
"desktop-contract": {
"tier": "required",
"command": "bun run test:desktop:contract"
},
"validation-e2e": {
"tier": "required",
"command": "bun run test:e2e:validation"
},
"live-surface-audit": {
"tier": "required",
"command": "bun run test:audit:live:strict"
},
"ui-playwright-smoke": {
"tier": "required",
"command": "bun run --cwd packages/app test:e2e"
},
"live-cloud": {
"tier": "heavy",
"command": "bun run test:live:cloud"
},
"desktop-packaged-macos": {
"tier": "heavy",
"command": "bun run test:desktop:packaged"
},
"desktop-packaged-windows": {
"tier": "heavy",
"command": "bun run test:desktop:packaged:windows"
},
"desktop-playwright": {
"tier": "heavy",
"command": "bun run test:desktop:playwright"
},
"desktop-heavy-matrix": {
"tier": "heavy",
"workflowCall": "./.github/workflows/release-electrobun.yml",
"requiredSnippets": [
"publish_release: false",
"draft: false",
"secrets: inherit"
],
"provides": [
"live-cloud",
"e2e-heavy",
"desktop-packaged-macos",
"desktop-packaged-windows",
"desktop-playwright"
]
},
"release-contract": {
"tier": "required",
"command": "bun run test:release:contract"
},
"regression-matrix-pr": {
"tier": "required",
"command": "bun run test:regression-matrix:pr"
},
"regression-matrix-nightly": {
"tier": "required",
"command": "bun run test:regression-matrix:nightly"
},
"regression-matrix-release": {
"tier": "required",
"command": "bun run test:regression-matrix:release"
},
"regression-matrix-release-contract": {
"tier": "required",
"command": "bun run test:regression-matrix:release-contract"
}
},
"surfaces": [
{
"name": "packages-shared",
"globs": ["eliza/packages/shared/**"],
"workflowSuites": {
"pr": ["vitest-real", "validation-e2e"],
"nightly": [
"coverage",
"integration-deterministic",
"e2e-deterministic",
"validation-e2e",
"e2e-heavy",
"live-cloud"
]
}
},
{
"name": "packages-agent",
"globs": ["eliza/packages/agent/**"],
"workflowSuites": {
"pr": ["vitest-real", "db-check"],
"nightly": [
"coverage",
"db-check",
"integration-deterministic",
"e2e-deterministic",
"e2e-heavy",
"live-cloud"
],
"release": ["e2e-heavy", "live-cloud"]
}
},
{
"name": "packages-app-core",
"globs": ["eliza/packages/app-core/**"],
"workflowSuites": {
"pr": ["vitest-real", "db-check", "validation-e2e"],
"nightly": [
"coverage",
"db-check",
"integration-deterministic",
"e2e-deterministic",
"validation-e2e",
"e2e-heavy",
"live-cloud"
]
}
},
{
"name": "app-ui-smoke",
"globs": [
"packages/app/test/ui-smoke/**",
"packages/app/playwright.ui-smoke.config.ts",
"packages/app/scripts/run-ui-playwright.mjs",
"eliza/packages/app-core/scripts/run-ui-smoke-playwright-suite.mjs",
"eliza/packages/app-core/scripts/playwright-ui-live-stack.ts"
],
"workflowSuites": {
"pr": ["ui-playwright-smoke"],
"nightly": ["ui-playwright-smoke"]
}
},
{
"name": "electrobun",
"globs": [
"packages/app-core/platforms/electrobun/**",
"packages/app/playwright.electrobun.packaged.config.ts",
"packages/app/test/electrobun-packaged/**"
],
"workflowSuites": {
"pr": ["vitest-real", "desktop-contract"],
"nightly": [
"coverage",
"desktop-contract",
"live-cloud",
"desktop-packaged-macos",
"desktop-packaged-windows",
"desktop-playwright"
],
"release": [
"live-cloud",
"desktop-packaged-macos",
"desktop-packaged-windows",
"desktop-playwright"
]
},
"manualChecklist": "packages/docs/apps/desktop/release-regression-checklist.md"
},
{
"name": "workflow-and-release-contracts",
"globs": [
".github/workflows/**",
"scripts/release-check.ts",
"scripts/release-check.test.ts",
"scripts/electrobun-release-workflow-drift.test.ts",
"scripts/electrobun-test-workflow-drift.test.ts",
"scripts/validate-regression-matrix.mjs",
"scripts/run-release-contract-suite.mjs",
"scripts/coverage-policy.mjs",
"scripts/coverage-policy-drift.test.ts",
"package.json",
"vitest.config.ts",
"eliza/packages/test/vitest/default.config.ts",
"eliza/packages/test/vitest/unit.config.ts",
"eliza/packages/test/vitest/e2e.config.ts",
"eliza/packages/test/vitest/*.ts"
],
"workflowSuites": {
"pr": ["vitest-real"],
"nightly": ["coverage"],
"release": ["regression-matrix-release"],
"release-contract": ["release-contract"]
}
},
{
"name": "e2e-test-harness",
"globs": [
"test/**",
"eliza/plugins/app-*/test/**",
"eliza/packages/app-core/test/**",
"eliza/packages/test/vitest/integration.config.ts",
"eliza/packages/test/vitest/e2e.config.ts"
],
"workflowSuites": {
"pr": ["vitest-real", "validation-e2e"],
"nightly": [
"integration-deterministic",
"e2e-deterministic",
"validation-e2e",
"e2e-heavy",
"live-cloud"
],
"release": ["e2e-heavy", "live-cloud"]
}
}
],
"exceptions": {
"heavyOnlyE2E": [
{
"path": "eliza/packages/app-core/test/app/memory-relationships.real.e2e.test.ts",
"suite": "e2e-heavy",
"tier": "heavy",
"rationale": "requires the browser QA harness and stays out of the default live API/runtime lane"
},
{
"path": "eliza/packages/app-core/test/app/qa-checklist.real.e2e.test.ts",
"suite": "e2e-heavy",
"tier": "heavy",
"rationale": "validates the browser QA checklist and belongs in the heavy nightly or release gate"
}
],
"desktopHeavyInventory": [
{
"id": "game-window-roundtrip",
"description": "gameOpenWindow — full round-trip with openGameWindow mock (needs canvas mock update)",
"rationale": "Needs a fuller desktop canvas harness than the required PR contract suite."
},
{
"id": "window-state-offscreen-recovery",
"description": "Abnormal window position (off-screen) is corrected to safe defaults (e2e)",
"rationale": "Requires a launched desktop window and persisted state across process boundaries."
},
{
"id": "microphone-permission",
"description": "Microphone input works after permission is granted (hardware)",
"rationale": "Requires real device input and OS permission orchestration."
},
{
"id": "wake-word-detection",
"description": "Swabble fires 'wakeWordDetected' event when wake word is spoken (hardware)",
"rationale": "Depends on real audio capture and wake-word hardware behavior."
},
{
"id": "audio-transcription",
"description": "Audio transcription produces non-empty text for clear speech (hardware)",
"rationale": "Needs real microphone input and model execution outside the deterministic PR gate."
},
{
"id": "camera-preview",
"description": "Camera preview renders in the UI when stream is started (hardware)",
"rationale": "Requires camera hardware and a packaged UI surface."
},
{
"id": "camera-switching",
"description": "Switching between front/rear camera works (hardware)",
"rationale": "Requires multiple camera devices or a device lab."
},
{
"id": "screenshot-base64",
"description": "takeScreenshot returns a non-empty base64 PNG (hardware)",
"rationale": "Depends on live display capture plumbing."
},
{
"id": "frame-capture-streaming",
"description": "Frame capture mode streams frames at configured interval (hardware)",
"rationale": "Requires sustained capture timing verification on a real host."
},
{
"id": "deep-link-launch-closed",
"description": "Deep link received while app is closed causes app to launch (e2e)",
"rationale": "Requires packaged-app lifecycle and OS protocol handling."
},
{
"id": "deep-link-single-instance",
"description": "Deep link received while app is open does not launch second instance (e2e)",
"rationale": "Requires multi-process packaged-app behavior."
},
{
"id": "shortcut-persistence",
"description": "Shortcuts survive window focus changes (e2e)",
"rationale": "Needs a live window manager and global shortcut registration."
},
{
"id": "auto-launch-restart",
"description": "App launches automatically after system restart (e2e)",
"rationale": "Needs host restart or VM orchestration."
},
{
"id": "auto-launch-after-update",
"description": "Auto-launch survives app updates (e2e)",
"rationale": "Requires packaged updater flow plus auto-launch registration."
},
{
"id": "app-menu-quit-shortcut",
"description": "Keyboard shortcut Cmd+Q triggers quit (e2e)",
"rationale": "Needs packaged desktop input dispatch."
},
{
"id": "app-menu-reload-shortcut",
"description": "Keyboard shortcut Cmd+R triggers reload (e2e)",
"rationale": "Needs packaged desktop input dispatch."
},
{
"id": "app-menu-devtools-shortcut",
"description": "Keyboard shortcut Cmd+Option+I opens devtools (e2e)",
"rationale": "Needs packaged desktop input dispatch."
},
{
"id": "gateway-discovery-push",
"description": "Gateway discovery sends gatewayDiscovery push event to renderer (integration)",
"rationale": "Requires a fuller renderer event channel than the PR contract suite currently provides."
},
{
"id": "canvas-origin-isolation",
"description": "Canvas window is sandboxed — cannot access main app origin (integration)",
"rationale": "Needs a launched canvas window and origin isolation checks."
},
{
"id": "canvas-url-blocking",
"description": "Canvas navigate blocks external URLs (integration)",
"rationale": "Requires live canvas window navigation policy checks."
},
{
"id": "agent-port-reachable",
"description": "Agent port is reachable via HTTP after status reaches 'running' (integration)",
"rationale": "Depends on real subprocess startup and port reachability."
},
{
"id": "agent-crash-restart",
"description": "Agent crash triggers automatic restart (integration)",
"rationale": "Requires process crash injection and restart orchestration."
},
{
"id": "agent-no-zombie-on-stop",
"description": "Stopping agent while starting does not leave zombie process (integration)",
"rationale": "Needs real process lifecycle timing coverage."
},
{
"id": "release-server-update-check",
"description": "Check for updates contacts the release server (network)",
"rationale": "Requires live update server interaction."
},
{
"id": "update-relaunch",
"description": "Applying update relaunches the app (e2e)",
"rationale": "Requires a packaged update artifact and relaunched process."
},
{
"id": "update-channel-coverage",
"description": "Update check works on both canary and stable channels (network)",
"rationale": "Requires live release-channel coverage."
},
{
"id": "tray-persists-after-close",
"description": "Tray icon persists after main window is closed (e2e)",
"rationale": "Verified by packaged test via shell.trayPresent after window close. Converted from manual checklist."
},
{
"id": "main-window-vibrancy",
"description": "Main window has native vibrancy effect on macOS (e2e)",
"rationale": "Verified by packaged test via mainWindow.vibrancyEnabled. Survives resize and window restore."
},
{
"id": "context-menu-dismiss",
"description": "Context menu closes when clicking elsewhere (e2e)",
"rationale": "Native OS behavior enforced by Electrobun ContextMenu API. Verified implicitly by context menu display tests."
}
],
"desktopManualChecklist": [
{
"id": "tray-left-click",
"description": "Left-clicking the tray icon opens the companion window (visual)",
"rationale": "Needs human interaction confirmation."
},
{
"id": "tray-right-click",
"description": "Right-clicking the tray icon shows the tray context menu (visual)",
"rationale": "Needs human interaction confirmation."
},
{
"id": "drag-region",
"description": "Window can be dragged by clicking the header region (visual)",
"rationale": "Needs human interaction confirmation."
},
{
"id": "photo-quality",
"description": "Photo quality is acceptable at default settings (hardware)",
"rationale": "Needs subjective human review."
},
{
"id": "accessibility-settings-link",
"description": "Requesting accessibility opens System Preferences (OS interaction)",
"rationale": "Needs human confirmation of OS settings behavior."
},
{
"id": "permission-state-match",
"description": "Permission status reflects actual system state (OS interaction)",
"rationale": "Needs human confirmation against OS state."
},
{
"id": "context-menu-position",
"description": "Context menu appears at cursor position (visual)",
"rationale": "Needs human visual confirmation."
},
{
"id": "power-state-real-battery",
"description": "Power state reflects actual battery status (hardware)",
"rationale": "Needs a real battery-backed device and human confirmation."
}
]
},
"guards": {
"packageScriptDisallowlist": {
"test:e2e": ["apps-e2e.e2e.test.ts"]
},
"desktopInventorySources": [
"packages/docs/apps/desktop/release-heavy-inventory.md"
],
"forbiddenDesktopInventoryMarkers": [
["it.", "todo", "("],
"conditional test helper misuse"
]
}
}