Skip to content

Repository files navigation

ClawPerch

Local-first Agent Mission Control for OpenClaw and Codex operators.

Desktop MVP Runtime Safety Stack

ClawPerch is a desktop control surface for developers running multiple local coding agents. It gives you a compact fleet view, source-health checks, release-readiness evidence, and a guarded Command Broker without letting the UI read raw provider data or execute dangerous commands directly.

Product Links

TL;DR

pnpm install
pnpm --filter @clawperch/desktop dev
pnpm verify:phase37-release-evidence-glossary-crosswalk-gate

Open the local desktop app in fixture mode first. Fixture mode is the verified baseline: deterministic Runtime Snapshot data, compact Agent rows, read-only release evidence, and blocked dangerous-command paths.

Why ClawPerch

Need What ClawPerch provides
Watch many agents without losing context Compact Agent Mission Control rows, filters, detail drawer, task pipeline, and activity stream.
Keep local runtime data behind a boundary A Runtime Adapter emits validated clawperch.agent-runtime-state.v2 snapshots after privacy cleaning.
Preview operator actions safely Command Broker classifies safe, guarded, unknown, and dangerous commands; dangerous commands stay blocked.
Prove release readiness without raw artifacts Phase 8-37 gates generate and verify sanitized static evidence instead of storing raw logs, prompts, or provider payloads.

Current Status

  • Phase 0 through Phase 37 are complete on main.
  • The latest release-readiness slice is Phase 37 Release Evidence Glossary Crosswalk.
  • The active product surface is a local Tauri desktop MVP under apps/desktop/.
  • The default runtime path remains fixture mode; real providers are disabled by default.

Install

Prerequisites:

  • Node.js with [email protected]
  • Rust toolchain for Tauri/Cargo checks
  • Python 3 for adapter and release-gate verifiers
  • Playwright Chromium dependencies for E2E/release checks
pnpm install

Run Locally

pnpm --filter @clawperch/desktop dev

Useful local checks:

pnpm --filter @clawperch/desktop test -- --run releaseReadiness SettingsPanel
pnpm --filter @clawperch/desktop typecheck
pnpm --filter @clawperch/desktop build
python3 -m pytest packages/runtime-adapter/py/tests -q
pnpm validate:runtime-fixtures

Architecture

Tauri Desktop App
├─ React Mission Control UI
├─ Runtime Snapshot contract validation
├─ Local SQLite persistence for sanitized state
├─ Python Runtime Adapter package
├─ Command Broker safety boundary
└─ Release-readiness evidence gates

The frontend consumes validated Runtime Snapshots. It does not directly read OpenClaw, Codex session stores, local scanners, logs, or filesystem sources.

Runtime Modes

Mode Status Purpose
fixture Verified default Deterministic MVP baseline for local development, E2E, release gates, and product demos.
local-readonly Documented / guarded Future read-only source integration path with allowlisted local roots and metadata-only output.
local-guarded Documented / blocked for mutation Future guarded-operations path; dangerous commands remain blocked.

Safety Boundaries

Blocked by design:

  • Logs ingestion beyond checked-in fixture summaries.
  • Local guarded mutations and dangerous command execution.
  • Broad scanner access and local file-open behavior.
  • Raw prompt, provider payload, command output, log body, secret, or unauthorized file-content retention.
  • Export/archive behavior, external-link behavior, CI artifact upload, review-state persistence, drill-progress persistence, dependency-state persistence, FAQ-state persistence, and failure-state persistence.

Verification

Primary release-readiness gate:

pnpm verify:phase37-release-evidence-glossary-crosswalk-gate

Broader release candidate checks:

pnpm verify:v5-local
pnpm verify:v5-release
pnpm verify:phase8-release-gate
pnpm verify:sensitive

Repository Map

Path Purpose
apps/desktop/ Tauri + React desktop app.
packages/runtime-contract/ Runtime Snapshot schema, types, and validators.
packages/runtime-adapter/ Python adapter package and deterministic fixtures.
docs/release/ Sanitized release metadata, evidence, QA, and notes.
docs/superpowers/ Phase specs and implementation plans.
scripts/ Verification gates and metadata generators.

Detailed Release Gate Reference

Phase 8 Real-Source Release Gate

pnpm verify:phase8-release-gate

The Phase 8 gate consolidates provider guidance, adapter privacy probes, fixture determinism, source health history, Playwright fixture journeys, production build marker scanning, Command Broker dangerous-block regression, and raw log/path/prompt leak checks. It does not enable logs ingestion, local-guarded mutations, or dangerous command execution.

Phase 9 Diagnostic Retention Gate

pnpm verify:phase9-diagnostics-gate

The Phase 9 gate proves diagnostic retention is visible and bounded: Runtime Snapshot and adapter-run summary counts stay under the configured retention limit, raw payload retention remains blocked, Settings renders sanitized diagnostic status, sensitive-marker scanning stays green, and Command Broker dangerous commands remain blocked. It does not enable logs ingestion, local-guarded mutations, dangerous command execution, broad scanner access, or raw provider payload persistence.

