jubnl
71ebf5588b
feat(server): plan 3g groundwork — GALLERY_CHRONOLOGICAL_ORDER Kysely ordering, unixEpochToIsoKysely helper, composite-PK DDL pins, JB5/R7 confirmations
2026-09-23 21:57:16 +02:00
jubnl
a209e851af
feat(server): plan 3f groundwork — systemNotices DI shape, TRAVELER_OWNS predicate, ntfy/storage-health specs, composite-PK pins
2026-09-23 20:05:38 +02:00
jubnl
7ee0403eaf
refactor(reservations): reservations, endpoints and travelers through repositories
2026-09-23 14:58:36 +02:00
jubnl
93324e71c4
feat(server): plan 3d groundwork — dialect helpers, visibility predicate, feed and cron context ratchets
2026-09-23 13:52:38 +02:00
jubnl
18a4784ebd
refactor(trips): trips through repositories
2026-09-23 09:33:48 +02:00
jubnl
955809f15f
fix(server): place-shadow source counts ordered in SQL; identity-map ratchets load-bearing; photo-cache race pinned
2026-09-23 08:31:36 +02:00
jubnl
94c6efbbcc
refactor(trip-members): membership, guests and the trip read model through repositories
2026-09-23 08:00:39 +02:00
jubnl
cee6310e59
refactor(server): trip-membership, place-shadow, place-enrichment, place-photos and query helpers through repositories
2026-09-23 06:41:03 +02:00
jubnl
d2e0d7e320
refactor(trips): trip access through TripsRepository; demo seed in a request context; dialect helpers for the trips cluster
2026-09-23 04:46:18 +02:00
jubnl
8efb3c8623
fix(server): plan 3b close-out — case folding on both sides for identifier lookups (non-ASCII login regression); coverage ratchet restored; repository scaffold and instanceof ratchet on TrekRepository; D-shape tests load-bearing
2026-09-23 01:48:27 +02:00
jubnl
8ba55bda30
fix(db): generator emits the referenced column for non-PK foreign keys; OAuth client joins through the relation; FK parity un-skipped
2026-09-22 21:53:34 +02:00
jubnl
d82395d0ae
refactor(oauth): OAuth server tables through repositories
...
OauthClientsRepository/OauthTokensRepository/OauthConsentsRepository
replace OauthService's raw SQL (OA1-OA33). revokeChain's recursive CTE
and the oauth_clients join (its FK actually targets client_id, not the
row id the generated relation assumes) go through em.getKysely();
OA19's chain revoke is one nativeUpdate($in); OA12's consent grant is
em.upsert on the (client, user) unique key. revokeAllForUser built now
for Task 5. Every row-out read is disableIdentityMap: true; inserts go
through em.insert.
2026-09-22 21:18:08 +02:00
jubnl
57f4e29b9a
refactor(auth): users table through UsersRepository; JWT and MFA lookups repository-backed
2026-09-22 19:39:01 +02:00
jubnl
7453c7dafa
feat(server): pre-init photo route and WS handshake run in a request context; InviteTokensRepository
2026-09-22 18:48:24 +02:00
jubnl
f4fe27a3f8
fix(db): dialect helpers dispatch on the platform; lint gate for the repository layer
2026-09-21 18:12:07 +02:00
jubnl
5691f966af
feat(db): dialect helper is the one place SQL functions are spelled
2026-09-21 09:19:47 +02:00