• v3.0.0 11d9166825

    v3.0.0 Stable

    rbrooks released this 2026-06-14 01:26:36 +00:00 | 182 commits to main since this release

    What's New in v3.0.0

    This release marks the completion of the v3 roadmap — a major expansion of Tea Leaves from a personal research tool into a full publishing and collaboration platform.


    Image Annotation (P1)

    Draw and label regions directly on screenshots and media files. Rect and polygon annotations with touch support, stored per media item. Annotations survive media deletion cascades.

    Profile Settings & Public Slug (P2)

    Identity layer for all publishing features: display name, bio, avatar upload, social links (Bluesky, website), and a public username/slug with optional redirect preservation on change.

    Visibility Controls (P3)

    Three-tier visibility (private / unlisted / public) on both entries and motifs. Unauthenticated GET /api/public/:slug/entries and /motifs routes expose public content without login.

    Public Profiles & Motif Pages (P4)

    Public-facing profile pages (/u/:slug) and shareable motif pages (/u/:slug/motifs/:motifSlug) with Open Graph meta tags, print/PDF support, embeddable graph view, APA-style citation copy, and sitemap.xml / robots.txt generation.

    Comments (P5)

    Threaded comments (one level of replies) on motifs for logged-in users and share-link holders. Viewer-role share links are read-only; commenter-role holders can post with a display name. Motif owners can delete any comment.

    Outgoing ActivityPub (P6)

    Publish research to the fediverse. WebFinger, Actor, Outbox, and Followers endpoints; RSA-2048 HTTP Signatures; Follow/Unfollow inbox handling; per-motif "Publish to fediverse" button. Private keys are AES-256-GCM encrypted at rest and never returned by any API.

    Tag Management (P7)

    Settings → Tags section for renaming, merging, and deleting tags. Rename preserves all entry associations; merge transfers associations and removes the source tag.

    Admin Panel (P8)

    Admin-only user management (role promotion/demotion, enable/disable) and paginated audit log viewer with filters. The first registered user is automatically seeded as admin. Deactivated users are rejected at the OIDC callback and have their sessions terminated on the next /auth/me poll.

    Advanced Backup (P9)

    Multi-destination backup with per-destination cron schedules, snapshot browser, two-snapshot diff viewer, and a granular entry-level restore flow (stage → review → apply/skip per entry). Integrity trend sparkline shows the last 12 weeks of verification results.

    Image Embedding & Visual Similarity (P10)

    AI-generated description text is embedded and stored alongside each media upload. Per-image "Find similar images" button surfaces the top 8 visually similar images across all entries. Batch re-embedding available from Settings → AI tools.


    Gap Fixes (post-P10)

    • Per-user Fediverse toggle — users can opt out of federation from their profile; all AP/WebFinger endpoints return 404/410 when disabled
    • Server-wide federation kill switch — admins can disable ActivityPub entirely from Settings
    • Embedding dimension hint — Settings UI now warns that the vector(768) column requires a migration if the model output dimension changes
    • Public comments on motif pages — visitors can read comments on public motif pages without logging in; logged-in users can post
    • Image thumbnails in search results — search result cards show a 56×56 thumbnail when the entry has an image with an embedding

    Database Migrations Applied

    Migrations 015–024 are applied automatically on startup.

    Downloads