Phase 10 CI Release Gate

pnpm verify:phase10-ci-gate

The Phase 10 gate verifies GitHub Actions release-gate wiring: pull requests and branch pushes run the fast Phase 9 safety gate, while main and manual runs also execute the heavier Phase 8 read-only real-source gate after installing Playwright Chromium dependencies. It moves sensitive-marker scanning and dangerous-command blocking into CI without enabling logs ingestion, local-guarded mutations, dangerous command execution, broad scanner access, age-based retention, or raw provider payload persistence.

Phase 11 Age-Based Diagnostic Retention Gate

pnpm verify:phase11-age-retention-gate

The Phase 11 gate proves sanitized Runtime Snapshots and adapter-run summaries are pruned by both count and age, Settings renders the active age policy without raw payloads, the Phase 9 upstream safety gate remains green, and sensitive-marker scanning still passes. It does not enable logs ingestion, local-guarded mutations, dangerous commands, broad scanner access, or raw provider payload persistence.

Phase 12 Safety Gate Evidence Manifest

pnpm verify:phase12-safety-manifest-gate

The Phase 12 gate proves sanitized release-gate evidence can be generated without retaining raw command output, raw provider payloads, local paths, prompts, logs, scanner file contents, or adapter stdout/stderr. It records Phase 8/9/10/11 gate status metadata and keeps logs ingestion, local-guarded mutations, dangerous commands, broad scanner access, new retention behavior, and raw provider payload persistence blocked.

Phase 13 CI Safety Gate Refresh

pnpm verify:phase13-ci-safety-refresh-gate

The Phase 13 gate proves CI runs the latest Phase 9/11/12 fast safety chain and keeps Phase 8 on main/manual paths without enabling new runtime capabilities or uploading raw artifacts.

Phase 14 Safety Gate Chain Evidence Alignment

pnpm verify:phase14-safety-chain-gate

The Phase 14 gate proves local safety-gate evidence records the latest pnpm verify:phase13-ci-safety-refresh-gate, pnpm verify:phase12-safety-manifest-gate, pnpm verify:phase11-age-retention-gate, pnpm verify:phase10-ci-gate, pnpm verify:phase9-diagnostics-gate, and pnpm verify:phase8-release-gate chain without retaining raw outputs, uploading artifacts, or enabling logs ingestion, local-guarded mutations, dangerous command execution, broad scanner access, new retention behavior, or raw provider payload persistence.

Phase 15 Safety Handoff Freshness Gate

pnpm verify:phase15-safety-handoff-gate

The Phase 15 gate proves README, task status, checklist, and next-startup prompt stay synchronized with the latest Phase 14/13/12/11/10/9/8 safety chain and blocked-scope reminders. It does not enable logs ingestion, local-guarded mutations, dangerous command execution, broad scanner access, new retention behavior, raw provider payload persistence, raw command output retention, CI artifact upload, or any runtime capability.

Phase 16 Safety Gate Index Consistency

pnpm verify:phase16-safety-index-gate

The Phase 16 gate proves docs/release/clawperch-v5-safety-gate-index.json, package scripts, README, task status, checklist, next-startup prompt, and upstream pnpm verify:phase15-safety-handoff-gate, pnpm verify:phase14-safety-chain-gate, pnpm verify:phase13-ci-safety-refresh-gate, pnpm verify:phase12-safety-manifest-gate, pnpm verify:phase11-age-retention-gate, pnpm verify:phase10-ci-gate, pnpm verify:phase9-diagnostics-gate, and pnpm verify:phase8-release-gate labels stay synchronized. It does not enable logs ingestion, local-guarded mutations, dangerous command execution, broad scanner access, new retention behavior, raw provider payload persistence, raw command output retention, CI artifact upload, or any runtime capability.

Phase 17 Settings Release Readiness Panel

pnpm verify:phase17-release-readiness-gate

The Phase 17 gate proves Settings renders a read-only release-readiness summary from static checked-in metadata aligned to the Phase 16 safety-gate index. It does not enable logs ingestion, local-guarded mutations, dangerous command execution, broad scanner access, new retention behavior, raw provider payload persistence, raw command output retention, CI artifact upload, or any runtime capability.

Phase 18 Release Readiness Metadata Sync

pnpm verify:phase18-release-readiness-sync-gate

The Phase 18 gate proves the Settings release-readiness static metadata is generated from the checked-in Phase 16 safety-gate index and remains synchronized through an offline --check verifier. It does not enable logs ingestion, local-guarded mutations, dangerous command execution, broad scanner access, new retention behavior, raw provider payload persistence, raw command output retention, CI artifact upload, or any runtime capability.

Phase 19 Release Readiness History Snapshot

pnpm verify:phase19-release-readiness-history-gate

The Phase 19 gate proves Settings renders a sanitized release-readiness history generated from checked-in release metadata and the existing safety-gate index. It remains static and read-only: no logs ingestion, local-guarded mutations, dangerous command execution, broad scanner access, new retention behavior, raw provider payload persistence, raw command output retention, CI artifact upload, or runtime capability is enabled.

