Commit Graph

1004 Commits

Author SHA1 Message Date
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 567593a259 chore(server): lint rule also refuses a Promise handed to expect() without resolves/rejects 2026-09-22 02:32:59 +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 4700bb38a5 test(server): suites await the methods earlier sweep groups made async 2026-09-22 01:16:50 +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 bb390a5407 chore(server): db-call-graph --unawaited lists calls to async methods whose result is used without await 2026-09-21 22:55:02 +02:00
jubnl 7daf98cf70 test(oauth): controller suite awaits the async service 2026-09-21 22:41:35 +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 8bdc730b20 test(server): suites await the methods Task 1's forced edits made async 2026-09-21 21:54:19 +02:00
jubnl d73215f7f6 chore(server): lint rule refusing a Promise used as a plain value, and the misses it found 2026-09-21 21:39:39 +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 f6c17938c3 test(doc-sync): unit suites await the methods the async sweep made async 2026-09-21 21:11:01 +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 ef184ec7c2 test(server): ORM suites open the schema snapshot; RESET_TABLES derived from the schema 2026-09-21 18:12:07 +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 d7c7afea1b test(server): coverage's uncovered-file pass goes through the SWC transform 2026-09-21 11:06:42 +02:00
jubnl 2c7a5fcda6 test(server): websocket suites boot on the migrated schema snapshot 2026-09-21 11:03:16 +02:00
jubnl f0c6cd18b3 test(db): coverage ratchet entries for the ORM foundation 2026-09-21 11:01:44 +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 2bc9e927be test(server): snapshot harness keeps the legacy id semantics 2026-09-21 10:22:18 +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 479e2cb0a5 test(db): dialect helper refuses malformed column references and day counts 2026-09-21 09:27:05 +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
Maurice a86e4b560a test(accommodations): a quiet edit still corrects a night the clocks contradict
Covers seatedByCheckIn with a check-in set, which the re-seat on a new
check-in no longer passes through, so the accommodations function ratchet
held.
2026-09-20 17:49:54 +02:00