237 Commits

Author SHA1 Message Date
Patrick Erichsen ee9fac51cd feat: add controlled skills.sh metadata canary (#3217) 2026-07-21 23:21:19 -07:00
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 3097319ef6 fix: publish complete skill artifacts (#3196)
* fix: preserve complete skill artifacts

* test: align artifact metadata expectations

* fix: harden complete skill artifact handling

* fix: close complete artifact review gaps

* fix: preserve legacy skill file metadata hints

* fix: close artifact presentation review gaps

* fix(cli): preserve legacy skill file collector export

* refactor: centralize artifact upload helpers

* fix: preserve artifact scan and publish bounds

* fix: scan complete published text artifacts

* fix: harden artifact download presentation

* test: avoid secret-like fixture text

* refactor: preview artifacts by content

* chore(deps): patch transitive audit advisories
2026-07-20 15:54:47 -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 f3ece75ee4 ci: namespace Vercel convex preview names per builder (#3161)
A second preview deploy-key consumer runs --preview-create on raw branch
names; Convex replaces same-name previews by delete-and-create, so it was
deleting Vercel's fresh deployments mid-push (get_config_hashes and
wait_for_schema 404s on every PR preview today; confirmed via the Convex
team audit log create/delete pairs seconds apart). Suffix all Vercel-built
preview names with -vercel so no other consumer can collide with them.
2026-07-17 21:43:02 +01: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 173fca15fa ci: cut local-auth e2e critical path (#3140) 2026-07-17 10:24:00 -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 1ab6ab1e84 ci: give local-auth shards larger runners (#3119) 2026-07-16 16:59:35 -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 3134a20492 feat: make Featured the default ClawHub catalog (#3096)
* feat: make home catalog featured-first

* fix: order plugins before skills on home

* feat: refine featured catalog landing page

* fix: seed featured catalog previews

* fix: reduce official creator shelf
2026-07-15 21:55:18 -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 4c59924104 feat: automate test environment deployments 2026-07-09 20:14:19 -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 92d4cc842c fix: scale sanitized snapshot processing 2026-07-09 14:50:42 -07:00
Patrick Erichsen c9265c8bbd feat: add sanitized test environment seeding 2026-07-09 14:50:42 -07:00
Patrick Erichsen 1e9b641dde fix: support permanent Vercel test environment 2026-07-09 14:50:42 -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 de29369ba7 feat: adopt shared design system across ClawHub UI (#3026)
* chore: install OpenClaw design system

* feat: adopt shared design system palette

* chore: automate design system updates

* feat: add weekly design system audit

* fix: prevent mobile skills tab overlap

* fix: harden design audit automation

* fix: validate audit changes before execution

* fix: scope design system clone credentials

* fix: align audit with installed design release

* fix: preserve audit artifacts and access

* feat: adopt shared design system on landing page

* fix: align icon geometry with design tokens

* chore: pin design system to v0.0.1

* chore: pin design system to v0.0.1

* chore: pin design system to v0.0.1

* chore: pin design system to v0.0.1

* chore: pin design system to v0.0.1

* fix: migrate ClawHub UI to design tokens

* fix: use public design system installs

* fix: use public design system distribution
2026-07-09 11:05:59 -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 dfca6f5d9d feat: add disposable Vercel and Convex PR previews (#3017)
Adds isolated Convex-backed Vercel PR previews with shared local/preview seeding, preview-safe routing, and production guards.
2026-07-08 20:54:09 -07:00
Patrick Erichsen 1cc673a9e5 fix: preserve skill markdown in security dataset
Preserve multiline SKILL.md content in security dataset exports and include the primary readme as a checksum-bearing bundle entry.
2026-07-08 15:29:07 -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