ci: dev version includes UTC time (dev-YYYYMMDD-HHmm)
Build & Push Docker Image / build (push) Successful in 2m36s

Phase 1: browse power-up
- faceted filters: tags + features (array containment) and min rating
  on listTools; new ?tags=?features=?minRating= URL params with chips
- global Cmd+K command palette (cmdk) with tool search + navigation
- mini usefulness/usability bars on grid cards, wide cards and table rows
This commit is contained in:
opencode
2026-08-02 11:51:25 +02:00
parent 461eca9a0a
commit 0c27982098
14 changed files with 504 additions and 29 deletions
@@ -3,6 +3,7 @@ import { Card } from "@/components/ui/card";
import { Badge } from "@/components/ui/badge";
import { Star, MessageSquare, Wrench, ChevronRight } from "lucide-react";
import { ToolWithStats } from "@workspace/api-client-react";
import { MiniBarStack } from "@/components/mini-bars";
export function ToolCardWide({ tool, density }: { tool: ToolWithStats; density: "cozy" | "compact" }) {
const compact = density === "compact";
@@ -46,18 +47,21 @@ export function ToolCardWide({ tool, density }: { tool: ToolWithStats; density:
</div>
)}
</div>
<div className="shrink-0 flex items-center gap-4 text-sm text-muted-foreground">
<div className="flex items-center gap-1">
<Star className="w-4 h-4 fill-primary text-primary" />
<span className="font-medium text-foreground">
{tool.avgCombined ? tool.avgCombined.toFixed(1) : "N/A"}
</span>
<div className="shrink-0 flex flex-col items-end gap-2 text-sm text-muted-foreground">
<div className="flex items-center gap-4">
<div className="flex items-center gap-1">
<Star className="w-4 h-4 fill-primary text-primary" />
<span className="font-medium text-foreground">
{tool.avgCombined ? tool.avgCombined.toFixed(1) : "N/A"}
</span>
</div>
<div className="flex items-center gap-1">
<MessageSquare className="w-4 h-4" />
<span>{tool.ratingCount}</span>
</div>
<ChevronRight className="w-4 h-4" />
</div>
<div className="flex items-center gap-1">
<MessageSquare className="w-4 h-4" />
<span>{tool.ratingCount}</span>
</div>
<ChevronRight className="w-4 h-4" />
{!compact && <MiniBarStack usefulness={tool.avgUsefulness} usability={tool.avgUsability} />}
</div>
</Link>
</Card>