Changelog

What shipped, most recent first.

v0.26.0

2026-09-21

FEATURE

  • per-column sort mode — Manual/Auto × Asc/Desc (SQU-102) (`341f43c`)
  • sort Approved/Queued + Done lanes newest-first (SQU-101) (`1cd4f06`)

DOCS

  • capture SQU-101 — Approved/Queued + Done lanes sort newest-first (urgent, owner 2026-09-21) (`7b2a3ec`)
  • v0.25.0 shipped to prod (EC2) — SQU-99/100; lane-mapping resolved; Komodo-404 flagged (`9de792b`)

v0.25.0

2026-09-18

FEATURE

  • bulk lane actions UI — move-to, approve-all, shift-select (SQU-100) (`f2257e2`)
  • add moveMany + approveMany bulk lane-action mutations (SQU-100 server) (`adb2c7d`)

FIXED

  • bound comments rail to details-column height (SQU-99) (`02d1f43`)

DOCS

  • SQU-99 built + live-verified on branch (`5a491bd`)
  • SQU-100 built + live-verified on branch (HARD HOLD) (`831d10b`)
  • capture SQU-100 (urgent) — bulk lane actions + approve-all Ready to Test (`66e9a7a`)
  • 2026-09-16 — resume+reconcile v0.24.0, SQU-73 resolved, SQU-99 queued, Hostinger CPU-penalty pause (`b27ca5c`)
  • capture SQU-99 (urgent) — comments panel height cap + scroll (`8a888e9`)
  • reconcile to v0.24.0; resolve SQU-73 (no div-in-table, structural proof) (`a813a0a`)
  • v0.24.0 shipped; flag fleet lane-mapping refinement [WHAT] (`6184d1a`)
  • SQU-91/92 shipped to prod v0.24.0 (sha-2382dfd) (`e6258bd`)

CHORE

  • align compose+CI to AWS EC2-Komodo target (certresolver=cloudflare, valkey --maxmemory) (`d78fd77`)

v0.24.0

2026-09-12

FEATURE

  • user-resizable + persistent Home Table columns (SQU-91) (`5c1cb3c`)
  • match task display id (SQU-NN) in search (SQU-92) (`b25e15b`)

DOCS

  • resolve D66 — Flairr-only, deleted from Squirlnote scope (`e8d86b5`)
  • resolve SQU-84 (shipped v0.23.0) + SQU-85 (fleet lane re-broadcast done) (`6f054bb`)
  • SQU-91/92 built + live-verified local (HARD HOLD) (`8ddc6f8`)
  • 2026-09-11 handoff — v0.23.0 shipped to prod; queue SQU-91/92 for next session (`6fcf800`)
  • capture SQU-91 (Home Table resizable + persistent columns) (`218e815`)
  • v0.23.0 LIVE ON PROD — lane migration applied clean, SQU-87/89/90 shipped (`82c0dc9`)
  • v0.23.0 shipped (GitHub + staging); SQU-87/89/90 For Review; state synced (`b3c3fec`)

v0.23.0

2026-09-11

FEATURE

  • SQU-87 per-lane "+" inline-create at top on board/list/tracker (tracker w/ project picker) (`4b44876`)
  • add insertAtTop to task.create for SQU-87 per-lane add (order 0 + trackerOrder 0, sibling shift in a txn) (`94ae108`)
  • group progress on cards/rows + "Ships with" on detail (`300fc85`)
  • MCP tools so the agent learns a batch is shippable (`01ca248`)
  • taskGroup router with DERIVED readiness (`2916d76`)
  • add TaskGroup model + nullable Task.groupId (`dc5026d`)
  • trash button to remove a Description image (reference-only) (`ade9326`)
  • Ctrl+V image paste in the comment composer (`bbb32dd`)
  • pure clipboard-image paste helpers (`d9cb8b8`)
  • show the review controls on Ready to Test; teach MCP the cycle (`100e217`)
  • re-point the approval gates onto Approved/Queued (`0a67166`)
  • make the 5 v2 lanes the canonical set for provisioning (`0b118b4`)
  • collapse the per-environment lanes into the 5-lane v2 cycle (`144d795`)
  • approve + needs-changes review controls on card, list row and detail (`985f641`)
  • human-only Ready for Production + Done-only-from-approved gates (`809acc2`)
  • add the "Ready for Production" lane (6 canonical lanes) (`7376f71`)
  • muted pipeline-stage badge on card, list row, and task detail (`e1c4db3`)
  • read + write pipelineStage over tRPC and MCP (`2befdfd`)
  • add the "On Local Dev" workflow lane (5 canonical lanes) (`dd892fd`)
  • add nullable PipelineStage enum + Task.pipelineStage column (`7e9be75`)
  • NewProjectDialog + EditProjectDialog on shared shadcn form fields (`5ea3b04`)
  • expose the caller's effective permissions on auth.me + useCan hook (`6ce27f7`)
  • shared create/edit form logic with optional repoPath (`89d8ca7`)
  • wire Activity into app nav + robots (SQU-47b) (`f87e679`)
  • in-app account-wide activity page (SQU-47b) (`69d99cd`)
  • tenant-scoped newest-first activity feed query (SQU-47b) (`3f1ce22`)

