Skip to content

Releases: zero8dotdev/smriti

v0.6.0

14 Mar 09:13

Choose a tag to compare

[0.6.0] - 2026-03-14

🎯 Release Overview

Promotes validated changes from dev to main. Significant release spanning multiple feature areas and infrastructure improvements across v0.3.0→v0.6.0.

✨ Major Features

Sidecar Content Search

  • Make artifacts, thinking blocks, attachments, and voice notes searchable via unified FTS
  • Extended memory_fts with new columns via migrateFTSToV2()
  • Privacy-first design: thinking blocks opt-in only, others enabled by default
  • Weighted BM25 scoring per content type
  • New CLI flags: --include-thinking, --no-artifacts, --no-attachments, --no-voice-notes
  • Applied to both search and recall commands

Cost Estimation & Analytics

  • Model-aware cost estimation in database
  • New smriti insights module with CLI commands for usage analytics
  • Track costs per session

Ingest Force Mode

  • --force flag to re-ingest already-processed sessions
  • Allows session refresh without deduplication blocking

🔧 Infrastructure & Fixes

Database

  • New tables: smriti_artifacts, smriti_thinking, smriti_attachments, smriti_voice_notes
  • FTS migration to v2 includes sidecar content
  • Initialize QMD store tables on database creation
  • Fixed Windows mkdir edge case for current directory

Install & Path Resolution

  • Fixed PATH issues in CI environments
  • QMD submodule initialization improvements
  • Graceful fallback to direct bun execution

CI/Release Pipeline

  • Auto-generate CHANGELOG.md from merged PRs
  • Added commit lint and semver validation
  • Deterministic release notes generation
  • Draft release creation in dev workflow
  • Auto-release on main branch merges
  • Improved workflow and check naming for PR readability
  • Skip PR test job for dev-to-main release PRs

Core Features

  • Add --version command handler
  • Add missing cline and copilot to default agents seed

Performance

  • Optimize Bun install with caching for faster CI workflows

📚 Documentation

  • Overhauled documentation structure and improved narrative
  • Updated CLAUDE.md with segmented sharing, benchmarks, and project structure
  • CI/release workflow architecture documentation
  • Release notes for v0.3.0→v0.6.0

📊 Release Progression

This v0.6.0 consolidates multiple point releases:

  • v0.3.0→v0.3.2: Windows installer, Copilot ingestion, CI foundations, database initialization fixes
  • v0.4.0→v0.4.1: Release workflow improvements, deterministic versioning, auto-release
  • v0.5.0→v0.5.1: Share pipeline v2, cost estimation, docs overhaul, bug fixes
  • v0.6.0: Sidecar search, ingest force mode, insights module, final infrastructure hardening

[0.5.1] - 2026-03-09

Fixed

  • fix: add missing cline and copilot to default agents seed
  • fix(install): remove temp HOME isolation breaking PATH dependencies

Performance

  • perf: add caching and optimize Bun install for faster CI workflows

v0.5.1

09 Mar 06:41
dc1cb53

Choose a tag to compare

Changed

  • fix: add missing cline and copilot to default agents seed (476eb75)
  • fix(install): remove temp HOME isolation breaking PATH dependencies (4abdda5)
  • perf: add caching and optimize Bun install for faster CI workflows (797221a)

Maintenance

  • release: v0.5.1 — bug fixes for copilot FK, install path, CI caching (d525d44)

v0.4.1

28 Feb 15:26
552ae12

Choose a tag to compare

