Skip to content

feat: source card zoned layout with badges and import progress#101

Merged
miethe merged 4 commits intofeat/similar-artifactsfrom
feat/source-card-zoned-layout
Feb 26, 2026
Merged

feat: source card zoned layout with badges and import progress#101
miethe merged 4 commits intofeat/similar-artifactsfrom
feat/source-card-zoned-layout

Conversation

@miethe
Copy link
Owner

@miethe miethe commented Feb 26, 2026

Summary

  • Redesign marketplace source cards with 6 fixed-height zones for consistent card layout
  • Add "New" (emerald) and "Updated" (amber) artifact count badges in a new metrics row
  • Add import progress bar showing imported/total artifacts per source
  • Wire backend to populate new_artifact_count, updated_artifact_count, and imported_count from catalog entry status aggregation

Changes

Frontend (2 files):

  • types/marketplace.ts: Add 3 optional fields to GitHubSource
  • source-card.tsx: Reorganize into 6 zones (header, metrics, description, tags, progress, actions) with min-h constraints; update skeleton to match

Backend (3 files):

  • schemas/marketplace.py: Add 3 count fields to SourceResponse
  • repositories.py: Add count_by_status_bulk() for efficient list queries
  • routers/marketplace_sources.py: Populate counts in source_to_response() via bulk (list) and per-source (detail) queries

Test plan

  • Rescan a source with new/updated artifacts — verify badges appear
  • Check source with 0 new/updated — badges should be hidden
  • Import some artifacts — verify progress bar shows correct ratio
  • Confirm all cards in grid have consistent height regardless of content
  • Verify existing functionality (click, selection, context menu, badges) still works

🤖 Generated with Claude Code

miethe and others added 4 commits February 26, 2026 10:48
Add optional fields for badge counts and import progress tracking
that the redesigned source card will consume.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Reorganize card body into 6 explicit zones with min-height constraints
for consistent card heights: header, metrics row (new/updated badges +
count), description, tags, import progress bar, and actions.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Wire MarketplaceCatalogEntry status counts into SourceResponse via
count_by_status. Add bulk query method to avoid N+1 on list endpoint.
Frontend badges now have real data from scan results.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@miethe miethe merged commit 4acde18 into feat/similar-artifacts Feb 26, 2026
1 of 4 checks passed
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