Phase 19 history rendering is explicit: run python3 scripts/generate_phase18_release_readiness_metadata.py --include-history or --include-history --check for the full Settings metadata. The Phase 18 --check path remains base-only so Phase 18 does not depend on the optional Phase 19 history snapshot.

Phase 20 Release Readiness Review Checklist

pnpm verify:phase20-release-readiness-review-gate

The Phase 20 gate proves Settings renders a static release-readiness review checklist generated from checked-in release metadata, the Phase 16 safety-gate index, and the Phase 19 history snapshot. It remains static and read-only: it does not enable logs ingestion, local-guarded mutations, dangerous command execution, broad scanner access, new retention behavior, raw provider payload persistence, raw command output retention, CI artifact upload, or runtime capability.

Phase 20 review rendering is explicit: run python3 scripts/generate_phase18_release_readiness_metadata.py --include-history --include-review or --include-history --include-review --check for the full Settings metadata. The Phase 18 base --check path and Phase 19 --include-history --check path remain independent from the optional Phase 20 review checklist.

Phase 21 Release Readiness Boundary Matrix

pnpm verify:phase21-release-boundary-matrix-gate

The Phase 21 gate proves Settings renders a static release-readiness boundary matrix generated from checked-in release metadata, the Phase 16 safety-gate index, the Phase 19 history snapshot, and the Phase 20 review checklist. It remains static and read-only: it does not enable logs ingestion, local-guarded mutations, dangerous command execution, broad scanner access, new retention behavior, raw provider payload persistence, raw command output retention, CI artifact upload, or runtime capability.

Phase 21 boundary rendering is explicit: run python3 scripts/generate_phase18_release_readiness_metadata.py --include-history --include-review --include-boundary or --include-history --include-review --include-boundary --check for the full Settings metadata. The Phase 18 base --check path, Phase 19 --include-history --check path, and Phase 20 --include-history --include-review --check path remain independent from the optional Phase 21 boundary matrix.

Phase 22 Release Handoff Packet

pnpm verify:phase22-release-handoff-packet-gate

The Phase 22 gate proves Settings renders a static release handoff packet generated from checked-in release metadata, the Phase 16 safety-gate index, the Phase 19 history snapshot, the Phase 20 review checklist, the Phase 21 boundary matrix, release notes, manual QA checklist, and the next-startup prompt. It remains static and read-only: it does not enable logs ingestion, local-guarded mutations, dangerous command execution, broad scanner access, new retention behavior, raw provider payload persistence, raw command output retention, CI artifact upload, file export, archive creation, or runtime capability.

Phase 22 handoff rendering is explicit: run python3 scripts/generate_phase18_release_readiness_metadata.py --include-history --include-review --include-boundary --include-handoff or --include-history --include-review --include-boundary --include-handoff --check for the full Settings metadata. The Phase 18 base --check path, Phase 19 --include-history --check path, Phase 20 --include-history --include-review --check path, and Phase 21 --include-history --include-review --include-boundary --check path remain independent from the optional Phase 22 handoff packet.

Phase 23 Release Risk Register

pnpm verify:phase23-release-risk-register-gate

The Phase 23 gate proves Settings renders a static release risk register generated from checked-in release metadata, the Phase 16 safety-gate index, the Phase 19 history snapshot, the Phase 20 review checklist, the Phase 21 boundary matrix, the Phase 22 handoff packet, release notes, and manual QA checklist. It remains static and read-only: it does not enable logs ingestion, local-guarded mutations, dangerous command execution, broad scanner access, new retention behavior, raw provider payload persistence, raw command output retention, CI artifact upload, file export, archive creation, or runtime capability.

Phase 23 risk rendering is explicit: run python3 scripts/generate_phase18_release_readiness_metadata.py --include-history --include-review --include-boundary --include-handoff --include-risk or --include-history --include-review --include-boundary --include-handoff --include-risk --check for the full Settings metadata. The Phase 18 base --check path, Phase 19 --include-history --check path, Phase 20 --include-history --include-review --check path, Phase 21 --include-history --include-review --include-boundary --check path, and Phase 22 --include-history --include-review --include-boundary --include-handoff --check path remain independent from the optional Phase 23 risk register.

Phase 24 Release Decision Summary

pnpm verify:phase24-release-decision-summary-gate

The Phase 24 gate proves Settings renders a static release decision summary generated from checked-in release metadata, the Phase 16 safety-gate index, the Phase 19 history snapshot, the Phase 20 review checklist, the Phase 21 boundary matrix, the Phase 22 handoff packet, the Phase 23 risk register, release notes, and manual QA checklist. It remains static and read-only: it does not enable logs ingestion, local-guarded mutations, dangerous command execution, broad scanner access, new retention behavior, raw provider payload persistence, raw command output retention, CI artifact upload, file export, archive creation, or runtime capability.

