-
3037d832c6
feat(documents): owner-aggregated projection (files + workflows)
Matt
2026-05-11 11:54:23 +02:00
-
8e2e2ea113
fix(documents): tighten owner resolution + cover company/yacht paths
Matt
2026-05-11 11:48:44 +02:00
-
ee6e3f3f3f
feat(documents): auto-deposit signed PDFs into entity folders
Matt
2026-05-11 11:41:47 +02:00
-
0412107d86
fix(documents): tighten archive/restore idempotency + document fire-and-forget
Matt
2026-05-11 11:38:18 +02:00
-
4c5dc7ec17
feat(documents): entity-folder archive / restore / demote helpers
Matt
2026-05-11 11:34:02 +02:00
-
3b34b41989
fix(documents): syncEntityFolderName defense-in-depth + log level
Matt
2026-05-11 11:30:19 +02:00
-
86a6944d1c
feat(documents): syncEntityFolderName + entity-rename hooks
Matt
2026-05-11 11:25:16 +02:00
-
64d0ae540b
feat(documents): block rename/move/delete on system folders
Matt
2026-05-11 11:20:21 +02:00
-
2f3200764a
feat(documents): ensureEntityFolder (concurrent-safe + suffix on collision)
Matt
2026-05-11 11:14:11 +02:00
-
a23a9862cc
docs(documents): clarify ensureSystemRoots safety invariants
Matt
2026-05-11 11:10:47 +02:00
-
b0831a6872
feat(documents): ensureSystemRoots + wire into createPort
Matt
2026-05-11 11:06:41 +02:00
-
eee4f06737
fix(documents): correct 0051 migration header — backfill ships separately
Matt
2026-05-11 11:03:53 +02:00
-
48f6fb94a7
feat(documents): schema for hub split + entity-folder lifecycle
Matt
2026-05-11 11:00:40 +02:00
-
40e3db237d
docs(plans): documents hub split + auto-filed client folders
Matt
2026-05-11 10:57:46 +02:00
-
5422f11747
chore: prettier formatter drift across recent commits
Matt
2026-05-11 10:57:37 +02:00
-
286eb51f81
docs(specs): documents hub split + auto-filed client folders
Matt
2026-05-10 22:50:31 +02:00
-
ef63e86fde
feat(documents): importer for organized S3/filesystem buckets
Matt
2026-05-10 16:53:51 +02:00
-
e790ff708b
feat(documents): path-style download URLs for rep-facing readability
Matt
2026-05-10 16:50:16 +02:00
-
cf8bbf3018
fix(documents): defense-in-depth port_id scope + invisible chevron a11y
Matt
2026-05-10 16:50:02 +02:00
-
ae68e384ca
docs(claude-md): document folders model + soft-rescue delete semantics
Matt
2026-05-10 12:38:43 +02:00
-
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