jubnl
11eeed46ee
fix(db): no NaN class-field initialisers; entity generator --check gate in CI; parity normaliser keeps literal case
2026-09-22 11:42:48 +02:00
jubnl
60d6e1fcd1
refactor(db): every entity in the snake_case shape; document-sync entities added; one repository per entity
2026-09-22 11:01:36 +02:00
jubnl
257529b250
fix(db): generator guard rails — validation cannot mask hidden()/index loss; typed JSON; loud failures
2026-09-22 10:24:10 +02:00
jubnl
4a67be3f87
feat(db): primary-relation entities proven (BudgetCategoryOrder, VacayUserSettings)
2026-09-22 08:35:46 +02:00
jubnl
6d6b6932f4
test(db): entity metadata must match the migrated schema; fix the four drifts it found
2026-09-22 08:25:43 +02:00
jubnl
de2d13b1af
fix(server): upload filters answer multer once on a throwing callback; positive call-graph gate test
2026-09-22 08:10:23 +02:00
jubnl
ae2af05cad
fix(server): phase 1 review follow-ups — awaited returns, logged upload-filter rejections, covered handshake/notice branches, call-graph gate in CI, dead test imports
2026-09-22 07:54:09 +02:00
jubnl
f202227bbc
refactor(trips, feeds): drop added return annotations; no double await on the feed guard
2026-09-22 06:41:46 +02:00
jubnl
39a6d991ce
refactor(server): remove DatabaseService.transaction — every transaction runs through UnitOfWork
2026-09-22 06:39:38 +02:00
jubnl
a0f50c8316
refactor(trip-read-model, trips, feeds): async DB-touching methods; transactions through UnitOfWork
2026-09-22 06:30:13 +02:00
jubnl
bd8aeb06f5
refactor(roadtrip, reservations): return await on transactional; document the single-flight promises
2026-09-22 06:29:49 +02:00
jubnl
869d139412
refactor(reservations, booking-import, calendar, integrations, roadtrip): async DB-touching methods; transactions through UnitOfWork
2026-09-22 06:11:41 +02:00
jubnl
a1fbfe6d75
refactor(assignments): drop the unused Trip type alias
2026-09-22 05:35:53 +02:00
jubnl
5c8decd3ea
refactor(assignments, public-api, accommodations, places): async DB-touching methods; transactions through UnitOfWork
2026-09-22 05:21:48 +02:00
jubnl
3a8b54d761
fix(server): the journey hooks are awaited by their callers, not detached
2026-09-22 04:38:12 +02:00
jubnl
845320e0a4
refactor(journey, oidc, place-enrichment, tokens, trip-members): async DB-touching methods; transactions through UnitOfWork
2026-09-22 04:16:07 +02:00
jubnl
ad6e1ce8f0
fix(vacay): type the loop accumulators the async sweep introduced
2026-09-22 03:44:48 +02:00
jubnl
cb177ce655
refactor(vacay, admin, doc-sync): async DB-touching methods; transactions through UnitOfWork
2026-09-22 03:29:33 +02:00
jubnl
37992de7ab
refactor(memories, photos, packing, share): async DB-touching methods; transactions through UnitOfWork
2026-09-22 02:21:06 +02:00
jubnl
6b755314d8
refactor(collab, collections, maps): async DB-touching methods; transactions through UnitOfWork
2026-09-22 01:49:18 +02:00
jubnl
fdb12aed1e
test(files): upload filters fail closed on an excluded or unresolvable type
2026-09-22 01:21:57 +02:00
jubnl
fc49c0c768
refactor(tokens): async DB-touching methods; the auth token handlers await them
2026-09-22 01:21:29 +02:00
jubnl
7940b7ff84
refactor(auth, files): async DB-touching methods; transactions through UnitOfWork
2026-09-22 01:08:22 +02:00
jubnl
4df2d83137
refactor(notifications, place-photos, backup): async DB-touching methods; transactions through UnitOfWork
2026-09-22 00:22:11 +02:00
jubnl
fac181f45b
chore(plugins): drop gate-only asyncs; observe the scheduler's rejection; async event-sink stub
2026-09-22 00:12:56 +02:00
jubnl
5d590ca5b1
chore(server): db-call-graph --sync stops its transitive walk at an async callee
2026-09-22 00:04:19 +02:00
jubnl
e28dc6de28
refactor(plugins): async DB-touching methods; transactions through UnitOfWork
2026-09-22 00:00:53 +02:00
jubnl
e413308227
refactor(llm-parse, mcp-shared, oauth, place-shadow, route-usage, storage, todo, trip-invite): async DB-touching methods; transactions through UnitOfWork
2026-09-21 23:27:01 +02:00
jubnl
aa587e2fb6
refactor(budget, common, day-notes, days): async DB-touching methods; transactions through UnitOfWork
2026-09-21 22:39:11 +02:00
jubnl
953e2526bb
refactor(atlas, school-holidays, settings): async DB-touching methods; transactions through UnitOfWork
2026-09-21 21:23:10 +02:00
jubnl
8de5171a8e
fix(server): observe every promise the async sweep left unobserved (timer, handshake, plugin-runtime test)
2026-09-21 21:04:19 +02:00
jubnl
0cf99a9939
refactor(realtime, systemNotices, addons, airports, audit, categories, permissions, query-helpers, tags, transit, trip-membership): async DB-touching methods; transactions through UnitOfWork
2026-09-21 20:48:03 +02:00
jubnl
27d044f9e8
chore(server): promise safety net and sweep tooling for the async migration
2026-09-21 19:01:38 +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
418bd1c6b5
fix(test): route MikroORM's dynamic imports through vitest from the setup file, not the ORM config
2026-09-21 10:35:16 +02:00
jubnl
e846c91a16
test(server): integration suites boot on the migrated schema snapshot
2026-09-21 10:13:40 +02:00
jubnl
d7f39916d5
feat(db): request-context and unit-of-work helpers for the ORM, with concurrency tests
2026-09-21 10:01:36 +02:00
jubnl
443dc35c03
fix(db): repositories mirror the statement's column set and guard their row types
2026-09-21 09:54:15 +02:00
jubnl
229f4890df
feat(db): snake_case entity shape and the first three repositories (Days, DayNotes, Trips)
2026-09-21 09:39:40 +02:00
jubnl
5691f966af
feat(db): dialect helper is the one place SQL functions are spelled
2026-09-21 09:19:47 +02:00
jubnl
565f72740b
test(db): createTestOrm binds an ORM to a suite's own SQLite handle
2026-09-21 09:17:17 +02:00
jubnl
9ca9ca9644
feat(db): discover entities from an explicit list instead of a glob
2026-09-21 08:50:56 +02:00
jubnl
4ba43d6cd5
feat(db): DbTimestampType keeps DATETIME columns as the CURRENT_TIMESTAMP text
2026-09-21 08:50:56 +02:00
jubnl
57decad494
Merge remote-tracking branch 'origin/dev' into feat/orm
2026-09-20 21:45:48 +02:00
jubnl
70e970453e
migrations + seeders
2026-09-20 21:38:32 +02:00
jubnl
55ad55e90b
rename entities
2026-09-20 20:05:18 +02:00
jubnl
7cd9ba3dcb
fix date as string
2026-09-20 19:55:13 +02:00
Maurice
be9a38e3b0
fix(accommodations): a second night on the day counts by its check-in
...
Two bookings on one day used to settle by whichever was seated last, because
the other night's stop carries no hour of its own. Its check-in counts now,
in the service and in the migration alike.
2026-09-20 18:48:26 +02:00
Maurice
417d0445b9
fix(roadtrip): seat the nights booked before this release where their check-in says
...
A booked night leads its day now, but the stops the bookings put on their
check-in day before this release sit last, and the backfill for older
bookings appended them too. Every trip planned before the change kept that
order until somebody edited the check-in.
A migration seats every night a booking owns by the same rule the service
applies: first, behind only a stop whose own clock is at or before the
check-in. The drawn roads follow the stops they were drawn after, by the
rules the service uses when it moves a night. Stops the traveller placed
themselves are not touched. Re-runnable.
2026-09-20 18:45:37 +02:00
jubnl
235ef31b11
Merge branch 'dev' into feat/orm
2026-09-20 17:28:02 +02:00