Skip to content

fix: contain public worker status metadata - #1171

Merged
brokemac79 merged 9 commits into
mainfrom
codex/csw-129-worker-status-privacy
Aug 15, 2026
Merged

fix: contain public worker status metadata#1171
brokemac79 merged 9 commits into
mainfrom
codex/csw-129-worker-status-privacy

Conversation

@brokemac79

@brokemac79 brokemac79 commented Aug 15, 2026

Copy link
Copy Markdown
Contributor

Emergency privacy containment status

This PR contains a narrow emergency fix for the public worker-status privacy boundary. The exact head and body are published and aligned, but the change remains unmerged and undeployed; the public boundary must still be treated as exposed until deployment and live verification. Ready transition is governed by the marker-backed exact-head/current-body ClawSweeper verdict described below.

  • Base: d389e6addf4d5db8a39695f19c4a5264895343de
  • Head: fb0e3d73520cfbce8f02ea47eb24dfaa611fa18d
  • Tree: 8c5ff4ca4ddf7f3aabb6e7c768d3ea01c84cf9c8
  • Phase 1 remains blocked and inactive.

What Problem This Solves

Fixes an issue where a public worker-status observation could include unbounded workflow/job metadata when a worker failed. One bounded incident sample contained 33 affected worker entries in one identifying metadata category; a second unbounded metadata category was absent in that sample. The local Phase 0.6 observer also persisted one raw response.

The confirmed exposure sinks are the public status projection and that single local observer artifact. Before this fix, the same response shape could also flow through fresh/stale cache bodies, the status-store snapshot, worker-health cache records, and the public Bay/status path; those reachable paths are treated as part of the containment boundary even where a separate historical copy was not confirmed. The independently sampled 15-minute aggregate egress surface remained privacy-clean.

No credential or secret has been confirmed. PR #1156 enabled detection of the pre-existing boundary defect; it did not cause the missing projection.

Root Cause And Scope

The product lacked a fail-closed projection between private workflow/job state and public/cache serialization. The local observer had a separate defect: it persisted the complete public response instead of a bounded derived observation. Both boundaries required containment.

Private binding-only workflow and queue state remains available to the Worker for operational decisions. Public responses and ordinary persisted state that can later feed a public response are restricted to closed categories, capped counts, booleans, and bounded timestamps. Unexpected, malformed, nested, or legacy shapes are dropped rather than transformed into reversible or high-cardinality pseudonyms.

Why This Change Was Made

The narrowest durable fix is a shared fail-closed projection at every boundary that can serialize or later replay public status, paired with a bounded local observer. This preserves service and private operational state without allowing public correlation data.

Implementation Boundaries

The patch applies defense in depth at both response and persistence boundaries:

  • A shared public projection admits only explicitly closed categories, capped numeric aggregates, booleans, and canonical timestamps.
  • Fresh responses, stale responses, worker-health cache records, status-store snapshots, durable reuse, and legacy reserialization all pass through the same fail-closed contract.
  • Queue diagnostics and failure attribution retain bounded operational categories and counts while discarding unbounded detail.
  • OpenClaw Bay consumes aggregate lane/stage/outcome data only. It does not reconstruct public item rows or correlation keys.
  • Legacy and malformed nested inputs are sanitized before rewrite; unknown shapes fail closed while the status service remains available.
  • Conservation counters, retry attribution, status, pool isolation, and other closed operational telemetry remain useful.

No queue, DLQ, capacity, schedule, admission, credential, workflow-dispatch, deployment, or other production-control behavior is changed.

User Impact

Public dashboard and Bay observers continue to receive operational health and aggregate activity, but can no longer receive per-item workflow/job identity through status, cache, or ordinary durable reuse paths. The intentional compatibility change is that Bay presents aggregate lane activity instead of item-level cards sourced from public status.

OpenClaw Bay Impact

Bay is directly affected and is now aggregate-only. Closed lane, stage, outcome, status, and count data remain available; raw item rows, public correlation keys, and unbounded metadata do not. Deterministic tests and the isolated real-Worker proof cover populated, empty, incomplete, legacy, malformed, cache, persistence, and restart behavior.

Bay remains observer-only. This change neither adds nor exercises queue, workflow, recovery, deploy, or rollback actions.

