Repository navigation
What's Changed
Features
- feat(ui): hero details sit at the cards' inset, and a long subtitle wraps between its parts by @aleskiontherun in #450
- feat(ui): the footer and the autofill legend sit at the hero details' inset, the footer tighter by @aleskiontherun in #453
- feat(ui): the Gas Consumption and Exposure & Pressure figures are set as the Tanks card's by @aleskiontherun in #454
- feat(ui): the Environment card's readings are set as the dive cards' figures, in aligned columns by @aleskiontherun in #455
- feat(dives): time to surface gets its own row, and a finger scrubbing a chart holds the page by @aleskiontherun in #456
- feat(ui): a card with no control beside its title pads its top as the dive form's sections do by @aleskiontherun in #457
- feat(dives): each dive page card edits its section of the form in a dialog by @aleskiontherun in #458
- feat(dives): the dive profile opens full screen, and its readout aligns and keeps a row through a gap by @aleskiontherun in #459
- feat(dives): each tank in the dive form carries the dive page's cylinder icon by @aleskiontherun in #460
- feat(dives): Home's chart cards name a month short, and their stats sit closer by @aleskiontherun in #461
- feat(ui): an animated logo covers the app's first load by @aleskiontherun in #462
- feat(dives): Home's chart period selects name the month in full by @aleskiontherun in #463
- feat(checkin): the PDF hint moves behind the page info icon, and the printed heading is centred by @aleskiontherun in #464
- feat(gear): a cylinder picker on the tank, vessel facts on a cylinder's page, and service rules by hours of diving by @aleskiontherun in #465
- feat(dives): the Recordings card edits through the Import section in a dialog by @aleskiontherun in #468
- feat(sites): a site's WoRMS entry links to its WoRMS page, the third registry the format names by @aleskiontherun in #469
- feat(gear): backplate and wing reach the picker, and a wing takes the BCD's service preset by @aleskiontherun in #470
- feat(dives): a sighting's abundance band on the dive form and the dive page by @aleskiontherun in #471
- feat(invitations): your invite link as a QR code, and /join admits whoever scans it by @aleskiontherun in #472
- feat(lists): search stands in the header and filters fold behind a funnel on /sites and /courses by @aleskiontherun in #474
- feat(dives): Configure Fields edits a draft and ends in Cancel, Apply and Save preset by @aleskiontherun in #475
- feat(dives): Cancel and Save stay at the foot of the screen on the dive form by @aleskiontherun in #478
- feat(ui): dialog footers stay at the foot of the dialog while it scrolls by @aleskiontherun in #479
- feat(ui): a dialog's title and close cross stay in view while it scrolls by @aleskiontherun in #480
- feat(certifications): certifications as cards with the c-card's front behind them by @aleskiontherun in #486
- feat(app): own not-found and error pages, per-page link previews, header in the page column by @aleskiontherun in #493
- feat(gear): gear and gear sets as cards by @aleskiontherun in #488
- feat(courses): courses as cards by @aleskiontherun in #497
Fixes
- fix(dives): the cylinder picker says when every cylinder is already on another tank by @aleskiontherun in #466
- fix(gear): the notifications bell refreshes when a service schedule changes by @aleskiontherun in #467
- fix(dives): hiding one field leaves the others that hold a value on screen by @aleskiontherun in #476
- fix(ui): pinned form rows let go while the keyboard is up and return once it has settled by @aleskiontherun in #481
- fix: show trip notes, announce inline status messages, and stop sharing aborted GETs by @aleskiontherun in #483
- fix(ui): stop /dives, /certifications and Home scrolling sideways at 320px by @aleskiontherun in #485
- fix: close the remaining code-audit behaviour defects by @aleskiontherun in #491
- fix(ui): theme tokens for the last raw colours, and shared primitives for placeholders and tables by @aleskiontherun in #495
- fix(forms): hold numbers to the API's ceilings, trim names, and show a taken name on its field by @aleskiontherun in #499
- fix(pictures): stop refusing a wide JPEG the API now decodes reduced by @aleskiontherun in #500
- fix(auth): refresh the session one tab at a time by @aleskiontherun in #501
Other changes
- ci: the published-image scan uploads one SARIF run by @aleskiontherun in #473
- perf(dives): field visibility saves when the action ends, not 400 ms later by @aleskiontherun in #477
- chore(deps): update dependency @types/node to v24.19.2 by @renovate[bot] in #446
- chore(deps): update dependency @typescript-eslint/parser to v8.71.2 by @renovate[bot] in #447
- chore(deps): update dependency postcss to v8.5.30 by @renovate[bot] in #448
- chore(deps): update dependency prettier to v3.9.10 by @renovate[bot] in #449
- chore(deps): update dependency react-easy-crop to v6.2.4 by @renovate[bot] in #451
- chore(deps): update dependency zod to v4.6.7 by @renovate[bot] in #452
- refactor(ui): share the dialog submit button, the training fields and ButtonSpinner by @aleskiontherun in #482
- refactor(charts): share the Home chart cards' period view and the chart frame by @aleskiontherun in #484
- chore: tidy test environments, formatting coverage and dead code by @aleskiontherun in #487
- docs: correct DECISIONS.md drift and keep code comments in the present tense by @aleskiontherun in #490
- refactor(ui): share the list-page frame, row actions, debounced search and small helpers by @aleskiontherun in #489
- refactor(dives): share the dive form's number fields, payload builders, file list and label caches by @aleskiontherun in #492
- refactor(api): one set of conventions across lib/api by @aleskiontherun in #494
- refactor: one copy of the audit's remaining duplicates, and files in their own folders by @aleskiontherun in #496
- test: the mobile menu's tests wait out its slide, and the Due soon decision is titled for what it holds by @aleskiontherun in #498
- chore(release): v0.6.0 by @opendiving-release-bot[bot] in #502
Full Changelog: v0.5.0...v0.6.0