FIXED

  • SQU-89 debounced autosave + flush-on-unmount + transient Saved indicator (`2b843ac`)
  • SQU-90 pin composer top + newest-first + reply bumps thread to top (`73385da`)
  • keep the image trash button visible on touch viewports (`4264817`)
  • never invent lanes for an unprovisioned tenant (`e0d045a`)
  • write the needs-changes note as plain text, not markdown (`6c0c55a`)
  • open the New Project dialog from a controlled trigger (`12627f4`)
  • make New Project reachable from every view and page (`3241ed7`)

REFACTOR

  • gate review controls on useCan + isAdmin, mirroring the server (`643b05d`)

DOCS

  • capture SQU-90 (comments panel: pin composer top, newest-first, reply-bump) (`9501d2f`)
  • SQU-87 built + PM-verified (For Review); session log 2026-09-11 (`12ee090`)
  • capture SQU-89 (note autosave 'Saved'-persistence + debounce) + SQU-87 scout correction (`332eef5`)
  • save session — SQU-87 queued, D66 rescoped, Flairr task re-filed (`2039739`)
  • correct mis-filed Flairr task; rescope D66 to the simplicity mandate (`4ee3ea0`)
  • D66 — UI/UX north star, familiarity without the clutter (`c32d975`)
  • capture SQU-86 UX research + SQU-87 per-status add button (`912fb77`)
  • save session 2026-09-06 — review-workflow wave consolidated (`d1d6a95`)
  • SQU-72 built+verified; capture SQU-73 B4-BUG conflict (`aea3826`)
  • capture SQU-72 New Project button (`38d1859`)
  • resolve SQU-65 — pasted-bytes path dead, file-path route proven e2e (`70b1960`)
  • SQU-47a/51/52 shipped to prod v0.22.0 + SQU-65 pending image (`2ab328f`)

CHORE

  • reconcile resolved decisions (SEO/SQU-47a/tab-bar/D38) (`776dabd`)

v0.22.0

2026-09-05

FEATURE

  • title/description edits carry old->new values (SQU-47a) (`b0f8e88`)

DOCS

  • full-auto 2026-09-04 handoff — SQU-47a/51/52 built, SQU-65 wired (`3b9e0bb`)
  • reconcile stale marks — current-truth block (2026-09-04) (`774b74d`)
  • SQU-66 shipped to prod v0.21.2 (handoff) (`847efc4`)

CHORE

  • populate primer.yml + refresh IMPLEMENTATION_MAP (SQU-52) (`a486b39`)
  • fix CLAUDE.md managed-block field derivation (SQU-51) (`54f120f`)

v0.21.2

2026-09-03

FIXED

  • uniform row height in Home Table view (SQU-66) (`dbea4b1`)

DOCS

  • reconcile task queue + session log — SQU-66 built/For Review (`71bf259`)
  • go-live complete — squirlnote.com live @ v0.21.1 (handoff) (`48fc3e2`)
  • go-live complete — squirlnote.com live @ v0.21.1; session log + backlog (`6c70566`)
  • SQU-66 — Home Table view uniform row height (owner-reported) (`264e417`)

v0.21.1

2026-09-02

FIXED

  • bake PUBLIC_BASE_URL at build so canonical/og/sitemap/robots use the prod domain (`e44a95c`)

DOCS

  • Stage B/C cutover status — squirlnote.com live + email; SEO rebuild pending (`3d79b7e`)
  • go-live Stage A — P1 v0.21.0 promoted to prod (build-once); Stage B/C held for domain-topology decision (`9f994ee`)
  • P1 shipped to staging v0.21.0; prod + squirlnote.com cutover held for owner (`1d0555d`)

CHORE

  • prod compose — email SMTP + PUBLIC_BASE_URL passthrough + legacy-domain 301 redirect (`0096535`)

v0.21.0

2026-09-02