Phase 24 decision rendering is explicit: run python3 scripts/generate_phase18_release_readiness_metadata.py --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision or --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --check for the full Settings metadata. The Phase 18 base --check path, Phase 19 --include-history --check path, Phase 20 --include-history --include-review --check path, Phase 21 --include-history --include-review --include-boundary --check path, Phase 22 --include-history --include-review --include-boundary --include-handoff --check path, and Phase 23 --include-history --include-review --include-boundary --include-handoff --include-risk --check path remain independent from the optional Phase 24 decision summary.

Phase 25 Release Operator Runbook

pnpm verify:phase25-release-operator-runbook-gate

The Phase 25 gate proves Settings renders a static release operator runbook generated from checked-in release metadata, the Phase 16 safety-gate index, the Phase 19 history snapshot, the Phase 20 review checklist, the Phase 21 boundary matrix, the Phase 22 handoff packet, the Phase 23 risk register, the Phase 24 decision summary, release notes, and manual QA checklist. It remains static and read-only: it does not enable logs ingestion, local-guarded mutations, dangerous command execution, broad scanner access, new retention behavior, raw provider payload persistence, raw command output retention, CI artifact upload, file export, archive creation, or runtime capability.

Phase 25 runbook rendering is explicit: run python3 scripts/generate_phase18_release_readiness_metadata.py --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook or --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --check for the full Settings metadata. The Phase 18 base --check path, Phase 19 --include-history --check path, Phase 20 --include-history --include-review --check path, Phase 21 --include-history --include-review --include-boundary --check path, Phase 22 --include-history --include-review --include-boundary --include-handoff --check path, Phase 23 --include-history --include-review --include-boundary --include-handoff --include-risk --check path, and Phase 24 --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --check path remain independent from the optional Phase 25 operator runbook.

Phase 26 Release Troubleshooting Index

pnpm verify:phase26-release-troubleshooting-index-gate

The Phase 26 gate proves Settings renders a static release troubleshooting index generated from checked-in release metadata, the Phase 16 safety-gate index, the Phase 19 history snapshot, the Phase 20 review checklist, the Phase 21 boundary matrix, the Phase 22 handoff packet, the Phase 23 risk register, the Phase 24 decision summary, the Phase 25 operator runbook, release notes, and manual QA checklist. It remains static and read-only: it does not enable logs ingestion, local-guarded mutations, dangerous command execution, broad scanner access, new retention behavior, raw provider payload persistence, raw command output retention, CI artifact upload, file export, archive creation, or runtime capability.

Phase 26 troubleshooting rendering is explicit: run python3 scripts/generate_phase18_release_readiness_metadata.py --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --include-troubleshooting or --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --include-troubleshooting --check for the full Settings metadata. The Phase 18 base --check path, Phase 19 --include-history --check path, Phase 20 --include-history --include-review --check path, Phase 21 --include-history --include-review --include-boundary --check path, Phase 22 --include-history --include-review --include-boundary --include-handoff --check path, Phase 23 --include-history --include-review --include-boundary --include-handoff --include-risk --check path, Phase 24 --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --check path, and Phase 25 --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --check path remain independent from the optional Phase 26 troubleshooting index.

Phase 27 Release Readiness Glossary

pnpm verify:phase27-release-readiness-glossary-gate

The Phase 27 gate proves Settings renders a static release readiness glossary generated from checked-in release metadata, the Phase 16 safety-gate index, the Phase 19 history snapshot, the Phase 20 review checklist, the Phase 21 boundary matrix, the Phase 22 handoff packet, the Phase 23 risk register, the Phase 24 decision summary, the Phase 25 operator runbook, and the Phase 26 troubleshooting index. It remains static and read-only: it does not enable logs ingestion, local-guarded mutations, dangerous command execution, broad scanner access, new retention behavior, raw provider payload persistence, raw command output retention, CI artifact upload, file export, archive creation, external-link behavior, or runtime capability.

Phase 27 glossary rendering is explicit: run python3 scripts/generate_phase18_release_readiness_metadata.py --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --include-troubleshooting --include-glossary or --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --include-troubleshooting --include-glossary --check for the full Settings metadata. The Phase 18 base --check path, Phase 19 --include-history --check path, Phase 20 --include-history --include-review --check path, Phase 21 --include-history --include-review --include-boundary --check path, Phase 22 --include-history --include-review --include-boundary --include-handoff --check path, Phase 23 --include-history --include-review --include-boundary --include-handoff --include-risk --check path, Phase 24 --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --check path, Phase 25 --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --check path, and Phase 26 --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --include-troubleshooting --check path remain independent from the optional Phase 27 glossary.

Phase 28 Release Evidence Catalog

pnpm verify:phase28-release-evidence-catalog-gate

The Phase 28 gate proves Settings renders a static release evidence catalog generated from checked-in release metadata, the Phase 16 safety-gate index, the Phase 19 history snapshot, the Phase 20 review checklist, the Phase 21 boundary matrix, the Phase 22 handoff packet, the Phase 23 risk register, the Phase 24 decision summary, the Phase 25 operator runbook, the Phase 26 troubleshooting index, and the Phase 27 glossary. It remains static and read-only: it does not enable logs ingestion, local-guarded mutations, dangerous command execution, broad scanner access, new retention behavior, raw provider payload persistence, raw command output retention, CI artifact upload, file export, archive creation, external-link behavior, local file-open behavior, or runtime capability.