Collector And Local Containment

  • Remaining Phase 0.6 persistence automation was stopped and was not restarted.
  • The original local artifact was moved recoverably to restricted quarantine and was not destroyed.
  • Quarantined source integrity SHA-256: 241c21fcbcc121d88ce25d15898f6957b06af4a562e0f33f444a6968f0112c1b.
  • A closed observer replacement persists only bounded derived evidence and passed 9/9 self-tests.
  • Closed observer SHA-256: bde54c5cf87cf7b79c293a3dfee40b004d94fdd96635d2a76bc921484aa28ffd.
  • Ordinary notes, reports, snapshots, and receipts use count/boolean-only evidence and are covered by privacy sentinels.

Documentation Lifecycle

The changed dashboard and API documents are active contract documentation. Their source of truth is the Worker/Bay implementation at the exact head above; the owning roles are dashboard Worker and Bay maintainers. Refresh is required whenever public status fields, cache/store reuse, queue telemetry categories, or Bay consumption changes. No changelog or release-owned document is changed.

Evidence

Focused validation

Completed focused validation at the exact head:

  • pnpm run build:dashboard
  • pnpm run check:dashboard-queue-boundary
  • pnpm run check:docs
  • pnpm run lint:dashboard
  • pnpm exec oxfmt --check over the exact changed-file set
  • git diff --check
  • CodeQL regression focus: node --test test/dashboard-worker-bay-records-routes.test.ts passed 45/45, including the new uppercase variant.
  • Reconstructed affected-surface Node test matrix: 428/428 assertions across 14 test files:
node --test \
  test/dashboard-worker-status-privacy.test.ts \
  test/dashboard-worker-dashboard-status.test.ts \
  test/dashboard-worker-observability.test.ts \
  test/dashboard-operational-health.test.ts \
  test/dashboard-worker-bay-records-routes.test.ts \
  test/dashboard-worker-queue-policy.test.ts \
  test/dashboard-worker-queue-runtime.test.ts \
  test/dashboard-worker-telemetry-contracts.test.ts \
  test/dashboard-public-observability.test.ts \
  test/exact-review-read-model-equivalence.test.ts \
  test/dashboard-worker-webhook-ingress.test.ts \
  test/worker-state-blobs.test.ts \
  test/dashboard-worker-publication-lifecycle.test.ts \
  test/github-webhook-read-model.test.ts
  • Dirty Codex review: clean, with no actionable correctness finding after the accepted fixes and proof rerun.

Broad Linux gate

  • Status: pass at the exact head/tree/base above.
  • Command: CI=1 corepack pnpm run check
  • Exit code: 0
  • Tests: 3529; passed: 3521; failed: 0; cancelled: 0; skipped: 8; todo: 0
  • Sanitized gate-log SHA-256: 121a2c60db96a84390013adc9d4e03aa4948d3caeaaf04a8ab5aba8f56dfaa7a
  • Gate log: 640011 bytes, 6398 lines
  • Exact disposable gate containers were removed after validation and confirmed absent.

Committed reviews

  • codex review --base origin/main: exit 0; no actionable finding. Its optional focused run encountered a sandbox temporary-directory limitation, which does not affect the review verdict and is superseded by the exact-tree direct-Docker proof and broad gate.
  • Local ClawSweeper exact-range review: exit 0; patch correct at 0.72 confidence; review findings 0; security cleared with concerns 0.
  • Local ClawSweeper artifact SHA-256: 25edad123b225db338e974ea61441e96d4ea87221c2b13f9c663f18b3560b5f4.
  • The local artifact marked proof missing only because the external direct-Docker receipt was unavailable inside that review artifact. The executed proof is recorded in this body; no product or security finding was emitted.

Hosted automatic gates

  • Exact head/body: published and aligned.
  • Mergeability: MERGEABLE/CLEAN.
  • pnpm check: SUCCESS.
  • CodeQL aggregate: SUCCESS.
  • Analyze actions: SUCCESS.
  • Analyze javascript-typescript: SUCCESS.
  • Windows launcher: SUCCESS.
  • Sparse repair smoke: SUCCESS.
  • Dispatch/notify: SUCCESS.
  • Codesmith: expected skip.
  • Hosted deployment and live post-deployment verification: outside this validation scope; no merge or deployment was performed.