FEATURE

  • drop SSO from Team pricing (modeled but unimplemented — owner-decided 2026-09-02) (`26f7e96`)
  • provider-agnostic transactional email seam (Purelymail SMTP, dormant) (`69b38fe`)
  • SEO depth — JSON-LD structured data + OG images (`8d397cc`)
  • docs, blog, and changelog with MDX content model (`e4d68d3`)
  • in-app trial banner + first-run checklist (`5e9c78b`)
  • 14-day Pro trial on SaaS signup + trialStatus (`8ddd58c`)
  • premium pricing + features pages (`df84121`)
  • premium landing page (`abb7ab1`)
  • explicit noindex,nofollow on the (app) layout (Rule 35) (`ef3e764`)
  • add contact page skeleton (`a4dc3c7`)
  • add about page skeleton (`ddc06d9`)
  • add features page skeleton (`5034280`)
  • add pricing page skeleton with real entitlements tiers (`71d1745`)
  • add landing page skeleton (`2607511`)
  • add buildMarketingMetadata() helper + root layout metadataBase (`cb06648`)
  • add app/sitemap.ts for the marketing route-group (Rule 35) (`a9948de`)
  • add PUBLIC_BASE_URL resolver + app/robots.ts (Rule 35) (`61af1ec`)
  • scaffold (marketing) route-group + resolve / routing collision (`101e3bc`)

FIXED

  • reveals use domMax so sections aren't stuck at opacity:0; CTAs are semantic link-buttons (`8132706`)
  • serve robots.txt and sitemap.xml instead of 302 to /login (`cb55df2`)

DOCS

  • email seam built (Purelymail, dormant) + key vaulted + domain ready; go-live is the gated step (`f2f4b53`)
  • record full P1 public-front build (marketing + onboarding + docs/blog + SEO) (`b158d6c`)
  • P1 onboarding trial UX slice — 2 commits, HARD HOLD (`180ebb3`)
  • flag pricing SSO-advertised-but-unbuilt + landing polish items (P1 marketing) (`a18416d`)
  • record P1 scaffold built+verified (Task 11) + capture SQU-65 inline-image-in-statement (`8a6194c`)
  • save-session — MCP smoke passed, build queue empty; owner stopped reboot loop (`239b1f9`)
  • live MCP smoke PASSED — list_activity + list_tasks labels/labelMode verified on prod (v0.20.0) (`821a1a2`)
  • save-session — next action = live MCP smoke (list_activity + list_tasks labels) on fresh session (`e48a674`)
  • v0.20.0 SHIPPED to prod — SQU-53/47/50 merged+deployed build-once (`b8ec23c`)

CHORE

  • run next typegen before typecheck (route-type globals) (`b47cdde`)
  • fix pnpm/action-setup version clash (packageManager pin is authoritative) (`3a38f84`)

OTHER

  • fix pricing badge clip + enrich feature visuals + a11y audit fixes (`37c3670`)

v0.20.0

2026-08-31

FEATURE

  • account-wide activity feed + `list_activity` MCP tool (SQU-47) (`80c70df`)
  • label filter control on Kanban, List, Tracker (SQU-53) (`021f047`)
  • label filter on `task.list` + `list_tasks` MCP (SQU-53) (`9a246ac`)

DOCS

  • SQU-50 OSS→SaaS go-live master plan (P0/P1/P2 gap + launch checklist) (`0dcd837`)

v0.19.0

2026-08-30

FEATURE

  • drag-reorder task rows in List view (SQU-64) (`5c997b0`)

DOCS

  • SQU-64 built+verified (dev), For Review — HARD HOLD (`6e85941`)
  • v0.18.1 shipped (MCP lifecycle docs, SQU-63) + SQU-64 queued (`9826a2d`)

v0.18.1

2026-08-30

DOCS

  • document agent lifecycle in move_task/update_task tool descriptions (`eed8849`)
  • SQU-58..62 SHIPPED TO PROD v0.18.0 — build-once, verified live (`0d84e01`)

v0.18.0

2026-08-30

FEATURE

  • accent Save+Cancel, Created→header, seamless due date (SQU-59/60/61/62) (`26f278b`)

FIXED

  • Description read view uncapped so long content scrolls (SQU-58) (`3e6e794`)

DOCS

  • save-session handoff — SQU-58..62 built+verified (dev), HARD HOLD (`9c3c5b9`)
  • SQU-58..62 built+verified (dev), For Review — HARD HOLD (owner 2026-08-30) (`5467691`)
  • capture SQU-58..62 — task-detail polish batch (owner 2026-08-30) (`ceca6f6`)
  • save-session handoff — v0.17.0 shipped to prod (UI batch + search fix) (`d2d633a`)