From 17160f9d9b2c3f349ef61f85b80a783306725f36 Mon Sep 17 00:00:00 2001 From: Tim McCarthy Date: Mon, 15 Jun 2026 09:20:47 -0700 Subject: [PATCH] Add version number + About dialog with changelog (v1) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Start tracking a version number and a player-facing changelog, surfaced from the ☰ menu via a new About item. - frontend/src/lib/changelog.js: VERSION (bump every commit) + CHANGELOG. - AboutModal.svelte: shows the version and changelog using the shared modal CSS; closes via ×, backdrop click, or Escape. - CornerMenu.svelte: new 'ℹ️ About' menu item, modal rendered outside the menu's stacking context so it overlays correctly on every page. - AGENTS.md: documents the bump-every-commit / log-only-user-facing convention. Co-Authored-By: Claude Opus 4.8 --- AGENTS.md | 8 +++ TODO.md | 3 +- frontend/src/components/AboutModal.svelte | 82 +++++++++++++++++++++++ frontend/src/components/CornerMenu.svelte | 7 ++ frontend/src/lib/changelog.js | 21 ++++++ 5 files changed, 120 insertions(+), 1 deletion(-) create mode 100644 frontend/src/components/AboutModal.svelte create mode 100644 frontend/src/lib/changelog.js diff --git a/AGENTS.md b/AGENTS.md index fca9205..0184312 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -17,6 +17,14 @@ Do NOT add ad-hoc `ALTER TABLE` statements to `database.py` — that legacy list When you run into a repeatable problem during testing (e.g. port assignment collision, missing executable, etc), note down the problem and solution in this file so that you'll have access to it in future sessions. +## Versioning & changelog + +The app shows its version number and a player-facing changelog in the ☰ menu → About. Both come from `frontend/src/lib/changelog.js` (rendered by `frontend/src/components/AboutModal.svelte`). + +- Bump `VERSION` by one on **every** commit. +- When a commit changes something players can see, add an entry to the **top** of `CHANGELOG` (`{ version, date, changes: [...] }`) describing it in player-facing terms. Group everything shipping under one version into a single entry. +- The changelog is for players: skip refactors, tests, tooling, and other internal-only changes. A commit with no user-facing change bumps `VERSION` but adds no entry. + ## Work order You will be working on tasks in [TODO.md](./TODO.md]. Work on at most two tasks at a time (one is preferable, but two is fine if they dove tail really nicely), and after you finish each task, make a git commit and update the TODO list to check off the completed task. diff --git a/TODO.md b/TODO.md index 8ad743e..8d1d64f 100644 --- a/TODO.md +++ b/TODO.md @@ -1,8 +1,9 @@ ## Polish - [x] On the home page, rejoin a crew should be above muster a crew, and there should be a gap between the two boxes -- [ ] **Version number and change log** Start keeping track of version number. It's fine to just start with v1 and increment on every commit. In the hamburger menu, add an "About" item that pops up a modal with the current version number and a change log. The change log should only cover user-facing changes. Add a note to AGENTS.md about maintaining the change log. +- [x] **Version number and change log** Start keeping track of version number. It's fine to just start with v1 and increment on every commit. In the hamburger menu, add an "About" item that pops up a modal with the current version number and a change log. The change log should only cover user-facing changes. Add a note to AGENTS.md about maintaining the change log. - [ ] **Example Play formatting.** The Example Play section of the Rules page could use a bit more formatting for legibility. Make diagrams of the card state at each step rather than just a text listing. +- [ ] **Condense Obstacle card display**: Change how the cards in an Obstacle are laid out. Instead of being one big card and a bunch of little ones under it in a row, they should be a single column, with the cards overlapping so that you can just see the numbers and suits of the previous cards peeking out behind the latest card. This is more compact, puts the focus on the most relevant information, and is in line with the rulebook describing the card layout as a column. This is probably also how the cards in the example play section should be laid out. ## Words Words Words diff --git a/frontend/src/components/AboutModal.svelte b/frontend/src/components/AboutModal.svelte new file mode 100644 index 0000000..a9ee0d8 --- /dev/null +++ b/frontend/src/components/AboutModal.svelte @@ -0,0 +1,82 @@ + + + e.key === 'Escape' && close()} /> + + + + diff --git a/frontend/src/components/CornerMenu.svelte b/frontend/src/components/CornerMenu.svelte index b850b44..d00a82d 100644 --- a/frontend/src/components/CornerMenu.svelte +++ b/frontend/src/components/CornerMenu.svelte @@ -1,8 +1,10 @@