@@ -42,9 +42,16 @@ When you run into a repeatable problem during testing (e.g. port assignment coll
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 asingle 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.
-Ordinary commits do **not** bump `VERSION` or the Nix package versions.
-Accumulate player-visible changes in one entry at the **top** of `CHANGELOG`with `version: null` and `changes: [...]`. The About dialog labels it **In testing**. Append to or consolidate this batch across commits; do not create a separate entry per commit or assign a release date yet.
-Omit the In testing entry when there are no unreleased player-facing changes; empty batches are hidden. Do not add placeholder entries just to describe changelog maintenance.
- The changelog is for players: skip refactors, tests, tooling, and other internal-only changes. Internal-only commits need no changelog entry.
- Release labeling is a separate process, performed only when explicitly requested. At release time:
1. Consolidate the In testing batch into meaningful player-facing groups using `groups: [{ title, changes: [...] }]`, replacing its flat `changes` list. Remove duplicates and describe the final behavior.
2. Bump `VERSION` by one and give the batch that numeric `version` plus the release `date` (`YYYY-MM-DD`).
3. Bump **both** package `version` values in `flake.nix` (`pirats-frontend` and `pirats`) to the same new Nix release version. Preserve the Nix version scheme; do not equate its semantic version with the app's integer V number.
4. Commit the release metadata together. The next player-visible development change starts a fresh In testing entry.
- Preserve already numbered history unless the user explicitly requests reorganizing past releases.
// Historical flat changes arrays are also supported. Omit the testing entry when empty.
exportconstCHANGELOG=[
{version:50,date:'2026-09-04',changes:['The full rulebook and TL;DR rules now match the refreshed light and dark themes, with chart backgrounds and textured solid panels.']},
{version:49,date:'2026-09-04',changes:['Freshened both themes with nautical chart lines, woven panel textures, and richer sea-and-brass colors while keeping text clear.','The Event Log and My Notes now use the regular solid panel surface.']},
{version:48,date:'2026-09-04',changes:['Keep your own notes alongside the Event Log. Notes save automatically between sessions, including when you close the panel, and stay intact when the game rewinds or you create a new Pi-Rat.']},
{version:47,date:'2026-09-04',changes:['Rewrote character suggestions with scrappy pirate looks, distinctive smells, first words, and crew quirks that fit Yeld.']},
{version:46,date:'2026-09-04',changes:['Added a printable TL;DR rules page, linked at the top of the full rulebook.']},
{version:44,date:'2026-09-04',changes:['Crew Objectives opens as one connected panel, with the toggle and checklist sharing a border and background.']},
{version:43,date:'2026-09-04',changes:['The crew roster keeps players in the same order when roles or ranks change, including when someone becomes the Deep.']},
{version:42,date:'2026-09-04',changes:['Gats require a description, including older Gats that were left blank. Read descriptions on character sheets or hover over Gat icons in the crew roster.','Gat descriptions and prompts follow Gat Taxes correctly and clear when you create a new recruit.']},
{version:41,date:'2026-09-04',changes:['Dismiss a completed duel once you have read the result. Other players can still read it, and dismissed results stay hidden after a reload.']},
{version:40,date:'2026-09-04',changes:['Played cards show a check or cross in the upper corner instead of a green or red outline, so results remain clear in stacked cards.']},
{version:39,date:'2026-09-04',changes:['Completed duels stay visible for the rest of the scene, showing the winner, both cards, and how the defense resolved.']},
{version:38,date:'2026-09-04',changes:['The crew roster shows who is online, with hat and gun icons for the Captain and Pi-Rats who have a Gat.']},
{version:37,date:'2026-09-04',changes:['Color-match replacement cards arrive after the Deep resolves a Challenge. Each applied Obstacle accepts one card per Challenge, and each assistant can contribute one card.']},
{version:36,date:'2026-09-04',changes:['Duel instructions clarify that only the defender draws a replacement for matching the Obstacle’s color, even when the defense fails.']},
{version:35,date:'2026-09-04',changes:['Personal objectives now require a group vote. Propose the next objective from a character sheet, then vote Yes or No at the table. A majority approves; the Captain breaks tied votes.']},
{version:34,date:'2026-09-04',changes:['Assistance is available only when a Challenge has multiple active Obstacles. Gat and Name Tax takeovers still work against a single Obstacle.']},
{version:33,date:'2026-09-04',changes:['Hand sizes compare ranks across the crew, including Pi-Rats whose players are the Deep.','Discarded cards return to the deck at scene setup. Only the previous Deep can refresh their hand during upkeep, once per scene.']},
{version:32,date:'2026-09-04',changes:['Obstacles are automatically discarded with their columns once they reach one success per player. Unfinished obstacles carry over between scenes.']},
{version:31,date:'2026-09-04',changes:['Change your rank-up vote until everyone has voted. The final vote now reveals the result and advances automatically, without a Ready button.','The vote result stays visible through upkeep and next-scene setup.']},
{version:30,date:'2026-09-04',changes:['The crew roster shows voting progress with icons.','Your submitted vote now shows the crewmate you nominated.']},
{version:29,date:'2026-09-04',changes:['Removed the remaining deck count from the table.']},
{version:28,date:'2026-09-04',changes:['The Event Log toggle keeps the same size when opened or closed.','Dev Mode changes no longer clutter the Event Log.']},
{version:27,date:'2026-09-04',changes:['Shorter labels make the table easier to scan.','Difficulty and Successes now line up side by side, including on small screens.']},
{
version:26,
date:'2026-09-04',
groups:[
{title:'Themes & table layout',changes:[
'Refreshed both themes across the game, full rulebook, and TL;DR rules with nautical chart backgrounds, woven solid panels, and richer sea-and-brass colors.',
'The Event Log and My Notes use the regular panel surface. Log controls stay the same size when opened or closed, and Dev Mode changes no longer clutter the log.',
'Shorter labels, aligned Difficulty and Successes boxes, and a connected Crew Objectives panel make the table easier to scan. Removed the deck count.',
'Played cards show a check or cross in the corner so results stay clear in stacked cards.',
]},
{title:'Notes, characters & rules',changes:[
'Keep private notes alongside the Event Log. Notes save automatically between sessions and stay intact when the game rewinds or you create a new Pi-Rat.',
'Rewrote character suggestions with scrappy pirate looks, distinctive smells, first words, and crew quirks that fit Yeld.',
'Added a printable TL;DR rules page, linked from the full rulebook.',
'Gats require descriptions, including older Gats. Read them on character sheets or hover over Gat icons in the roster. Descriptions follow Gat Taxes and clear for new recruits.',
]},
{title:'Crew & voting',changes:[
'The roster keeps a consistent player order and shows who is online, who is Captain, and who has a Gat.',
'Personal objectives use a group vote from the character sheet. A majority approves; the Captain breaks tied votes.',
'Change your rank-up vote until everyone has voted. Roster icons show voting progress and your chosen crewmate. The result advances play automatically and stays visible through upkeep and next-scene setup.',
]},
{title:'Challenges, cards & upkeep',changes:[
'Completed duels stay visible with the winner, both cards, and the defense result. Dismiss each result for yourself; your choice survives a reload.',
'Color-match replacement cards arrive after the Deep resolves a Challenge. Each Obstacle accepts one card per Challenge, and each assistant can contribute one card.',
'Assistance requires multiple Obstacles. Gat and Name Tax takeovers still work against a single Obstacle.',
'Duel instructions clarify that only the defender draws a replacement for matching the Obstacle’s color, including on failure.',
'Hand sizes compare ranks across the whole crew, including players acting as the Deep. Discards return to the deck at scene setup; only the previous Deep can refresh their hand during upkeep, once per scene.',
'Obstacles and their card columns are discarded after one success per player. Unfinished Obstacles carry over between scenes.',
]},
],
},
{
version:25,
date:'2026-07-10',
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.