Vendor OpenClaw source as Adolf fork baseline
Some checks failed
ClawSweeper Dispatch / dispatch (push) Has been cancelled
CodeQL / Security High (actions) (push) Has been cancelled
CodeQL / Security High (channel-runtime-boundary) (push) Has been cancelled
CodeQL / Security High (core-auth-secrets) (push) Has been cancelled
CodeQL / Security High (mcp-process-tool-boundary) (push) Has been cancelled
CodeQL / Security High (network-ssrf-boundary) (push) Has been cancelled
CodeQL / Security High (plugin-trust-boundary) (push) Has been cancelled
CodeQL / Security High (process-exec-boundary) (push) Has been cancelled
Docs Sync Publish Repo / sync-publish-repo (push) Has been cancelled
Docs / docs (push) Has been cancelled
OpenClaw Stable Main Closeout / Resolve stable release closeout inputs (push) Has been cancelled
OpenClaw Stable Main Closeout / Verify stable main closeout (push) Has been cancelled
Workflow Sanity / no-tabs (push) Has been cancelled
Workflow Sanity / actionlint (push) Has been cancelled
Workflow Sanity / generated-doc-baselines (push) Has been cancelled
CI / runner-admission (push) Has been cancelled
CI / preflight (push) Has been cancelled
CI / security-fast (push) Has been cancelled
CI / pnpm-store-warmup (push) Has been cancelled
CI / build-artifacts (push) Has been cancelled
CI / native-i18n (push) Has been cancelled
CI / ${{ matrix.check_name }} (push) Has been cancelled
CI / ${{ matrix.checkName }} (push) Has been cancelled
CI / checks-node-compat-node22 (push) Has been cancelled
CI / check-bundled-channel-config-metadata (push) Has been cancelled
CI / check-dependencies (push) Has been cancelled
CI / check-guards (push) Has been cancelled
CI / check-lint (push) Has been cancelled
CI / check-prod-types (push) Has been cancelled
CI / check-shrinkwrap (push) Has been cancelled
CI / check-test-types (push) Has been cancelled
CI / check-additional-boundaries-a (push) Has been cancelled
CI / check-additional-boundaries-bcd (push) Has been cancelled
CI / check-additional-extension-bundled (push) Has been cancelled
CI / check-additional-extension-channels (push) Has been cancelled
CI / check-additional-extension-package-boundary (push) Has been cancelled
CI / check-additional-runtime-topology-architecture (push) Has been cancelled
CI / check-session-accessor-boundary (push) Has been cancelled
CI / check-session-transcript-reader-boundary (push) Has been cancelled
CI / check-docs (push) Has been cancelled
CI / skills-python (push) Has been cancelled
CI / macos-swift (push) Has been cancelled
CI / ios-build (push) Has been cancelled
CI / ci-timings-summary (push) Has been cancelled
Native App Locale Refresh / Refresh native fa (push) Has been cancelled
Native App Locale Refresh / Refresh native fr (push) Has been cancelled
Native App Locale Refresh / Refresh native hi (push) Has been cancelled
Native App Locale Refresh / Refresh native id (push) Has been cancelled
Native App Locale Refresh / Refresh native it (push) Has been cancelled
Native App Locale Refresh / Refresh native ja-JP (push) Has been cancelled
Control UI Locale Refresh / plan (push) Has been cancelled
Control UI Locale Refresh / Refresh ${{ matrix.locale }} (push) Has been cancelled
Control UI Locale Refresh / Commit control UI locale refresh (push) Has been cancelled
Live Media Runner Image / Build live media runner image (push) Has been cancelled
Native App Locale Refresh / Refresh native ar (push) Has been cancelled
Native App Locale Refresh / Refresh native de (push) Has been cancelled
Native App Locale Refresh / Refresh native es (push) Has been cancelled
Native App Locale Refresh / Refresh native ko (push) Has been cancelled
Native App Locale Refresh / Refresh native nl (push) Has been cancelled
Native App Locale Refresh / Refresh native pl (push) Has been cancelled
Native App Locale Refresh / Refresh native pt-BR (push) Has been cancelled
Native App Locale Refresh / Refresh native ru (push) Has been cancelled
Native App Locale Refresh / Refresh native sv (push) Has been cancelled
Native App Locale Refresh / Refresh native th (push) Has been cancelled
Native App Locale Refresh / Refresh native tr (push) Has been cancelled
Native App Locale Refresh / Refresh native uk (push) Has been cancelled
Native App Locale Refresh / Refresh native vi (push) Has been cancelled
Native App Locale Refresh / Refresh native zh-CN (push) Has been cancelled
Native App Locale Refresh / Refresh native zh-TW (push) Has been cancelled
Native App Locale Refresh / Commit native locale refresh (push) Has been cancelled
Plugin Init Scaffold Validation / Validate provider scaffold (push) Has been cancelled
Plugin NPM Release / preview_plugins_npm (push) Has been cancelled
Plugin NPM Release / Validate release publish approval (push) Has been cancelled
Plugin NPM Release / preview_plugin_pack (push) Has been cancelled
Plugin NPM Release / publish_plugins_npm (push) Has been cancelled
Sandbox Common Smoke / sandbox-common-smoke (push) Has been cancelled
Website Installer Sync / static (push) Has been cancelled
Website Installer Sync / linux-docker (push) Has been cancelled
Website Installer Sync / macos-installer (push) Has been cancelled
Website Installer Sync / windows-installer (push) Has been cancelled
Website Installer Sync / sync-website (push) Has been cancelled
Some checks failed
ClawSweeper Dispatch / dispatch (push) Has been cancelled
CodeQL / Security High (actions) (push) Has been cancelled
CodeQL / Security High (channel-runtime-boundary) (push) Has been cancelled
CodeQL / Security High (core-auth-secrets) (push) Has been cancelled
CodeQL / Security High (mcp-process-tool-boundary) (push) Has been cancelled
CodeQL / Security High (network-ssrf-boundary) (push) Has been cancelled
CodeQL / Security High (plugin-trust-boundary) (push) Has been cancelled
CodeQL / Security High (process-exec-boundary) (push) Has been cancelled
Docs Sync Publish Repo / sync-publish-repo (push) Has been cancelled
Docs / docs (push) Has been cancelled
OpenClaw Stable Main Closeout / Resolve stable release closeout inputs (push) Has been cancelled
OpenClaw Stable Main Closeout / Verify stable main closeout (push) Has been cancelled
Workflow Sanity / no-tabs (push) Has been cancelled
Workflow Sanity / actionlint (push) Has been cancelled
Workflow Sanity / generated-doc-baselines (push) Has been cancelled
CI / runner-admission (push) Has been cancelled
CI / preflight (push) Has been cancelled
CI / security-fast (push) Has been cancelled
CI / pnpm-store-warmup (push) Has been cancelled
CI / build-artifacts (push) Has been cancelled
CI / native-i18n (push) Has been cancelled
CI / ${{ matrix.check_name }} (push) Has been cancelled
CI / ${{ matrix.checkName }} (push) Has been cancelled
CI / checks-node-compat-node22 (push) Has been cancelled
CI / check-bundled-channel-config-metadata (push) Has been cancelled
CI / check-dependencies (push) Has been cancelled
CI / check-guards (push) Has been cancelled
CI / check-lint (push) Has been cancelled
CI / check-prod-types (push) Has been cancelled
CI / check-shrinkwrap (push) Has been cancelled
CI / check-test-types (push) Has been cancelled
CI / check-additional-boundaries-a (push) Has been cancelled
CI / check-additional-boundaries-bcd (push) Has been cancelled
CI / check-additional-extension-bundled (push) Has been cancelled
CI / check-additional-extension-channels (push) Has been cancelled
CI / check-additional-extension-package-boundary (push) Has been cancelled
CI / check-additional-runtime-topology-architecture (push) Has been cancelled
CI / check-session-accessor-boundary (push) Has been cancelled
CI / check-session-transcript-reader-boundary (push) Has been cancelled
CI / check-docs (push) Has been cancelled
CI / skills-python (push) Has been cancelled
CI / macos-swift (push) Has been cancelled
CI / ios-build (push) Has been cancelled
CI / ci-timings-summary (push) Has been cancelled
Native App Locale Refresh / Refresh native fa (push) Has been cancelled
Native App Locale Refresh / Refresh native fr (push) Has been cancelled
Native App Locale Refresh / Refresh native hi (push) Has been cancelled
Native App Locale Refresh / Refresh native id (push) Has been cancelled
Native App Locale Refresh / Refresh native it (push) Has been cancelled
Native App Locale Refresh / Refresh native ja-JP (push) Has been cancelled
Control UI Locale Refresh / plan (push) Has been cancelled
Control UI Locale Refresh / Refresh ${{ matrix.locale }} (push) Has been cancelled
Control UI Locale Refresh / Commit control UI locale refresh (push) Has been cancelled
Live Media Runner Image / Build live media runner image (push) Has been cancelled
Native App Locale Refresh / Refresh native ar (push) Has been cancelled
Native App Locale Refresh / Refresh native de (push) Has been cancelled
Native App Locale Refresh / Refresh native es (push) Has been cancelled
Native App Locale Refresh / Refresh native ko (push) Has been cancelled
Native App Locale Refresh / Refresh native nl (push) Has been cancelled
Native App Locale Refresh / Refresh native pl (push) Has been cancelled
Native App Locale Refresh / Refresh native pt-BR (push) Has been cancelled
Native App Locale Refresh / Refresh native ru (push) Has been cancelled
Native App Locale Refresh / Refresh native sv (push) Has been cancelled
Native App Locale Refresh / Refresh native th (push) Has been cancelled
Native App Locale Refresh / Refresh native tr (push) Has been cancelled
Native App Locale Refresh / Refresh native uk (push) Has been cancelled
Native App Locale Refresh / Refresh native vi (push) Has been cancelled
Native App Locale Refresh / Refresh native zh-CN (push) Has been cancelled
Native App Locale Refresh / Refresh native zh-TW (push) Has been cancelled
Native App Locale Refresh / Commit native locale refresh (push) Has been cancelled
Plugin Init Scaffold Validation / Validate provider scaffold (push) Has been cancelled
Plugin NPM Release / preview_plugins_npm (push) Has been cancelled
Plugin NPM Release / Validate release publish approval (push) Has been cancelled
Plugin NPM Release / preview_plugin_pack (push) Has been cancelled
Plugin NPM Release / publish_plugins_npm (push) Has been cancelled
Sandbox Common Smoke / sandbox-common-smoke (push) Has been cancelled
Website Installer Sync / static (push) Has been cancelled
Website Installer Sync / linux-docker (push) Has been cancelled
Website Installer Sync / macos-installer (push) Has been cancelled
Website Installer Sync / windows-installer (push) Has been cancelled
Website Installer Sync / sync-website (push) Has been cancelled
Adolf is a fork/vendored clone of github.com/openclaw/openclaw (v2026.6.11), free to diverge. Tree copied sans upstream .git; upstream remote added for future syncs. Node pinned to 24 (.nvmrc); engines already require >=22.19. Preserves docs/ARCHITECTURE.md. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LeqyaxJF2nbRXJtae2kNB2
This commit is contained in:
251
qa/scenarios/workspace/long-running-release-audit.yaml
Normal file
251
qa/scenarios/workspace/long-running-release-audit.yaml
Normal file
@@ -0,0 +1,251 @@
|
||||
title: Long-running release audit
|
||||
|
||||
scenario:
|
||||
id: long-running-release-audit
|
||||
surface: workspace
|
||||
coverage:
|
||||
primary:
|
||||
- workspace.long-running-task
|
||||
secondary:
|
||||
- workspace.repo-discovery
|
||||
- workspace.artifacts
|
||||
objective: Verify a model can complete a sustained repo audit that requires reading several scattered files, ignoring stale decoys, writing artifacts, and checking its own output.
|
||||
successCriteria:
|
||||
- Agent starts from the seeded project README instead of guessing.
|
||||
- Agent inspects docs and source files across multiple directories.
|
||||
- Agent writes a JSON audit and a Markdown handoff with all required findings.
|
||||
- Each JSON finding carries a boolean verified field; missing current source evidence is verified false.
|
||||
- Agent verifies the generated JSON before finalizing.
|
||||
docsRefs:
|
||||
- docs/help/testing.md
|
||||
- qa/scenarios/index.yaml
|
||||
codeRefs:
|
||||
- extensions/qa-lab/src/suite.ts
|
||||
- extensions/qa-lab/src/scenario-flow-runner.ts
|
||||
execution:
|
||||
kind: flow
|
||||
summary: Verify sustained repo-style auditing with scattered evidence and artifact verification.
|
||||
config:
|
||||
reportFile: audit-fixture/release-audit.json
|
||||
handoffFile: audit-fixture/release-handoff.md
|
||||
expectedFindings:
|
||||
- REL-GATEWAY-417
|
||||
- REL-CHANNEL-238
|
||||
- REL-CRON-904
|
||||
- REL-MEMORY-552
|
||||
- REL-PLUGIN-319
|
||||
- REL-INSTALL-846
|
||||
- REL-DOCS-611
|
||||
workspaceFiles:
|
||||
audit-fixture/README.md: |-
|
||||
# Finch Relay
|
||||
|
||||
Release readiness task:
|
||||
|
||||
The release checklist was renamed during docs cleanup.
|
||||
Find the current checklist under `docs/`, then inspect the referenced
|
||||
source and notes. Produce:
|
||||
|
||||
- `release-audit.json`
|
||||
- `release-handoff.md`
|
||||
|
||||
Do not use `docs/archive/old-release-notes.md` as current evidence.
|
||||
Historical path that may appear in stale notes: `docs/release-checklist.md`.
|
||||
audit-fixture/docs/current-readiness-checklist.md: |-
|
||||
# Release Checklist
|
||||
|
||||
Current release readiness requires checking eight areas:
|
||||
|
||||
1. gateway reconnect handling
|
||||
2. channel delivery ordering
|
||||
3. cron duplicate prevention
|
||||
4. memory recall fallback
|
||||
5. plugin runtime loading
|
||||
6. control UI status copy
|
||||
7. installer update path
|
||||
8. docs update status
|
||||
|
||||
Useful current sources:
|
||||
|
||||
- `src/gateway/reconnect.ts`
|
||||
- `src/channels/delivery.ts`
|
||||
- `src/scheduling/cron.ts`
|
||||
- `src/memory/recall.ts`
|
||||
- `src/plugins/runtime.ts`
|
||||
- `ui/control-panel.ts`
|
||||
- `install/update.ts`
|
||||
- `docs/operator-notes.md`
|
||||
|
||||
The archive folder contains stale notes and should not be treated as
|
||||
current release evidence.
|
||||
audit-fixture/docs/operator-notes.md: |-
|
||||
# Operator Notes
|
||||
|
||||
Current docs update status:
|
||||
|
||||
Finding id: REL-DOCS-611
|
||||
Status: docs mention reconnect, cron, memory, plugin, and installer checks,
|
||||
but the channel ordering and UI notes still need maintainer handoff.
|
||||
audit-fixture/docs/archive/old-release-notes.md: |-
|
||||
# Old Release Notes
|
||||
|
||||
Stale finding id: REL-STALE-000
|
||||
This file is from a previous release and should not appear in the new
|
||||
release audit.
|
||||
audit-fixture/src/gateway/reconnect.ts: |-
|
||||
export const gatewayReconnectReleaseFinding = {
|
||||
id: "REL-GATEWAY-417",
|
||||
area: "gateway reconnect handling",
|
||||
status: "retry jitter verified, resume token fallback still needs manual spot check",
|
||||
};
|
||||
audit-fixture/src/channels/delivery.ts: |-
|
||||
export const channelDeliveryReleaseFinding = {
|
||||
id: "REL-CHANNEL-238",
|
||||
area: "channel delivery ordering",
|
||||
status: "thread replies preserve ordering, root-channel fallback needs handoff note",
|
||||
};
|
||||
audit-fixture/src/scheduling/cron.ts: |-
|
||||
export const cronDuplicateReleaseFinding = {
|
||||
id: "REL-CRON-904",
|
||||
area: "cron duplicate prevention",
|
||||
status: "single-run lock verified for restart wakeups",
|
||||
};
|
||||
audit-fixture/src/memory/recall.ts: |-
|
||||
export const memoryRecallReleaseFinding = {
|
||||
id: "REL-MEMORY-552",
|
||||
area: "memory recall fallback",
|
||||
status: "fallback summary survives empty memory search, but ranking sample needs second reviewer",
|
||||
};
|
||||
audit-fixture/src/plugins/runtime.ts: |-
|
||||
export const pluginRuntimeReleaseFinding = {
|
||||
id: "REL-PLUGIN-319",
|
||||
area: "plugin runtime loading",
|
||||
status: "bundled runtime manifest loads cleanly after restart",
|
||||
};
|
||||
audit-fixture/install/update.ts: |-
|
||||
export const installerUpdateReleaseFinding = {
|
||||
id: "REL-INSTALL-846",
|
||||
area: "installer update path",
|
||||
status: "update smoke passed from previous stable tag",
|
||||
};
|
||||
prompt: |-
|
||||
Do a release readiness audit for the small project under `audit-fixture/`.
|
||||
Start from `audit-fixture/README.md`, find the current checklist, inspect the referenced docs/source, then create `audit-fixture/release-audit.json` and `audit-fixture/release-handoff.md`.
|
||||
|
||||
The JSON should include current finding ids, source files, statuses, and a boolean `verified` on each finding.
|
||||
If a current checklist source is referenced but missing from the fixture, include that source as a finding with `verified: false`.
|
||||
The Markdown handoff should summarize what is ready and what needs follow-up.
|
||||
Check your generated JSON before finalizing.
|
||||
Final reply exactly: RELEASE-AUDIT-COMPLETE
|
||||
|
||||
flow:
|
||||
steps:
|
||||
- name: completes the sustained release audit with verified artifacts
|
||||
actions:
|
||||
- call: waitForGatewayHealthy
|
||||
args:
|
||||
- ref: env
|
||||
- 60000
|
||||
- call: reset
|
||||
- forEach:
|
||||
items:
|
||||
expr: "Object.entries(config.workspaceFiles ?? {})"
|
||||
item: workspaceFile
|
||||
actions:
|
||||
- set: seededPath
|
||||
value:
|
||||
expr: "path.join(env.gateway.workspaceDir, String(workspaceFile[0]))"
|
||||
- call: fs.mkdir
|
||||
args:
|
||||
- expr: "path.dirname(seededPath)"
|
||||
- recursive: true
|
||||
- call: fs.writeFile
|
||||
args:
|
||||
- ref: seededPath
|
||||
- expr: "`${String(workspaceFile[1] ?? '').trimEnd()}\\n`"
|
||||
- utf8
|
||||
- set: sessionKey
|
||||
value:
|
||||
expr: "`agent:qa:release-audit:${randomUUID().slice(0, 8)}`"
|
||||
- call: runAgentPrompt
|
||||
args:
|
||||
- ref: env
|
||||
- sessionKey:
|
||||
ref: sessionKey
|
||||
message:
|
||||
expr: config.prompt
|
||||
timeoutMs:
|
||||
expr: liveTurnTimeoutMs(env, 120000)
|
||||
- set: reportPath
|
||||
value:
|
||||
expr: "path.join(env.gateway.workspaceDir, config.reportFile)"
|
||||
- set: handoffPath
|
||||
value:
|
||||
expr: "path.join(env.gateway.workspaceDir, config.handoffFile)"
|
||||
- call: waitForCondition
|
||||
saveAs: reportText
|
||||
args:
|
||||
- lambda:
|
||||
async: true
|
||||
expr: "fs.readFile(reportPath, 'utf8').then((value) => config.expectedFindings.every((finding) => value.includes(finding)) ? value : undefined).catch(() => undefined)"
|
||||
- expr: liveTurnTimeoutMs(env, 60000)
|
||||
- expr: "env.providerMode === 'mock-openai' ? 100 : 250"
|
||||
- call: waitForCondition
|
||||
saveAs: handoffText
|
||||
args:
|
||||
- lambda:
|
||||
async: true
|
||||
expr: "fs.readFile(handoffPath, 'utf8').then((value) => config.expectedFindings.every((finding) => value.includes(finding)) && !value.includes('REL-STALE-000') ? value : undefined).catch(() => undefined)"
|
||||
- expr: liveTurnTimeoutMs(env, 30000)
|
||||
- expr: "env.providerMode === 'mock-openai' ? 100 : 250"
|
||||
- set: report
|
||||
value:
|
||||
expr: "JSON.parse(reportText)"
|
||||
- assert:
|
||||
expr: "['src/gateway/reconnect.ts', 'src/channels/delivery.ts', 'src/scheduling/cron.ts', 'src/memory/recall.ts', 'src/plugins/runtime.ts', 'install/update.ts', 'docs/operator-notes.md'].every((file) => JSON.stringify(report).includes(file))"
|
||||
message:
|
||||
expr: "`report missing expected source refs: ${reportText}`"
|
||||
- assert:
|
||||
expr: "config.expectedFindings.every((finding) => JSON.stringify(report).includes(finding))"
|
||||
message:
|
||||
expr: "`report missing expected finding ids: ${reportText}`"
|
||||
- assert:
|
||||
expr: "!JSON.stringify(Array.isArray(report.findings) ? report.findings : report).includes('REL-STALE-000') && !handoffText.includes('REL-STALE-000')"
|
||||
message:
|
||||
expr: "`stale archive finding leaked into audit: report=${reportText}\\nhandoff=${handoffText}`"
|
||||
- set: reportFindings
|
||||
value:
|
||||
expr: "Array.isArray(report) ? report : (Array.isArray(report.findings) ? report.findings : [])"
|
||||
- set: uiFinding
|
||||
value:
|
||||
expr: "reportFindings.find((finding) => JSON.stringify(finding).includes('ui/control-panel.ts'))"
|
||||
- assert:
|
||||
expr: "uiFinding && uiFinding.verified === false"
|
||||
message:
|
||||
expr: "`missing UI evidence was not marked unverified: report=${reportText}\\nhandoff=${handoffText}`"
|
||||
- assert:
|
||||
expr: "reportFindings.length > 0 && reportFindings.every((finding) => typeof finding?.verified === 'boolean')"
|
||||
message:
|
||||
expr: "`each report finding must include a boolean verified field: ${reportText}`"
|
||||
- call: waitForAgentHistoryReply
|
||||
saveAs: outbound
|
||||
args:
|
||||
- ref: env
|
||||
- ref: sessionKey
|
||||
- lambda:
|
||||
params: [text]
|
||||
expr: "text.trim() === 'RELEASE-AUDIT-COMPLETE'"
|
||||
- expr: liveTurnTimeoutMs(env, 45000)
|
||||
- expr: "env.providerMode === 'mock-openai' ? 100 : 250"
|
||||
- call: readRawQaSessionStore
|
||||
saveAs: store
|
||||
args:
|
||||
- ref: env
|
||||
- set: sessionEntry
|
||||
value:
|
||||
expr: "store[sessionKey]"
|
||||
- assert:
|
||||
expr: "Boolean(sessionEntry)"
|
||||
message:
|
||||
expr: "`missing QA session entry for ${sessionKey}`"
|
||||
detailsExpr: "`${outbound.text}\\n${reportText}\\n\\n${handoffText}`"
|
||||
Reference in New Issue
Block a user