Commit Graph
2556 Commits
Author SHA1 Message Date
Yiğit ERDOĞAN 8bf424cff1 fix: keep logged package publish metadata on a single line (#3447)
The resolve step echoes the publish command with shlex.quote, which is shell
quoting rather than output escaping: it wraps a value holding a line break in
single quotes and leaves the break itself intact. A caller-supplied changelog,
categories or topics value carrying a newline therefore opened a second line
in the step log, and the runner parses each stdout line, so that second line
reached it as a workflow command.

Escape the parts that are not printable in the echo. The re-runnable .sh file
keeps plain shell quoting, because there the quoting is what makes the script
correct.
2026-08-11 10:52:24 -07:00
Yiğit ERDOĞAN 8b31a7e6e1 chore: restore a clean bun audit by bumping four advisory-hit packages (#3446)
Every CI run on main since 2f428b4e fails at bun audit in ci:static, and the
five downstream jobs mirror that result, so main and every open pull request
show six red checks.

The advisories landed on versions the repository pins itself: the overrides
block held dompurify 3.4.12 and js-yaml 4.3.0, which the advisories name as
the last affected releases, and the mermaid range floor sat one patch below
the fixed version. nanoid reaches the tree through postcss and has no
override, so it needs one.

Bump the four to the first fixed release rather than extending the --ignore
list, since a patch exists for each.
2026-08-11 10:51:54 -07:00
openclaw-barnacle[bot]andgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> 29ee5126de chore: update skills (#3406)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-08-11 10:51:38 -07:00
Martin Cleary d9157142e9 fix: synchronize ClawSweeper dispatch identity (#3449) 2026-08-11 01:00:36 +01:00
Gio Della-Libera 82313c2bb1 feat: require exact ClawPack publication (#3359)
Accept artifact-only publication for experimental Claws so ClawHub can attest, retry, and serve the exact stored bytes. Preserve exact actor, owner, and digest identity across staged retries and validate current release state before reuse. Add durable contract documentation and real-stack publish, poll, download, and retry proof.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-08-09 12:37:04 -07:00
Gio Della-Libera 348851eeb9 feat(claws): align package layers with schema v1 (#3328)
Adds conventional harness profiles, package-root BOOTSTRAP.md, strict OpenClaw validation, portable path hardening, and an official upstream contract pin.
2026-08-09 07:46:06 -07:00
Vyctor H. Brzezowski 64db9c3fae fix: default homepage Plugins to Featured (#3434)
Default the homepage Plugins catalog to Featured when switching from the Skills-only Trending tab, while preserving explicit valid plugin tabs and existing Skills behavior.\n\nCloses #3433
2026-08-06 20:52:09 -03:00
Vyctor H. Brzezowski 34350cd16d fix: restore homepage catalog discovery (#3418)
Restores homepage search and category discovery while preserving the canonical Trending feed contract. Adds the responsive control-group divider and closes #3417.
2026-08-06 17:58:34 -03:00
Vyctor H. Brzezowski 2f428b4e1b fix: align discovery icons by content type and viewport (#3427)
Remove Skill listing icons across discovery, retain Plugin recognition icons on desktop, and collapse both icon columns at the existing mobile breakpoints. Keep loading skeletons aligned with settled rows and cards.

Closes #3425.

Co-authored-by: Vyctor H. Brzezowski <krzyszchweski@gmail.com>
2026-08-06 17:17:16 -03:00
Patrick Erichsen 788ee762a0 fix: increase HTTP rate limit shard headroom (#3432) 2026-08-06 12:04:18 -07:00
Vyctor H. Brzezowski 871e430ef6 fix: show honest skills.sh Trending provenance (#3423)
* fix: show honest skills.sh trending provenance

* test: type mixed trending fixtures
2026-08-06 15:38:38 -03:00
29bc11f29d fix: abort registry discovery fetch after a timeout (#3378)
* fix: abort registry discovery fetch after a timeout

discoverRegistryFromSite called fetch without an AbortSignal, so a
site that accepts the request but never answers hung 'clawhub login'
and registry resolution forever. Wrap the fetch in a local
AbortController + setTimeout helper (mirroring fetchWithTimeout in
http.ts, which is not exported) with a 15s budget matching the
package's request timeout convention, and reject with a clear
'Request timed out after 15s' error. Both call sites already
degrade any discovery rejection to null via .catch(() => null).

* fix: extend timeout to cover JSON body parsing

ClawSweeper P2 finding: the timeout cleared after fetch() resolved,
but response.json() could still hang if the peer sent headers and
never completed the body.

Changes:
- fetchWithTimeout now returns {response, clearTimer} tuple
- Caller keeps timeout active through JSON parsing
- Only clears timer in finally after body consumed
- Added test: stalled body triggers timeout (4/4 → 8/8 passing)

Addresses: ClawSweeper review P2 finding
Fixes: Timeout now covers full request lifecycle

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* fix(cli): clear discovery timeout on fetch failure

* test: format discovery timeout regression

* fix(cli): normalize discovery timeout errors

---------

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-authored-by: Patrick Erichsen <patrick.a.erichsen@gmail.com>
2026-08-05 21:07:49 -07:00
Sergio PeschieraandPatrick Erichsen 6d935f0595 feat: forward package catalog metadata in publish workflow (#3074)
* feat: forward package catalog metadata in publish workflow

* docs: make package publish metadata example event-safe

* fix: preserve package metadata clearing

---------

Co-authored-by: Patrick Erichsen <patrick.a.erichsen@gmail.com>
2026-08-05 21:03:32 -07:00
Vyctor H. Brzezowski 31729d314c fix: restore homepage headline text selection (#3428) 2026-08-05 21:59:45 -03:00
Vyctor H. Brzezowski 3074701740 fix: rank native trending by downloads (#3424) 2026-08-05 16:52:35 -07:00
Vyctor H. Brzezowski 8f7c1c50b7 fix(web): simplify official publisher activity (#3426) 2026-08-05 16:51:36 -07:00
Patrick Erichsen 0b6017548c feat: add local UI proof fallback (#3429)
* feat: add local UI proof fallback

* style: format generated Convex skills
2026-08-05 16:30:58 -07:00
Yiğit ERDOĞAN cd09e33877 fix: Japanese searches skip the category and summary result tiers (#3363)
* fix: Japanese searches skip the category and summary result tiers

The pre-split in tokenize() treats U+30FC (ー) and U+3005 (々) as separators, so
a katakana word is torn into fragments before Intl.Segmenter can segment it:
"データベース" tokenizes as ["デ", "タベ", "ス"]. Two consequences follow.

Exploratory search requires every query token to be at least three characters
(EXPLORATORY_SEARCH_MIN_TOKEN_LENGTH in search.ts, skills.ts and packages.ts),
so katakana queries never reach the category, topic and summary tiers. And
getFirstSearchToken feeds normalizedDisplayNameFirstToken, an indexed range-scan
bound, which collapses to the single character "デ".

detectCJKLanguage in the same file already counts ー as katakana when it picks a
segmenter; the pre-split now agrees with it.

* fix: resynchronize digest first tokens and keep marks in the fallback

Widening the CJK class moves the first token of any name containing a
prolonged sound mark or an iteration mark. skillSearchDigest rows recompute
that field only when their skill is written, so already-stored rows keep the
old one-character token while search uses the new longer token as a range
index bound - the row stays on disk and out of recall.

Add a cursor-paginated resynchronization next to the existing digest backfills
in maintenance.ts, and stop the no-Segmenter fallback from emitting those two
marks as standalone tokens that exploratory matching discards.

* fix: space the search digest backfill batches apart

The catalog search page subscribes to skillSearchDigest, so a backfill that
reschedules itself with no delay drives reactive re-reads back to back for the
whole run. .agents/skills/clawhub-convex/SKILL.md asks for a delay between
backfill batches that write reactively subscribed tables.

The delay is an optional argument clamped the same way the batch size is, and it
follows repairLegacyPublisherOwnershipForUserHandler, which is the one backfill
in this file that already spaces its batches.

* fix: reindex the mirrored catalog's first tokens too

The skills.sh mirror persists its own normalizedSlugFirstToken and
normalizedDisplayNameFirstToken, derived through the same tokenizer, and external
candidate search range-scans both. Widening the katakana class therefore strands
mirrored rows exactly the way it stranded native digest rows, and the previous
backfill only paged skillSearchDigest.

skillsShMirror.ts had its own copy of the first-token rule. Both callers now share
getMirrorFirstSearchToken so the two cannot drift apart again.

* fix: require confirmation before the first-token backfills write

Both backfills defaulted dryRun to false, and their public admin actions
forward omitted arguments straight through. A bare
`npx convex run maintenance:backfillSkillSearchDigestFirstTokens` therefore
patched skillSearchDigest and scheduled every remaining page, against a table
catalog search subscribes to. An operator typo was an immediate production
apply rather than a preview.

Both now follow the contract the plugin catalog-digest resync already uses:
preview unless dryRun is explicitly false, reject an apply whose confirm token
does not match, and carry that token into the scheduled continuation so the
run does not stall on its own guard after the first page. The native and
mirror paths take separate tokens, so neither unlocks the other.
2026-08-05 16:30:28 -07:00
Yiğit ERDOĞAN 4b3083923d fix: catalog previews cut Chinese and Japanese summaries at the first Latin word (#3362)
* fix: catalog previews cut Chinese and Japanese summaries at the first Latin word

truncateText backtracks to the last space in the slice unconditionally. Scripts
that do not separate words with spaces usually carry a single Latin space near
the start of a summary, so that backtrack discards nearly the whole preview:
across fixtures/public-corpus/corpus.jsonl, 25 catalog entries render with a
handful of characters instead of their budget, one of them as just "|".

Honour the word boundary only when it keeps most of the slice. All 1362
space-separated previews in the same corpus are unchanged.

* fix: keep the word boundary for space-separated previews

The kept-ratio fallback was added for CJK summaries whose only Latin space
sits near the start, but it applied to every script. A space-separated
summary ending in a long token — a URL, a compound word — lost its word
boundary and was cut mid-token instead.

Gate the ratio on the discarded tail actually being non-spacing script,
reusing the character class the catalog search tokenizer already relies on
in convex/lib/searchText.ts.
2026-08-05 16:30:02 -07:00
openclaw-barnacle[bot]andgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> 9009eae003 chore: update Convex AI files (#3274)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-08-05 16:06:40 -07:00
Conor BronsdonandClaude Fable 5 fd3bef4ae7 docs: document skill categories and topics (#3380)
* docs: document skill categories and topics

Add a Catalog metadata section to docs/publishing.md covering --categories
and --topics, the 14 valid category slugs, the limits ClawHub enforces, the
reserved topic names, the `other` default, and how stored values change on a
later publish. Cross-reference it from the skill publish and sync entries in
docs/cli.md.

Values read from packages/schema/src/catalogMetadata.ts,
convex/lib/skillPublish.ts, and packages/clawhub/src/cli.ts.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* docs: cover the CI and plugin paths for catalog metadata

Three gaps in the first pass, all the same shape as the one this PR set
out to fix -- a way to publish with no way to set catalog metadata:

The reusable skill-publish.yml workflow has no categories or topics
input. It builds the command with --owner and --tags only, so a catalog
repo publishing through CI lands every skill in `other`, exactly like
sync. The new section sat directly under the workflow snippet and said
"set both when you publish," which read as though the block above it
could. Documented in both files.

`package publish` takes the same two flag names against
PLUGIN_CATEGORY_DEFINITIONS -- a different 12-slug list documented
nowhere -- so a reader who followed the new link would try
`development` and have the publish rejected. The cli.md entry now names
the plugin slugs and says the topic rules are shared, which they are:
convex/packages.ts:8585 resolves through resolvePluginCategories but
reuses normalizeCatalogTopics.

Moved the metadata section above the catalog-repo prose so the flags sit
with the command they belong to, and gave the CI content its own
heading rather than leaving it to trail the section. No wording in the
moved block changed.

Also two enforced rules the first pass omitted: repeats are dropped
rather than rejected and are matched after normalization (so `git,Git`
is one topic, and both limits count what survives), and topics cannot
contain invisible formatting characters. Qualified the 3-category limit,
which is applied after `other` is dropped, so `other,development,
operations` stores two rather than failing.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* docs: scope plugin-category validation to code and bundle plugins

Review caught that the package-publish bullet claimed every publish
validates --categories against the 12 plugin slugs. The claw family
does not: convex/packages.ts branches on family === "claw" and stores
the declared slugs without resolvePluginCategories, while
normalizeCatalogTopics still runs for every family. The bullet now
limits the slug check to code and bundle plugins, links docs/claws.md
for the exception, and keeps the shared-topic-rules claim, which held.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-05 15:51:27 -07:00
Patrick Erichsen 6381d789ab feat(admin): support org profile updates (#3416) 2026-08-05 12:32:55 -07:00
Patrick Erichsen 5d6c9c6021 fix: hide official marks on org catalog rows (#3415)
* fix: hide official marks on org catalog rows

* style: format app shell selector

* revert: restore locked formatter output

* fix: preserve item badges on unverified orgs
2026-08-05 12:30:15 -07:00
Patrick Erichsen 109384dcb8 chore(deps): bump plugin-inspector to 0.3.21 (#3413) 2026-08-05 10:49:48 -07:00
Vyctor H. Brzezowski fc0a47f02d fix: report broken worktree source symlinks (#3396) 2026-08-05 14:28:41 -03:00
Vyctor H. Brzezowski dc9da89d3b fix(web): bound canonical skills SSR loading (#3399) 2026-08-05 14:22:47 -03:00
Vyctor H. Brzezowski 82e73637ed fix(web): remove unused client font bundles (#3398) 2026-08-05 14:22:15 -03:00
Peter Steinberger f9ea25e14f fix(api): qualify batch skill security verdicts by owner (#3409) 2026-08-05 08:47:19 -07:00
dependabot[bot]dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>Patrick Erichsen
459caf6250 chore(deps-dev): bump the development-minor-and-patch group across 1 directory with 9 updates (#3386)
* chore(deps-dev): bump the development-minor-and-patch group across 1 directory with 9 updates

Bumps the development-minor-and-patch group with 9 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [@playwright/test](https://github.com/microsoft/playwright) | `1.61.1` | `1.62.1` |
| [@react-email/ui](https://github.com/resend/react-email/tree/HEAD/packages/ui) | `6.9.0` | `6.9.1` |
| [@tanstack/devtools-vite](https://github.com/TanStack/devtools/tree/HEAD/packages/devtools-vite) | `0.8.1` | `0.8.3` |
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `26.1.1` | `26.1.2` |
| [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react) | `6.0.3` | `6.0.5` |
| [oxfmt](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt) | `0.59.0` | `0.61.0` |
| [oxlint](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint) | `1.74.0` | `1.76.0` |
| [react-email](https://github.com/resend/react-email/tree/HEAD/packages/react-email) | `6.9.0` | `6.9.1` |
| [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) | `8.1.5` | `8.2.0` |



Updates `@playwright/test` from 1.61.1 to 1.62.1
- [Release notes](https://github.com/microsoft/playwright/releases)
- [Commits](https://github.com/microsoft/playwright/compare/v1.61.1...v1.62.1)

Updates `@react-email/ui` from 6.9.0 to 6.9.1
- [Release notes](https://github.com/resend/react-email/releases)
- [Changelog](https://github.com/resend/react-email/blob/canary/packages/ui/CHANGELOG.md)
- [Commits](https://github.com/resend/react-email/commits/@react-email/ui@6.9.1/packages/ui)

Updates `@tanstack/devtools-vite` from 0.8.1 to 0.8.3
- [Release notes](https://github.com/TanStack/devtools/releases)
- [Changelog](https://github.com/TanStack/devtools/blob/main/packages/devtools-vite/CHANGELOG.md)
- [Commits](https://github.com/TanStack/devtools/commits/@tanstack/devtools-vite@0.8.3/packages/devtools-vite)

Updates `@types/node` from 26.1.1 to 26.1.2
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Updates `@vitejs/plugin-react` from 6.0.3 to 6.0.5
- [Release notes](https://github.com/vitejs/vite-plugin-react/releases)
- [Changelog](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite-plugin-react/commits/plugin-react@6.0.5/packages/plugin-react)

Updates `oxfmt` from 0.59.0 to 0.61.0
- [Release notes](https://github.com/oxc-project/oxc/releases)
- [Changelog](https://github.com/oxc-project/oxc/blob/main/npm/oxfmt/CHANGELOG.md)
- [Commits](https://github.com/oxc-project/oxc/commits/oxfmt_v0.61.0/npm/oxfmt)

Updates `oxlint` from 1.74.0 to 1.76.0
- [Release notes](https://github.com/oxc-project/oxc/releases)
- [Changelog](https://github.com/oxc-project/oxc/blob/main/npm/oxlint/CHANGELOG.md)
- [Commits](https://github.com/oxc-project/oxc/commits/oxlint_v1.76.0/npm/oxlint)

Updates `react-email` from 6.9.0 to 6.9.1
- [Release notes](https://github.com/resend/react-email/releases)
- [Changelog](https://github.com/resend/react-email/blob/canary/packages/react-email/CHANGELOG.md)
- [Commits](https://github.com/resend/react-email/commits/react-email@6.9.1/packages/react-email)

Updates `vite` from 8.1.5 to 8.2.0
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/create-vite@8.2.0/packages/vite)

---
updated-dependencies:
- dependency-name: "@playwright/test"
  dependency-version: 1.62.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development-minor-and-patch
- dependency-name: "@react-email/ui"
  dependency-version: 6.9.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development-minor-and-patch
- dependency-name: "@tanstack/devtools-vite"
  dependency-version: 0.8.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development-minor-and-patch
- dependency-name: "@types/node"
  dependency-version: 26.1.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development-minor-and-patch
- dependency-name: "@vitejs/plugin-react"
  dependency-version: 6.0.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development-minor-and-patch
- dependency-name: oxfmt
  dependency-version: 0.61.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development-minor-and-patch
- dependency-name: oxlint
  dependency-version: 1.76.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development-minor-and-patch
- dependency-name: react-email
  dependency-version: 6.9.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development-minor-and-patch
- dependency-name: vite
  dependency-version: 8.2.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development-minor-and-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* fix(deps): preserve lock integrity and formatting

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Patrick Erichsen <patrick.a.erichsen@gmail.com>
2026-08-04 20:00:55 -07:00
dependabot[bot]dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>Patrick Erichsen
2b01a8651c chore(deps): bump the production-minor-and-patch group across 1 directory with 19 updates (#3390)
* chore(deps): bump the production-minor-and-patch group across 1 directory with 19 updates

Bumps the production-minor-and-patch group with 19 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [@convex-dev/migrations](https://github.com/get-convex/migrations) | `0.3.5` | `0.3.6` |
| [@radix-ui/react-avatar](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/avatar) | `1.2.3` | `1.2.6` |
| [@radix-ui/react-dialog](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/dialog) | `1.1.20` | `1.1.23` |
| [@radix-ui/react-dropdown-menu](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/dropdown-menu) | `2.1.21` | `2.1.24` |
| [@radix-ui/react-label](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/label) | `2.1.12` | `2.1.15` |
| [@radix-ui/react-select](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/select) | `2.3.4` | `2.3.7` |
| [@radix-ui/react-separator](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/separator) | `1.1.12` | `1.1.15` |
| [@radix-ui/react-slot](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/slot) | `1.3.0` | `1.3.3` |
| [@radix-ui/react-toggle-group](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/toggle-group) | `1.1.16` | `1.1.19` |
| [@radix-ui/react-tooltip](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/tooltip) | `1.2.13` | `1.2.16` |
| [@shikijs/rehype](https://github.com/shikijs/shiki/tree/HEAD/packages/rehype) | `4.3.1` | `4.4.1` |
| [@tanstack/react-start](https://github.com/TanStack/router/tree/HEAD/packages/react-start) | `1.168.32` | `1.168.34` |
| [@vercel/oidc](https://github.com/vercel/vercel/tree/HEAD/packages/oidc) | `3.8.0` | `3.8.1` |
| [convex](https://github.com/get-convex/convex-backend/tree/HEAD/npm-packages/convex) | `1.42.3` | `1.43.0` |
| [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `1.25.0` | `1.28.0` |
| [react](https://github.com/react/react/tree/HEAD/packages/react) | `19.2.7` | `19.2.8` |
| [react-dom](https://github.com/react/react/tree/HEAD/packages/react-dom) | `19.2.7` | `19.2.8` |
| [resend](https://github.com/resend/resend-node) | `6.17.2` | `6.18.1` |
| [shiki](https://github.com/shikijs/shiki/tree/HEAD/packages/shiki) | `4.3.1` | `4.4.1` |



Updates `@convex-dev/migrations` from 0.3.5 to 0.3.6
- [Changelog](https://github.com/get-convex/migrations/blob/main/CHANGELOG.md)
- [Commits](https://github.com/get-convex/migrations/compare/v0.3.5...v0.3.6)

Updates `@radix-ui/react-avatar` from 1.2.3 to 1.2.6
- [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/avatar/CHANGELOG.md)
- [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/avatar)

Updates `@radix-ui/react-dialog` from 1.1.20 to 1.1.23
- [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/dialog/CHANGELOG.md)
- [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/dialog)

Updates `@radix-ui/react-dropdown-menu` from 2.1.21 to 2.1.24
- [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/dropdown-menu/CHANGELOG.md)
- [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/dropdown-menu)

Updates `@radix-ui/react-label` from 2.1.12 to 2.1.15
- [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/label/CHANGELOG.md)
- [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/label)

Updates `@radix-ui/react-select` from 2.3.4 to 2.3.7
- [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/select/CHANGELOG.md)
- [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/select)

Updates `@radix-ui/react-separator` from 1.1.12 to 1.1.15
- [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/separator/CHANGELOG.md)
- [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/separator)

Updates `@radix-ui/react-slot` from 1.3.0 to 1.3.3
- [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/slot/CHANGELOG.md)
- [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/slot)

Updates `@radix-ui/react-toggle-group` from 1.1.16 to 1.1.19
- [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/toggle-group/CHANGELOG.md)
- [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/toggle-group)

Updates `@radix-ui/react-tooltip` from 1.2.13 to 1.2.16
- [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/tooltip/CHANGELOG.md)
- [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/tooltip)

Updates `@shikijs/rehype` from 4.3.1 to 4.4.1
- [Release notes](https://github.com/shikijs/shiki/releases)
- [Commits](https://github.com/shikijs/shiki/commits/v4.4.1/packages/rehype)

Updates `@tanstack/react-start` from 1.168.32 to 1.168.34
- [Release notes](https://github.com/TanStack/router/releases)
- [Changelog](https://github.com/TanStack/router/blob/main/packages/react-start/CHANGELOG.md)
- [Commits](https://github.com/TanStack/router/commits/@tanstack/react-start@1.168.34/packages/react-start)

Updates `@vercel/oidc` from 3.8.0 to 3.8.1
- [Release notes](https://github.com/vercel/vercel/releases)
- [Changelog](https://github.com/vercel/vercel/blob/main/packages/oidc/CHANGELOG.md)
- [Commits](https://github.com/vercel/vercel/commits/@vercel/oidc@3.8.1/packages/oidc)

Updates `convex` from 1.42.3 to 1.43.0
- [Release notes](https://github.com/get-convex/convex-backend/releases)
- [Changelog](https://github.com/get-convex/convex-backend/blob/main/npm-packages/convex/CHANGELOG.md)
- [Commits](https://github.com/get-convex/convex-backend/commits/HEAD/npm-packages/convex)

Updates `lucide-react` from 1.25.0 to 1.28.0
- [Release notes](https://github.com/lucide-icons/lucide/releases)
- [Commits](https://github.com/lucide-icons/lucide/commits/1.28.0/packages/lucide-react)

Updates `react` from 19.2.7 to 19.2.8
- [Release notes](https://github.com/react/react/releases)
- [Changelog](https://github.com/react/react/blob/main/CHANGELOG.md)
- [Commits](https://github.com/react/react/commits/v19.2.8/packages/react)

Updates `react-dom` from 19.2.7 to 19.2.8
- [Release notes](https://github.com/react/react/releases)
- [Changelog](https://github.com/react/react/blob/main/CHANGELOG.md)
- [Commits](https://github.com/react/react/commits/v19.2.8/packages/react-dom)

Updates `resend` from 6.17.2 to 6.18.1
- [Release notes](https://github.com/resend/resend-node/releases)
- [Changelog](https://github.com/resend/resend-node/blob/canary/CHANGELOG.md)
- [Commits](https://github.com/resend/resend-node/compare/v6.17.2...v6.18.1)

Updates `shiki` from 4.3.1 to 4.4.1
- [Release notes](https://github.com/shikijs/shiki/releases)
- [Commits](https://github.com/shikijs/shiki/commits/v4.4.1/packages/shiki)

---
updated-dependencies:
- dependency-name: "@convex-dev/migrations"
  dependency-version: 0.3.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-minor-and-patch
- dependency-name: "@radix-ui/react-avatar"
  dependency-version: 1.2.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-minor-and-patch
- dependency-name: "@radix-ui/react-dialog"
  dependency-version: 1.1.23
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-minor-and-patch
- dependency-name: "@radix-ui/react-dropdown-menu"
  dependency-version: 2.1.24
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-minor-and-patch
- dependency-name: "@radix-ui/react-label"
  dependency-version: 2.1.15
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-minor-and-patch
- dependency-name: "@radix-ui/react-select"
  dependency-version: 2.3.7
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-minor-and-patch
- dependency-name: "@radix-ui/react-separator"
  dependency-version: 1.1.15
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-minor-and-patch
- dependency-name: "@radix-ui/react-slot"
  dependency-version: 1.3.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-minor-and-patch
- dependency-name: "@radix-ui/react-toggle-group"
  dependency-version: 1.1.19
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-minor-and-patch
- dependency-name: "@radix-ui/react-tooltip"
  dependency-version: 1.2.16
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-minor-and-patch
- dependency-name: "@shikijs/rehype"
  dependency-version: 4.4.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: production-minor-and-patch
- dependency-name: "@tanstack/react-start"
  dependency-version: 1.168.34
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-minor-and-patch
- dependency-name: "@vercel/oidc"
  dependency-version: 3.8.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-minor-and-patch
- dependency-name: convex
  dependency-version: 1.43.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: production-minor-and-patch
- dependency-name: lucide-react
  dependency-version: 1.28.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: production-minor-and-patch
- dependency-name: react
  dependency-version: 19.2.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-minor-and-patch
- dependency-name: react-dom
  dependency-version: 19.2.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-minor-and-patch
- dependency-name: resend
  dependency-version: 6.18.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: production-minor-and-patch
- dependency-name: shiki
  dependency-version: 4.4.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: production-minor-and-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* fix(deps): preserve Carapace lock integrity

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Patrick Erichsen <patrick.a.erichsen@gmail.com>
2026-08-04 19:41:51 -07:00
dependabot[bot]dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>Patrick Erichsen
fa59272e88 chore(deps-dev): bump oxlint-tsgolint from 0.25.0 to 7.0.2001 (#3210)
* chore(deps-dev): bump oxlint-tsgolint from 0.25.0 to 7.0.2001

Bumps [oxlint-tsgolint](https://github.com/oxc-project/tsgolint) from 0.25.0 to 7.0.2001.
- [Release notes](https://github.com/oxc-project/tsgolint/releases)
- [Commits](https://github.com/oxc-project/tsgolint/compare/v0.25.0...v7.0.2001)

---
updated-dependencies:
- dependency-name: oxlint-tsgolint
  dependency-version: 7.0.2001
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* fix(deps): preserve Carapace lock integrity

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Patrick Erichsen <patrick.a.erichsen@gmail.com>
2026-08-04 19:28:38 -07:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> c943f578f1 chore(deps): bump the github-actions group across 1 directory with 4 updates (#3291)
Bumps the github-actions group with 4 updates in the / directory: [actions/setup-node](https://github.com/actions/setup-node), [github/codeql-action/init](https://github.com/github/codeql-action), [github/codeql-action/analyze](https://github.com/github/codeql-action) and [actions/stale](https://github.com/actions/stale).


Updates `actions/setup-node` from 6.4.0 to 7.0.0
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v6.4.0...v7)

Updates `github/codeql-action/init` from 4.37.1 to 4.37.4
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/7188fc363630916deb702c7fdcf4e481b751f97a...f205ea1c3313d32999d8d6a48b4f6530d4437b38)

Updates `github/codeql-action/analyze` from 4.37.1 to 4.37.4
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/7188fc363630916deb702c7fdcf4e481b751f97a...f205ea1c3313d32999d8d6a48b4f6530d4437b38)

Updates `actions/stale` from 10 to 11
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/v10...v11)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: 7.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
- dependency-name: actions/stale
  dependency-version: '11'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
- dependency-name: github/codeql-action/analyze
  dependency-version: 4.37.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
- dependency-name: github/codeql-action/init
  dependency-version: 4.37.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-04 19:26:38 -07:00
Vincent Koc e590103d70 fix(ci): authenticate skill updater pull requests (#3404)
Punchcard-Session: amber-orchard-valley-s4
2026-08-05 10:24:35 +08:00
Patrick Erichsen 98a6e04e39 fix: resolve active skill across retained slug history (#3405) 2026-08-04 18:43:46 -07:00
Patrick Erichsen 2c7c40f001 chore: upgrade Carapace to v0.6.1 (#3403)
* feat: adopt Carapace sparkline primitive

* fix: preserve existing download trend chart
2026-08-04 17:51:58 -07:00
Patrick Erichsen eb7aa36f80 fix: enforce publisher skill slug invariant (#3383) 2026-08-04 17:37:35 -07:00
Patrick Erichsen f4d7a94104 fix(ui): use Carapace tokens for download trends (#3402) 2026-08-04 16:43:48 -07:00
Momo 1527462a5d fix: allow Convex base64 upload digests (#3395) 2026-08-04 14:09:42 -07:00
SantiagoandVyctor H. Brzezowski 6617e8e4a6 fix: emit plain Markdown in generated skill cards (#3385)
Fixes #3384.

Generated skill cards now use plain Markdown instead of HTML-only line-break tags while retaining compatibility normalization for existing cards.

Co-authored-by: Vyctor H. Brzezowski <hi@vyctor.com.br>
2026-08-04 13:53:08 -03:00
Vincent Koc b15bd52506 fix(security): prevent package scans from exhausting worker memory (#3393)
* fix(security): scope SkillSpector to bundled roots

* fix(security): bound bundled SkillSpector scans

* chore(security): format SkillSpector worker changes

* fix(security): import path separator for scan roots
2026-08-04 14:53:24 +08:00
Vincent Koc 00dd3c3055 fix: prevent worker artifact directory collisions (#3392)
* fix(workers): share verified artifact materialization

* fix(ci): restore prepublication batch limit
2026-08-04 14:21:00 +08:00
Patrick Erichsen 87ca030c30 fix: upload skill files directly to Convex (#3391)
* fix: upload skill files directly to Convex

* chore: prepare clawhub CLI 0.23.3
v0.23.3
2026-08-03 20:37:01 -07:00
Patrick Erichsen 7571488ab3 fix: allow safe skill latest rollback (#3388)
* fix: allow safe skill latest rollback

* chore(release): prepare clawhub 0.23.2
v0.23.2
2026-08-03 19:42:03 -07:00
Santiago fd9902b58b fix: search prints no results when a skills.sh row matches (#3379)
Normalize skills.sh installs into the canonical downloads field so released clients can parse and render mixed-source search results.
2026-08-03 19:10:44 -07:00
Patrick Erichsen d1f9b87f43 chore: refresh audited dependency pins (#3389)
Update the five newly vulnerable dependency pins and refresh the lockfile so repository CI remains enforceable.
2026-08-03 18:55:09 -07:00
Vyctor H. Brzezowski dc7a0f4de1 fix(home): contain app category scroller on mobile (#3281)
Constrain the mobile app-category strip to the available content width while preserving internal horizontal scrolling. Scope the CSS regression contract to the exact nested mobile rule.
2026-08-03 13:51:44 -03:00
Patrick Erichsen 4ae518011a fix: move skills.sh badge before download count (#3376) 2026-08-02 19:53:11 -07:00
Patrick Erichsen 3d3ac2942e test: isolate production menu smoke routes (#3374) deploy/prod/20260802-053000Z-3d3ac29 prod/v2026.08.02.1 2026-08-01 22:16:04 -07:00
Patrick Erichsen 632850f5a8 feat: refine skills.sh listing UI (#3373)
* feat: refine skills.sh listing UI

* test: fix skills.sh missing metric fixture
2026-08-01 21:43:09 -07:00
Patrick Erichsen 059cf01765 test: harden timing-sensitive unit fixtures (#3372) 2026-08-01 17:49:01 -07:00