-
2a3fae4d6a
merge: PR4 — documents hub page (Phase A)
Matt Ciaccio
2026-04-28 02:35:43 +02:00
-
-
da7262f18f
feat(documents): hub page with tabs, filters, and live counts
Matt Ciaccio
2026-04-28 02:35:36 +02:00
-
-
398d6322f1
merge: PR3 — visual primitives + tokens (Phase A)
Matt Ciaccio
2026-04-28 02:25:14 +02:00
-
-
deafc5ef38
feat(ui): visual polish primitives + token additions (Phase A)
Matt Ciaccio
2026-04-28 02:25:08 +02:00
-
-
9b87b14c99
merge: PR2 — Documenso v1/v2 abstraction (Phase A)
Matt Ciaccio
2026-04-28 02:22:11 +02:00
-
-
da44e8ecbe
feat(documenso): version-aware field placement + void abstractions
Matt Ciaccio
2026-04-28 02:22:04 +02:00
-
-
af2db06244
merge: PR1 — data model + service skeletons (Phase A)
Matt Ciaccio
2026-04-28 02:12:14 +02:00
-
-
0eff6050ae
feat(documents): Phase A schema + service skeletons
Matt Ciaccio
2026-04-28 02:12:05 +02:00
-
-
d8ac62f6f4
docs(spec): documents hub + reservation agreements + visual polish (Phase A)
Matt Ciaccio
2026-04-28 01:51:41 +02:00
-
dd138547fb
test(e2e): fix admin-nav locator + add residential interest API coverage
Matt Ciaccio
2026-04-28 00:19:51 +02:00
-
1791dd7319
fix(ui): resolve yacht owner names server-side, real user in topbar
Matt Ciaccio
2026-04-27 23:54:04 +02:00
-
0ccc66833d
fix(ui): admin settings loading-loop, real user name, expanded admin nav
Matt Ciaccio
2026-04-27 23:44:04 +02:00
-
4877b97f27
feat(admin): per-port email/Documenso/branding/reminder settings + invitations
Matt Ciaccio
2026-04-27 23:21:54 +02:00
-
f2c57c513e
feat(queue): implement form-expiry-check maintenance job
Matt Ciaccio
2026-04-27 21:58:14 +02:00
-
999622fd08
feat(companies): show member + yacht counts on list page
Matt Ciaccio
2026-04-27 21:57:13 +02:00
-
e8d61c91c4
feat(platform): residential module + admin UI + reliability fixes
Matt Ciaccio
2026-04-27 21:54:32 +02:00
-
fac8021156
docs: reflect testing infra + Documenso/portal auth conventions in CLAUDE.md
Matt Ciaccio
2026-04-27 15:48:18 +02:00
-
ea8181d108
test(visual): regression baselines for stable list/landing pages
Matt Ciaccio
2026-04-27 15:42:40 +02:00
-
65b241805e
test(portal): IMAP full-lifecycle activation E2E + dev probe helper
Matt Ciaccio
2026-04-27 15:40:28 +02:00
-
4a859245b7
test(documenso): real-API E2E spec + 2.x response normalization
Matt Ciaccio
2026-04-27 15:25:06 +02:00
-
4441f1177f
feat(portal): branded auth pages + legacy email styling + dev redirect override
Matt Ciaccio
2026-04-27 15:04:21 +02:00
-
c4085265ff
fix(documenso): align webhook receiver with Documenso v1.13 + 2.x protocol
Matt Ciaccio
2026-04-27 13:46:48 +02:00
-
475b051e29
feat(portal): replace magic-link with email/password + admin-initiated activation
Matt Ciaccio
2026-04-26 15:34:02 +02:00
-
4da8ed3ae4
docs: reflect data-model refactor in CLAUDE.md + DB schema overview
Matt Ciaccio
2026-04-26 14:14:34 +02:00
-
4c67b9dbd4
test(e2e): exhaustive click-through suite + destructive narrow tests
Matt Ciaccio
2026-04-26 14:06:10 +02:00
-
0ed401d083
refactor(clients): drop deprecated yacht/company/proxy columns
Matt Ciaccio
2026-04-26 13:57:54 +02:00
-
456d399ee2
refactor(templates): merge-field allow-list rejects unknown tokens
Matt Ciaccio
2026-04-26 13:48:06 +02:00
-
f4ec51002c
feat(eoi): template-aware generate-EOI dialog
Matt Ciaccio
2026-04-26 13:42:08 +02:00
-
2ff24a7132
feat(eoi): in-app pathway fills the same source PDF as Documenso
Matt Ciaccio
2026-04-26 13:38:02 +02:00
-
f8255cedb8
feat(eoi): dual-path generateAndSign (inapp + documenso-template)
Matt Ciaccio
2026-04-24 18:43:41 +02:00
-
13d07e3906
feat(templates): merge-field resolver supports yacht/company/owner scopes
Matt Ciaccio
2026-04-24 16:20:53 +02:00
-
7ef7b9bb5f
feat(eoi): seed Standard EOI in-app template per port
Matt Ciaccio
2026-04-24 16:13:51 +02:00
-
7200c31486
feat(eoi): add Documenso template payload builder
Matt Ciaccio
2026-04-24 16:09:27 +02:00
-
db74c9394b
docs(eoi): document Documenso template field name mapping
Matt Ciaccio
2026-04-24 16:06:39 +02:00
-
d133d6d656
feat(ui): wire OwnerPicker into invoice billing-entity field
Matt Ciaccio
2026-04-24 16:04:07 +02:00
-
9d7decfc5b
feat(invoices): polymorphic billing entity with snapshot clientName
Matt Ciaccio
2026-04-24 16:02:00 +02:00
-
c685c9fada
feat(recommendations): read yacht dimensions from yachts table
Matt Ciaccio
2026-04-24 15:51:17 +02:00
-
71d7daf1ae
feat(search): index yachts and companies alongside clients
Matt Ciaccio
2026-04-24 15:47:54 +02:00
-
1fd05a886d
feat(public-interest): atomic client+yacht+company+interest trio
Matt Ciaccio
2026-04-24 15:42:45 +02:00
-
bcf4c1f797
feat(interests): add yacht-picker to interest form
Matt Ciaccio
2026-04-24 15:36:27 +02:00
-
f9cb8003b5
feat(interests): wire yachtId, enforce ownership + stage-gate
Matt Ciaccio
2026-04-24 15:34:44 +02:00
-
3b0421aa81
fix(tests): use dynamic imports in portal.test.ts to avoid env validation
Matt Ciaccio
2026-04-24 14:48:40 +02:00
-
a14dc8143c
feat(portal): surface yachts, memberships, reservations for portal users
Matt Ciaccio
2026-04-24 14:43:12 +02:00
-
b75834ab7e
refactor(clients): rebuild detail tabs + columns for new data model
Matt Ciaccio
2026-04-24 14:36:34 +02:00
-
4c171848fc
refactor(clients): strip deprecated fields + extend getClientById with yachts/companies/reservations
Matt Ciaccio
2026-04-24 14:31:14 +02:00
-
a6d6647bb2
refactor(clients): strip yacht/company/proxy sections from client form
Matt Ciaccio
2026-04-24 14:27:47 +02:00
-
367fc9800e
refactor(clients): strip yacht/company/proxy fields from validator
Matt Ciaccio
2026-04-24 14:25:10 +02:00
-
ddcffe9f6f
feat(ui): add reservations tab to berth detail
Matt Ciaccio
2026-04-24 14:22:06 +02:00
-
3c5267f5e9
feat(ui): berth-reserve dialog with create-and-activate flow
Matt Ciaccio
2026-04-24 14:20:08 +02:00
-
2111bb8b60
feat(ui): add reservation-list table component
Matt Ciaccio
2026-04-24 14:18:11 +02:00
-
64d7b5c765
feat(ui): company list page with columns, filters, and sidebar entry
Matt Ciaccio
2026-04-24 14:05:24 +02:00
-
4e448dd06e
feat(ui): add-membership dialog for company members
Matt Ciaccio
2026-04-24 14:02:47 +02:00
-
29a7fc8857
feat(ui): add shared client-picker autocomplete
Matt Ciaccio
2026-04-24 14:02:00 +02:00
-
5d76a8a1cf
feat(ui): company detail page with header, tabs, members, owned yachts
Matt Ciaccio
2026-04-24 13:59:21 +02:00
-
d6743ed52c
feat(ui): add company-form for create/edit with 409 handling
Matt Ciaccio
2026-04-24 13:53:35 +02:00
-
ba86b7a897
feat(ui): add company-picker autocomplete component
Matt Ciaccio
2026-04-24 13:52:52 +02:00
-
4f56c2bdfd
feat(ui): add Yachts entry to sidebar navigation
Matt Ciaccio
2026-04-24 13:48:37 +02:00
-
508518b6c8
feat(ui): yacht transfer dialog with atomic ownership change
Matt Ciaccio
2026-04-24 13:47:26 +02:00
-
f64a52b995
feat(ui): yacht list page with columns and filters
Matt Ciaccio
2026-04-24 13:44:15 +02:00
-
76d2348873
feat(ui): yacht detail page with header, tabs, ownership history
Matt Ciaccio
2026-04-24 13:40:41 +02:00
-
a604223c17
feat(ui): add yacht-form for create/edit
Matt Ciaccio
2026-04-24 13:34:55 +02:00
-
d4f58abb9c
feat(ui): add owner-picker and yacht-picker components
Matt Ciaccio
2026-04-24 13:32:28 +02:00
-
727e323288
feat(seed): rewrite seed for multi-cardinality refactor
Matt Ciaccio
2026-04-24 13:26:37 +02:00
-
7abbdd4913
feat(factories): add makeMembership, makeReservation, makeOwnershipTransfer
Matt Ciaccio
2026-04-24 13:19:54 +02:00
-
94f8b76a03
feat(events): register yacht, company, membership, reservation webhook events
Matt Ciaccio
2026-04-24 12:56:47 +02:00
-
a78f653f5a
feat(api): berth reservations (create pending + lifecycle PATCH)
Matt Ciaccio
2026-04-24 12:55:12 +02:00
-
aca45fb1b2
feat(api): company memberships (add/update/end/set-primary)
Matt Ciaccio
2026-04-24 12:49:10 +02:00
-
183ff1ff9e
feat(api): company list/create/detail/patch/archive/autocomplete
Matt Ciaccio
2026-04-24 12:45:10 +02:00
-
90463269ce
feat(api): yacht detail, patch, archive, transfer, history, autocomplete
Matt Ciaccio
2026-04-24 12:40:51 +02:00
-
a5036c6358
feat(api): GET/POST /api/v1/yachts
Matt Ciaccio
2026-04-24 12:35:25 +02:00
-
f743169354
feat(permissions): add yacht, company, membership, reservation keys
Matt Ciaccio
2026-04-24 12:30:06 +02:00
-
b053a6388e
feat(eoi): shared context builder + tests
Matt Ciaccio
2026-04-24 12:20:40 +02:00
-
b1133c4e87
feat(reservations): service + validators + exclusivity tests
Matt Ciaccio
2026-04-24 12:15:22 +02:00
-
15a79e7990
feat(company-memberships): service + validators + tests
Matt Ciaccio
2026-04-24 12:07:58 +02:00
-
037f2544e8
feat(companies): service + validators + unit tests
Matt Ciaccio
2026-04-24 12:02:08 +02:00
-
7c408cf975
feat(yachts): list + owner-scoped list + autocomplete
Matt Ciaccio
2026-04-24 00:03:36 +02:00
-
8a5cd1ef0e
feat(yachts): atomic transferOwnership with partial-unique guard
Matt Ciaccio
2026-04-23 23:58:20 +02:00
-
d0ab4b8102
feat(yachts): updateYacht + archiveYacht
Matt Ciaccio
2026-04-23 23:52:24 +02:00
-
aaf4847fc2
refactor(yachts): use withTransaction helper per project convention
Matt Ciaccio
2026-04-23 23:47:12 +02:00
-
feacb8c7ac
fix(yachts): run owner existence check inside transaction
Matt Ciaccio
2026-04-23 23:46:03 +02:00
-
2f2ad4452f
feat(yachts): createYacht + getYachtById services with tests
Matt Ciaccio
2026-04-23 23:40:56 +02:00
-
27d438929b
refactor(yachts): rename schema + consolidate tests per project conventions
Matt Ciaccio
2026-04-23 23:35:30 +02:00
-
899e588a0c
feat(yachts): add zod validators + tests
Matt Ciaccio
2026-04-23 23:31:29 +02:00
-
7a6e95c87a
test(schema): verify partial unique indexes and case-insensitive company uniqueness
Matt Ciaccio
2026-04-23 18:06:37 +02:00
-
077ba5bf6b
feat(schema): wire yacht, company, reservation relations in Drizzle
Matt Ciaccio
2026-04-23 18:02:22 +02:00
-
14dac2f3e1
feat(documents): add yachtId/companyId to files and documents
Matt Ciaccio
2026-04-23 18:00:12 +02:00
-
117cfae52e
feat(invoices): add billingEntityType/Id for polymorphic billing
Matt Ciaccio
2026-04-23 17:58:52 +02:00
-
d43298a74e
feat(schema): add yachtId to interests and berth_waiting_list
Matt Ciaccio
2026-04-23 17:57:29 +02:00
-
88a87afa77
feat(reservations): add berth_reservations schema with partial unique exclusivity
Matt Ciaccio
2026-04-23 17:55:53 +02:00
-
299e893e2b
feat(companies): add companies, memberships, addresses, notes, tags schema
Matt Ciaccio
2026-04-23 17:54:02 +02:00
-
51523e6768
feat(yachts): add yachts, ownership history, notes, tags schema
Matt Ciaccio
2026-04-23 17:51:19 +02:00
-
-
11969c0d8a
docs(plan): add data-model refactor implementation plan (Spec 1)
Matt Ciaccio
2026-04-23 17:17:02 +02:00
-
1c0a16fd59
docs(spec): add data-model refactor design (Spec 1 of 3)
Matt Ciaccio
2026-04-23 17:04:41 +02:00
-
b6996f9a31
test(e2e): repair 26 Playwright smoke-test failures
Matt Ciaccio
2026-04-22 17:24:52 +02:00
-
46bd8aaef1
fix: allow /portal and /api/portal paths without CRM session
Matt Ciaccio
2026-04-22 17:22:53 +02:00
-
b5d8e1ecb8
docs: update PROGRESS.md with 2026-03-26 → 2026-04-22 changelog
Matt Ciaccio
2026-04-22 02:37:43 +02:00
-
ed40662b99
chore: gitignore docker-compose.override.yml and .remember/
Matt Ciaccio
2026-04-22 02:36:11 +02:00
-
9d815c4dcc
fix: wrap useSearchParams pages in Suspense for prerender
Matt Ciaccio
2026-04-22 02:06:39 +02:00
-
b9b3f942a6
chore: add .gitattributes to normalize line endings to LF
Matt Ciaccio
2026-04-22 02:02:46 +02:00
-
-
4552187b9f
feat: add inquiry notification settings to admin settings UI
Matt
2026-04-14 13:16:20 -04:00