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`)