Portfolio patch 1.1
Released on 31 August 2026, this update made document embeddings visually explorable, introduced protected content administration, and moved indexing into durable background workflows.
Admin for CMS
- GitHub authentication: Uses GitHub OAuth through
nuxt-auth-utils, with approved administrator identities matched by username or primary email. - Persisted access roles: Adds
userandadminroles to the D1 user records through Drizzle ORM migrations. The authenticated session carries the assigned role. - Server-enforced authorization: Requires administrator access for management APIs and checks that browser mutations originate from the same site.
- Document management: Provides PDF upload, preview, indexing, and deletion controls, including upload-progress feedback.
- Résumé publishing: Allows administrators to replace the downloadable résumé stored in Cloudflare R2 while retaining a stable public URL.
- Task inspection: Provides access to indexing history and individual task details through protected Nuxt pages.
Durable indexing
- Asynchronous submission: Creates an indexing task in D1, starts a Workflow instance, and returns HTTP
202 Acceptedwith the task details. - Workflow execution: Introduces
LibraryIndexingWorkflow, which invokes the ingestion pipeline through internal Nuxt handlers restricted to Workflow execution. - Stage-by-stage progress: Tracks PDF reading, text extraction, chunking, embedding generation, D1 writes, vector publication, verification, activation, and cleanup.
- Automatic retries: Configures up to two retries for the indexing step, using exponential backoff with an initial five-second delay.
- Persistent task history: Records queued, processing, ready, and failed states, together with attempt counts, timestamps, page and chunk counts, extraction metadata, and error messages.
- Live administration feedback: Refreshes active task details every two seconds and displays progress, the current processing stage, and failures.
- Publication visibility: Reports vector-verification progress before activating the new document generation and cleaning up the previous revision.
Embedding Visualization
- Two-dimensional projection: Uses principal component analysis (PCA) to project 1,024-dimensional document embeddings onto two axes. Vectors are L2-normalized before projection to align with Vectorize’s cosine-similarity metric.
- Visual source identification: Displays document chunks as labeled points, colored by their source PDF page.
- Model and index context: Shows the embedding model, original vector dimensions, distance metric, and number of plotted vectors alongside the chart.
- Verified vector data: Retrieves embeddings from Cloudflare Vectorize and checks their document and ingestion-generation metadata before calculating coordinates.
- Responsive rendering: Built with Vue and Unovis, with loading placeholders and styling for light and dark themes.