test
4d60a876af
Add a read-only Google AdSense analytics module for admins.
...
Connect AdSense over OAuth, sync entities and daily reports locally, and show placement performance in the admin panel without calling the Management API from public pages.
2026-09-20 14:49:48 +02:00
test
455b514d50
Track original artwork file availability more accurately.
...
Resolve local and object-storage originals, persist download status, and audit missing files without guessing from a single path.
2026-09-20 14:49:19 +02:00
test
366dbf1de8
Send new artwork uploads through a trust-based review policy.
...
Require review for untrusted accounts, add admin artwork review APIs, and keep queued or auto-trusted publishes from counting as established history.
2026-09-20 14:49:06 +02:00
test
3078319f3c
Add comment spam classification and captcha checks.
...
Score artwork comments with local signatures plus Together AI, and optionally require Turnstile before posting.
2026-09-20 14:48:50 +02:00
klevze
8a80aae21e
Ship production optimization M1-M12.5A: queues, metrics, HTTP observability, and vector search reliability.
...
Keep similar-ai from tripping the global circuit on a lone URL 502, clamp Qdrant search to 100, and add Server-Timing plus slow-request logging. Studio shared props, Academy S3 exists caching, heat chunking, and Redis/scheduler hygiene stay in this rollout.
2026-08-25 07:58:47 +02:00
klevze
f52879edbb
Current state with latest updates
2026-08-23 13:28:34 +02:00
klevze
5af95f6533
Optimize academy
2026-06-09 13:16:01 +02:00
klevze
15870ddb1f
Allow heading tags (h1-h6) in ContentSanitizer so news editor headings render
2026-06-04 07:52:57 +02:00
klevze
0b33a1b074
Implement academy analytics, billing, and web stories updates
2026-05-26 07:27:29 +02:00
klevze
ff96ef796e
chore: commit remaining workspace changes
2026-05-08 21:51:29 +02:00
klevze
0c5dde9b22
Featured artworks thumbnails
2026-05-06 19:11:31 +02:00
klevze
a3cfc6c17f
feat(academy): prepare AI Academy v1 for production enablement
2026-05-03 19:59:27 +02:00
klevze
caf1464aa5
chore: commit current workspace changes
2026-05-02 09:37:14 +02:00
klevze
18cea8b0f0
Wire admin studio SSR and search infrastructure
2026-05-01 11:46:06 +02:00
klevze
257b0dbef6
Build world campaigns rewards and recaps
2026-05-01 11:44:41 +02:00
klevze
28e7e46e13
Add news article comments and reactions
2026-05-01 11:43:49 +02:00
klevze
874f8feb9c
Add homepage announcement module
2026-05-01 11:43:08 +02:00
klevze
87d60af5a9
Save workspace changes
2026-04-18 17:02:56 +02:00
klevze
d5cff21ea2
feat: ship creator journey v2 and profile updates
2026-04-12 21:42:07 +02:00
klevze
08ad757bcb
Commit workspace changes
2026-04-05 19:42:33 +02:00
klevze
0b216b7ecd
Implement creator studio and upload updates
2026-04-04 10:12:02 +02:00
klevze
1da7d3bf88
Profile: store covers in object storage (WebP); add covers config; remember artworks categories content-type preference
2026-03-29 09:22:36 +02:00
klevze
cab4fbd83e
optimizations
2026-03-28 19:15:39 +01:00
klevze
2608be7420
Repair: copy legacy joinDate into new user's created_at when creating users from legacy wallz
2026-03-22 09:13:39 +01:00
klevze
e8b5edf5d2
feat: add Reverb realtime messaging
2026-03-21 12:51:59 +01:00
klevze
979e011257
Refactor dashboard and upload flows
...
Remove dead admin UI code, redesign dashboard followers/following and upload experiences, and add schema audit tooling with repair migrations for forum and upload drift.
2026-03-21 11:02:22 +01:00
klevze
29c3ff8572
update
2026-03-20 21:17:26 +01:00
klevze
2119741ba7
feat: add community activity feed and mentions
2026-03-17 18:26:57 +01:00
klevze
2728644477
feat: add tag discovery analytics and reporting
2026-03-17 18:23:38 +01:00
klevze
4f576ceb04
more fixes
2026-03-12 07:22:38 +01:00
klevze
f6772f673b
login update
2026-03-05 11:24:37 +01:00
klevze
b9c2d8597d
feat: Inertia profile settings page, Studio edit redesign, EGS, Nova UI components\n\n- Redesign /dashboard/profile as Inertia React page (Settings/ProfileEdit)\n with SettingsLayout sidebar, Nova UI components (TextInput, Textarea,\n Toggle, Select, RadioGroup, Modal, Button), avatar drag-and-drop,\n password change, and account deletion sections\n- Redesign Studio artwork edit page with two-column layout, Nova components,\n integrated TagPicker, and version history modal\n- Add shared MarkdownEditor component\n- Add Early-Stage Growth System (EGS): SpotlightEngine, FeedBlender,\n GridFiller, AdaptiveTimeWindow, ActivityLayer, admin panel\n- Fix upload category/tag persistence (V1+V2 paths)\n- Fix tag source enum, category tree display, binding resolution\n- Add settings.jsx Vite entry, settings.blade.php wrapper\n- Update ProfileController with JSON response support for API calls\n- Various route fixes (profile.edit, toolbar settings link)"
2026-03-03 20:57:43 +01:00
klevze
dc51d65440
feat: forum rich-text editor, emoji picker, mentions, discover nav, feed, uploads, profile
...
Forum:
- TipTap WYSIWYG editor with full toolbar
- @emoji-mart/react emoji picker (consistent with tweets)
- @mention autocomplete with user search API
- Fix PHP 8.4 parse errors in Blade templates
- Fix thread data display (paginator items)
- Align forum page widths to max-w-5xl
Discover:
- Extract shared _nav.blade.php partial
- Add missing nav links to for-you page
- Add Following link for authenticated users
Feed/Posts:
- Post model, controllers, policies, migrations
- Feed page components (PostComposer, FeedCard, etc)
- Post reactions, comments, saves, reports, sharing
- Scheduled publishing support
- Link preview controller
Profile:
- Profile page components (ProfileHero, ProfileTabs)
- Profile API controller
Uploads:
- Upload wizard enhancements
- Scheduled publish picker
- Studio status bar and readiness checklist
2026-03-03 09:48:31 +01:00
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
klevze
e3ca845a6d
Studio: make grid checkbox rectangular and commit table changes
2026-03-01 08:43:48 +01:00
klevze
de3ec22ee5
feat: Ranking Engine V2 — intelligent scoring with shares, authority, decay & velocity\n\n- Add ArtworkRankingService with V2 formula:\n ranking_score = (base × authority × decay) + velocity_boost\n Base: views×0.2 + downloads×1.5 + favourites×2.5 + comments×3.0 + shares×4.0\n Authority: 1 + (log10(1+followers) + fav_received/1000) × 0.05\n Decay: 1 / (1 + hours/48)\n Velocity: 24h signals × velocity_weights × 0.5\n\n- Add nova:recalculate-rankings command (--chunk, --sync-rank-scores, --skip-index)\n- Add migration: ranking_score, engagement_velocity, shares/comments counts to artwork_stats\n- Upgrade RankingService.computeScores() with shares + comments + velocity\n- Update Meilisearch sortableAttributes: ranking_score, shares_count, engagement_velocity, comments_count\n- Update toSearchableArray() to expose V2 fields\n- Schedule every 30 min with overlap protection\n- Verified: 49733 artworks scored successfully"
2026-02-28 16:41:15 +01:00
klevze
90f244f264
feat: artwork share system with modal, native Web Share API, and tracking
...
- Add ArtworkShareModal with glassmorphism UI (Facebook, X, Pinterest, Email, Copy Link, Embed Code)
- Add ArtworkShareButton with lazy-loaded modal and native share fallback
- Add useWebShare hook abstracting navigator.share with AbortError handling
- Add ShareToast auto-dismissing notification component
- Add share() endpoint to ArtworkInteractionController (POST /api/artworks/{id}/share)
- Add artwork_shares migration for Phase 2 share tracking
- Refactor ArtworkActionBar to use new ArtworkShareButton component
2026-02-28 15:29:45 +01:00
klevze
eee7df1f8c
feat: artwork page carousels, recommendations, avatars & fixes
...
- Infinite loop carousels for Similar Artworks & Trending rails
- Mouse wheel horizontal scrolling on both carousels
- Author avatar shown on hover in RailCard (similar + trending)
- Removed "View" badge from RailCard hover overlay
- Added `id` to Meilisearch filterable attributes
- Auto-prepend Scout prefix in meilisearch:configure-index command
- Added author name + avatar to Similar Artworks API response
- Added avatar_url to ArtworkListResource author object
- Added direct /art/{id}/{slug} URL to ArtworkListResource
- Fixed race condition: Similar Artworks no longer briefly shows trending items
- Fixed user_profiles eager load (user_id primary key, not id)
- Bumped /api/art/{id}/similar rate limit to 300/min
- Removed decorative heart icons from tag pills
- Moved ReactionBar under artwork description
2026-02-28 14:05:39 +01:00
klevze
6536d4ae78
feat: add reusable gallery carousel and ranking feed infrastructure
2026-02-28 07:56:25 +01:00
klevze
67ef79766c
fix(gallery): fill tall portrait cards to full block width with object-cover crop
...
- ArtworkCard: add w-full to nova-card-media, use absolute inset-0 on img so
object-cover fills the max-height capped box instead of collapsing the width
- MasonryGallery.css: add width:100% to media container, position img
absolutely so top/bottom is cropped rather than leaving dark gaps
- Add React MasonryGallery + ArtworkCard components and entry point
- Add recommendation system: UserRecoProfile model/DTO/migration,
SuggestedCreatorsController, SuggestedTagsController, Recommendation
services, config/recommendations.php
- SimilarArtworksController, DiscoverController, HomepageService updates
- Update routes (api + web) and discover/for-you views
- Refresh favicon assets, update vite.config.js
2026-02-27 13:34:08 +01:00
klevze
f0cca76eb3
storing analytics data
2026-02-27 09:46:51 +01:00
klevze
15b7b77d20
messages implemented
2026-02-26 21:12:32 +01:00
klevze
0032aec02f
feat: increase gallery grid from 4 to 5 columns per row on desktopfeat: increase gallery grid from 4 to 5 columns per row on desktop
2026-02-25 19:11:23 +01:00
klevze
5c97488e80
fixed gallery
2026-02-22 17:09:34 +01:00
klevze
b239af9619
feat(auth): complete registration anti-spam and quota hardening
2026-02-21 12:13:01 +01:00
klevze
795c7a835f
Auth: convert auth views and verification email to Nova layout
2026-02-21 07:37:08 +01:00
klevze
c30fa5a392
prepared and gallery fixes
2026-02-19 08:36:32 +01:00
klevze
8935065af1
feat(forum): add forum schema
2026-02-17 17:19:01 +01:00
klevze
41287914aa
Upload beautify
2026-02-17 17:14:43 +01:00
klevze
79192345e3
Upload beautify
2026-02-14 15:14:12 +01:00