Phase 28 evidence catalog rendering is explicit: run python3 scripts/generate_phase18_release_readiness_metadata.py --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --include-troubleshooting --include-glossary --include-evidence-catalog or --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --include-troubleshooting --include-glossary --include-evidence-catalog --check for the full Settings metadata. The Phase 18 base --check path, Phase 19 --include-history --check path, Phase 20 --include-history --include-review --check path, Phase 21 --include-history --include-review --include-boundary --check path, Phase 22 --include-history --include-review --include-boundary --include-handoff --check path, Phase 23 --include-history --include-review --include-boundary --include-handoff --include-risk --check path, Phase 24 --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --check path, Phase 25 --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --check path, Phase 26 --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --include-troubleshooting --check path, and Phase 27 --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --include-troubleshooting --include-glossary --check path remain independent from the optional Phase 28 evidence catalog.

Phase 29 Release Evidence Coverage Matrix

pnpm verify:phase29-release-evidence-coverage-matrix-gate

The Phase 29 gate proves Settings renders a static release evidence coverage matrix generated from checked-in release metadata, the Phase 16 safety-gate index, the Phase 21 boundary matrix, the Phase 27 glossary, and the Phase 28 evidence catalog. It remains static and read-only: it does not enable logs ingestion, local-guarded mutations, dangerous command execution, broad scanner access, new retention behavior, raw provider payload persistence, raw command output retention, CI artifact upload, file export, archive creation, external-link behavior, local file-open behavior, or runtime capability.

Phase 29 coverage rendering is explicit: run python3 scripts/generate_phase18_release_readiness_metadata.py --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --include-troubleshooting --include-glossary --include-evidence-catalog --include-coverage-matrix or --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --include-troubleshooting --include-glossary --include-evidence-catalog --include-coverage-matrix --check for the full Settings metadata. The Phase 18 base --check path, Phase 19 --include-history --check path, Phase 20 --include-history --include-review --check path, Phase 21 --include-history --include-review --include-boundary --check path, Phase 22 --include-history --include-review --include-boundary --include-handoff --check path, Phase 23 --include-history --include-review --include-boundary --include-handoff --include-risk --check path, Phase 24 --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --check path, Phase 25 --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --check path, Phase 26 --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --include-troubleshooting --check path, Phase 27 --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --include-troubleshooting --include-glossary --check path, and Phase 28 --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --include-troubleshooting --include-glossary --include-evidence-catalog --check path remain independent from the optional Phase 29 coverage matrix.

Phase 30 Release Evidence Acceptance Checklist

pnpm verify:phase30-release-evidence-acceptance-checklist-gate

The Phase 30 gate proves Settings renders a static release evidence acceptance checklist generated from checked-in release metadata, the Phase 16 safety-gate index, the Phase 28 evidence catalog, and the Phase 29 coverage matrix. It remains static and read-only: it does not enable logs ingestion, local-guarded mutations, dangerous command execution, broad scanner access, new retention behavior, raw provider payload persistence, raw command output retention, CI artifact upload, file export, archive creation, external-link behavior, local file-open behavior, review-state persistence, or runtime capability.

Phase 30 acceptance rendering is explicit: run python3 scripts/generate_phase18_release_readiness_metadata.py --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --include-troubleshooting --include-glossary --include-evidence-catalog --include-coverage-matrix --include-acceptance-checklist or --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --include-troubleshooting --include-glossary --include-evidence-catalog --include-coverage-matrix --include-acceptance-checklist --check for the full Settings metadata. The Phase 18 base --check path, Phase 19 --include-history --check path, Phase 20 --include-history --include-review --check path, Phase 21 --include-history --include-review --include-boundary --check path, Phase 22 --include-history --include-review --include-boundary --include-handoff --check path, Phase 23 --include-history --include-review --include-boundary --include-handoff --include-risk --check path, Phase 24 --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --check path, Phase 25 --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --check path, Phase 26 --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --include-troubleshooting --check path, Phase 27 --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --include-troubleshooting --include-glossary --check path, Phase 28 --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --include-troubleshooting --include-glossary --include-evidence-catalog --check path, and Phase 29 --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --include-troubleshooting --include-glossary --include-evidence-catalog --include-coverage-matrix --check path remain independent from the optional Phase 30 acceptance checklist.

Phase 31 Release Evidence Review Sequence

pnpm verify:phase31-release-evidence-review-sequence-gate

The Phase 31 gate proves Settings renders a static release evidence review sequence generated from checked-in release metadata, the Phase 16 safety-gate index, and the Phase 30 acceptance checklist. It remains static and read-only: it does not enable logs ingestion, local-guarded mutations, dangerous command execution, broad scanner access, new retention behavior, raw provider payload persistence, raw command output retention, CI artifact upload, file export, archive creation, external-link behavior, local file-open behavior, review-state persistence, or runtime capability.

