Skip to content

Commit bfa59ca

Browse files
committed
merge main into feat/user-dashboard
2 parents d4b947a + 2a28f75 commit bfa59ca

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

78 files changed

+6870
-1258
lines changed

AGENTS.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,3 +38,7 @@
3838
- Local env: `.env.local` (never commit secrets).
3939
- Convex env holds JWT keys; Vercel only needs `VITE_CONVEX_URL` + `VITE_CONVEX_SITE_URL`.
4040
- OAuth: GitHub OAuth App credentials required for login.
41+
42+
## Convex Ops (Gotchas)
43+
- New Convex functions must be pushed before `convex run`: use `bunx convex dev --once` (dev) or `bunx convex deploy --prod` (prod).
44+
- If `bunx convex run --env-file .env.local ...` returns `401 MissingAccessToken` despite `bunx convex login`, workaround: omit `--env-file` and use `--deployment-name <name>` / `--prod`.

CHANGELOG.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,49 @@
11
# Changelog
22

3+
## 0.0.5 - 2026-01-06
4+
5+
### Added
6+
- Telemetry: track installs via `clawdhub sync` (logged-in only), per root, with 120-day staleness.
7+
- Skills: show current + all-time installs; sort by installs.
8+
- Profile: private "Installed" tab with JSON export + delete telemetry controls.
9+
- Docs: add `docs/telemetry.md` (what we track + how to opt out).
10+
- Web: custom Open Graph image (`/og.png`) + richer OG/Twitter tags.
11+
12+
### Changed
13+
- CLI: telemetry opt-out via `CLAWDHUB_DISABLE_TELEMETRY=1`.
14+
- Web: move theme picker into mobile menu.
15+
16+
### Fixed
17+
- Web: handle shorthand hex colors in diff theme (thanks @dbhurley!).
18+
19+
## 0.0.5 - 2026-01-06
20+
21+
### Added
22+
- Maintenance: admin backfill to re-parse `SKILL.md` and repair stored summaries/parsed metadata.
23+
24+
### Fixed
25+
- CLI sync: ignore plural `skills.md` docs files when scanning for skills.
26+
- Registry: parse YAML frontmatter (incl multiline `description`) and accept YAML `metadata` objects.
27+
328
## 0.0.4 - 2026-01-05
429

530
### Added
631
- Web: `/skills` list view with sorting (newest/downloads/stars/name) + quick filter.
732
- Web: admin/moderator highlight toggle on skill detail.
833
- Web: canonical skill URLs as `/<owner>/<slug>` (legacy `/skills/<slug>` redirects).
34+
- Web: upload auto-generates a changelog via OpenAI when left blank (marked as auto-generated).
935

1036
### Fixed
1137
- Web: skill detail shows a loading state instead of flashing "Skill not found".
1238
- Web: user profile shows avatar + loading state (no "User not found" flash).
39+
- Web: improved mobile responsiveness (nav menu, skill detail layout, install command overflow).
1340
- Web: upload now unwraps folder picks so `SKILL.md` can be at the bundle root.
1441
- Registry: cap embedding payload size to avoid model context errors.
1542
- CLI: ignore legacy `auth.clawdhub.com` registry and prefer site discovery.
1643

1744
### Changed
1845
- Web: homepage search now expands into full search mode with live results + highlighted toggle.
46+
- CLI: sync no longer prompts for changelog; registry auto-generates when blank.
1947

2048
## 0.0.3 - 2026-01-04
2149

README.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,17 @@ Live: `https://clawdhub.com`
2525
- Search: OpenAI embeddings (`text-embedding-3-small`) + Convex vector search.
2626
- API schema + routes: `packages/schema` (`clawdhub-schema`).
2727

28+
## Telemetry
29+
30+
ClawdHub tracks minimal **install telemetry** (to compute install counts) when you run `clawdhub sync` while logged in.
31+
Disable via:
32+
33+
```bash
34+
export CLAWDHUB_DISABLE_TELEMETRY=1
35+
```
36+
37+
Details: `docs/telemetry.md`.
38+
2839
## Repo layout
2940

3041
- `src/` — TanStack Start app (routes, components, styles).

bun.lock

Lines changed: 24 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

convex/_generated/api.d.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,22 @@ import type * as http from "../http.js";
1515
import type * as httpApi from "../httpApi.js";
1616
import type * as lib_access from "../lib/access.js";
1717
import type * as lib_apiTokenAuth from "../lib/apiTokenAuth.js";
18+
import type * as lib_changelog from "../lib/changelog.js";
1819
import type * as lib_embeddings from "../lib/embeddings.js";
20+
import type * as lib_skillBackfill from "../lib/skillBackfill.js";
21+
import type * as lib_skillPublish from "../lib/skillPublish.js";
1922
import type * as lib_skills from "../lib/skills.js";
2023
import type * as lib_tokens from "../lib/tokens.js";
24+
import type * as lib_webhooks from "../lib/webhooks.js";
25+
import type * as maintenance from "../maintenance.js";
2126
import type * as search from "../search.js";
2227
import type * as skills from "../skills.js";
2328
import type * as stars from "../stars.js";
29+
import type * as telemetry from "../telemetry.js";
2430
import type * as tokens from "../tokens.js";
2531
import type * as uploads from "../uploads.js";
2632
import type * as users from "../users.js";
33+
import type * as webhooks from "../webhooks.js";
2734

2835
import type {
2936
ApiFromModules,
@@ -39,15 +46,22 @@ declare const fullApi: ApiFromModules<{
3946
httpApi: typeof httpApi;
4047
"lib/access": typeof lib_access;
4148
"lib/apiTokenAuth": typeof lib_apiTokenAuth;
49+
"lib/changelog": typeof lib_changelog;
4250
"lib/embeddings": typeof lib_embeddings;
51+
"lib/skillBackfill": typeof lib_skillBackfill;
52+
"lib/skillPublish": typeof lib_skillPublish;
4353
"lib/skills": typeof lib_skills;
4454
"lib/tokens": typeof lib_tokens;
55+
"lib/webhooks": typeof lib_webhooks;
56+
maintenance: typeof maintenance;
4557
search: typeof search;
4658
skills: typeof skills;
4759
stars: typeof stars;
60+
telemetry: typeof telemetry;
4861
tokens: typeof tokens;
4962
uploads: typeof uploads;
5063
users: typeof users;
64+
webhooks: typeof webhooks;
5165
}>;
5266

5367
/**

convex/http.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import {
66
cliPublishHttp,
77
cliSkillDeleteHttp,
88
cliSkillUndeleteHttp,
9+
cliTelemetrySyncHttp,
910
cliUploadUrlHttp,
1011
cliWhoamiHttp,
1112
getSkillHttp,
@@ -59,6 +60,12 @@ http.route({
5960
handler: cliPublishHttp,
6061
})
6162

63+
http.route({
64+
path: ApiRoutes.cliTelemetrySync,
65+
method: 'POST',
66+
handler: cliTelemetrySyncHttp,
67+
})
68+
6269
http.route({
6370
path: ApiRoutes.cliSkillDelete,
6471
method: 'POST',

0 commit comments

Comments
 (0)