The marker-backed durable ClawSweeper review comment is authoritative. Before ready transition, it must show no findings, proof sufficient, and status ready for maintainer look on this exact head and the current body. The single allowed command has been consumed; its automatic exact-head review supplies the terminal verdict. No additional review command or manual workflow dispatch is authorized.

Real Behavior Proof

Claim

At the exact committed tree, the real Worker status boundary, Bay projection, fresh/stale cache paths, legacy-body rewrite, SQLite Durable Objects, durable reuse, and restart paths emit only bounded aggregate telemetry. Unexpected identifying metadata is removed before ordinary persistence and public output.

Exercised surface and scenario

The proof imported the committed production Worker handler and real StatusStore and ExactReviewQueue classes. A loopback-only canned upstream drove a genuine fresh status miss. The scenario exercised real SQLite-backed status and queue state, populated and incomplete aggregate Bay activity, unsafe synthetic legacy cache input, malformed nested input, sanitizing durable rewrite, cache removal, Worker process stop/start, and reuse of the same durable state after restart.

Command and environment

The authoritative isolation proof was a user-authorized canonical Git-tree direct-Docker run. Two earlier local-container Crabbox attempts failed before execution at the Windows rsync transport boundary; a later supported no-sync/no-hydrate Crabbox run succeeded as a supplemental wrapper receipt. Both paths preserved exact-tree identity and the unchanged assertion contract.

  • Pinned base image: mcr.microsoft.com/playwright@sha256:9bd26ad900bb5e0f4dee75839e957a89ae89c2b7ab1e76050e559790e946b948
  • Final local proof image: sha256:08f5cd852f20ec8e6742ae5e161dca562fe00a40217bd12a64bef2c34033d52f
  • Isolated container: edc51388246fb24064dbb8f60ca7724452f4156c8e7bd293322226a8e0cab057
  • Network mode during proof: none; observed non-loopback interfaces: 0
  • Exact source inside container: /work/exact-app
  • Proof command inside the isolated container:
bash /proof/csw-129-direct-docker-proof/run-proof.sh

Dependencies and required proof tools were hydrated from the frozen lockfile in a disposable networked setup container. That container was removed before the isolated run, and no production request was made.

Source and artifact integrity

  • Git archive SHA-256: 99c3dcf571b072daf58c0b7d1f04a51ce7bf29ba8922b927d18970f66dd75074 (24176640 bytes)
  • Archive manifest SHA-256: 07e883fffa07b17d7ac7f7a1023e687d91223a5d5fd5a7c37c5f830e92598d0b
  • Tracked entries verified: 1207/1207; blob mismatches: 0; mode mismatches: 0; missing entries: 0
  • Frozen lockfile SHA-256: df77ce67f83a655ac42ddf3f97d91db4b0a135f78ee552d7ec209bd84f703917
  • Full-history Git bundle SHA-256: 03abcd9cdffb024e1805415c9e7992167481b48c544208d0aa96c23a43ca8f67 (49321113 bytes)
  • Bundle contained the exact head and base: true
  • Materialized head/tree/base matched and the source was clean before proof: true
  • Aggregate external harness SHA-256: f192cfa68a028dc83603f7d1b720f913541cb249081dad948bb6f0941718c994

The archive was written as a byte-safe on-disk file with Git line-ending conversion disabled, then checked against a tracked-entry blob/mode manifest. The canonical repository was materialized from the verified Git bundle; no Windows working-copy bind or PowerShell byte pipeline was used.

Observed result

First Worker process:

  • Assertions: 107/107
  • Assertion failures: 0
  • Privacy-sentinel matches: 0
  • Forbidden identifying-field matches: 0
  • URL/query-pattern matches: 0

Restarted Worker process using the same durable state after cache removal:

  • Assertions: 89/89
  • Assertion failures: 0
  • Privacy-sentinel matches: 0
  • Forbidden identifying-field matches: 0
  • URL/query-pattern matches: 0
  • Restart count: 1
  • SQLite files observed: 6

Supplemental Crabbox receipt