Changed

  • fix(ci): use import.meta.dir for cross-platform path resolution (2de0504)
  • fix(release): align dev-main PR version with latest stable tag (1005dd0)
  • fix(ci): allow legacy non-conventional history for dev draft metadata (58979fb)
  • fix(ci): setup bun before dev draft release metadata step (835df63)
  • fix(ci): bench scorecard ci windows fixes (#34) (223795b)

Maintenance

  • ci: skip PR test job for dev to main release PRs (c5d091f)
  • ci: improve workflow and check naming for PR readability (4976ab6)
  • ci: scope commit lint to pull request commit ranges only (17270e6)
  • ci: add commit lint, semver metadata, and deterministic release notes (8710322)
  • ci: create dev draft release after successful dev test matrix (c736bd8)
  • ci: auto-template and title for dev to main PRs (9256e03)
  • chore: new branch (#33) (c55bd5f)
  • chore: add e2e dev release flow test marker (#36) (f2f0868)
  • docs: finalize workflow policy docs without backlog sections (7c44439)
  • docs: add CI/release workflow architecture and north-star plan (16d8e57)
  • docs: update CHANGELOG.md for v0.4.0 [skip ci] (0a55dac)

v0.4.0

27 Feb 13:08
607df77

Choose a tag to compare

Fixed

  • fix: add missing cline and copilot to default agents seed (#31)

Changed

  • chore: e2e dev release flow smoke test (#36)

Other

  • release: v0.3.2 (dev -> main) (#37)
  • release: v0.3.2 (dev -> main) (#35)
  • Feature/bench scorecard ci windows fixes (#34)
  • New branch (#33)

v0.3.2

27 Feb 04:10

Choose a tag to compare

Fixed

  • Copilot/Cline FK constraintsmriti ingest copilot and smriti ingest cline
    failed with FOREIGN KEY constraint failed on clean databases because copilot and
    cline were missing from the default agents seed data. (#30)

v0.3.1

25 Feb 15:42

Choose a tag to compare

Fixed

  • Critical: QMD store table initialization — Fresh database creation now properly
    initializes QMD's store tables (content, documents, content_vectors) and
    loads the sqlite-vec extension. Fixes "no such table: content_vectors" errors on
    first run in CI and fresh systems.
  • Database directory creation — Ensure ~/.cache/qmd parent directory exists
    before opening database file (fixes Windows mkdir edge case)
  • Install script PATH resolution — Fixed PATH issues in CI environments
  • Claude Code submodule initialization — Proper QMD submodule checkout
  • Graceful ingest failure handling — Workflows no longer fail when no sessions exist

Added

  • --version command handler

📖 The Monitoring Loop: A CI Debugging Story

The Problem (2026-02-25, 20:32 IST):
Fresh CI runners were crashing with cryptic database errors. The PR was green locally
but red everywhere else. We needed fast feedback on each fix attempt.

The Solution: A Bash Monitoring Loop

We built a real-time GitHub Actions watcher:

for i in {1..60}; do
  echo "[$i/60] Checking status..."
  gh run view 22402879433 --log 2>&1 | grep -i "error"

  if [[ failure ]]; then
    echo "❌ Found error, let's fix it"
    break
  fi

  sleep 10
done

The Cycle (Compressed Timeline — IST):

  1. 20:32 — PR merged, Install Test triggered
  2. 20:40 — Monitor script: "Error: unable to open database file" ❌
    • Fix: Add mkdirSync() to create ~/.cache/qmd
    • Commit & push
  3. 20:42 — New run starts, monitor script watching...
  4. 20:43 — Monitor script: "Error: no such table: content_vectors" ❌
    • Root cause hunt: "What tables exist? Why not content_vectors?"
    • Discovery: QMD's initializeDatabase() was never called
    • Fix: Add initializeQmdStore() with all required tables
    • Commit & push
  5. 20:50 — Another run, monitor script: "Error: ENOENT...ingest claude" ❌
    • Root cause: Workflow has continue-on-error: false on optional step
    • Fix: Change to continue-on-error: true
    • Commit & push
  6. 21:07MONITOR SHOWS: ✅ ALL PLATFORMS PASS 🎉
    • Ubuntu: ✅ (20 seconds)
    • macOS: ✅ (21 seconds)
    • Windows: ✅ (82 seconds)

Why This Worked:

  • Immediate feedback: No waiting for Slack or email. See the error within 10 seconds
    of the run starting.
  • Pattern recognition: "unable to open database file" → directory issue, while
    "no such table" → initialization order issue. Two different root causes hidden in
    one PR.
  • Tight loop: Fix locally → test locally → push → watch CI → see result → next
    iteration. Average cycle time: ~5 minutes per fix.
  • No guessing: Read actual error messages from actual CI runners, not trying to
    reproduce in local dev environment.

The Key Insight:

The monitoring script transformed debugging from "wait for CI to finish, read logs
later" to "watch it fail in real-time, understand why immediately, fix in next
iteration." By 21:07 IST, three separate bugs were identified and fixed in under
40 minutes.

Lessons Learned:

  1. Real-time monitoring beats batch feedback — The 10-second polling loop is more
    valuable than waiting for the run to complete
  2. GitHub CLI is your friendgh run view + --log gives instant access to
    runner output without leaving the terminal
  3. Multiple platforms expose different bugs — Windows mkdir edge case wasn't
    obvious until we saw it fail. The monitoring loop caught it immediately.
  4. The loop is the feature — Not the individual fixes, but the ability to iterate
    rapidly on live CI feedback.

Final Stats:

  • Iterations: 3
  • Total time: ~40 minutes
  • Bugs fixed: 3 (mkdir, table init, workflow config)
  • Platforms now passing: 3/3 ✅

v0.3.0

24 Feb 15:42
1c59101

Choose a tag to compare

Added

  • GitHub Copilot chat ingestion (smriti ingest copilot) — VS Code on macOS, Linux, Windows
  • Windows installer (install.ps1) and uninstaller (uninstall.ps1)
  • smriti upgrade command
  • GitHub Actions: ci, install-test, release
  • Native windows support fixes for path resolution

Stable

14 Feb 07:31

Choose a tag to compare

Fix: Load sqlite-vec extension in database connection

Enable vector search and embeddings support by loading the sqlite-vec extension
when creating database connections in Smriti. This was blocking smriti embed
command from working.

Changes:
- Import sqlite-vec package in src/db.ts
- Load extension in getDb() function via sqliteVec.load(_db)
- Enables vectors_vec virtual table support
- Unlocks hybrid search and semantic recall capabilities

Related: QMD Architecture Deep Dive learning session stored in Smriti

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>