Phase 31 review sequence rendering is explicit: run python3 scripts/generate_phase18_release_readiness_metadata.py --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --include-troubleshooting --include-glossary --include-evidence-catalog --include-coverage-matrix --include-acceptance-checklist --include-evidence-review-sequence or --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --include-troubleshooting --include-glossary --include-evidence-catalog --include-coverage-matrix --include-acceptance-checklist --include-evidence-review-sequence --check for the full Settings metadata. The Phase 18 base --check path, Phase 19 --include-history --check path, Phase 20 --include-history --include-review --check path, Phase 21 --include-history --include-review --include-boundary --check path, Phase 22 --include-history --include-review --include-boundary --include-handoff --check path, Phase 23 --include-history --include-review --include-boundary --include-handoff --include-risk --check path, Phase 24 --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --check path, Phase 25 --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --check path, Phase 26 --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --include-troubleshooting --check path, Phase 27 --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --include-troubleshooting --include-glossary --check path, Phase 28 --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --include-troubleshooting --include-glossary --include-evidence-catalog --check path, Phase 29 --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --include-troubleshooting --include-glossary --include-evidence-catalog --include-coverage-matrix --check path, and Phase 30 --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --include-troubleshooting --include-glossary --include-evidence-catalog --include-coverage-matrix --include-acceptance-checklist --check path remain independent from the optional Phase 31 review sequence.

Phase 32 Release Evidence Escalation Matrix

pnpm verify:phase32-release-evidence-escalation-matrix-gate

The Phase 32 gate proves Settings renders a static release evidence escalation matrix generated from checked-in release metadata, the Phase 16 safety-gate index, and the Phase 31 review sequence. It remains static and read-only: it does not enable logs ingestion, local-guarded mutations, dangerous command execution, broad scanner access, new retention behavior, raw provider payload persistence, raw command output retention, CI artifact upload, file export, archive creation, external-link behavior, local file-open behavior, review-state persistence, or runtime capability.

Phase 32 escalation rendering is explicit: run python3 scripts/generate_phase18_release_readiness_metadata.py --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --include-troubleshooting --include-glossary --include-evidence-catalog --include-coverage-matrix --include-acceptance-checklist --include-evidence-review-sequence --include-evidence-escalation-matrix or --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --include-troubleshooting --include-glossary --include-evidence-catalog --include-coverage-matrix --include-acceptance-checklist --include-evidence-review-sequence --include-evidence-escalation-matrix --check for the full Settings metadata. The Phase 18 base --check path, Phase 19 --include-history --check path, Phase 20 --include-history --include-review --check path, Phase 21 --include-history --include-review --include-boundary --check path, Phase 22 --include-history --include-review --include-boundary --include-handoff --check path, Phase 23 --include-history --include-review --include-boundary --include-handoff --include-risk --check path, Phase 24 --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --check path, Phase 25 --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --check path, Phase 26 --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --include-troubleshooting --check path, Phase 27 --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --include-troubleshooting --include-glossary --check path, Phase 28 --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --include-troubleshooting --include-glossary --include-evidence-catalog --check path, Phase 29 --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --include-troubleshooting --include-glossary --include-evidence-catalog --include-coverage-matrix --check path, Phase 30 --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --include-troubleshooting --include-glossary --include-evidence-catalog --include-coverage-matrix --include-acceptance-checklist --check path, and Phase 31 --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --include-troubleshooting --include-glossary --include-evidence-catalog --include-coverage-matrix --include-acceptance-checklist --include-evidence-review-sequence --check path remain independent from the optional Phase 32 escalation matrix.

Phase 33 Release Evidence Drill Script

pnpm verify:phase33-release-evidence-drill-script-gate

The Phase 33 gate proves Settings renders a static release evidence drill script generated from checked-in release metadata, the Phase 16 safety-gate index, and the Phase 32 escalation matrix. It remains static and read-only: it does not enable logs ingestion, local-guarded mutations, dangerous command execution, broad scanner access, new retention behavior, raw provider payload persistence, raw command output retention, CI artifact upload, file export, archive creation, external-link behavior, local file-open behavior, review-state persistence, drill-progress persistence, or runtime capability.

