Commit Graph

2742 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
Maurice bf0507ddb5 fix(planner): Google hours that share a half of the day convert whole to 24h
Google writes a range that stays in one half of the day with the meridiem on
the closing time only, "1:00 – 3:00 PM" for one to three in the afternoon.
The 24-hour conversion only saw times carrying their own AM/PM, so the
opener stayed "1:00" beside a converted "15:00". The closing meridiem is
handed back to an opener that has none before converting; a range spelled
on both sides, the 12h display and lines without a meridiem are untouched.

Closes #2412
2026-09-20 20:28:23 +02:00
Maurice 9bd9ff4a80 style(collab): a link chip's title takes its width first, the host gets the rest 2026-09-20 20:11:10 +02:00
Maurice 8845f73eb9 style(collab): the host gives way before the title does, all of it 2026-09-20 20:09:22 +02:00
Maurice 6b09a8bc11 style(collab): the title of a link chip gives way last
Two to a row, the title and the host were shrinking together into two
ellipses. The host shrinks first now, the open glyph takes the favicon's
place on hover instead of room of its own, and the actions are a touch
smaller.
2026-09-20 20:07:39 +02:00
jubnl 55ad55e90b rename entities 2026-09-20 20:05:18 +02:00