July 24th, 2026

SnipVault 1.3.1

A focused bugfix release cleaning up the rough edges from the Projects rollout in 1.3, plus a few UI polish items.

πŸ› Fixed: Projects & Imports

The biggest fixes here are around project assignment on import β€” a few different paths were writing snippets to disk without properly linking them into your project-scoped list:

  • GitHub Library imports weren't assigning a project β€” imported snippets (including drafts) existed on disk but wouldn't show up in your project's snippet list. Imports now use your active project (or Default), and re-importing the same GitHub path updates the existing snippet instead of creating a duplicate.

  • Cloud Library and JSON file imports were landing in Default instead of whatever project you had selected. Fixed.

  • Added snippet_project to the GitHub .snipvault.json sidecar metadata so same-site sync can correctly restore project assignment.

  • Fixed the agent's import_from_library tool sending a single path instead of the required paths array β€” imports now also pass status and project_id correctly.

  • Ran a migration (projects v2) to backfill any snippets/folders that were missing valid project meta, moving them to Default.

🎨 UI & Polish

  • Monaco editor's dark theme now uses zinc-900 (#18181b) to match the rest of the app's dark palette β€” no more mismatched editor background.

  • Redesigned the settings page with a grouped card layout β€” clearer section hierarchy, more breathing room, readable text-sm descriptions throughout.

  • Fixed layout issues on the snippet settings and PHP error log screens.

  • Added ThinkingOrb canvas animations for agent working/thinking states β€” the header status and inline loading indicator now map activity labels to orbit, globe, wave, or ribbon modes depending on what the agent's doing.

πŸ” Licence Key Storage

Licence keys now live in their own dedicated snipvault_license option instead of being bundled into snipvault_settings. Activation and removal go through new snipvault/v1/license/* endpoints, so an unrelated settings save can no longer wipe your key. Existing keys migrate automatically β€” no action needed.

⚑ Performance

  • Fixed an intermittent critical error when opening the PHP Error Log β€” large log files no longer load fully into memory (now a tail-capped read), path resolution falls back to wp-content/debug.log, source lookups are cached, and the dashboard now uses a single error-log request instead of two parallel full parses.

Also Fixed

  • Frontend live reload script 404 on some installs β€” the script is now copied into app/dist during the Vite build and enqueued from there instead of app/src.