The same exact committed tree and unchanged behavior harness also passed through the supported Crabbox wrapper:

  • Provider: local-container
  • Lease: cbx_9a795472448d
  • Run: run_03e675dcf829
  • Exact head: fb0e3d73520cfbce8f02ea47eb24dfaa611fa18d
  • Exact tree: 8c5ff4ca4ddf7f3aabb6e7c768d3ea01c84cf9c8
  • Image: sha256:08f5cd852f20ec8e6742ae5e161dca562fe00a40217bd12a64bef2c34033d52f
  • Capture mode: no sync and no hydrate
  • Wrapper SHA-256: 12387532400dfce0d03f0d0d1ecb8d8055a68d78333e950083adfceb4a0f1d2b
  • Output SHA-256: 4212a7865ceb6a6f45a15d9165f39daf5b4f9195916fa0f1f1a4a7b00935b34a (493 bytes); stderr bytes: 0
  • Tracked entries verified: 1207/1207; blob mismatches: 0; mode mismatches: 0; missing entries: 0
  • First process assertions: 107/107; restarted process assertions: 89/89
  • Assertion failures, privacy-sentinel matches, forbidden identifying-field matches, and URL/query-pattern matches: 0
  • Restart count: 1; SQLite files observed: 6
  • Exit code: 0
  • Lease and disposable container: removed and confirmed absent

Crabbox used Docker bridge networking for its SSH transport. The deterministic upstream remained loopback-only, and the run used no production credential or production call. The separate authoritative direct-Docker isolation run remained --network none with zero observed non-loopback interfaces.

Limits

  • The authoritative isolation receipt is the network-none direct-Docker run; the Crabbox local-container receipt is supplemental and used bridge networking only for wrapper SSH transport.
  • It did not contact a production endpoint or exercise a credential, queue mutation, schedule, admission control, deployment, or live state.
  • Hosted CI, CodeQL, the current-body ClawSweeper verdict, deployment, and live post-deployment verification are outside this completed local proof claim.
  • The PR remains unmerged and undeployed. Phase 1 remained inactive.

Review Finding Dispositions

  • Accepted and resolved - preserve Bay stage counts. The earlier ClawSweeper P2 finding was addressed with aggregate-only closed stage counts and deterministic Bay/status tests. No item rows or correlation keys were restored.
  • Accepted and resolved - retain bounded operational usefulness. Dirty-review findings covering safe queue counters, closed health/status categories, terminal outcome breakdowns, pipeline stage/mode categories, and closed-work counts were implemented only through explicit closed allowlists and caps, then covered by regressions.
  • Accepted and resolved - case-insensitive test-helper extraction. The hosted CodeQL aggregate on the preceding head reported a valid high-severity regular-expression gap in a test helper. The helper now matches case-insensitively, an uppercase regression was added, the focused file passed 45/45, the affected-surface matrix passed 428/428, and the dirty Codex review was clean.
  • Accepted compatibility disposition - aggregate-only public contract. The contract intentionally removes public per-item, repository, title, key, URL, and query identity while retaining rich internal state only behind binding-only boundaries. Dashboard, Bay, and closed-observer consumers were migrated, and regressions prove closed aggregates, conservation, persistence, and restart behavior. External consumers must migrate to the documented closed aggregates; the privacy boundary is not weakened for item-level compatibility.
  • Accepted partial-clone disposition - canonical exact-tree compensation. The exact Git bundle, archive, and manifest; 1207/1207 canonical tracked-entry verification; full broad Linux gate; committed Codex review; and local ClawSweeper exact-range review jointly compensate for the partial-clone checkout boundary.
  • Committed reviews - clean. Current-head Codex review found no actionable issue. Current-head local ClawSweeper classified the patch correct, emitted no review finding, and cleared security with no concern; its proof-metadata limitation reflects only the external receipt boundary.
  • Hosted automatic gates - clean. The exact published head/body is aligned and mergeable/clean; substantive CI and CodeQL checks succeeded, and the only skip is expected.
  • Durable ClawSweeper disposition. The marker-backed durable review comment is the authoritative readiness record. Ready transition requires its no-findings, proof-sufficient, ready-for-maintainer-look verdict on this exact head and current body; the single allowed command is already consumed.
  • Review threads observed before this update: 0 unresolved and 0 requested-change reviews.

Risk, Rollout, And Rollback

