Changelog

Current version: v0.4.12 (566c3da)

# Changelog

All notable changes to WoDVTT are documented here.

The format follows Keep a Changelog, and this project uses Semantic Versioning.

## [0.4.12] - 2026-08-01

### Changed

- Chat messages and dice rolls inside a session now show the time on your own
  clock. Until now they showed the server's time, so a message sent at 21:57 in
  Berlin was listed as 19:57 — with nothing on screen to suggest the number was
  not yours.
- A session's start and end are shown in your own time zone as well, and the
  zone is always named next to them, so a time on this page is never a number
  you have to guess the meaning of.
- When you are in a different time zone from the game master, the session page
  also states their local time — "19:00 (20:00 for the game master)" — so you
  can confirm you have understood rather than trust arithmetic you cannot see.
- In the session list the time zone is named only when yours differs from the
  one the session was scheduled in. A group that all plays in one zone sees no
  extra label on every row.

### Note

- Times now also carry a machine-readable value with their offset, so screen
  readers and copy-and-paste get an unambiguous moment rather than a bare
  number.
- Sessions created before time zones were recorded keep displaying exactly as
  they do today, with no zone named — there is none to name.

## [0.4.11] - 2026-08-01

### Changed

- Session start times in your session list are now shown in your own time zone,
  detected automatically from your device with nothing to set up. A game master
  in Berlin who schedules an evening for 20:00 and a player reading the same
  session in London now each see that moment on their own clock.
- A session starting within the next week is introduced with "today",
  "tomorrow" or "in N days" alongside the exact time — never instead of it.

### Note

- On a first visit the start time shows a short placeholder until your time zone
  is known, rather than briefly showing a time in the wrong zone and correcting
  itself a moment later. Returning visits show your local time immediately.
- Sessions created before this change carry no recorded time zone and keep
  displaying exactly as they do today, unchanged.

## [0.4.10] - 2026-08-01

### Added

- Sessions can now carry the time zone they were scheduled in. Nothing looks
  different yet: this is the groundwork for showing session times in each
  reader's own local time. Sessions that already exist are untouched and keep
  displaying exactly as they do today.

### Operator note

- Deploying this version applies a small database change that adds one empty
  column to the sessions table. No existing data is read, rewritten, or removed,
  and the step can be reversed by removing the column again.

## [0.4.9] - 2026-07-31

### Fixed

- Your sessions now actually appear under "My sessions". The page built the
  table but never asked for its contents, so the list stayed empty for everyone,
  no matter how many sessions they had. Nothing was ever lost — the sessions
  were there the whole time, and they show up again with no further action.
- Joining a session from the list works again. The "Join" button only exists on
  a row, so while the list was empty there was no way to join from it.

### Changed

- "My sessions" now speaks plainly and in your language. Column headings and
  session states are translated into German and English instead of showing
  internal English terms, and the two state columns no longer both read
  "Active" — one now tells you *when* (planned, happening now, over) and the
  other tells you what the game master has set (draft, scheduled, open,
  finished, archived).
- If you have no sessions yet, the page now says so in a sentence and offers to
  create your first one, instead of showing an empty table with the technical
  note "No records to display".
- If the list cannot be loaded, the page now says what happened, reassures you
  that nothing is lost, and offers a "Try again" button rather than leaving you
  on a dead end.
- Start times are shown in your language's usual date format instead of a
  technical timestamp.

## [0.4.8] - 2026-07-31

### Fixed

- The character sheet really does stay within the screen width on a phone now.
  The previous release fixed one of the two causes; the sheet still slid
  sideways because the hidden label that tells a screen reader what the delete
  column is for sat outside its table's scrolling area and quietly held the page
  open to the full width of the widest weapon table. The Combat and the Merits &
  Flaws tables continue to scroll on their own, so every column stays reachable.
  The automated check that was meant to catch this now reproduces the hidden
  label as well, and fails if it is ever left out again.

## [0.4.7] - 2026-07-30

### Fixed

- The character sheet no longer scrolls sideways on phone-sized screens. The
  Combat and the Merits & Flaws panels now stay within the screen width, and
  their wide tables scroll on their own, so every column remains reachable.

## [0.4.6] - 2026-07-30

### Changed

- The start page is now a proper welcome screen. It greets you, points you
  straight at your characters and your sessions, and shows a short preview of a
  character's traits.
- The start page no longer displays internal development notes and reference
  codes that were never meant for players and storytellers.
- Wording on the start page is now fully available in German and English,
  including the short descriptions on the overview cards.

## [0.4.5] - 2026-07-30

### Fixed

- Saving a brand-new character no longer leaves the "unsaved changes" note on
  screen. Once the character is saved the note disappears and the Save button
  stays inactive until the next edit.
- A character you have just created is no longer presented as a
  genealogy/reference entry. Its row in the character list shows the usual
  completeness indicator, and opening its sheet no longer starts with the
  reference-entry notice. Imported genealogy entries keep that label exactly as
  before.

## [0.4.4] - 2026-07-30

### Fixed

- Pages now render in the intended gothic and serif typefaces. The typefaces the
  design calls for were referenced by the stylesheet but never shipped with the
  app, so every page quietly fell back to the reader's default system fonts and
  wasted a handful of failed downloads on each visit. The typefaces are now
  included and served directly by the app, with no third-party font service
  involved. All of them are published under the SIL Open Font License, and their
  licence texts are shipped alongside them.

## [0.4.3] - 2026-07-21

### Security

- Updated an internal cryptography dependency to address published security
  advisories.

### Changed

- Centrally declared dependency versions are now applied consistently across the
  whole application, including parts that previously kept older versions
  indirectly.

## [0.4.2] - 2026-07-20

### Fixed

- The app now stays usable and falls back to its packaged themes when the theme
  service is slow or temporarily unavailable, instead of failing the page.
- Error pages now carry the same browser security protections as regular pages.

## [0.4.1] - 2026-07-07

### Added

- Added an administrator data-import experience for reloading the bundled
  vampire dataset with reviewable results.
- Added data-quality improvements that make incomplete lore entries, duplicates,
  and import issues easier to identify.
- Added public release visibility through version metadata and the changelog
  page.

### Changed

- Updated shared character-sheet controls and app shell styling for a more
  consistent experience.
- Improved browser cache behavior for shared styling updates.
- Improved app-switcher loading performance.

### Fixed

- Fixed session-expiry handling so browser sessions are not kept or discarded at
  the wrong time.
- Fixed pagination edge cases for very large page values.
- Refreshed outdated testing documentation.

### Security

- Strengthened development-only authentication safeguards so local sign-in
  helpers cannot be enabled outside development.
- Reduced refresh-session lifetime.
- Updated an internal dependency to address a published security advisory.
- Kept dice results generated on the server.

## [0.4.0] - 2026-06-25

### Added

- Established `0.4.0` as the first WoDVTT SemVer baseline.
- Added account sign-in, email confirmation, two-factor setup, recovery codes,
  passkeys, account management, and administrator user management.
- Added player and game-master character-sheet management with role-aware
  access and soft delete support.
- Added Vampire character sheets with attributes, skills, disciplines, hunger,
  willpower, convictions, and chronicle-tenet fields.
- Added theme selection, theme import/export, and gothic visual styling for the
  app experience.
- Added English and German localization foundations.
- Added deployed service version metadata and health information.
- Added public API documentation and structured error responses for client
  integrations.
- Added automated tests for core API and user-interface behavior.

### Changed

- Adopted an interactive server app model for the web experience.
- Simplified deployment routing around the current hosting model.