~/activity/milestone
Back to timeline
Portfolio patch 1.1

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 user and admin roles 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 Accepted with 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.