-
v1.1.1 Stable
released this
2026-10-19 20:36:58 +02:00 | 7 commits to main since this releaseChanges since v0.6.1:
- fix(openapi): mark nullable request fields and reject null on NOT NULL ones
- feat(openapi): commit openapi.json, generated by pnpm openapi:generate
- feat(openapi): describe every response with the swagger plugin and DTOs
- fix(email): point the plain-text part at the link, not a button
- perf(changelog): page on published_at itself and cap What's new at 50
- feat(db): migration 0029 - NOT NULL timestamps and flags, filter range 0..10
- perf(import): parse, validate and plan archives in a worker thread
- fix(errors): log the stack trace of unhandled 500s
- feat(api): answer writes with the full entity and DELETE with 204
- fix(frame-location): replace the whole location on POST and pair coordinates on PATCH
- fix(import): renumber frames per shoot and reject duplicate locations
- fix(changelog): show backdated entries in What's new
- fix(validation): close input gaps that surfaced as 500s
- fix(auth): notify the old address on email change and harden auth config
- fix(db): trim legacy names before building the lower(name) indexes
- fix(export): build the archive in a temp file before streaming it
- fix(sync): server-owned syncedAt cursor, shoot locks on pushed frame writes, retry status, clock clamp, 1 mb bodies, resyncBefore
- feat(sync): convergence test, protocol docs, bump to 0.11.0
- feat(sync): batch push with last-write-wins, renumbering and tombstones
- feat(sync): status, keyset pull and tombstone endpoints
- feat(sync): tombstones on every delete path, reset on data wipe, updatedAt on renumber
- feat(sync): last-write-wins and keyset rules
- feat(db): updatedAt on every synced table, sync_tombstone and sync_reset tables
- feat(auth): trust the native app scheme via the Better-Auth Expo plugin
- feat: password reset, email change, per-owner names and full audit pass
- fix(iso): allow fractional ISO values below 1
- feat(shoot): add DELETE /shoot/:id/frames to clear all frames
- feat(changelog): add v0.7.3 entry for the brand refresh
- feat(email): brand verification and 2FA emails with shared layout
- perf(export): derive counts from streamed rows, drop pre-count pass
- perf(frame): skip full-shoot renumber when delete leaves it gapless
- perf(import): batch row inserts instead of one query per row
- fix: construct the pg Pool explicitly so the pg dependency is imported
- feat(import): guard against zip bombs and cap request body size
- fix(auth): wipe user-owned content before Better-Auth deletes the user (#51)
- feat(frame): duplicate a frame via POST /:id/duplicate (#46) (#47)
- feat(frame)!: replace shutter_speed entity with seconds + bulb columns (#40) (#41)
- fix(filter): only log truly unhandled exceptions, not handled HttpExceptions
- fix: pin pnpm in Dockerfile (#37)
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads