Skip to content

fix(catalog): restore catalog links and icons#184

Merged
ian-pascoe merged 2 commits into
mainfrom
fix/catalog-hotfixes
Jun 30, 2026
Merged

fix(catalog): restore catalog links and icons#184
ian-pascoe merged 2 commits into
mainfrom
fix/catalog-hotfixes

Conversation

@ian-pascoe

@ian-pascoe ian-pascoe commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

Summary

The landing page's browse-more Caplets path now sends users to the live catalog instead of the GitHub source tree. Catalog rows also recover provider icons that were using dead or poorly served URLs, and official entries now show the trust badge directly beside the Caplet title while preserving the existing status column.

Validation

  • pnpm verify (pre-push hook)
  • Focused red/green coverage added for the landing link, repaired catalog icon metadata, and the official title trust marker.

Compound Engineering

Summary by CodeRabbit

  • New Features

    • Added an official trust badge to catalog results so trusted items are easier to spot.
    • Updated the landing page’s “Explore more Caplets” button to open the catalog site directly.
  • Bug Fixes

    • Refreshed several catalog icon images to more reliable, up-to-date sources.
    • Improved icon rendering for official items in search results.
  • Tests

    • Added coverage for official trust badges, stable icon URLs, and the updated landing page link.

@coderabbitai

coderabbitai Bot commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Warning

Review limit reached

@ian-pascoe, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 47 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 87df451c-dde9-4dc7-bd70-ae641ca5904c

📥 Commits

Reviewing files that changed from the base of the PR and between 0431be0 and 6e51f79.

📒 Files selected for processing (6)
  • apps/catalog/src/components/ResultList.astro
  • apps/catalog/src/data/official-catalog.json
  • apps/catalog/src/scripts/virtual-results.ts
  • apps/catalog/test/catalog-icon-metadata.test.ts
  • apps/catalog/test/virtual-results.test.ts
  • caplets/neon/CAPLET.md
📝 Walkthrough

Walkthrough

Adds an "official" trust badge icon to catalog result rows in both SSR (ResultList.astro) and client-side virtual results (virtual-results.ts), with supporting CSS. Updates icon URLs for five caplets (Neon, Notion, Sourcegraph, Supabase, Terraform) in catalog JSON and CAPLET.md files. Changes the landing page activation link to https://catalog.caplets.dev.

Changes

Catalog trust badge, icon fixes, and landing link update