Phase 33 drill rendering is explicit: run python3 scripts/generate_phase18_release_readiness_metadata.py --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --include-troubleshooting --include-glossary --include-evidence-catalog --include-coverage-matrix --include-acceptance-checklist --include-evidence-review-sequence --include-evidence-escalation-matrix --include-evidence-drill-script or --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --include-troubleshooting --include-glossary --include-evidence-catalog --include-coverage-matrix --include-acceptance-checklist --include-evidence-review-sequence --include-evidence-escalation-matrix --include-evidence-drill-script --check for the full Settings metadata. The Phase 18 base --check path, Phase 19 --include-history --check path, Phase 20 --include-history --include-review --check path, Phase 21 --include-history --include-review --include-boundary --check path, Phase 22 --include-history --include-review --include-boundary --include-handoff --check path, Phase 23 --include-history --include-review --include-boundary --include-handoff --include-risk --check path, Phase 24 --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --check path, Phase 25 --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --check path, Phase 26 --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --include-troubleshooting --check path, Phase 27 --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --include-troubleshooting --include-glossary --check path, Phase 28 --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --include-troubleshooting --include-glossary --include-evidence-catalog --check path, Phase 29 --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --include-troubleshooting --include-glossary --include-evidence-catalog --include-coverage-matrix --check path, Phase 30 --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --include-troubleshooting --include-glossary --include-evidence-catalog --include-coverage-matrix --include-acceptance-checklist --check path, Phase 31 --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --include-troubleshooting --include-glossary --include-evidence-catalog --include-coverage-matrix --include-acceptance-checklist --include-evidence-review-sequence --check path, and Phase 32 --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --include-troubleshooting --include-glossary --include-evidence-catalog --include-coverage-matrix --include-acceptance-checklist --include-evidence-review-sequence --include-evidence-escalation-matrix --check path remain independent from the optional Phase 33 drill script.

Phase 37 Release Evidence Glossary Crosswalk

pnpm verify:phase37-release-evidence-glossary-crosswalk-gate

The Phase 37 gate proves Settings renders a static release evidence glossary crosswalk generated from checked-in release metadata, the Phase 27 glossary, and the Phase 28 evidence catalog. The crosswalk stores sanitized glossary term ids, evidence catalog item ids, safe interpretations, evidence surfaces, blocked misreads, crosswalk order numbers, and pnpm verify:* labels only. It does not enable logs ingestion, local-guarded mutations, dangerous commands, broad scanner access, new retention behavior, raw provider payload persistence, raw command output retention, CI artifact upload, export/archive behavior, external-link behavior, local file-open behavior, FAQ-state persistence, review-state persistence, drill-progress persistence, dependency-state persistence, failure-state persistence, or runtime capability.

Phase 36 Release Evidence Gate Reviewer FAQ

pnpm verify:phase36-release-evidence-gate-reviewer-faq-gate

The Phase 36 gate proves Settings renders a static release evidence gate reviewer FAQ generated from the checked-in Phase 35 triage guide. The FAQ stores sanitized reviewer questions, bounded answers, safe evidence cues, blocked actions, triage row ids, and pnpm verify:* labels only. It does not enable logs ingestion, local-guarded mutations, dangerous commands, broad scanner access, new retention behavior, raw provider payload persistence, raw command output retention, CI artifact upload, export/archive behavior, external-link behavior, local file-open behavior, FAQ-state persistence, review-state persistence, drill-progress persistence, dependency-state persistence, failure-state persistence, or runtime capability.

Phase 35 Release Evidence Gate Failure Triage

pnpm verify:phase35-release-evidence-gate-failure-triage-gate

The Phase 35 gate proves Settings renders a static release evidence gate failure triage guide generated from checked-in release metadata, the Phase 16 safety-gate index, and the Phase 34 dependency map. It remains static and read-only: it does not enable logs ingestion, local-guarded mutations, dangerous command execution, broad scanner access, new retention behavior, raw provider payload persistence, raw command output retention, CI artifact upload, file export, archive creation, external-link behavior, local file-open behavior, review-state persistence, drill-progress persistence, dependency-state persistence, failure-state persistence, or runtime capability.

Phase 35 triage rendering is explicit: run python3 scripts/generate_phase18_release_readiness_metadata.py --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --include-troubleshooting --include-glossary --include-evidence-catalog --include-coverage-matrix --include-acceptance-checklist --include-evidence-review-sequence --include-evidence-escalation-matrix --include-evidence-drill-script --include-evidence-gate-dependency-map --include-evidence-gate-failure-triage or --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --include-troubleshooting --include-glossary --include-evidence-catalog --include-coverage-matrix --include-acceptance-checklist --include-evidence-review-sequence --include-evidence-escalation-matrix --include-evidence-drill-script --include-evidence-gate-dependency-map --include-evidence-gate-failure-triage --check for the full Settings metadata. The Phase 18 base --check path, Phase 19 --include-history --check path, Phase 20 --include-history --include-review --check path, Phase 21 --include-history --include-review --include-boundary --check path, Phase 22 --include-history --include-review --include-boundary --include-handoff --check path, Phase 23 --include-history --include-review --include-boundary --include-handoff --include-risk --check path, Phase 24 --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --check path, Phase 25 --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --check path, Phase 26 --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --include-troubleshooting --check path, Phase 27 --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --include-troubleshooting --include-glossary --check path, Phase 28 --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --include-troubleshooting --include-glossary --include-evidence-catalog --check path, Phase 29 --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --include-troubleshooting --include-glossary --include-evidence-catalog --include-coverage-matrix --check path, Phase 30 --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --include-troubleshooting --include-glossary --include-evidence-catalog --include-coverage-matrix --include-acceptance-checklist --check path, Phase 31 --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --include-troubleshooting --include-glossary --include-evidence-catalog --include-coverage-matrix --include-acceptance-checklist --include-evidence-review-sequence --check, Phase 32 --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --include-troubleshooting --include-glossary --include-evidence-catalog --include-coverage-matrix --include-acceptance-checklist --include-evidence-review-sequence --include-evidence-escalation-matrix --check, Phase 33 --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --include-troubleshooting --include-glossary --include-evidence-catalog --include-coverage-matrix --include-acceptance-checklist --include-evidence-review-sequence --include-evidence-escalation-matrix --include-evidence-drill-script --check, and Phase 34 --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --include-troubleshooting --include-glossary --include-evidence-catalog --include-coverage-matrix --include-acceptance-checklist --include-evidence-review-sequence --include-evidence-escalation-matrix --include-evidence-drill-script --include-evidence-gate-dependency-map --check paths remain independent from the optional Phase 35 failure triage guide.

