From a5e41320c85123d3d4348b9c24d1d45555084663 Mon Sep 17 00:00:00 2001 From: "Vyctor H. Brzezowski" Date: Tue, 23 Jun 2026 01:51:40 -0300 Subject: [PATCH] fix(web): recall publishers outside browse window in search (#2790) * fix: recall publishers outside top install window in search Publisher search only scanned the top 500 by installs and dropped empty profiles, so handles like vincentkoc never appeared even when the user profile was public. * test: cover publisher search recall for low-install handles Add regression coverage for publishers with published skills that fall outside the top install browse window, matching the vyctorbrzezowski case. * test: align publisher search mocks with downloads browse indexes * chore: add production publisher search proof for PR 2790 * test: drop invalid publisher list stats assertion Remove stats.skills expectation from listPublicPage search recall test; public list items only expose downloads and installs counts. * chore: retrigger CI after delete-account flake --- .../vincent-missing-vincentkoc.png | Bin 0 -> 75465 bytes .../screenshots/vyctorbrzezowski-empty.png | Bin 0 -> 66553 bytes .proof/report.md | 21 ++ .proof/summary.json | 30 ++ convex/publishers.test.ts | 285 +++++++++++++++++- convex/publishers.ts | 86 +++++- 6 files changed, 415 insertions(+), 7 deletions(-) create mode 100644 .proof/candidate/screenshots/vincent-missing-vincentkoc.png create mode 100644 .proof/candidate/screenshots/vyctorbrzezowski-empty.png create mode 100644 .proof/report.md create mode 100644 .proof/summary.json diff --git a/.proof/candidate/screenshots/vincent-missing-vincentkoc.png b/.proof/candidate/screenshots/vincent-missing-vincentkoc.png new file mode 100644 index 0000000000000000000000000000000000000000..ea3f6e0b1e7acbe50226bbbbcdae02feebffb26d GIT binary patch literal 75465 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
pLnBs110dJ71|+sZhb4Yj@MNH`mA7Xe6UAg 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 F{|9MPb(8=A literal 0 HcmV?d00001 diff --git a/.proof/candidate/screenshots/vyctorbrzezowski-empty.png b/.proof/candidate/screenshots/vyctorbrzezowski-empty.png new file mode 100644 index 0000000000000000000000000000000000000000..d9bd0d21c341cc5be8291f0f3928a9c759a9140e GIT binary patch literal 66553 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 literal 0 HcmV?d00001 diff --git a/.proof/report.md b/.proof/report.md new file mode 100644 index 00000000..b1df5c3d --- /dev/null +++ b/.proof/report.md @@ -0,0 +1,21 @@ +# ClawHub publisher search proof + +Status: pass (production bug reproduction before backend deploy) + +## Convex read-only validation (`wry-manatee-359.convex.cloud`) + +| Query | `listPublicPage` handles | +| --- | --- | +| `vyctor` | `[]` | +| `vyctorbrzezowski` | `[]` | +| `vincent` | `["vincentchan"]` | +| `vincentkoc` | `[]` | + +## Profiles that exist but are missing from search + +- `vyctorbrzezowski` → 5 skills, 1 package, 46 installs +- `vincentkoc` → public profile, 0 published skills + +## Unit tests + +`VITE_CONVEX_URL=https://example.invalid bunx vitest run convex/publishers.test.ts` diff --git a/.proof/summary.json b/.proof/summary.json new file mode 100644 index 00000000..a8c5577f --- /dev/null +++ b/.proof/summary.json @@ -0,0 +1,30 @@ +{ + "baseline": "production", + "candidate": "production-before-fix", + "generatedAt": "2026-06-23T02:50:00.000Z", + "mode": "feature", + "status": "pass", + "lanes": [ + { + "name": "candidate", + "ref": "https://clawhub.ai", + "status": "pass", + "steps": [ + { + "lane": "candidate", + "name": "publishers?q=vyctorbrzezowski returns no publishers (prod before deploy)", + "screenshot": "screenshots/vyctorbrzezowski-empty.png", + "slug": "vyctorbrzezowski-empty", + "status": "pass" + }, + { + "lane": "candidate", + "name": "publishers?q=vincent shows vincentchan but not vincentkoc (prod before deploy)", + "screenshot": "screenshots/vincent-missing-vincentkoc.png", + "slug": "vincent-missing-vincentkoc", + "status": "pass" + } + ] + } + ] +} diff --git a/convex/publishers.test.ts b/convex/publishers.test.ts index b746e5a5..7bffeba0 100644 --- a/convex/publishers.test.ts +++ b/convex/publishers.test.ts @@ -1542,11 +1542,20 @@ describe("publishers membership controls", () => { query: vi.fn((table: string) => ({ withIndex: vi.fn((indexName: string, buildQuery: (q: unknown) => unknown) => { const fields: Record = {}; + const range: Record = {}; const q = { eq: (field: string, value: unknown) => { fields[field] = value; return q; }, + gte: (field: string, value: unknown) => { + range.gte = { field, value }; + return q; + }, + lt: (field: string, value: unknown) => { + range.lt = { field, value }; + return q; + }, }; buildQuery(q); if (table === "publishers" && indexName === "by_handle") { @@ -1590,9 +1599,13 @@ describe("publishers membership controls", () => { } if (table === "publishers" && indexName === "by_active_kind_handle") { return { - collect: vi.fn(async () => - publisherRows.filter((publisher) => publisher.kind === fields.kind), - ), + take: vi.fn(async () => { + const prefix = (range.gte as { value: string } | undefined)?.value ?? ""; + return publisherRows.filter( + (publisher) => + publisher.kind === fields.kind && publisher.handle.startsWith(prefix), + ); + }), }; } if ( @@ -1621,6 +1634,255 @@ describe("publishers membership controls", () => { expect(result.page.map((item) => item.handle)).toEqual(["alice"]); }); + it("finds publishers outside the popular install window via handle prefix search", async () => { + const popularRows = Array.from({ length: 500 }, (_, index) => ({ + _id: `publishers:popular-${index}`, + _creationTime: index, + kind: "user" as const, + handle: `popular-${index}`, + displayName: `Popular ${index}`, + linkedUserId: `users:popular-${index}`, + publishedSkills: 1, + publishedPackages: 0, + totalInstalls: 500 - index, + totalDownloads: 500 - index, + totalStars: 1, + createdAt: 1, + updatedAt: 1, + })); + const vincentkoc = { + _id: "publishers:vincentkoc", + _creationTime: 1, + kind: "user" as const, + handle: "vincentkoc", + displayName: "Vincent Koc", + linkedUserId: "users:vincentkoc", + publishedSkills: 0, + publishedPackages: 0, + totalInstalls: 0, + totalDownloads: 0, + totalStars: 0, + createdAt: 1, + updatedAt: 1, + }; + const ctx = { + db: { + get: vi.fn(async (id: string) => { + if (id === "users:vincentkoc") { + return { _id: id, image: "https://github.com/vincentkoc.png" }; + } + return null; + }), + query: vi.fn((table: string) => ({ + withIndex: vi.fn((indexName: string, buildQuery: (q: unknown) => unknown) => { + const fields: Record = {}; + const range: Record = {}; + const q = { + eq: (field: string, value: unknown) => { + fields[field] = value; + return q; + }, + gte: (field: string, value: unknown) => { + range.gte = { field, value }; + return q; + }, + lt: (field: string, value: unknown) => { + range.lt = { field, value }; + return q; + }, + }; + buildQuery(q); + if (table === "publishers" && indexName === "by_handle") { + return { + unique: vi.fn(async () => + fields.handle === "vincent" + ? null + : fields.handle === "vincentkoc" + ? vincentkoc + : null, + ), + }; + } + if (table === "publishers" && indexName === "by_active_total_downloads") { + return { + order: vi.fn(() => ({ + take: vi.fn(async () => popularRows), + })), + }; + } + if (table === "publishers" && indexName === "by_active_total_installs") { + return { + order: vi.fn(() => ({ + take: vi.fn(async () => popularRows), + })), + }; + } + if (table === "publishers" && indexName === "by_active_kind_handle") { + return { + take: vi.fn(async () => { + const prefix = (range.gte as { value: string } | undefined)?.value ?? ""; + const upper = (range.lt as { value: string } | undefined)?.value ?? ""; + if (fields.kind === "user" && prefix === "vincent" && upper === "vincent\uffff") { + return [vincentkoc]; + } + return []; + }), + }; + } + if ( + (table === "skills" || table === "packages") && + indexName === "by_owner_publisher_active_downloads" + ) { + return indexedRows([]); + } + if (table === "officialPublishers" && indexName === "by_publisher") { + return { unique: vi.fn(async () => null) }; + } + throw new Error(`unexpected ${table} index ${indexName}`); + }), + })), + }, + }; + + const result = await listPublicPageHandler(ctx as never, { + query: "vincent", + paginationOpts: { cursor: null, numItems: 25 }, + }); + + expect(result.page.map((item) => item.handle)).toEqual(["vincentkoc"]); + expect(result.counts).toEqual({ all: 1, individuals: 1, organizations: 0 }); + }); + + it("finds publishers with published skills outside the popular install window", async () => { + const popularRows = Array.from({ length: 500 }, (_, index) => ({ + _id: `publishers:popular-${index}`, + _creationTime: index, + kind: "user" as const, + handle: `popular-${index}`, + displayName: `Popular ${index}`, + linkedUserId: `users:popular-${index}`, + publishedSkills: 1, + publishedPackages: 0, + totalInstalls: 500 - index, + totalDownloads: 500 - index, + totalStars: 1, + createdAt: 1, + updatedAt: 1, + })); + const vyctorbrzezowski = { + _id: "publishers:vyctorbrzezowski", + _creationTime: 1, + kind: "user" as const, + handle: "vyctorbrzezowski", + displayName: "Vyctor Brzezowski", + linkedUserId: "users:vyctorbrzezowski", + publishedSkills: 5, + publishedPackages: 1, + totalInstalls: 46, + totalDownloads: 1288, + totalStars: 0, + createdAt: 1, + updatedAt: 1, + }; + const ctx = { + db: { + get: vi.fn(async (id: string) => { + if (id === "users:vyctorbrzezowski") { + return { _id: id, image: "https://github.com/vyctorbrzezowski.png" }; + } + return null; + }), + query: vi.fn((table: string) => ({ + withIndex: vi.fn((indexName: string, buildQuery: (q: unknown) => unknown) => { + const fields: Record = {}; + const range: Record = {}; + const q = { + eq: (field: string, value: unknown) => { + fields[field] = value; + return q; + }, + gte: (field: string, value: unknown) => { + range.gte = { field, value }; + return q; + }, + lt: (field: string, value: unknown) => { + range.lt = { field, value }; + return q; + }, + }; + buildQuery(q); + if (table === "publishers" && indexName === "by_handle") { + return { + unique: vi.fn(async () => + fields.handle === "vyctorbrzezowski" ? vyctorbrzezowski : null, + ), + }; + } + if (table === "publishers" && indexName === "by_active_total_downloads") { + return { + order: vi.fn(() => ({ + take: vi.fn(async () => popularRows), + })), + }; + } + if (table === "publishers" && indexName === "by_active_total_installs") { + return { + order: vi.fn(() => ({ + take: vi.fn(async () => popularRows), + })), + }; + } + if (table === "publishers" && indexName === "by_active_kind_handle") { + return { + take: vi.fn(async () => { + const prefix = (range.gte as { value: string } | undefined)?.value ?? ""; + const upper = (range.lt as { value: string } | undefined)?.value ?? ""; + if (fields.kind === "user" && prefix === "vyctor" && upper === "vyctor\uffff") { + return [vyctorbrzezowski]; + } + return []; + }), + }; + } + if (table === "skills" && indexName === "by_owner_publisher_active_downloads") { + return indexedRows([ + { + _id: "skills:vyctor-demo", + ownerPublisherId: "publishers:vyctorbrzezowski", + softDeletedAt: undefined, + displayName: "Demo Skill", + statsInstallsAllTime: 46, + statsDownloads: 1288, + statsStars: 0, + updatedAt: 1, + }, + ]); + } + if (table === "packages" && indexName === "by_owner_publisher_active_downloads") { + return indexedRows([]); + } + if (table === "officialPublishers" && indexName === "by_publisher") { + return { unique: vi.fn(async () => null) }; + } + throw new Error(`unexpected ${table} index ${indexName}`); + }), + })), + }, + }; + + const prefixResult = await listPublicPageHandler(ctx as never, { + query: "vyctor", + paginationOpts: { cursor: null, numItems: 25 }, + }); + const exactResult = await listPublicPageHandler(ctx as never, { + query: "vyctorbrzezowski", + paginationOpts: { cursor: null, numItems: 25 }, + }); + + expect(prefixResult.page.map((item) => item.handle)).toEqual(["vyctorbrzezowski"]); + expect(exactResult.page.map((item) => item.handle)).toEqual(["vyctorbrzezowski"]); + }); + it("filters hidden legacy user publishers before counting and paginating public publisher pages", async () => { const publisherRows = [ { @@ -2261,11 +2523,20 @@ describe("publishers membership controls", () => { query: vi.fn((table: string) => ({ withIndex: vi.fn((indexName: string, buildQuery: (q: unknown) => unknown) => { const fields: Record = {}; + const range: Record = {}; const q = { eq: (field: string, value: unknown) => { fields[field] = value; return q; }, + gte: (field: string, value: unknown) => { + range.gte = { field, value }; + return q; + }, + lt: (field: string, value: unknown) => { + range.lt = { field, value }; + return q; + }, }; buildQuery(q); if (table === "publishers" && indexName === "by_active_total_downloads") { @@ -2276,6 +2547,9 @@ describe("publishers membership controls", () => { })), }; } + if (table === "publishers" && indexName === "by_handle") { + return { unique: vi.fn(async () => null) }; + } if (table === "publishers" && indexName === "by_active_total_installs") { return { order: vi.fn(() => ({ @@ -2283,6 +2557,11 @@ describe("publishers membership controls", () => { })), }; } + if (table === "publishers" && indexName === "by_active_kind_handle") { + return { + take: vi.fn(async () => []), + }; + } if ( (table === "skills" || table === "packages") && indexName === "by_owner_publisher_active_downloads" diff --git a/convex/publishers.ts b/convex/publishers.ts index 394f061c..b6711ea4 100644 --- a/convex/publishers.ts +++ b/convex/publishers.ts @@ -45,6 +45,7 @@ import { adjustUserSkillStatsForSkillChange } from "./lib/userSkillStats"; const MAX_PUBLIC_PUBLISHER_LIST_LIMIT = 500; const LEGACY_PUBLISHER_DOWNLOAD_FALLBACK_LIMIT = MAX_PUBLIC_PUBLISHER_LIST_LIMIT; +const MAX_PUBLISHER_HANDLE_PREFIX_CANDIDATES = 100; const PUBLISHER_LIST_PREVIEW_LIMIT = 3; const GITHUB_AUTH_ACCOUNT_RECOVERY_MATCH_LIMIT = 10; const PERSONAL_PUBLISHER_RECOVERY_OWNER_MIGRATION_LIMIT = 100; @@ -627,21 +628,30 @@ async function getActivePublisherRowsByDownloads( return mergePublisherRows(rankedRows, legacyRows); } +function shouldIncludePublisherListSummary( + summary: PublisherListSummary, + options?: { includeEmptyPublishers?: boolean }, +) { + return options?.includeEmptyPublishers || hasPublisherListContent(summary); +} + async function getVisiblePublisherListSummaries( ctx: Pick, publishers: Doc<"publishers">[], + options?: { includeEmptyPublishers?: boolean }, ) { const summaries = await Promise.all( publishers.map((publisher) => toVisiblePublisherListSummary(ctx, publisher)), ); return summaries .filter((summary): summary is PublisherListSummary => Boolean(summary)) - .filter(hasPublisherListContent); + .filter((summary) => shouldIncludePublisherListSummary(summary, options)); } async function hydratePublisherListSummaries( ctx: Pick, summaries: PublisherListSummary[], + options?: { includeEmptyPublishers?: boolean }, ) { const items = await Promise.all( summaries.map((summary) => @@ -653,7 +663,9 @@ async function hydratePublisherListSummaries( ); return items .filter((item): item is PublisherListItem => Boolean(item)) - .filter((item) => item.stats.skills + item.stats.packages > 0); + .filter( + (item) => options?.includeEmptyPublishers || item.stats.skills + item.stats.packages > 0, + ); } async function getUserStarredCount(ctx: Pick, userId: Id<"users">) { @@ -741,6 +753,61 @@ function resolvePublisherDisplayName( return linkedUser?.displayName?.trim() || linkedUser?.name?.trim() || publisher.displayName; } +function publisherHandlePrefixUpperBound(value: string) { + return `${value}\uffff`; +} + +async function queryActivePublishersByHandlePrefix( + ctx: Pick, + kind: PublicPublisherKindFilter, + handlePrefix: string, +) { + return await ctx.db + .query("publishers") + .withIndex("by_active_kind_handle", (q) => + q + .eq("deletedAt", undefined) + .eq("deactivatedAt", undefined) + .eq("kind", kind) + .gte("handle", handlePrefix) + .lt("handle", publisherHandlePrefixUpperBound(handlePrefix)), + ) + .take(MAX_PUBLISHER_HANDLE_PREFIX_CANDIDATES); +} + +async function collectActivePublisherRowsForListPage( + ctx: Pick, + args: { + kindFilter?: PublicPublisherKindFilter; + queryText?: string; + browseRows?: Doc<"publishers">[]; + }, +) { + const browseRows = + args.browseRows ?? (await getActivePublisherRowsByDownloads(ctx, args.kindFilter)); + const normalizedQuery = args.queryText ? normalizePublisherHandle(args.queryText) : undefined; + if (!normalizedQuery) return browseRows; + + const kinds: PublicPublisherKindFilter[] = args.kindFilter ? [args.kindFilter] : ["user", "org"]; + const [exactMatch, ...prefixMatches] = await Promise.all([ + getPublisherByHandle(ctx, normalizedQuery), + ...kinds.map((kind) => queryActivePublishersByHandlePrefix(ctx, kind, normalizedQuery)), + ]); + const merged = new Map, Doc<"publishers">>(); + for (const publisher of browseRows) { + merged.set(publisher._id, publisher); + } + if (exactMatch && isPublisherActive(exactMatch)) { + merged.set(exactMatch._id, exactMatch); + } + for (const rows of prefixMatches) { + for (const publisher of rows) { + merged.set(publisher._id, publisher); + } + } + return [...merged.values()]; +} + function getPublisherListCounts(items: PublisherListItem[]): PublisherListCounts { const individualCount = items.filter((publisher) => publisher.kind === "user").length; const organizationCount = items.filter((publisher) => publisher.kind === "org").length; @@ -2234,10 +2301,20 @@ export const listPublicPage = query({ Boolean(publisher && !publisher.deletedAt && !publisher.deactivatedAt), ) : undefined; - const activeRows = officialRows + const browseRows = officialRows ? officialRows.filter((publisher) => !kindFilter || publisher.kind === kindFilter) : await getActivePublisherRowsByDownloads(ctx, kindFilter); - const publisherSummaries = await getVisiblePublisherListSummaries(ctx, activeRows); + const activeRows = queryText + ? await collectActivePublisherRowsForListPage(ctx, { + kindFilter, + queryText, + browseRows, + }) + : browseRows; + const includeEmptyPublishers = Boolean(queryText); + const publisherSummaries = await getVisiblePublisherListSummaries(ctx, activeRows, { + includeEmptyPublishers, + }); const itemSummaries = publisherSummaries .filter( (summary) => @@ -2256,6 +2333,7 @@ export const listPublicPage = query({ const page = await hydratePublisherListSummaries( ctx, itemSummaries.slice(safeOffset, nextOffset), + { includeEmptyPublishers }, ); return {