Commit Graph

  • 92759d03e8 test(e2e): smoke — create folder + breadcrumb update on documents hub Matt 2026-05-10 12:36:59 +02:00
  • 8e06d4549d fix(documents): keep feature-flags query out of realtime invalidation Matt 2026-05-10 12:34:51 +02:00
  • f8fcb8d8ad feat(documents): admin-configurable Expired tab visibility Matt 2026-05-10 12:30:56 +02:00
  • c8e6371793 fix(documents): reset type filter on tab/folder switch + label chips Matt 2026-05-10 12:27:49 +02:00
  • 433ab3bf75 feat(documents): dynamic type-filter chips + move-to-folder row action Matt 2026-05-10 12:21:14 +02:00
  • 4556a03b8b feat(documents): wire folder sidebar + breadcrumb + In-progress tab Matt 2026-05-10 12:12:53 +02:00
  • 4dd1fa4b24 fix(documents): MoveToFolderDialog — Root search + reset on reopen Matt 2026-05-10 12:07:48 +02:00
  • e6103a4473 feat(documents): MoveToFolderDialog single-doc move picker Matt 2026-05-10 12:04:24 +02:00
  • ebede74ca0 fix(documents): FolderActionsMenu — disable on pending + skip no-op rename Matt 2026-05-10 12:02:51 +02:00
  • bd8bb2e032 feat(documents): FolderActionsMenu (create / rename / delete dialogs) Matt 2026-05-10 11:59:19 +02:00
  • d904122498 fix(documents): FolderBreadcrumb a11y — aria-hidden separators + aria-current Matt 2026-05-10 11:57:30 +02:00
  • dd481e0c7d feat(documents): FolderBreadcrumb header crumb trail Matt 2026-05-10 11:54:37 +02:00
  • 1b441ca826 fix(documents): FolderTreeSidebar surfaces fetch error state Matt 2026-05-10 11:53:21 +02:00
  • 104226f967 feat(documents): FolderTreeSidebar (collapsed-by-default tree) Matt 2026-05-10 11:49:26 +02:00
  • fb4b9c9595 feat(documents): useDocumentFolders hook + mutations Matt 2026-05-10 11:43:29 +02:00
  • f286c4ef5f docs(plan): progress snapshot at Task 7 — backend complete, UI next Matt 2026-05-09 20:08:28 +02:00
  • a0ffa1baae feat(documents): folder filter on list + per-doc move endpoint Matt 2026-05-09 20:03:25 +02:00
  • e9d5df647d fix(documents): folder PATCH rejects bodies with both name and parentId Matt 2026-05-09 19:58:10 +02:00
  • 1082b80542 feat(documents): folder CRUD API routes Matt 2026-05-09 19:55:39 +02:00
  • 830ac39900 feat(documents): zod validators for folder CRUD Matt 2026-05-09 19:52:39 +02:00
  • 4ec0004867 fix(documents): folder service · audit + portId + audit-log placement Matt 2026-05-09 19:50:51 +02:00
  • 9f3e739c76 docs(plan): add Tasks 18-19 (path-style URLs + organized-bucket importer) Matt 2026-05-09 19:50:28 +02:00
  • e9251a399a feat(documents): folder service · rename + move + soft-rescue delete Matt 2026-05-09 19:41:25 +02:00
  • 5c5ab49218 fix(documents): port-scope folder test cleanup + tighten parent-validation message Matt 2026-05-09 19:36:31 +02:00
  • 4b31f01a04 feat(documents): folder service · listTree + createFolder Matt 2026-05-09 19:30:56 +02:00
  • e6cf50fd46 feat(perms): add documents.manage_folders permission Matt 2026-05-09 19:23:22 +02:00
  • 4a50bab389 fix(documents): wire folder Drizzle .references() + relations Matt 2026-05-09 19:17:58 +02:00
  • 5bed62dc72 feat(documents): document_folders schema + folder_id on documents Matt 2026-05-09 19:12:44 +02:00
  • 51a60c1b9e docs(plan): documents folders implementation plan Matt 2026-05-09 18:59:30 +02:00
  • 1bfed587b5 docs: website cutover runbook + post-execution status snapshot Matt 2026-05-09 18:38:46 +02:00
  • 72f50b681c feat(berths): split Documents tab into Spec + Deal Documents Matt 2026-05-09 18:37:16 +02:00
  • b93fdadb59 feat(berths): link prospect on status change + reason chips from vocabulary Matt 2026-05-09 18:37:04 +02:00
  • da7ce16344 feat(admin): vocabularies page for per-port pick lists Matt 2026-05-09 18:36:53 +02:00
  • 07b5756014 feat(profile): first/last name fields + collapse notification preferences Matt 2026-05-09 18:36:31 +02:00
  • 7c25d1aef6 feat(expenses): combobox trip-label picker (free text + past suggestions) Matt 2026-05-09 18:36:16 +02:00
  • 20ee2c1dcf feat(notes): aggregate-on-read for yachts, companies, residential clients Matt 2026-05-09 18:36:05 +02:00
  • 43191659e6 feat(currency): sweep remaining concat call sites to formatCurrency Matt 2026-05-09 18:35:34 +02:00
  • 7804e9bb17 docs(audit-followups): record 11 decisions from 2026-05-09 review Matt 2026-05-09 18:34:59 +02:00
  • ee2da8f67e feat(currency): centralise money formatting + curated currency picker Matt 2026-05-09 04:24:46 +02:00
  • 72ab7180cf feat(public-berths): expose booleans, metric variants, timestamps Matt 2026-05-09 04:16:42 +02:00
  • 8fdf7a92cf docs(claude-md): correct /api/public/health response shape note Matt 2026-05-09 04:15:07 +02:00
  • 91b5a41e10 fix(notes): add company_notes.updated_at, drop createdAt substitution Matt 2026-05-09 04:14:29 +02:00
  • 502455ac04 chore(format): apply prettier auto-formatting Matt 2026-05-09 04:11:54 +02:00
  • aad514a3bd docs(audit): 2026-05-08 mobile audit follow-ups index Matt 2026-05-09 04:11:24 +02:00
  • 3f86baeb0f chore(ui): drop unused dashboard KPIs + soften membership wording Matt 2026-05-09 04:11:15 +02:00
  • 19622985b5 fix(layout): mobile UX cleanup + interest-stage legend popover Matt 2026-05-09 04:11:01 +02:00
  • 82fd75081a feat(forms): country→timezone autoset, "Other" channel hint, polish Matt 2026-05-09 04:10:47 +02:00
  • 3c47f6b7f9 fix(ui): cmdk wheel-scroll on macOS + match dropdown widths to trigger Matt 2026-05-09 04:10:35 +02:00
  • e13232e2ad feat(berths): NocoDB-aligned dropdown enums + dual-unit auto-fill Matt 2026-05-09 04:10:24 +02:00
  • 4d6a293534 fix(berths): natural-sort SQL ordering for mooring numbers Matt 2026-05-09 04:10:04 +02:00
  • 9b4aabe04b chore(dev): enable Turbopack and lift typedRoutes out of experimental Matt 2026-05-09 04:09:56 +02:00
  • e01a87ff2e fix(auth): forward in checks through better-auth Proxy Matt 2026-05-09 04:09:17 +02:00
  • 1a2d2dd1e1 chore(deps): pnpm overrides for vite/esbuild/postcss (close transitive CVEs) Matt 2026-05-08 17:16:27 +02:00
  • 020aabcb4e chore(deps): typescript 5→6, @types/node 22→25, esbuild 0.25→0.28 Matt 2026-05-08 17:10:09 +02:00
  • 2b1024ff7a fix(types): unblock catch-all routes under stricter Next 15.5 typing + Phase 2B deps Matt 2026-05-08 17:07:07 +02:00
  • fdb5beb81a chore(deps): Phase 2 majors — nodemailer, archiver, pino, lint-staged Matt 2026-05-08 16:37:55 +02:00
  • e2b5898efc chore(deps): bump next 15.2.9→15.5.18 + drizzle-orm 0.38.4→0.45.2 (Phase 1b/c) Matt 2026-05-08 16:34:01 +02:00
  • 6c159a8cac fix(build): make prepare tolerant of missing husky + bump deps (Phase 1a) Matt 2026-05-08 16:15:34 +02:00
  • f74448c287 fix(docker): skip husky install in worker runner stage Matt 2026-05-08 15:57:41 +02:00
  • 2f9bcf00b1 fix(build): make auth + storage modules side-effect-free at import Matt 2026-05-08 15:38:04 +02:00
  • 42927482cd chore: gitignore /private/ folder Matt 2026-05-08 15:12:13 +02:00
  • 8dc16dcd2e fix(audit): non-Documenso backlog sweep — port-binding, NULLS NOT DISTINCT, custom merge tokens, company docs Matt 2026-05-08 02:20:27 +02:00
  • 60365dc3de fix(audit): backlog sweep — partial archived indexes, custom-fields per-entity gate, polish Matt 2026-05-07 21:45:42 +02:00
  • 5c8c12ba1f feat: autonomous backlog push — admin UX overhaul + storage parity + residential parity + Documenso Phase 1 Matt 2026-05-07 21:02:12 +02:00
  • 3e4d9d6310 feat(interests): EOI/contract/reservation tabs + contact log + berth interest milestone + interest list overhaul Matt 2026-05-07 20:59:28 +02:00
  • 267c2b6d1f feat(search): full-platform search overhaul + view tracking + notes bucket Matt 2026-05-07 20:58:34 +02:00
  • a0e68eb060 docs: comprehensive audits + Documenso build plan + admin UX backlog Matt 2026-05-07 20:57:53 +02:00
  • 05babe57a0 feat(branding): wire per-port branding through every transactional email + auth shell (R2-H15) Matt Ciaccio 2026-05-07 00:00:45 +02:00
  • 1a87f28fd4 feat(notifications): wire the notification-digest scheduler (R2-H16) Matt Ciaccio 2026-05-06 23:51:51 +02:00
  • f3143d7561 feat(inquiries): triage workflow on the inbox (R2-M2) Matt Ciaccio 2026-05-06 23:48:59 +02:00
  • 0f648a924b fix(audit): LOWs sweep — truncate auth entityId, fix legacy berthId in seed-data Matt Ciaccio 2026-05-06 22:40:35 +02:00
  • b4fb3b2ca6 fix(audit): MEDIUMs sweep — mobile More-sheet, portal profile, inline override, dialog UX, ext-EOI gate Matt Ciaccio 2026-05-06 22:38:59 +02:00
  • da7ede71d6 fix(audit): H2 audit-view dedupe, M3/M4 honest labels, M10 documenso DLQ alert Matt Ciaccio 2026-05-06 22:31:52 +02:00
  • 0a5f085a9e fix(audit): wire reminder defaults into createInterest; doc branding gap (R2-H15/H16) Matt Ciaccio 2026-05-06 22:28:41 +02:00
  • c312cd3685 fix(audit): wire 6 missing email subject overrides (R2-H14) Matt Ciaccio 2026-05-06 22:26:41 +02:00
  • 59b9e8f177 fix(audit): replace 'coming soon' tab stubs (H7 + R2-M5) Matt Ciaccio 2026-05-06 22:21:23 +02:00
  • 5fc68a5f34 fix(audit): frontend HIGHs — surface fetch errors, kill href=#, invalidate queries, toast over alert Matt Ciaccio 2026-05-06 22:18:14 +02:00
  • a8c6c071e6 fix(audit): permission UI gates + preflight leak (R2-H6/H7/H8/H9 + R2-M9) Matt Ciaccio 2026-05-06 22:15:01 +02:00
  • 94331bd6ec fix(audit): reliability HIGHs — smart-restore re-link, TOCTOU lock, bulk wrong-interest, ext-EOI tx, bulk idempotency Matt Ciaccio 2026-05-06 22:11:00 +02:00
  • 588f8bc43c fix(audit): security HIGHs — rate-limit hard-delete codes, collapse error msgs, doc bad-secret per-IP Matt Ciaccio 2026-05-06 22:06:40 +02:00
  • c5b41ca4b5 fix(audit): CRITICAL — wire 5 missing workers + bulk-archive side-effects + restore-button hover Matt Ciaccio 2026-05-06 22:03:47 +02:00
  • 9890d065f8 feat(audit): wider coverage — sensitive views, cron, jobs, portal abuse Matt Ciaccio 2026-05-06 20:44:38 +02:00
  • d2171ea79b feat(audit): comprehensive logging — auth events, severity, source, IP Matt Ciaccio 2026-05-06 20:35:34 +02:00
  • 4592789712 feat(seed): synthetic fixture covering every pipeline stage + db:reset Matt Ciaccio 2026-05-06 20:19:50 +02:00
  • 758d8628cf test(client-archive): destructive smoke for smart-archive + smart-restore Matt Ciaccio 2026-05-06 19:44:36 +02:00
  • 44db579988 feat(webhooks): admin replay for failed/dead-letter deliveries Matt Ciaccio 2026-05-06 19:31:34 +02:00
  • 7274baf1e1 feat(client-archive): bulk-archive wizard with per-high-stakes confirmation Matt Ciaccio 2026-05-06 19:29:17 +02:00
  • 70105715a7 feat(clients): hard-delete with email-code confirmation (single + bulk) Matt Ciaccio 2026-05-06 19:26:42 +02:00
  • 472c12280b feat(client-archive): smart-restore wizard with auto/opt-in/locked sections Matt Ciaccio 2026-05-06 19:26:28 +02:00
  • 1ae5d88af4 feat(client-archive): async Documenso voids + next-in-line sales notifications Matt Ciaccio 2026-05-06 19:12:55 +02:00
  • 8c02f88cbd feat(interests): upload externally-signed EOI (paper / non-Documenso) Matt Ciaccio 2026-05-06 18:33:15 +02:00
  • 789656bc70 feat(interests): manual stage override + Residential Partner system role Matt Ciaccio 2026-05-06 18:32:57 +02:00
  • fb02f3d5e1 feat(client-archive): bulk-archive uses smart backend (low-stakes auto, high-stakes blocked) Matt Ciaccio 2026-05-06 18:32:30 +02:00
  • e95316bd8a feat(client-archive): single-client smart-archive dialog + CSP/middleware fixups Matt Ciaccio 2026-05-06 17:19:34 +02:00
  • d07f1ed5e0 feat(client-archive): smart-archive backend foundation (dossier + archive + restore) Matt Ciaccio 2026-05-06 17:13:08 +02:00
  • f10334683d fix(ops): security headers (CSP / XFO / HSTS / etc) + website_submissions retention Matt Ciaccio 2026-05-06 15:16:47 +02:00
  • 8690352c56 fix(ux): mobile polish — inputMode=decimal default, dialog padding, more-sheet touch targets Matt Ciaccio 2026-05-06 15:16:33 +02:00
  • 9240cf1808 feat(berths): inline-edit on berth detail (12 spec fields + tag editor) Matt Ciaccio 2026-05-06 15:16:18 +02:00
  • adba73fcca feat(bulk): wire bulk action UI on companies list Matt Ciaccio 2026-05-06 15:14:50 +02:00
  • c60cbf4014 fix(ux): popover collision padding, PWA manifest, webhook toasts, portal toast, dashboard error boundary, GDPR poll backoff, empty-state CTA Matt Ciaccio 2026-05-06 14:59:27 +02:00