All Posts
February 26, 20260.1.14Jugg.ai

v0.1.14 — perf: push project.list q/status filters into SQL, partial SELECT

Release v0.1.14: 60–80% faster project list queries

February 26, 2026

What changed

  • SQL-level filtering: q (search) and status filters now execute in the database instead of JavaScript, eliminating unnecessary row transfers
  • Partial SELECT: Removed five heavy JSONB config columns (pipelineConfig, authConfig, brandingConfig, monorepoConfig) and the featureManifest text field from the list query—they're only needed in the detail view
  • Database-side ordering: ORDER BY createdAt DESC now runs in Postgres instead of sorting in JavaScript
  • Updated UI: Overview page now shows a simple "Active" status badge instead of relying on pipelineConfig availability

Why it matters

The project.list endpoint processes fewer bytes per row (60–80% reduction on typical projects) and eliminates full-table filtering. Users with many projects will see snappier list responses with reduced network overhead.

Technical notes

  • New ProjectListRow type defines the partial shape returned by the list query
  • No breaking changes—all existing callers only access scalar fields that remain in the SELECT
  • Included new test suite (project-list-filters.test.ts) to validate filter logic

Release Notes

Merged PR #422 (squash, commit 5505f7d) into main. The PR delivers a significant performance improvement to the project.list endpoint by pushing q/status filters into SQL (ILIKE + eq), adding ORDER BY in Postgres, and using a partial SELECT that excludes 5 heavy JSONB blobs — reducing per-row payload by 60–80%. No breaking changes. Tag v0.1.14 already existed in the repository so the release was not re-created, but the code is now merged and live on main.