The main risk is compatibility from intentionally contracting a public data contract. Defense-in-depth projections and aggregate Bay tests reduce that risk while retaining bounded operator value. Private binding-only operational state is not broadly deleted; only public and ordinary reusable projections are reduced.

Do not roll back PR #1156 based on timing. It enabled detection and did not introduce this defect. Once this containment is deployed, reverting it without an equivalent fail-closed replacement would reopen the public privacy boundary. Rollback should therefore be considered only for a demonstrated product regression and paired with equivalent containment.

This PR is not authorization to merge or deploy. Any ready transition remains governed by the authoritative current-body ClawSweeper verdict and ordinary maintainer gates.

Phase 1

Phase 1 remains blocked and inactive. Retry/DLQ and other operational blockers remain separate from this privacy containment.

@clawsweeper

clawsweeper Bot commented Aug 15, 2026

Copy link
Copy Markdown
Contributor

🦞👀
ClawSweeper picked this up.

Pull request received. I will update this pull request when review starts.

@clawsweeper clawsweeper Bot added merge-risk: 🚨 compatibility 🚨 Merging this PR could break existing users, config, migrations, defaults, or upgrades. merge-risk: 🚨 security-boundary 🚨 Merging this PR could weaken sandboxing, authorization, credentials, or sensitive data. P1 Urgent regression or broken agent/channel workflow affecting real users now. rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. labels Aug 15, 2026
@clawsweeper

clawsweeper Bot commented Aug 15, 2026

Copy link
Copy Markdown
Contributor

Codex review: needs maintainer review before merge. Reviewed August 15, 2026, 5:55 PM ET / 21:55 UTC.

ClawSweeper review

What this changes

The PR replaces identity-bearing public Worker status, queue, telemetry, cache, and Bay output with bounded aggregate projections and privacy-focused tests.

Merge readiness

⚠️ Ready for maintainer review - 4 items remain

Keep open for maintainer review: current main still exposes detailed queue/status data, while this PR has sufficient real-behavior proof for its aggregate-only containment approach; the remaining choice is acceptance of the intentional unauthenticated API compatibility break.

Priority: P1
Reviewed head: fb0e3d73520cfbce8f02ea47eb24dfaa611fa18d
Owner decision: Required. See Decision needed.

Review scores

Measure Result What it means
Overall readiness 🐚 platinum hermit (4/6) The PR has strong after-fix runtime evidence and broad regression coverage, while its large public-contract change still merits maintainer boundary approval.
Proof confidence 🦞 diamond lobster (5/6) Sufficient (terminal): The PR body provides exact-head terminal evidence from an isolated run of the real Worker, SQLite-backed state, cache/rewrite, and restart paths with bounded after-fix output.
Patch quality 🐚 platinum hermit (4/6) No actionable review findings were identified.

Verification

Check Result Evidence
Real behavior Verified Sufficient (terminal): The PR body provides exact-head terminal evidence from an isolated run of the real Worker, SQLite-backed state, cache/rewrite, and restart paths with bounded after-fix output.
Evidence reviewed 5 items Current public routing: Current main directly forwards the unauthenticated exact-review queue, item-status, review-observability, and GitHub-egress routes to the queue Durable Object, so the containment work remains necessary.
Existing contract evidence: Current public API documentation describes these routes as unauthenticated and acknowledges queue fields such as per-member recovery boundaries; it also says the inventory has no versioned compatibility promise.
Area provenance: Recent current-main dashboard and queue history is led by Peter Steinberger, including the webhook read-model and operational-health work on which these public projections build.
Findings None None.
Security None None.

How this fits together

The dashboard Worker collects private queue and workflow state, persists operational snapshots, and serves unauthenticated status and Bay observer routes. This PR inserts fail-closed aggregate projections before those public responses and reusable snapshots.

flowchart LR
A[Private workflow and queue state] --> B[Dashboard Worker]
B --> C[Fail-closed public projection]
C --> D[Public status APIs]
C --> E[Cached and durable snapshots]
D --> F[OpenClaw Bay]
E --> F
Loading

Decision needed

Question Recommendation
Should public Worker and Bay routes become permanently aggregate-only now, accepting removal of unauthenticated per-item queue and review data, or should an authenticated replacement be designed first? Approve aggregate-only containment: Merge the fail-closed public projection and treat item-level diagnostics as private operational data.

