Skip to content

chore: refresh development dependencies and workflow tools - #1318

Draft
steipete wants to merge 3 commits into
mainfrom
chore/deps-refresh-20260830
Draft

chore: refresh development dependencies and workflow tools#1318
steipete wants to merge 3 commits into
mainfrom
chore/deps-refresh-20260830

Conversation

@steipete

@steipete steipete commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

What Problem This Solves

Refreshes ClawSweeper's development dependencies and pinned workflow tools while retaining the Node 24 support contract and existing validation gates.

Why This Change Was Made

  • markdown-it 15.0.0 → 15.0.1; oxfmt 0.58.0 → 0.65.0; oxlint 1.73.0 → 1.80.0; oxlint-tsgolint 0.24.0 → 7.0.2001. The stable tsgolint version tracks TypeScript 7.0.2 and satisfies Oxlint's new peer requirement (upstream versioning).
  • pnpm 11.10.0 → 11.24.0, including matching workflow pins, cache keys, docs, and integration fixture. Regenerated pnpm-lock.yaml with pnpm; retained the 48-hour minimum release age.
  • Codex CLI 0.146.0 and proxy 0.139.0 → 0.150.1; pinned Node 24.18.1 → 24.20.0.
  • actions/setup-node v6 → v7, pinned checkout commits → v7.0.1, pnpm/action-setup 6.0.9 → 6.0.10, and the remaining upload-artifact v6 → v7. SHA-pinned actions stay SHA-pinned. Updated exact-version assertions without removing assertions or jobs.

The setup-node v7 release migrates the action to ESM and removes dummy NODE_AUTH_TOKEN export; these workflows do not rely on that dummy value. upload-artifact v7 keeps the existing archive behavior by default.

Deferred or intentionally retained:

  • Wrangler remains 4.107.0. The attempted 4.127.1 upgrade terminated with Network connection lost in ProxyController during the local Durable Object/R2 round trip on both Node 26 and Node 24. The same round trip passed on 4.107.0 (207 bytes stored/restored, equal digest/content, mismatched revision rejected). The upgrade was reverted before publication. Recommend a separate upgrade after reproducing on a healthy Linux local container; this macOS evidence is a compatibility blocker, not definitive upstream regression attribution.

  • @types/node stays at the latest 24.x, 24.13.3. Moving to 26.x would admit APIs outside the supported Node 24 runtime; recommend retaining the baseline.

  • OpenClaw 2026.8.1 contains breaking provider-route and plugin migrations. Leave its workflow-tool pin for an owner-reviewed compatibility migration; recommend a separate change with notification and browser-tool integration proof. See release notes.

  • Codex 0.151.0 was published 2026-08-29 around 09:59 UTC and was less than 48 hours old at selection on 2026-08-31 around 07:20 UTC. Use the latest aged pair, 0.150.1; reconsider 0.151.0 after the cooldown with the same transport/sandbox proof.

  • config/openclaw-knip-6.8.0.pnpm-lock.yaml is an exact compatibility cache for the foreign OpenClaw script that requests Knip 6.8.0, not ClawSweeper's package manifest. Advancing it independently would break its matching/offline cache contract.

  • TypeScript 7.0.2, yaml 2.9.0, playwright-core 1.62.1, actionlint 1.7.12, and remaining action-major refs were already current.

User Impact

No intended product behavior change. This is development and workflow tooling maintenance; no changelog entry is needed.

OpenClaw Bay Impact

No Bay code or data-contract change is needed. Dependency and action versions change; queue ownership, status projections, observer routes, and mutation controls remain unchanged.

Documentation Impact

Reviewed CONTRIBUTING.md, docs/README.md, docs/scheduler.md, docs/public-api.md, and docs/live-proof.md. Updated the active pnpm-version statements in CONTRIBUTING.md and docs/scheduler.md; historical proof artifacts keep their recorded versions.

Evidence