Layer / File(s) Summary
Trust badge rendering in SSR and virtual results
apps/catalog/src/components/ResultList.astro, apps/catalog/src/scripts/virtual-results.ts, apps/catalog/src/styles/catalog.css
ResultList.astro conditionally renders an official trust badge for row.trust === "official". virtual-results.ts adds renderTitleTrustIcon helper and calls it in the row title template. CSS adds .catalog-result-row__trust--title sizing rules.
Caplet icon URL updates
apps/catalog/src/data/official-catalog.json, caplets/*/CAPLET.md
Replaces icon.url and contentMarkdown icon URLs for Neon, Notion, Sourcegraph, Supabase, and Terraform with stable/updated asset URLs.
Tests and activation link
apps/catalog/test/virtual-results.test.ts, apps/catalog/test/catalog-icon-metadata.test.ts, apps/landing/src/components/landing/Activation.astro, apps/landing/test/activation-links.test.ts
Adds tests for official trust icon aria-label, stable icon URLs per provider, and the updated https://catalog.caplets.dev activation button link.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

  • spiritledsoftware/caplets#169: Introduced the catalog search UI and virtual-results row rendering that this PR extends with the official trust badge.
  • spiritledsoftware/caplets#172: Also modifies virtual-results.ts row rendering and virtual-results.test.ts, directly adjacent to the trust icon addition here.

Poem

🐇 A badge for the official, a star in the row,
Icons updated so favicons glow,
Neon and Notion, Supabase too,
The catalog link points somewhere new.
Hop hop hooray, trust badges in view! ✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly matches the main catalog link and icon restoration work in this PR.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/catalog-hotfixes

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@greptile-apps

greptile-apps Bot commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR restores catalog navigation and improves catalog result presentation.

  • Landing browse action now opens the public catalog.
  • Official catalog icon URLs were refreshed.
  • Official result rows show a decorative title-side trust badge.
  • Tests cover the updated link, icon metadata, and virtual result badge behavior.

Confidence Score: 5/5

This looks safe to merge.

  • No blocking issues found in the changed code.

Important Files Changed

Filename Overview
apps/catalog/src/components/ResultList.astro Static catalog rows now render the title-side official badge as decorative.
apps/catalog/src/scripts/virtual-results.ts Virtualized catalog rows now match the static decorative official badge behavior.
apps/catalog/src/data/official-catalog.json Official catalog entries now use refreshed icon URLs.
apps/landing/src/components/landing/Activation.astro The landing page browse action now links to the public catalog.

Reviews (2): Last reviewed commit: "fix(catalog): address review feedback" | Re-trigger Greptile

Comment thread apps/catalog/src/components/ResultList.astro
Comment thread apps/catalog/src/scripts/virtual-results.ts
@github-actions

github-actions Bot commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (2)
apps/landing/test/activation-links.test.ts (1)

8-17: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Assert the rendered link, not the source text.

This passes even if Button stops rendering an anchor or drops the href, because it only checks the .astro source string. Rendering Activation.astro and asserting the resulting link target would cover the behavior users actually rely on.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@apps/landing/test/activation-links.test.ts` around lines 8 - 17, The current
test in Activation-links.test.ts only inspects the Activation.astro source text,
so it can pass even if Button no longer renders a real link. Update the test to
render Activation.astro and assert against the rendered output for the
browse-more action, using the existing test setup around Activation.astro and
Button to verify the actual link target and presence of the anchor rather than
the raw source string.
apps/catalog/test/catalog-icon-metadata.test.ts (1)

17-23: 🗄️ Data Integrity & Integration | 🔵 Trivial | ⚡ Quick win

Cover the CAPLET source files too.

This only guards official-catalog.json, but the same icon URLs were also changed in the caplets/*/CAPLET.md sources. If those drift, the next catalog regeneration can reintroduce the broken URLs while this test still stays green. Add a paired assertion for the source Caplets, or compare the generated entries against them.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@apps/catalog/test/catalog-icon-metadata.test.ts` around lines 17 - 23, The
current stability check only validates the generated catalog in
catalog-icon-metadata.test.ts, so it can miss drift in the CAPLET source
markdown files. Update the test around stableIconUrls to also verify the
matching caplets/*/CAPLET.md sources, either by asserting the source icon URLs
directly or by comparing the generated catalog entries against those source
files. Use the existing catalogPath/entries lookup pattern and the
stableIconUrls mapping so both official-catalog.json and the CAPLET sources stay
in sync.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@apps/catalog/src/data/official-catalog.json`:
- Around line 1276-1280: The Neon catalog entry is using an icon URL that
redirects to a broken asset, so update the icon reference in the Neon item’s
catalog metadata to a reachable image URL. Change the `catalog.icon` value
alongside the matching `icon.url` entry in the same Neon record so the rendered
icon resolves correctly.

---

Nitpick comments:
In `@apps/catalog/test/catalog-icon-metadata.test.ts`:
- Around line 17-23: The current stability check only validates the generated
catalog in catalog-icon-metadata.test.ts, so it can miss drift in the CAPLET
source markdown files. Update the test around stableIconUrls to also verify the
matching caplets/*/CAPLET.md sources, either by asserting the source icon URLs
directly or by comparing the generated catalog entries against those source
files. Use the existing catalogPath/entries lookup pattern and the
stableIconUrls mapping so both official-catalog.json and the CAPLET sources stay
in sync.

In `@apps/landing/test/activation-links.test.ts`:
- Around line 8-17: The current test in Activation-links.test.ts only inspects
the Activation.astro source text, so it can pass even if Button no longer
renders a real link. Update the test to render Activation.astro and assert
against the rendered output for the browse-more action, using the existing test
setup around Activation.astro and Button to verify the actual link target and
presence of the anchor rather than the raw source string.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 908bf1a3-79f0-43c6-a877-a339dd85c2bf

📥 Commits

Reviewing files that changed from the base of the PR and between f774887 and 0431be0.

📒 Files selected for processing (13)
  • apps/catalog/src/components/ResultList.astro
  • apps/catalog/src/data/official-catalog.json
  • apps/catalog/src/scripts/virtual-results.ts
  • apps/catalog/src/styles/catalog.css
  • apps/catalog/test/catalog-icon-metadata.test.ts
  • apps/catalog/test/virtual-results.test.ts
  • apps/landing/src/components/landing/Activation.astro
  • apps/landing/test/activation-links.test.ts
  • caplets/neon/CAPLET.md
  • caplets/notion/CAPLET.md
  • caplets/sourcegraph/CAPLET.md
  • caplets/supabase/CAPLET.md
  • caplets/terraform/CAPLET.md

Comment thread apps/catalog/src/data/official-catalog.json Outdated
@ian-pascoe ian-pascoe merged commit ee8f88a into main Jun 30, 2026
7 checks passed
@ian-pascoe ian-pascoe deleted the fix/catalog-hotfixes branch June 30, 2026 18:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant