Skip to content

v0.6.0

Choose a tag to compare

@github-actions github-actions released this 17 Oct 17:39
· 38 commits to main since this release
b6642f4

What's Changed

Breaking changes

  • feat(species)!: a species' registry entries travel as external_ids, and the import matches on the worms entry by @aleskiontherun in #295
  • fix(api)!: answer a gear-service list filter naming nothing of the caller's with an empty page by @aleskiontherun in #323
  • fix(api)!: refuse non-finite floats and out-of-range integers on write schemas by @aleskiontherun in #331

Features

  • feat(gear): a tank links its cylinder, a gear item carries its vessel's facts and dive time, and a service rule can run on hours by @aleskiontherun in #294
  • feat(gear): backplate and wing join the gear vocabulary, and the UDDF export places them by @aleskiontherun in #296
  • feat(dives): a sighting carries an abundance band beside its count by @aleskiontherun in #298
  • feat(tags): every account starts with a few common tags by @aleskiontherun in #297
  • feat(auth): a member's invite link admits whoever follows it, as that member's invitation by @aleskiontherun in #299
  • feat(tags): cave and ice join the default tags by @aleskiontherun in #300

Fixes

  • fix(auth): account email columns take every address EmailStr admits by @aleskiontherun in #303
  • fix: an outside service failing no longer fails the action it follows by @aleskiontherun in #304
  • fix: a name differing only in whitespace is a duplicate, not a 500 by @aleskiontherun in #305
  • fix: a dive or trip write commits once, so a failed child leaves nothing behind by @aleskiontherun in #308
  • fix: five small runtime bugs from the audit by @aleskiontherun in #309
  • fix(api): refuse whitespace-only course and certification names by @aleskiontherun in #312
  • fix(import): link the caller's own records before any skip, and clear a restored card's files by @aleskiontherun in #315
  • fix(export): write a certification's agency pair as the format admits it, and read a broken stored pair by @aleskiontherun in #316
  • fix: fill a recording's device and settings member by member across its files by @aleskiontherun in #317
  • fix(config): list every setting in the template, and keep the remaining secrets in SecretStr by @aleskiontherun in #320
  • fix(scripts): log at INFO whatever LOG_LEVEL says, and share the cache session by @aleskiontherun in #321
  • fix(config): keep the Postgres and Redis passwords, and the DSNs that embed them, in SecretStr by @aleskiontherun in #325
  • fix(auth): bound sign-in code guesses under concurrency, and spend per-IP limits before per-address ones by @aleskiontherun in #326
  • fix(api): release the read transaction before the parse decode and the geocoder call by @aleskiontherun in #327
  • fix(dives): keep a merged recording's samples when its files change by @aleskiontherun in #329
  • fix(config): match CORS on the frontend's origin, and keep the DSNs derived and out of errors by @aleskiontherun in #330
  • fix(auth): find an account by its address case-insensitively at sign-in by @aleskiontherun in #328
  • fix(auth): answer double submits on token, link, passkey and quota writes instead of a 500 by @aleskiontherun in #332
  • fix(dives): end a folded dive on the later record's tank pressure and readouts by @aleskiontherun in #334
  • fix(api): write courses, dive sites and gear sets in one transaction by @aleskiontherun in #335
  • fix(export): drop every code point XML 1.0 forbids from UDDF, and read file ids with their metadata by @aleskiontherun in #333
  • fix(api): answer a name taken mid-request with the duplicate 422 by @aleskiontherun in #339
  • fix: keep serving when the blob store fails a listing, a sweep delete or a map tile by @aleskiontherun in #336
  • fix(pictures): render a crop at its frame's size, and strip a card image's metadata by @aleskiontherun in #337
  • fix(import): restore a deleted dive's own files, trim names, and report only what was written by @aleskiontherun in #341
  • fix(api): read a blank stored boat name, and share the contacts lookup by @aleskiontherun in #340
  • fix(import): strip an imported card image's metadata as an upload's is by @aleskiontherun in #342
  • fix(dives): exit a folded dive where the later record did, and backfill earlier folds by @aleskiontherun in #343

Other changes

  • test: a quota test's docstring says invitations made by @aleskiontherun in #301
  • ci: the published-image scan uploads one SARIF run by @aleskiontherun in #302
  • chore(deps): update astral-sh/setup-uv action to v10.3.0 by @renovate[bot] in #293
  • build: keep the test packages out of the shipped image by @aleskiontherun in #306
  • chore: delete the first-superuser script by @aleskiontherun in #307
  • docs: correct DECISIONS.md, AGENTS.md and code comments that contradict the code by @aleskiontherun in #310
  • refactor: remove code nothing calls by @aleskiontherun in #311
  • refactor(api): one capped fetch, slot claim and answer cache for provider calls by @aleskiontherun in #314
  • refactor: one registry of blob-key columns for the sweeper, purge and volume check by @aleskiontherun in #313
  • refactor(api): one set of helpers for binary responses, 304s and uncacheable 404s by @aleskiontherun in #318
  • refactor(worker): log through a module logger and share one purge body by @aleskiontherun in #319
  • refactor(api): return the created row, share the picker-lookup dispatch, and tidy route conventions by @aleskiontherun in #322
  • test: one shared FakeRedis and one async_sessions fixture by @aleskiontherun in #324
  • test: hold FakeRedis to real Redis's refusals, and import the worker and scripts from the runtime image by @aleskiontherun in #338
  • chore(release): v0.6.0 by @opendiving-release-bot[bot] in #344

Full Changelog: v0.5.0...v0.6.0