Why: The code and proof support containment, but the acceptable long-term public observability contract is a security and compatibility policy choice.

Before merge

  • Resolve merge risk (P1) - Existing unauthenticated consumers of per-item queue, review, or Bay data will receive aggregate-only or unavailable responses after deployment, with no authenticated replacement in this PR.
  • Resolve merge risk (P1) - The production privacy boundary remains exposed until this change is merged, deployed, and checked against the live public routes.
  • Resolve merge risk (P1) - The exact PR head could not be fully materialized from the local promisor checkout because its remote was unreachable during review.
Agent review details

Security

None.

Review metrics

Metric Value Why it matters
Changed surface 31 files, +10,762 / -2,377 lines The containment spans Worker routing, queue projections, Bay, persistence, documentation, and regression coverage.
Production versus test growth dashboard source +4,654 / -1,443; tests +5,577 / -524; docs +531 / -410 The large implementation is accompanied by more regression coverage than production-source additions.

Merge-risk options

Maintainer options:

  1. Approve the aggregate-only boundary (recommended)
    Accept removal of public per-item observability to contain identity-bearing operational metadata, then verify deployed public responses.
  2. Pause for an authenticated diagnostic design
    Keep the current public contract temporarily only if maintainers require item-level diagnostics to remain available through a separately authorized path.

Technical review

Best possible solution:

Adopt aggregate-only unauthenticated observability, document the intentional compatibility break, and perform a post-deployment public-route verification; design any needed item-level diagnostics as a separately authenticated surface.

Do we have a high-confidence way to reproduce the issue?

Yes — source-reproducible: current main directly exposes queue-backed public routes and builds public status snapshots containing detailed worker and source data; live production probing was not needed to establish the path.

Is this the best way to solve the issue?

Yes, conditionally: a shared fail-closed projection at response and reuse boundaries is the narrowest durable containment, provided maintainers accept aggregate-only public observability.

AGENTS.md: found and applied where relevant.

Codex review notes: model internal, reasoning high; reviewed against d389e6addf4d.

Labels

Label justifications:

  • P1: This is an urgent public privacy-boundary containment change, but no credential or secret exposure is confirmed.
  • merge-risk: 🚨 security-boundary: The PR changes which private workflow and queue metadata may cross unauthenticated public-response and persistence boundaries.
  • merge-risk: 🚨 compatibility: Public consumers that rely on per-item queue, review, or Bay data may lose those fields after deployment.
  • rating: 🐚 platinum hermit: Overall readiness is 🐚 platinum hermit; proof is 🦞 diamond lobster and patch quality is 🐚 platinum hermit.
  • status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR. Sufficient (terminal): The PR body provides exact-head terminal evidence from an isolated run of the real Worker, SQLite-backed state, cache/rewrite, and restart paths with bounded after-fix output.
  • proof: sufficient: Contributor real behavior proof is sufficient. The PR body provides exact-head terminal evidence from an isolated run of the real Worker, SQLite-backed state, cache/rewrite, and restart paths with bounded after-fix output.

Evidence

What I checked:

  • Current public routing: Current main directly forwards the unauthenticated exact-review queue, item-status, review-observability, and GitHub-egress routes to the queue Durable Object, so the containment work remains necessary. (dashboard/worker.ts:1120, d389e6addf4d)
  • Existing contract evidence: Current public API documentation describes these routes as unauthenticated and acknowledges queue fields such as per-member recovery boundaries; it also says the inventory has no versioned compatibility promise. (docs/public-api.md:10, d389e6addf4d)
  • Area provenance: Recent current-main dashboard and queue history is led by Peter Steinberger, including the webhook read-model and operational-health work on which these public projections build. (dashboard/worker.ts:3846, 6494ab5eb285)
  • Exact-head behavior proof: The PR body records an isolated exact-head Docker run against the production Worker handler, SQLite-backed status and queue state, cache and legacy rewrite paths, and a restart, with bounded output observed after the fix. (fb0e3d73520c)
  • Local inspection limit: The checkout could inspect current main and supplied PR diff context, but could not materialize the PR commit locally because its promisor remote could not resolve; this does not negate the contributor’s recorded proof.

