Gregor Klevze
1266f81d35
feat: upload wizard refactor + vision AI tags + artwork versioning
Upload wizard:
- Refactored UploadWizard into modular steps (Step1FileUpload, Step2Details, Step3Publish)
- Extracted reusable hooks: useUploadMachine, useFileValidation, useVisionTags
- Extracted reusable components: CategorySelector, ContentTypeSelector
- Added TagPicker component (studio-style list picker with AI badge + new-tag insertion)
- Fixed TagInput auto-open bug (hasFocusedRef guard)
- Replaced TagInput with TagPicker in UploadSidebar
Vision AI tag suggestions:
- Add UploadVisionSuggestController: sync POST /api/uploads/{id}/vision-suggest
- Calls vision.klevze.net/analyze/all on upload completion (before step 2 opens)
- Two-phase useVisionTags: immediate gateway call + background DB polling
- Trigger fires on uploadReady (not step change) so tags arrive before user sees step 2
- Added vision.gateway config block with VISION_GATEWAY_URL env
Artwork versioning system:
- ArtworkVersion / ArtworkVersionEvent models
- ArtworkVersioningService: createNewVersion, restoreVersion, rate limiting, ranking decay
- Migrations: artwork_versions, artwork_version_events, versioning columns on artworks
- Studio API routes: GET versions, POST restore/{version_id}
- Feature tests: ArtworkVersioningTest (13 cases)
2026-03-01 14:56:46 +01:00
..
2026-02-21 07:37:08 +01:00
2026-02-07 08:23:18 +01:00
2026-02-07 08:23:18 +01:00
2026-02-17 17:14:43 +01:00
2026-02-07 08:23:18 +01:00
2026-03-01 14:56:46 +01:00
2026-02-21 07:37:08 +01:00
2026-02-14 15:14:12 +01:00
2026-02-21 12:13:01 +01:00
2026-03-01 08:43:48 +01:00
2026-02-07 08:23:18 +01:00
2026-02-21 07:37:08 +01:00
2026-02-07 08:23:18 +01:00
2026-02-07 08:23:18 +01:00
2026-02-26 21:12:32 +01:00
2026-02-07 08:23:18 +01:00
2026-02-28 16:41:15 +01:00
2026-03-01 08:43:48 +01:00
2026-02-21 12:13:01 +01:00
2026-03-01 08:43:48 +01:00
2026-02-21 12:13:01 +01:00
2026-02-07 08:23:18 +01:00
2026-02-14 15:14:12 +01:00
2026-02-14 15:14:12 +01:00
2026-02-21 07:37:08 +01:00
2026-03-01 14:56:46 +01:00