ci: add protected broker soak canary - #1218
Conversation
|
Codex review: found issues before merge. Reviewed August 1, 2026, 5:35 AM ET / 09:35 UTC. ClawSweeper reviewWhat this changesThe branch adds a manually dispatched, protected GitHub Actions canary that audits broker maintenance, performs one bounded Daytona run through Crabbox, verifies canary-lease cleanup, and uploads sanitized evidence. Merge readinessThis PR remains necessary as the candidate implementation for the linked operations request, but the current head still has the two prior P2 policy findings: it edits the release-owned changelog and hard-codes OpenClaw-specific workflow identities in a repository that requires generic examples and workflows. The protected-dispatch pattern otherwise matches current main’s credentialed workflow safeguards; because this is a MEMBER-authored, production-credential workflow, it should remain open for explicit maintainer approval after those repairs. Priority: P2 Review scores
Verification
How this fits togetherCrabbox uses GitHub Actions for protected operational workflows that call the coordinator with environment-scoped credentials. This new workflow would inspect maintenance records, use the broker to create a short Daytona lease, wait for cleanup, and expose redacted results as an operator artifact. flowchart LR
Dispatch[Manual protected dispatch] --> Guard[Default-branch guard]
Guard --> Audit[Maintenance audit]
Audit --> Run[Brokered Daytona run]
Run --> Cleanup[Scoped lease cleanup check]
Cleanup --> Artifact[Sanitized proof artifact]
Artifact --> Operators[Operator review]
Decision needed
Why: The patch introduces a credentialed workflow that provisions and releases real broker resources; code review can verify guards, but maintainers must decide whether this production operational boundary is acceptable. Before merge
Findings
Agent review detailsSecurityNone. Review metrics
Root-cause clusterRelationship: Members:
Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything. Merge-risk optionsMaintainer options:
Copy recommended automerge instructionTechnical reviewBest possible solution: Keep the protected guard, bounded run, cleanup verification, and sanitized artifact design; remove the release-owned changelog edit, derive the organization from the repository context, use a generic canary owner identity, and obtain a redacted protected-branch dispatch record before enabling the production workflow. Do we have a high-confidence way to reproduce the issue? Not applicable: this PR adds a new operational canary, not a correction to an existing reproducible user failure. The proposed workflow has focused static tests, but no completed protected-branch canary run is available as deployment proof. Is this the best way to solve the issue? No: the protected workflow structure is consistent with current main, but retaining the release-owned changelog edit and deployment-specific identity values is not the narrowest maintainable solution. Repository-derived organization data and generic example identity values preserve the intended behavior without coupling the workflow to one project name. Full review comments:
Overall correctness: patch is incorrect AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 64a7f8f50e00. LabelsLabel justifications:
EvidenceWhat I checked:
Likely related people:
Rank-up movesOptional improvements that raise the rating; they are not merge blockers.
Rating scale
Overall follows the weaker of proof and patch quality. Workflow
HistoryReview history (1 earlier review cycle)
|
|
Land-ready proof for exact head
Known proof gap: the protected production canary can only be dispatched after this workflow lands on the default branch. I will dispatch it from the exact merged |
|
Production proof is complete on exact merged
The uploaded artifact contains only the sanitized maintenance, doctor, timing, and cleanup records; no lease IDs, hosts, slugs, or provider credentials. |
Closes #1217
What Problem This Solves
Resolves an operational gap where broker maintenance and Daytona fallback readiness had no bounded production canary with durable, sanitized evidence.
Why This Change Was Made
Adds a manual, protected default-branch workflow that audits scheduled AWS and Azure orphan sweeps, runs one broker-only Daytona command, and verifies cleanup for a run-scoped owner. It reuses the existing image-publisher broker credentials, never receives direct provider credentials, and creates no warm pool.
User Impact
Operators can validate broker scheduler health and Daytona fallback behavior without local AWS, Azure, or Daytona authentication. Each run is serialized, time-bounded, and fails closed on stale or errored maintenance evidence or incomplete lease cleanup.
Evidence
actionlint .github/workflows/broker-soak-canary.ymlnode --test scripts/broker-soak-canary-workflow.test.js scripts/workflow-action-pins.test.js(4 passed)Date.toISOString()timestampsactions/upload-artifact@v7.0.1pinned to043fb46d1a93c77aae656e7c1c64a875d1fc6a0a; official manifest uses Node 24