bvandeusen
983da9e5b1
feat(thumb-backfill): /api/thumbnails/backfill endpoint — POST → 202 + celery_task_id
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-26 10:36:38 -04:00
bvandeusen
2505b197ae
feat(fc-cleanup): Pinia store + 3 cards + CleanupView + SettingsView tab + TagMaintenanceCard moved from Maintenance + ruff lint fixes — Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-26 08:16:46 -04:00
bvandeusen
0d0b236ac3
feat(fc-cleanup): api/cleanup.py blueprint (9 endpoints) + register + delete-audit-<id> token (matches modal convention) — Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-26 08:13:53 -04:00
bvandeusen
f096c9a5fb
fc3k: register admin_bp in api/__init__ all_blueprints
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-25 00:42:40 -04:00
bvandeusen
7d42cddb11
fc3h: /api/system/backup blueprint — trigger, list, get, patch, restore, delete, settings
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-24 22:57:25 -04:00
bvandeusen
541e2bfe6a
fc3i: /api/system/activity blueprint — queues, workers, runs, failures
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-24 21:04:34 -04:00
bvandeusen
2065672a31
fc3g: /api/extension blueprint — quick-add-source + manifest endpoints, registered
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-23 23:38:35 -04:00
bvandeusen
89224a7895
fc5: /api/migrate blueprint — multipart upload for ingest kinds + JSON for the rest + apply-without-backup guard
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-22 09:03:24 -04:00
bvandeusen
266137e3d0
fc3e: /api/posts blueprint — list (with cursor + filters) + detail
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-21 18:55:18 -04:00
bvandeusen
71e6114f49
feat(fc3c): /api/downloads blueprint (list + detail w/ keyset pagination)
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-20 20:44:28 -04:00
bvandeusen
617aa5a90a
feat(fc3b): /api/credentials blueprint (CRUD + X-Extension-Key auth)
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-20 18:35:54 -04:00
bvandeusen
ca8a27fee7
feat(fc3b): /api/platforms blueprint (read-only registry view)
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-20 18:34:23 -04:00
bvandeusen
c415cb45d9
feat(fc3a): /api/artists POST + autocomplete
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-20 12:55:51 -04:00
bvandeusen
1e834c0139
feat(fc3a): /api/sources blueprint (CRUD + platforms endpoint)
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-20 12:55:27 -04:00
bvandeusen
74e34d359b
feat(attachments): provenance payload attachments + download route
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-19 11:16:01 -04:00
bvandeusen
bb3fb5145a
feat(provenance): /api/provenance image + post endpoints
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-18 18:07:06 -04:00
bvandeusen
e43c2a0dd0
feat(fc2c-i): artist overview + paged images endpoints
2026-05-15 15:52:02 -04:00
bvandeusen
a74b313596
feat(fc2c-i): showcase random-sample service and endpoint
2026-05-15 15:49:25 -04:00
bvandeusen
aa4cc7c629
feat(fc2b): add tag rename (PATCH /api/tags/<id>) + /api/ml admin
...
Rename returns 409 on collision (frontend shows FC-2c merge hint), 400
on empty. ml_admin: GET/PATCH settings (thresholds + min_reference;
model versions read-only here), POST backfill / recompute-centroids
returning 202 + celery task id. Tests integration-marked, eager Celery.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-15 07:54:12 -04:00
bvandeusen
46338a1f2e
feat(fc2b): add /api/allowlist and /api/aliases endpoints
...
Allowlist: list-all, get-one (404 if not listed), PATCH threshold
(range-validated), DELETE. Aliases: list-all (with canonical name),
create (idempotent, 201), DELETE by (string, category). Tests
integration-marked.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-15 07:46:38 -04:00
bvandeusen
07961dfe04
feat(fc2b): add /api/images/<id>/suggestions endpoints
...
GET (ranked, category-grouped), accept (→ apply + allowlist; enqueues
retro-apply when newly added), alias (create alias + accept canonical),
dismiss (per-image rejection). Thin blueprint over SuggestionService +
AllowlistService. Tests marked integration, eager Celery.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-15 07:45:55 -04:00
bvandeusen
e597a9300e
feat(fc2a): add /api/import admin endpoints
...
trigger enqueues a Celery scan_directory task and returns 202 with the
celery task id (the actual scan happens asynchronously; status surfaces
via /api/import/status and /api/system/stats). list_tasks supports
status filter and cursor pagination. retry-failed resets failed tasks
to queued and re-enqueues. clear-completed deletes finished tasks
older than the supplied age (used by the Settings UI's cleanup control).
mode='deep' is explicitly rejected with 400 until FC-2d ships it; the
frontend's UI in FC-2a only sends 'quick'.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-14 12:11:49 -04:00
bvandeusen
62eac7cffd
fix(fc2a): register settings_bp in all_blueprints
...
Missed in the Task 11 commit because of a stale-cache Edit failure.
Routes /api/settings/import and /api/system/stats are now actually mounted.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-14 12:11:10 -04:00
bvandeusen
0e66368010
feat(fc2a): add /api/tags endpoints (autocomplete, create, image association)
...
Thin async blueprint delegating to TagService. Returns 400 with the
TagValidationError message on bad kind/fandom combos so the frontend can
surface the reason. List/add/remove endpoints scoped under
/api/images/<id>/tags follow REST conventions.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-14 12:10:22 -04:00
bvandeusen
fd8cf83003
feat(fc2a): add /api/gallery endpoints (scroll, timeline, jump, image detail)
...
Thin Quart blueprint that delegates to GalleryService. Cursor-based scroll
returns images + a date_groups summary so the SPA can render year-month
headers without re-grouping client-side. Timeline returns year-month
buckets for the sidebar jump nav. Jump returns a cursor positioned at a
specific year-month so the gallery can scroll to historical periods.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-14 12:09:44 -04:00
bvandeusen
fe0a311d39
feat: add Quart app factory, config loader, and /api/health endpoint
...
Config reads from env vars (12-factor); .env.example documents defaults.
Health endpoint is liveness-only (no DB/Redis touch). Test added for CI.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-14 07:32:17 -04:00