Likely related people:

  • Peter Steinberger: Authored the recent webhook read-model and operational-health work that supplies the status and queue data being projected. (role: recent dashboard and queue feature owner; confidence: high; commits: bf762f3f6f9e, 6494ab5eb285, 765644804756; files: dashboard/worker.ts, dashboard/exact-review-queue.ts, dashboard/live-activity.ts)
  • Martin Cleary: Authored current main’s most recent Bay-related change and has recent history in the live-activity surface affected by the public projection. (role: recent Bay contributor; confidence: medium; commits: d389e6addf4d, 56cb78d60734; files: dashboard/bay-page.ts, dashboard/live-activity.ts)

Rank-up moves

Optional improvements that raise the rating; they are not merge blockers.

  • Record the maintainer decision on aggregate-only unauthenticated observability and verify the deployed public routes after merge.

Rating scale

Score Internal tier Crab rank Meaning
6/6 S 🦀 challenger crab Exceptional readiness
5/6 A 🦞 diamond lobster Very strong readiness
4/6 B 🐚 platinum hermit Good normal PR; ordinary maintainer review
3/6 C 🦐 gold shrimp Useful, but confidence is limited
2/6 D 🦪 silver shellfish Proof or implementation needs work
1/6 F 🧂 unranked krab Not merge-ready
N/A NA 🌊 off-meta tidepool Rating does not apply

Overall follows the weaker of proof and patch quality.
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics.

Workflow

  • ClawSweeper keeps one durable marker-backed review comment per issue or PR.
  • Re-runs edit this comment so the latest verdict, findings, and automation markers stay together instead of adding duplicate bot comments.
  • A fresh review can be triggered by eligible @clawsweeper re-review comments, exact-item GitHub events, scheduled/background review runs, or manual workflow dispatch.
  • PR/issue authors and users with repository write access can comment @clawsweeper re-review or @clawsweeper re-run on an open PR or issue to request a fresh review only.
  • Maintainers can also comment @clawsweeper review to request a fresh review only.
  • Fresh-review commands do not start repair, autofix, rebase, CI repair, or automerge.
  • Maintainer-only repair and merge flows require explicit commands such as @clawsweeper autofix, @clawsweeper automerge, @clawsweeper fix ci, or @clawsweeper address review.
  • Maintainers can comment @clawsweeper explain to ask for more context, or @clawsweeper stop to stop active automation.

History

Review history (5 earlier review cycles)
  • reviewed 2026-08-15T10:56:55.708Z sha cfc1326 :: needs real behavior proof before merge. :: [P2] Preserve Bay stage counts in the public projection
  • reviewed 2026-08-15T11:27:12.115Z sha 6f9c8c9 :: needs real behavior proof before merge. :: none
  • reviewed 2026-08-15T20:52:20.821Z sha fb0e3d7 :: needs real behavior proof before merge. :: none
  • reviewed 2026-08-15T21:00:25.632Z sha fb0e3d7 :: needs real behavior proof before merge. :: none
  • reviewed 2026-08-15T21:46:50.161Z sha fb0e3d7 :: needs maintainer review before merge. :: none

@brokemac79

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented Aug 15, 2026

Copy link
Copy Markdown
Contributor

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event exact_review_queue).
Result: when the review finishes, ClawSweeper will create the durable review comment if needed or update the existing comment in place.

Re-review progress:

Comment thread test/dashboard-worker-bay-records-routes.test.ts Fixed
@clawsweeper clawsweeper Bot added rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. and removed rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. labels Aug 15, 2026
@clawsweeper clawsweeper Bot added proof: sufficient Contributor real behavior proof is sufficient. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. and removed status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. labels Aug 15, 2026
@brokemac79
brokemac79 marked this pull request as ready for review August 15, 2026 21:52
@brokemac79
brokemac79 merged commit 43799a1 into main Aug 15, 2026
30 checks passed
@brokemac79
brokemac79 deleted the codex/csw-129-worker-status-privacy branch August 15, 2026 23:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

merge-risk: 🚨 compatibility 🚨 Merging this PR could break existing users, config, migrations, defaults, or upgrades. merge-risk: 🚨 security-boundary 🚨 Merging this PR could weaken sandboxing, authorization, credentials, or sensitive data. P1 Urgent regression or broken agent/channel workflow affecting real users now. proof: sufficient Contributor real behavior proof is sufficient. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants