# Changelog All notable changes to **History** are listed here, newest first. ## v0.3.0 — 2026-10-11 15:29 - **Deep-linking** — the active game's id now lives in the URL (`#/game/`), so a link opens that exact game and two tabs can run two different games; a bad or missing id falls back to the home screen. Fixes #3. ## v0.2.0 — 2026-10-11 14:24 - **Batched round model** — replaced the single-action/turn with a queued-round model. Actions and diplomatic messages accumulate in `game.pending` (no LLM call, no turn advance); a single "Jump forward" button commits the whole batch in one LLM turn. This fixes the 502 reliability problem by making each LLM call do one coherent batch of work instead of one tiny fragment. - **New routes** — `POST /api/games/:id/action` and `POST /api/games/:id/diplomacy` (fast, no LLM); `POST /api/games/:id/jump` (the single LLM call); `POST /api/games/:id/turn` removed. - **New client API functions** — `api.addAction(id, text)`, `api.addDiplomacy(id, to, message)`, `api.jump(id)`; `api.turn(...)` removed. - **ActionPanel rewrite** — Action tab: textarea + small "Add action" button. Diplomacy tab: target select + textarea + small "Add to round" button. Advisor tab: input + "Ask advisor" button. Below the tabs: a visible pending-queue list (⚡ for action, 💬 for diplomacy with target name, truncated text, count badge) and a large "Jump forward" primary button that shows the pending count and disables while a jump is in flight. - **App.tsx** — `runAddAction` / `runAddDiplomacy` handlers (no busy state); `runJump` (with busy); the "Your move" window's title bar now shows a pending-count badge chip instead of the old jump button. - **Deterministic stub updated** — `deterministicTurn` now emits one event per queued item (action → military/success, diplomacy → diplomatic/partial) instead of one event per turn; still sets player military to `clamp(cur+5)` and allies with the first other nation. - **Unit tests** — rewrote `engine.test.ts` with batch-aware tests (7 new tests, 35 total up from 28); updated `db.test.ts` and `map.test.ts` fixtures to include `pending: []`. - **E2E** — rewrote `e2e/sim.spec.ts` to the new flow: queue action → assert pending list → queue diplomacy → assert pending list → jump → assert turn+1, date+2, military 80→85, two events, pending cleared, ally relation. - **AGENTS.md** — added Gitea-issue step to the change process; updated Layout and Conventions to reflect the batched-round model. ## v0.1.0 — 2026-10-11 08:02 - Added a Gitea Actions CI pipeline (`.gitea/workflows/ci.yml`: `typecheck → lint → unit → build → deterministic Playwright e2e`). E2e runs against the app's own dev webServer (`LLM_STUB=1`) — no dind/docker. - Committed `package-lock.json` so CI uses a reproducible `npm ci`. - Switched to the mandatory PR-based workflow: feature branch → PR to `master` → CI green → auto-merge → tag + manual deploy (documented in `AGENTS.md`). - Versioned the repo at `0.1.0` (`package.json`) and added `CHANGELOG.md`, `.env` (gitignored) and `.env.example`. - This change is the first one landed through the new PR process (dogfooding it).