52 Commits
Author SHA1 Message Date
Patrick Erichsen 60b02c09f9 fix: stream legacy skill downloads (#3451)
* fix: stream legacy skill downloads

* fix: stream zip entries in bounded chunks

* fix: stream large archives through api owner

* fix: normalize streamed archive chunks

* fix: authenticate archive streaming handoff

* fix: authenticate archive manifest requests

* test: bound archive determinism fixture

* fix: align archive oidc trust with vercel targets

* fix: harden archive runtime boundaries

* test: isolate archive proxy credentials

* test: exercise streamed manifest size cap
2026-08-12 12:19:37 -07:00
Patrick Erichsen bd95e24030 fix: resolve production skills sync environment (#3333) 2026-07-30 20:25:37 -07:00
Patrick Erichsen dc51281c87 fix: preserve native trending through mirror rollout (#3313) 2026-07-30 10:16:28 -07:00
Patrick Erichsen 5a1d9c9472 fix: preserve canonical skills.sh supplement hashes (#3308) 2026-07-30 04:49:52 -07:00
Patrick Erichsen 9f037c1806 fix: quarantine missing skills.sh details (#3301) 2026-07-30 02:08:36 -07:00
Patrick Erichsen 5b969f9835 feat: publish verified skills.sh catalog (#3300)
* feat: publish verified skills.sh mirrors

* feat: automate skills.sh catalog synchronization
2026-07-30 01:19:56 -07:00
Patrick Erichsen c918f9fd4a fix: prefer skill icons in social cards (#3269) 2026-07-26 13:46:17 -05:00
Patrick Erichsen cb9c6d8381 feat: add external skills.sh detail and install flow (#3231)
* feat: integrate external skills.sh listings

* test: record permanent Test external flow

* fix: distinguish GitHub alias source fingerprints

* fix: match controlled skills.sh source URL

* test: disambiguate external detail heading

* fix: use folder hash for controlled skills.sh fixture

* test: prepare controlled external fixture for proof

* fix: preserve OpenClaw external trust state
2026-07-25 05:17:04 -05:00
Patrick Erichsen 5fbd52e137 feat: add skills.sh trending rank overlay (#3256)
* feat: add skills.sh trending rank overlay

* test: prove trending overlay in permanent Test

* fix: preflight trending hydration bound

* fix: exclude known quarantines from trending hydration

* fix: preserve authoritative trending quarantine state

* fix: read legacy leaderboard captures for trending

* fix: bound trending drift to one mirror batch

* fix: preserve trending hydration overflow

* fix: keep trending replays hydration-free
2026-07-25 01:23:58 -05:00
Patrick Erichsen 0f84533e9c feat: add permanent skills.sh mirror storage (#3227)
* feat: add staged skills.sh mirror storage

* ci: allow guarded CLAW-563 Test deploy

* ci: expose guarded Test deploy diagnostics

* ci: defer branch guard to deploy step

* ci: deploy CLAW-563 PR head to Test

* ci: admit CLAW-563 PR Test job

* fix: make mirror source recovery durable

* ci: trigger labeled mirror load

* feat: activate mirror search queries

* fix: tighten mirror source typing

* fix: bypass protected Test mirror proof

* feat: attribute skill metrics by source

* feat: present stars as bookmarks

* style: format mirror proof changes

* fix: bypass protected mirror readback

* fix: resume mirror past missing scanner pages

* fix: fetch skills.sh mirror audits from api

* fix: validate structural skills.sh identities

* fix: resolve ambiguous skills.sh mirror identities

* feat: stabilize skills.sh mirror ingestion

* fix: account mirror identity conflicts in proof

* fix: quarantine invalid skills.sh detail ids

* fix: resume skills.sh mirror proof

* fix: preserve skills.sh mirror provenance

* fix: recover exact skills.sh mirror runs

* fix: recover stale skills.sh mirror runs

* fix: normalize skills.sh mirror topic facets

* feat: prove complete skills.sh leaderboard mirror

* fix: canonicalize skills.sh source page hashes

* test: enable skills.sh rollout in mirror tests

* ci: skip unrelated Test deploy pull requests

* fix: preserve Vercel preview marker in Test deploy

* fix: tighten Test deploy and metric reconciliation

* fix: bound mirror detail proof pages

* fix: delegate controlled mirror rate limits

* fix: preserve mirror reconciliation progress

* fix: release mirror retry responses

* fix: preserve stale mirror replay state

* fix: authenticate mirror source starts

* fix: delegate mirror identity rate limits

* ci: trigger mirror proof when labeled

* ci: couple mirror deploy and proof opt-in

* fix: admit permanent Vercel Test runtime

* fix: pass Test target to Vercel runtime

* test: align bookmark sync browser labels

* fix: preserve skills.sh source accounting

* fix: preflight active mirror runs

* fix: bind mirror snapshot accounting

* fix: reject truncated replay hashes

* fix: preserve live mirror overlay metadata
2026-07-24 14:32:00 -05:00
Patrick Erichsen fe8eff20ee feat: keep external skill rollouts production-dark (#3236)
* feat: add fail-closed skill rollout gates

* fix: preserve scan queue pagination semantics
2026-07-23 08:36:41 -07:00
Patrick Erichsen ee9fac51cd feat: add controlled skills.sh metadata canary (#3217) 2026-07-21 23:21:19 -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 4c59924104 feat: automate test environment deployments 2026-07-09 20:14:19 -07:00
Patrick Erichsen 1e9b641dde fix: support permanent Vercel test environment 2026-07-09 14:50:42 -07:00
Peter Steinberger be22623699 fix: preserve proxied HTTP responses 2026-07-09 16:04:46 +01: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
Jesse Merhi bdb23c3a9f fix: harden publisher OG profile images 2026-06-28 02:01:12 +10:00
Jesse Merhi a6a2f56fbf fix: package og runtime assets during vite build (#2895) 2026-06-26 18:36:04 +10:00
Nancy da169d4a09 refactor: dedupe og font loading 2026-06-25 21:30:07 -07:00
Nancy fbd5d51d64 fix: use publisher social image font weight 2026-06-25 21:30:07 -07:00
Nancy 6165a99419 fix: refine publisher social images 2026-06-25 21:30:07 -07:00
Nancy 2310b91ade feat: update publisher social images 2026-06-25 21:30:07 -07:00
Vyctor H. Brzezowski 6f537bf7ad fix(og): org profile images and Downloads metric in OG cards (#2840)
* fix(og): render org profile images in publisher OG cards

Pass publisher avatar, kind, and installs into OG meta URLs and allow
safely fetching public HTTPS org logos when generating profile images.

* fix: render org profile images in publisher OG cards

Org logos use public HTTPS URLs outside the GitHub/gravatar allowlist, so OG
generation fell back to the default mark. Allow SSRF-safe public fetches for
publisher profile avatars and embed avatar/kind metadata in OG URLs.

* fix(og): show Downloads instead of Installs on OG cards

Switch skill, plugin, and publisher OG image generators to read and
label download counts, with legacy installs query param fallback.

* fix(og): type skill API payload for canonical stat reads

Export SkillStatReadable so fetchSkillOgMeta can pass API skill stats
through readCanonicalStat without a TypeScript error.

* fix(og): format compact downloads in OG cards

Query-param download counts were rendered as raw integers on publisher
OG images. Reuse formatCompactStat, add download icon + lowercase label,
bump layout versions, and refresh org profile visual proof.

* fix(og): use Downloads label without icon on OG cards

Remove the download SVG from OG stat blocks and show only a muted
"Downloads" label above compact values. Bump skill/plugin/publisher
layout versions to bust cached social previews.
2026-06-24 14:08:49 -07:00
Vyctor H. Brzezowski 2d93401234 fix: use installs instead of downloads on social cards (#2713) 2026-06-17 17:28:20 -07:00
Patrick Erichsen fdb4d312f4 docs: restore OpenClaw-hosted ClawHub docs (#2631)
* Revert "fix: serve docs subdomain root (#2630)"

This reverts commit 9ef33726b8.

* Revert "feat: move docs to canonical subdomain"

This reverts commit 6afb91b772.

* Revert "docs: serve ClawHub docs with shared OpenClaw renderer (#2609)"

This reverts commit 71156751ff.

* fix: restore ClawHub email docs host

* test: preserve non-docs validation fixes

* test: remove stale docs proxy test

* docs: keep ClawHub contributor references current

* fix: keep docs auth callback outside docs routes
2026-06-14 16:05:34 -07:00
Peter Steinberger 6afb91b772 feat: move docs to canonical subdomain 2026-06-13 15:38:43 -07:00
Peter Steinberger 749028df12 fix: keep proxy tests out of server routes 2026-06-13 14:36:48 -07:00
Peter Steinberger 6820029e2f fix: preserve Ask Molty auth through proxy 2026-06-13 14:29:26 -07:00
Patrick Erichsen 71156751ff docs: serve ClawHub docs with shared OpenClaw renderer (#2609)
* feat: serve clawhub docs under docs route

* feat: build ClawHub docs with openclaw docs

* chore: remove unused nav icon export

* docs: use ClawHub logo in docs shell

* docs: prepare ClawHub docs for Mintlify

* test: use static preview readiness for playwright

* chore: ignore current esbuild audit advisories

* docs: build ClawHub docs with shared OpenClaw renderer

* test: print package publish e2e failures
2026-06-12 19:02:44 -07:00
Jesse MerhiandPatrick Erichsen 2c9aa36dcb feat: remove the souls feature end to end
Removes the SOULS content type and the SoulHub/onlycrabs.ai dual-site mode:
six Convex tables, the /api/v1/souls HTTP API, /souls routes, soul OG
images, GitHub soul backups, seeds, the VITE_FEATURE_SOULS flag, and the
site-mode machinery. Surviving skills-only code paths are de-branched and
simplified (tag resolution, publish form, nav/footer, ban flow, search).

Product decisions: /souls URLs and /api/v1/souls return plain 404s (no
redirect or 410 tombstone); reserved slugs souls/soulhub/onlycrabs stay.

Deploy prerequisite: clear the six soul tables and four storage blobs in
the prod Convex dashboard first (see PR description runbook).

Co-authored-by: Patrick Erichsen <patrick.a.erichsen@gmail.com>
2026-06-11 10:45:58 -07:00
Jesse Merhi 3fbe27560e feat: add publisher abuse review dashboard (#2471) 2026-06-05 09:05:50 +10:00
Vyctor H. Brzezowski 526d84f338 fix: render CJK text in OG images (#2342) 2026-05-19 22:13:24 -07:00
Vyctor H. Brzezowski b8efe83d1b feat: refresh dynamic og images (#2180) 2026-05-19 13:37:36 -07:00
Val Alexander deb592d4ce docs: update repository guidelines and improve formatting across multiple files
- Enhanced AGENTS.md with clearer project structure and development commands.
- Updated CHANGELOG.md to reflect recent fixes and additions.
- Improved formatting in CONTRIBUTING.md for better readability.
- Adjusted package.json and configuration files for consistent command structure.
- Refined README.md and VISION.md for clarity and organization.
- Standardized code formatting in various TypeScript files for consistency.

These changes aim to enhance documentation clarity and maintainability across the repository.
2026-03-18 21:56:01 -05:00
Peter Steinberger 26e6a435f2 test: add ssr and og regression coverage 2026-03-15 20:49:18 -07:00
Peter Steinberger f8104fd759 fix: package og assets for server rendering 2026-03-15 20:36:12 -07:00
Peter Steinberger a32498ea7d fix: use ClawHub branding for registry 2026-01-31 11:31:46 +01:00
Peter Steinberger ffa25f47da chore: rebrand user-facing to OpenClaw 2026-01-30 07:02:35 +01:00
Peter Steinberger f185ca6f55 feat: release 0.4.0 2026-01-30 05:23:12 +01:00
Peter Steinberger f3fc8d62b6 Revert "chore: rename molthub branding"
This reverts commit 8d68b55333.
2026-01-30 05:23:12 +01:00
Shadow 8d68b55333 chore: rename molthub branding 2026-01-27 18:25:02 -06:00
Peter Steinberger ac0bdf0375 fix: hide onlycrabs branding 2026-01-11 05:20:20 +01:00
Josh Palmer 0cc0bdcd50 feat: SoulHub registry + auto-seed
SoulHub SOUL.md registry (souls table, versions, search, OG) + first-run auto-seed; fixes seed concurrency and GitHub backup owner handle.
2026-01-10 18:25:11 +00:00
Peter Steinberger dddbd3a78e fix(og): prevent OG title clipping 2026-01-09 19:13:19 +01:00
Peter Steinberger f0772e7215 test: cover OG text clamping 2026-01-08 23:07:10 +01:00
Peter Steinberger 770bb3aeb8 fix: clamp OG description width 2026-01-08 23:02:33 +01:00
Peter Steinberger 6811691055 fix: prevent OG text bleed 2026-01-08 22:58:53 +01:00
Peter Steinberger d145c186a7 fix: resolve OG api base on all runtimes 2026-01-08 06:12:01 +01:00
Peter Steinberger 57af81d054 refactor: modularize skill OG images 2026-01-08 06:07:36 +01:00