-
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