66 Commits

Author SHA1 Message Date
Patrick Erichsen a9775fc39b ci: restore static and unit baseline gates (#3219)
* test: use valid artifact fixture hashes

* chore(deps): override newly vulnerable transitive packages
2026-07-21 22:19:53 -07:00
Patrick Erichsen b34a0d69ff feat: add dark skills.sh catalog control plane (#3211)
Ships the fail-closed skills.sh catalog control plane validated by the bounded 500-row permanent Test gate. No production ingestion, schedule, visibility, or bulk scanning is enabled.
2026-07-21 20:50:07 -07:00
Patrick Erichsen f9713e81cd fix(security): handle artifact directory markers (#3206) 2026-07-21 17:55:22 -07:00
Patrick Erichsen a9c8efdd93 fix(security): extend prepublication ClawScan timeout (#3190) 2026-07-20 11:39:57 -07:00
Patrick Erichsen 57d1e1530b fix: isolate ClawScan worker shard concurrency (#3188) 2026-07-20 11:17:46 -07:00
Patrick Erichsen c92776da8b fix: increase prepublication worker throughput (#3162) 2026-07-17 14:25:45 -07:00
Peter Steinberger 0c04d6a9d5 ci: harden flaky ClawScan test and preview deploys; restore promo icon token (#3159)
* test: make ClawScan process-tree timeout test deterministic

The timeout test raced its 500ms deadline against the fixture writing
descendant.pid, and treated zombies as live processes via kill(pid, 0).
Under parallel coverage runs it flaked. Now waits for the pid barrier,
drives the timeout with fake timers, and treats zombie state as exited.

* ci: retry transient convex preview provisioning failures

Fresh Convex preview deployments intermittently 404 on get_config_hashes
while provisioning, failing the whole Vercel preview build after the
CLI's internal retries. Retry the preview deploy step up to 3 attempts
with 20s/40s backoff; other steps keep fail-fast behavior.

* fix: restore promotion bar icon geometry token

77459acc dropped border-radius: var(--oc-radius-inset) from
.promotion-bar-icon while folding the removed fallback rule into it,
breaking the ui-design-contract test on main.

* ci: retry preview pipeline under fresh preview names

Retrying --preview-create under the same name leaves two deployments and
convex run --preview-name can resolve to the dead one (seen live: seed
failed with missing functions after a successful retry). Each retry now
reruns deploy plus seed under <branch>-retry-N so resolution is unique.
2026-07-17 21:08:51 +01:00
Patrick Erichsen f9e58d4f0c fix(security): remove VirusTotal from ClawScan workers (#3156) 2026-07-17 10:55:54 -07:00
Patrick Erichsen 088cb3275c fix: terminate prepublication process trees (#3145) 2026-07-17 02:10:12 -07:00
Patrick Erichsen aba593104c chore: pin clawscan 0.1.5 (#3144) 2026-07-17 01:29:26 -07:00
Patrick Erichsen 0da4aa718b fix: restore prepublication ClawScan authentication (#3142)
* fix: preserve prepublication judge errors

* fix: pass codex credential to prepublication scans

* fix: keep node tests out of vitest
2026-07-16 23:38:09 -07:00
Patrick Erichsen 67e6413cf5 fix: preserve empty prepublication inputs (#3139) 2026-07-16 22:14:21 -07:00
Patrick Erichsen e29d1c6005 fix: reuse exact prepublication scan verdicts (#3134) 2026-07-16 21:16:05 -07:00
Patrick Erichsen 352b901c77 fix: install prepublication judge runtime (#3132) 2026-07-16 20:36:41 -07:00
Patrick Erichsen f5ce8d702f fix: support exact prepublication recovery claims (#3131) 2026-07-16 20:32:37 -07:00
Patrick Erichsen 728aba7b9d fix: prevent prepublication scan starvation (#3130) 2026-07-16 20:21:16 -07:00
Patrick Erichsen bcf33f04ee refactor(security): remove legacy scan implementation (#3124) 2026-07-16 16:49:36 -07:00
Patrick Erichsen 812bc21560 fix(security): reuse cached VirusTotal evidence (#3118)
* fix(security): reuse cached VirusTotal evidence

* fix(security): requeue failed scan backlog

* fix(security): harden failed scan recovery
2026-07-16 13:27:03 -07:00
Patrick Erichsen b23d10d989 feat: gate public publishes without breaking old CLIs
Closes CLAW-526.\n\nSummary:\n- create pending skill versions and plugin releases that remain hidden until TruffleHog and ClawScan pass\n- preserve older CLI response compatibility while newer CLI output explains pending security checks\n- run prepublication worker promotion/blocking for skills and plugins\n- add local-auth coverage for clean skill/plugin publish and secret-positive skill rejection\n\nValidation on PR head d2482434:\n- local: bunx tsc -p packages/schema/tsconfig.json --noEmit\n- local: bunx tsc -p packages/clawhub/tsconfig.json --noEmit\n- local: bunx vitest run convex/lib/skillPublish.test.ts convex/publishAttempts.test.ts convex/skills.versions.public.test.ts convex/packages.public.test.ts packages/schema/src/schemas.test.ts scripts/security/run-prepublication-worker.test.ts scripts/security/prepublication-worker-workflow.test.ts\n- local: bun run ci:static\n- local: bun run ci:types-build && bun run ci:packages\n- GitHub: pr-gates, static, unit, packages, types-build, e2e-http, old-cli-publish, playwright-smoke, secret scanning, CodeQL, and Vercel preview passed\n\nKnown CI note:\n- unrelated local-auth shards continued to rotate failures under the already-diagnosed local Convex starvation issue; ignored per maintainer instruction.
2026-07-16 11:38:40 -07:00
Patrick Erichsen 8e614ba8d2 fix(security): require ClawScan artifact inspection (#3099) 2026-07-15 22:31:20 -07:00
Patrick Erichsen 90dcbf291c fix(security): classify SkillSpector findings exits correctly (#3098)
* fix(security): classify SkillSpector findings exits correctly

* fix(security): require findings for SkillSpector exit one

* fix(security): require SkillSpector exit status

* fix(security): validate SkillSpector findings reports
2026-07-15 19:56:07 -07:00
Patrick Erichsen 522d2bdbf1 feat(security): publish cutover health summaries (#3097)
* feat(security): publish scan worker health summaries

* test(security): cover scan health diagnostics
2026-07-15 18:18:53 -07:00
Patrick Erichsen 49abba7747 feat: add security scan comparison modes (#3095) 2026-07-15 17:23:28 -07:00
Patrick Erichsen 9bb4278333 feat(security): route all scan targets through ClawScan (#3094) 2026-07-15 16:37:58 -07:00
Patrick Erichsen 1818e234d9 feat(security): run skill-version scans through OSS ClawScan
Implements CLAW-541: an artifact-only OSS ClawScan path at the canonical worker seam while preserving the legacy production default. Includes strict artifact validation, complete secret-safe diagnostics, required VirusTotal wiring, and focused route/failure coverage.
2026-07-15 16:15:19 -07:00
Patrick Erichsen 6491975787 perf: add tenth security scan worker (#3048) 2026-07-09 21:13:32 -07:00
Patrick Erichsen 0be13d35e9 perf: add ninth security scan worker (#3047) 2026-07-09 20:25:40 -07:00
Patrick Erichsen cd48c5935d perf: raise security scan worker fanout (#3044) 2026-07-09 19:28:12 -07:00
Patrick Erichsen a857ddcb08 fix: keep scan workers refilling after hydration skips (#3043) 2026-07-09 18:38:49 -07:00
Patrick Erichsen 082e620574 fix: keep shadow scans off throughput workers (#3040) 2026-07-09 14:11:15 -07:00
Patrick Erichsen 8c14d84d63 feat: add continuously refilled security scan workers (#3039) 2026-07-09 13:43:47 -07:00
Patrick Erichsen 8d70da7d76 fix: dispatch ClawScan through repository events (#3031) 2026-07-08 22:33:20 -07:00
Patrick Erichsen 683a1bf5dd fix: dispatch ClawScan workers from Convex (#3029) 2026-07-08 21:57:14 -07:00
Patrick Erichsen a0ca9317cb fix: keep prepublication recovery draining (#3000) 2026-07-07 13:49:38 -05:00
Patrick Erichsen 49542c67ac fix: harden prepublication queue drain 2026-07-07 12:47:14 -05:00
Patrick Erichsen 370bfcac31 fix: add recovery runner fallback 2026-07-07 12:22:44 -05:00
Patrick Erichsen 7c6508f878 fix: recover staged publish finalization 2026-07-07 10:55:39 -05:00
Patrick Erichsen a1cb59ecec fix: pass Codex API key to ClawScan shadow
Pass CODEX_API_KEY into the security scan worker so the nested ClawScan Docker judge can authenticate Codex.
2026-07-07 09:35:14 -05:00
Patrick Erichsen 3cab981b0b fix: run ClawScan shadow for scan requests
Allow artifact-only ClawScan shadow diagnostics to run for staged publish skillScanRequest jobs.
2026-07-07 09:01:03 -05:00
Patrick Erichsen fe7aab3328 feat: add staged publish prepublication worker 2026-07-06 19:47:04 -05:00
Patrick Erichsen e7dd2536c2 feat: add ClawScan shadow diagnostics
Run OSS ClawScan in artifact-only shadow mode after successful production security scans.
2026-07-06 13:32:41 -07:00
Vincent Koc f96ae4a54e fix(workers): harden ClawHub background retries (#2924) 2026-06-28 11:13:37 -07:00
Vincent Koc 8f98128aab fix(security): tolerate transient scan claim failures
Treats transient partial claim failures as nonfatal for Codex security scan workers while keeping no-work claim outages fatal. Validation: targeted worker test, format check, git diff --check, ci:static, autoreview clean, PR CI green.
2026-06-27 09:26:14 -07:00
Patrick Erichsen 6a18bea576 fix: update codex worker cli pin 2026-06-26 21:05:50 -07:00
Vincent Koc 9201622a21 fix(ci): pin security scanner dependencies 2026-06-26 14:55:55 -07:00
Vincent Koc 9c690e1296 fix(ci): scan initial pushes with full history 2026-06-26 14:55:55 -07:00
Vincent Koc aa82eea8d3 fix(ci): bound security scan worker runtime 2026-06-25 20:43:31 +08:00
Vincent Koc 3f66813e70 fix(security): limit SkillSpector to bundled skills (#2863)
fix(security): limit SkillSpector to bundled skills
2026-06-25 15:16:15 +08:00
Jesse Merhi 2deb1b75e9 Harden worker secret logging (#2784)
* fix: redact scan worker artifact errors

* fix: harden worker secret logging

* fix: keep worker claim failures failing

* fix: scan diagnostics as files

* fix: pin diagnostics scanner image

* fix: narrow worker redaction boundary

* fix: avoid custom worker secret patterns

* fix: centralize worker transport redaction

* fix: redact persisted worker failure secrets

* fix: fail security worker on claim outages

* fix: redact structured diagnostic secret fields

* fix: harden worker failure redaction boundaries

* fix: cover bracketed worker secret values

* test: enforce worker workflow secret references

* fix: redact quoted worker secret values

* fix: redact diagnostic artifact path labels

* test: cover claim failure redaction

* fix: simplify worker redaction boundary

* test: prove worker logger emits structured events
2026-06-25 11:47:39 +10:00
Vincent Koc 503a2bf022 fix(ci): reduce ClawHub worker fanout (#2770) 2026-06-22 12:41:56 +08:00