Default-branch CI was already successful at the starting head 1b90866: https://github.com/openclaw/clawsweeper/actions/runs/33366416658. CI (ci.yml) is the build/test gate; dashboard-ci.yml refreshes production PR telemetry and is an operations workflow, not a build/test check. No production operation, deploy, apply, close, or merge was run.

  • Frozen install, pnpm run build:all, pnpm run check:static, and pnpm run lint passed on Node 24.20.0/pnpm 11.24.0.
  • actionlint -shellcheck= -ignore 'unexpected key "queue" for "concurrency" section' .github/workflows/*.yml: exit 0.
  • Initial focused workflow/tooling tests: 30 passed, 0 failed. After the first hosted run exposed two stale checkout-SHA expectations, updated those exact expectations without relaxing the guards; the follow-up checkout/backfill selection passed 10 tests with 0 failures.
  • First hosted CI: https://github.com/openclaw/clawsweeper/actions/runs/33370303180 — 4,149 passed, 2 stale-SHA assertions failed, 8 existing platform skips. Current-head CI passed: https://github.com/openclaw/clawsweeper/actions/runs/33371062034 — full pnpm check, Windows launcher, and sparse builds. Current-head CodeQL, containment, and automerge E2E checks also passed.
  • The final Node 24 four-process local gate passed static/build/lint, focused coverage, and the previously failing lock assertion within the full run. It was stopped after prolonged filesystem contention prevented a complete local result. A one-second process sample showed uv_fs_fsync → fcntl/__fcntl on the active test stack. No remaining local assertion failure was observed before cancellation; this is still not a passing full local suite.
  • Codex autoreview: scoped-clean at the requested P0 priority; no accepted/actionable findings.

Draft blocker: the complete local suite has not passed. PATH="/opt/homebrew/opt/bash/bin:$PATH" pnpm run check passed static/build/lint and the focused coverage target, then hit the existing five-second dead-lock reclamation assertion on this busy macOS host. An isolated Node 24 retry eventually passed without any assertion/code change (1 passed, 0 failed). The Node 26 broad run and Node 24 four-process full-suite retry were stopped; their cancellation output is not a complete test result. All tests and coverage thresholds remain unchanged.

Two local Docker-backed Crabbox attempts (cbx_0b48f97eeb23, cbx_54f22625cae6, provider local-container, image node:24.20.0-bookworm, digest sha256:be23f54a88d34e8824c741b19b91064094f92c1c97b194144bfc8b50d67258e2) stalled during container creation before lease admission or test execution. A separate network-disabled Docker echo probe also stalled. No remote provider was substituted and the shared Docker engine was not restarted. Repeat the full local gate on a healthy local container before marking ready.

Real Behavior Proof

Claim: the refreshed dependency graph builds the existing CLI; updated workflow tools preserve cached Node selection, read-only execution, and proxy transport. Wrangler was retained after the failed upgrade proof.

Environment: task-owned macOS arm64 worktree, pnpm 11.24.0. Native host proof; the repository's Windows-specific Docker requirement does not apply to this host. All service inputs are synthetic and all exercised endpoints are loopback. The Worker uses Wrangler's local workerd/Durable Object/R2 storage, with no production credentials.

Built CLI, real synthetic input:

cat > .artifacts/deps-refresh-20260830/job.md <<'JOB'
---
repo: openclaw/clawsweeper
cluster_id: deps-refresh-proof
mode: plan
allowed_actions:
  - comment
candidates:
  - "#1"
---
Synthetic planning-only job for dependency refresh validation.
JOB
node dist/repair/validate-job.js .artifacts/deps-refresh-20260830/job.md
# valid job: .artifacts/deps-refresh-20260830/job.md
node scripts/check-docs.mjs
# Documentation checks passed.
node scripts/build-docs-site.mjs
# built docs site: dist/docs-site (155 pages)

The generated index was served through a real loopback HTTP server and fetched successfully: PASS built docs HTTP GET /: 200, ClawSweeper title, 44700 bytes.

Codex binary and sandbox:

pnpm dlx --package @openai/codex@0.150.1 --package @openai/codex-responses-api-proxy@0.150.1 -c 'codex --version && codex-responses-api-proxy --help'
# codex-cli 0.150.1
# Minimal OpenAI responses proxy
pnpm dlx @openai/codex@0.150.1 sandbox --permission-profile :read-only -C "$PWD/.artifacts/deps-refresh-20260830/codex-sandbox" -- /bin/echo 'PASS Codex 0.150.1 read-only sandbox'
# PASS Codex 0.150.1 read-only sandbox
python3 .artifacts/deps-refresh-20260830/proxy-proof.py
# PASS proxy 0.150.1: forwarded real loopback POST, preserved JSON, injected synthetic bearer, graceful shutdown exit=0

The proxy harness starts the actual 0.150.1 binary with --http-shutdown --server-info <file> --upstream-url http://127.0.0.1:<port>/v1/responses, feeds a synthetic value through stdin, POSTs JSON to its emitted port, verifies the upstream received the same JSON and expected authorization header, verifies the returned JSON, and requests /shutdown with an observed zero exit. It uses no real provider credential or inference.

For actions/setup-node v7, downloaded the action at 820762786026740c76f36085b0efc47a31fe5020 and executed its real dist/setup/index.js with INPUT_NODE-VERSION=24, isolated GITHUB_PATH/GITHUB_ENV/GITHUB_OUTPUT files, and an isolated tool-cache entry pointing to the installed Node 24.20.0 distribution. Result, exit 0:

Found in cache @ .../tool-cache/node/24.20.0/arm64
node: v24.20.0
npm: 11.19.0

The action's cold download matched Node 24.20.0 but extraction was interrupted during host I/O contention; only its real cached-selection path is claimed as passed. The actual action run reported that GitHub cache services were unavailable locally.

Artifacts retained for the orchestrator in .artifacts/deps-refresh-20260830/: build/static/lint/focused logs, Codex review results, proxy harness/output, setup-node output, local Worker logs and normalized retained-version storage receipt, and both failed container startup logs.

Limits: local macOS behavior and synthetic inputs do not prove production credential availability, deployment, external model inference, Linux sandboxing, Windows runtime behavior, or GitHub artifact upload. Hosted CI will provide separate Linux/Windows build/test evidence and will not be presented as a passing full local run. No production workflow was dispatched to manufacture proof.

@clawsweeper

clawsweeper Bot commented Aug 31, 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: 🚨 automation 🚨 Merging this PR could break CI, automerge, proof capture, label sync, or automation. P1 Urgent regression or broken agent/channel workflow affecting real users now. proof: sufficient Contributor real behavior proof is sufficient. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. labels Aug 31, 2026
@clawsweeper

clawsweeper Bot commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Codex review: needs real behavior proof before merge. Reviewed September 1, 2026, 6:58 AM ET / 10:58 UTC.

ClawSweeper review

What this changes

Refreshes development dependencies, Node/pnpm/Codex pins, GitHub Action versions, lockfile entries, documentation, and version-guard tests.

Merge readiness

Blocked until stronger real behavior proof is added - 4 items remain

Keep open: this is a coherent dependency and workflow-tool refresh that current main has not absorbed, but the draft is dirty against main and still lacks the repository-required shared-workflow container proof.

Priority: P2
Reviewed head: b197702676e1625d344d1539e07e9687b914e5ee

Review scores

Measure Result What it means
Overall readiness 🦐 gold shrimp (3/6) The patch is focused and its guard updates are coherent, but merge readiness remains limited by the unresolved rebase and incomplete required workflow proof.
Proof confidence 🦐 gold shrimp (3/6) Needs stronger real behavior proof before merge: The updated production owners are the shared Node/pnpm setup actions and workflow pins. The body supplies real native terminal traces for the Codex proxy and cached setup-node selection, but its local-container attempts stopped before executing a representative changed shared workflow on the current head. After adding proof, update the PR body; ClawSweeper should re-review automatically. If it does not, the PR author or someone with repository write access can comment @clawsweeper re-review.
Patch quality 🐚 platinum hermit (4/6) No actionable review findings were identified.

Verification

Check Result Evidence
Real behavior Needs proof Needs stronger real behavior proof before merge: The updated production owners are the shared Node/pnpm setup actions and workflow pins. The body supplies real native terminal traces for the Codex proxy and cached setup-node selection, but its local-container attempts stopped before executing a representative changed shared workflow on the current head. After adding proof, update the PR body; ClawSweeper should re-review automatically. If it does not, the PR author or someone with repository write access can comment @clawsweeper re-review.
Evidence reviewed 6 items Current main has not implemented the refresh: Current main still sets the shared pnpm action default to 11.10.0, while this branch changes it to 11.24.0; the central requested update remains necessary.
Introduced workflow bootstrap change: The branch updates the shared setup action’s pnpm default and setup-node major while retaining the existing Corepack and frozen-install path.
Security guard remains present: The checkout-action guard was updated to the new SHA and still permits only the v7 tag or that exact pinned revision while rejecting unsafe fork checkout.
Findings None None.
Security None None.

How this fits together

Shared setup actions select Node and pnpm for ClawSweeper’s CI, review, repair, and publishing workflows. The refreshed pins feed those workflows and their validation guards, which then run repository automation.

flowchart LR
A[Development dependency pins] --> B[Lockfile and package manager]
B --> C[Shared setup actions]
C --> D[GitHub Actions workflows]
D --> E[Review and repair automation]
F[Version guard tests] --> C
Loading

Before merge

  • Add real behavior proof - Needs stronger real behavior proof before merge: The updated production owners are the shared Node/pnpm setup actions and workflow pins. The body supplies real native terminal traces for the Codex proxy and cached setup-node selection, but its local-container attempts stopped before executing a representative changed shared workflow on the current head. After adding proof, update the PR body; ClawSweeper should re-review automatically. If it does not, the PR author or someone with repository write access can comment @clawsweeper re-review.
  • Resolve merge risk (P1) - The branch is dirty against current main, so resolving the rebase can alter the behavior of the 27 coordinated version and workflow edits.
  • Resolve merge risk (P1) - The supplied native loopback traces cover portions of the updated tooling, but no successful Docker-backed local-container run exercised a changed shared setup action through a representative workflow on the final head.
  • Complete next step (P2) - This draft needs a contributor rebase and real shared-workflow proof; no narrow automated repair can establish those conditions.
Agent review details

Security

None.

Review metrics

Metric Value Why it matters
Changed surface 27 files; 252 added, 252 removed The coordinated refresh spans shared setup actions, 13 workflows, package resolution, tests, and two docs files.
Dependency declarations 4 dev dependencies and 1 package-manager pin updated The lockfile changes correspond to the declared tooling refresh rather than unrelated production dependencies.

Merge-risk options

Maintainer options:

  1. Rebase and prove the shared workflow (recommended)
    Resolve the current-main conflict, then provide a redacted local-container trace on the rebased head that runs a changed setup action through a representative workflow.
  2. Pause the refresh
    Keep the draft out of the merge queue if the refresh is not worth reconciling and proving against the current workflow baseline.

Technical review

Best possible solution:

Rebase the focused refresh onto current main, resolve its workflow conflicts, and attach a redacted successful local-container trace for a representative shared workflow before landing.

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

Not applicable: this is a tooling-maintenance PR rather than a report of broken product behavior. The remaining validation question is whether the rebased shared workflow runs successfully in its required container environment.

Is this the best way to solve the issue?

Unclear: the version updates and retained guards are coherent, but the branch must first be reconciled with current main and proven through the shared workflow path.

AGENTS.md: found and applied where relevant.

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

Labels

Label justifications:

  • P2: This is a bounded automation-maintenance change with no demonstrated end-user outage, but its shared workflow reach warrants normal maintainer attention.
  • merge-risk: 🚨 automation: The branch changes shared setup actions and workflow action/tool versions used by review, repair, and publishing automation.
  • rating: 🦐 gold shrimp: Overall readiness is 🦐 gold shrimp; proof is 🦐 gold shrimp and patch quality is 🐚 platinum hermit.
  • status: 📣 needs proof: The PR needs real behavior proof before ClawSweeper can clear the contributor ask. Needs stronger real behavior proof before merge: The updated production owners are the shared Node/pnpm setup actions and workflow pins. The body supplies real native terminal traces for the Codex proxy and cached setup-node selection, but its local-container attempts stopped before executing a representative changed shared workflow on the current head. After adding proof, update the PR body; ClawSweeper should re-review automatically. If it does not, the PR author or someone with repository write access can comment @clawsweeper re-review.

Evidence

What I checked:

  • Current main has not implemented the refresh: Current main still sets the shared pnpm action default to 11.10.0, while this branch changes it to 11.24.0; the central requested update remains necessary. (.github/actions/setup-pnpm/action.yml:9, b445c64591bc)
  • Introduced workflow bootstrap change: The branch updates the shared setup action’s pnpm default and setup-node major while retaining the existing Corepack and frozen-install path. (.github/actions/setup-pnpm/action.yml:9, b197702676e1)
  • Security guard remains present: The checkout-action guard was updated to the new SHA and still permits only the v7 tag or that exact pinned revision while rejecting unsafe fork checkout. (test/actions-checkout-v7.test.ts:37, b197702676e1)
  • Dependency resolution is scoped to declared upgrades: The lockfile changes update the declared markdown-it, oxfmt, oxlint, and oxlint-tsgolint packages plus their platform bindings and markdown-it transitive argparse revision. (pnpm-lock.yaml:19, b197702676e1)
  • Current-main workflow history routing: Peter Steinberger recently maintained the overlapping review/repair workflow area in the merged current-main commit “fix(review): avoid repeated sessions and unrelated state export failures.”. (.github/workflows/sweep.yml:4263, 018fb5a5fa97)
  • Merge and proof blockers: GitHub reports the draft as dirty; its body also records that both Docker-backed local-container attempts stalled before lease admission or test execution. The prior completed review requested a rebase and a representative shared setup-action trace. (.github/workflows/crabbox-hydrate.yml:39, b197702676e1)

Likely related people:

  • steipete: Suggested for follow-up; no historical authorship or introduction is verified. (role: unverified routing candidate; confidence: low)

Rank-up moves

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

  • Rebase onto current main and resolve the dirty merge without broadening the refresh.
  • Add a redacted Docker-backed local-container trace that exercises a changed shared setup action through a representative workflow on the rebased head.

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 (8 earlier review cycles)
  • reviewed 2026-08-31T07:54:46.626Z sha bb0eea7 :: needs changes before merge. :: [P1] Keep the new checkout pin within the validation guard
  • reviewed 2026-08-31T07:59:31.348Z sha bb0eea7 :: needs changes before merge. :: [P1] Allow the new checkout v7.0.1 pin in the global guard
  • reviewed 2026-08-31T08:07:09.876Z sha b197702 :: needs real behavior proof before merge. :: none
  • reviewed 2026-08-31T08:16:48.157Z sha b197702 :: needs real behavior proof before merge. :: none
  • reviewed 2026-08-31T08:21:20.616Z sha b197702 :: needs real behavior proof before merge. :: none
  • reviewed 2026-09-01T03:46:08.692Z sha b197702 :: needs real behavior proof before merge. :: none
  • reviewed 2026-09-01T07:15:01.074Z sha b197702 :: needs real behavior proof before merge. :: none
  • reviewed 2026-09-01T08:39:59.622Z sha b197702 :: needs real behavior proof before merge. :: none

@clawsweeper clawsweeper Bot added P2 Normal priority bug or improvement with limited blast radius. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. and removed status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. P1 Urgent regression or broken agent/channel workflow affecting real users now. proof: sufficient Contributor real behavior proof is sufficient. labels Aug 31, 2026
@steipete

Copy link
Copy Markdown
Contributor Author

Provenance note: this draft came out of an automated dependency/CI sweep across the org, from a
checkout directory (clawsweeper-runner-label-escape-hatches) that turned out to be a second
working copy of this repo. This repo was on that sweep's reserved list, so the orchestrator is
not merging this and is leaving it entirely to whoever owns the active clawsweeper work.

State, for whoever picks it up: hosted CI is green at the current head, and two stale checkout-SHA
assertions that PR CI surfaced were repaired. The full local gate has not passed — the native
suite hit filesystem contention and both local-container starts stalled on a heavily loaded host.
No assertions or gates were weakened. Wrangler was intentionally held at 4.107.0 (its storage proof
failed) and the OpenClaw breaking migration was left out as separate work.

Treat as unverified until the full local gate is rerun on a healthy host.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

merge-risk: 🚨 automation 🚨 Merging this PR could break CI, automerge, proof capture, label sync, or automation. P2 Normal priority bug or improvement with limited blast radius. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant