feat: compare (premium), rating-history trend, hover previews
Build & Push Docker Image / build (push) Successful in 2m47s

This commit is contained in:
opencode
2026-08-02 12:48:02 +02:00
parent 0c27982098
commit c77610786b
18 changed files with 911 additions and 13 deletions
+75
View File
@@ -126,6 +126,67 @@ paths:
schema:
$ref: "#/components/schemas/ErrorResponse"
/compare:
get:
operationId: listCompareTools
tags: [tools]
summary: Compare tools side by side (premium)
parameters:
- name: ids
in: query
required: true
schema:
type: string
description: Comma-separated tool ids
responses:
"200":
description: Tools in requested order
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/ToolWithStats"
"401":
description: Authentication required
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
"403":
description: Premium feature required
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
/tools/{id}/rating-history:
get:
operationId: getToolRatingHistory
tags: [tools]
summary: Get a tool's rating history over time
parameters:
- name: id
in: path
required: true
schema:
type: integer
responses:
"200":
description: Rating history
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/RatingHistoryItem"
"400":
description: Invalid id
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
/tools/{id}:
get:
operationId: getTool
@@ -875,6 +936,20 @@ components:
deletedBy:
type: ["string", "null"]
RatingHistoryItem:
type: object
required: [date, usefulness, usability, combined]
properties:
date:
type: string
format: date-time
usefulness:
type: number
usability:
type: number
combined:
type: number
ToolWithStats:
type: object
required: [id, name, description, category, createdAt, updatedAt, ratingCount, avgUsefulness, avgUsability, avgCombined]