Phase 34 Release Evidence Gate Dependency Map

pnpm verify:phase34-release-evidence-gate-dependency-map-gate

The Phase 34 gate proves Settings renders a static release evidence gate dependency map generated from checked-in release metadata, the Phase 16 safety-gate index, and the Phase 33 drill script. It remains static and read-only: it does not enable logs ingestion, local-guarded mutations, dangerous command execution, broad scanner access, new retention behavior, raw provider payload persistence, raw command output retention, CI artifact upload, file export, archive creation, external-link behavior, local file-open behavior, review-state persistence, drill-progress persistence, dependency-state persistence, or runtime capability.

Phase 34 dependency rendering is explicit: run python3 scripts/generate_phase18_release_readiness_metadata.py --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --include-troubleshooting --include-glossary --include-evidence-catalog --include-coverage-matrix --include-acceptance-checklist --include-evidence-review-sequence --include-evidence-escalation-matrix --include-evidence-drill-script --include-evidence-gate-dependency-map or --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --include-troubleshooting --include-glossary --include-evidence-catalog --include-coverage-matrix --include-acceptance-checklist --include-evidence-review-sequence --include-evidence-escalation-matrix --include-evidence-drill-script --include-evidence-gate-dependency-map --check for the full Settings metadata. The Phase 18 base --check path, Phase 19 --include-history --check path, Phase 20 --include-history --include-review --check path, Phase 21 --include-history --include-review --include-boundary --check path, Phase 22 --include-history --include-review --include-boundary --include-handoff --check path, Phase 23 --include-history --include-review --include-boundary --include-handoff --include-risk --check path, Phase 24 --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --check path, Phase 25 --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --check path, Phase 26 --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --include-troubleshooting --check path, Phase 27 --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --include-troubleshooting --include-glossary --check path, Phase 28 --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --include-troubleshooting --include-glossary --include-evidence-catalog --check path, Phase 29 --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --include-troubleshooting --include-glossary --include-evidence-catalog --include-coverage-matrix --check path, Phase 30 --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --include-troubleshooting --include-glossary --include-evidence-catalog --include-coverage-matrix --include-acceptance-checklist --check path, Phase 31 --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --include-troubleshooting --include-glossary --include-evidence-catalog --include-coverage-matrix --include-acceptance-checklist --include-evidence-review-sequence --check, Phase 32 --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --include-troubleshooting --include-glossary --include-evidence-catalog --include-coverage-matrix --include-acceptance-checklist --include-evidence-review-sequence --include-evidence-escalation-matrix --check, and Phase 33 --include-history --include-review --include-boundary --include-handoff --include-risk --include-decision --include-runbook --include-troubleshooting --include-glossary --include-evidence-catalog --include-coverage-matrix --include-acceptance-checklist --include-evidence-review-sequence --include-evidence-escalation-matrix --include-evidence-drill-script --check paths remain independent from the optional Phase 34 dependency map.

Frontend Fixture Verification

pnpm --filter @clawperch/desktop test -- --run controlPlane FeatureErrorBoundary RuntimeSnapshotPanel AgentFleetView CommandDock
pnpm --filter @clawperch/desktop test:e2e
python3 scripts/verify_sensitive_markers.py
pnpm verify:v5-local

The Playwright fixture journeys launch the React app in fixture mode, verify base Agent rendering, exercise 20-Agent and 50-Agent density previews, filter offline Agents, preview safe and guarded commands, persist the refresh interval through the browser fixture fallback, and write DOM/screenshots under apps/desktop/e2e/.artifacts/ for marker scanning and screenshot review. pnpm verify:v5-local runs the Task 9 local gate, including E2E, screenshot artifact validation, sensitive-marker scanning, root tests, typecheck, build, and whitespace checks.

Release Candidate Verification

pnpm audit:deps
pnpm verify:v5-release

pnpm verify:v5-release keeps the Task 9 local gate and adds frozen install, production dependency audit, adapter pytest, Cargo test and Clippy, Tauri debug app packaging, packaged app launch smoke, bundled-app sensitive-marker scan, release documentation checks, app metadata checks, and git diff --check.

About

ClawPerch is a lightweight desktop widget for monitoring and managing OpenClaw and Codex agents.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages