jubnl
|
86c558cdd6
|
fix(audit): audit rows are native inserts, not a unit-of-work flush; closed test ORMs
|
2026-09-22 12:56:03 +02:00 |
|
jubnl
|
b0905f9867
|
docs(db): owned-lookup call-site convention; refresh side effect; e2e ORM module spread notes
|
2026-09-22 12:53:47 +02:00 |
|
jubnl
|
4209343328
|
fix(db): PK reads refresh past the identity map; typed owned-lookup generics; e2e ORM module mirrors production config
|
2026-09-22 12:38:59 +02:00 |
|
jubnl
|
c2da9d62f7
|
refactor(audit): audit log writes through AuditLogRepository
|
2026-09-22 12:34:49 +02:00 |
|
jubnl
|
b8e7dbccc6
|
fix(server): boot-time settings read runs inside an explicit ORM request context
|
2026-09-22 12:32:17 +02:00 |
|
jubnl
|
7908914345
|
refactor(permissions): permission flags through AppSettingsRepository
|
2026-09-22 12:30:20 +02:00 |
|
jubnl
|
f460ae4fcb
|
feat(db): AppSettings and Users repositories; forFeature wiring pattern
|
2026-09-22 12:06:13 +02:00 |
|
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 |
|