{
  "latest_release": {
    "version": "v0.13.2",
    "name": "P(Doom) v0.13.2",
    "published_at": "2026-07-31T07:53:25Z",
    "html_url": "https://github.com/PipFoweraker/pdoom1/releases/tag/v0.13.2",
    "body": "## [0.13.2] - 2026-07-31\n\nLeague build. Ladder epoch **L3** -- this is a forking release: the effort\neconomy was rebuilt, so scores are not comparable with L2 boards.\n\n### 2026-07-27 build day (rides the next version bump)\n\n#### Added\n- **The early game has a real first fifteen minutes** (#791, #811, #982): you\n  start in a free bedroom/basement (2-hire cap), then choose one of three\n  first offices -- a cheap-in/cheap-out co-working corner, a balanced\n  second-floor walk-up, or a bigger university annex sublet -- each with its\n  own deposit, monthly rent, desk count, lease term, and break fee. You're\n  locked into the pick mechanically for now (moving costs are architected but\n  not live yet). New scouting actions let you find your next hire, including\n  a deliberately loud strategic-shitposting option.\n- **Conference trips are a real commit, not a menu skip** (#468, #979): the\n  Travel submenu can now send you to one of 3 shell conferences. Going costs\n  real travel cash and drains all your remaining Attention for the trip; the\n  world keeps running while you're away (events and developments still\n  fire), and you come home to a single \"while you were away\" digest instead\n  of a stack of missed-turn popups.\n- **Publishing and safety-research actions now genuinely move the doom\n  engine** (#971, #974): `publish_paper`'s alarm bump and `safety_research`'s\n  absorption effect were silently wired to 0.0 since the doom-stream\n  migration -- they read as working in the UI but did nothing. They're\n  priced now and actually fire, along with `audit_safety`'s scrutiny effect\n  and the lobbying/rival/opensource doom streams.\n- **Four new office workers, with mood states** (#947, #969): a Black man\n  with idle/working/stressed mood art plus a full 8-direction walk cycle, and\n  three more fully-walking hires (wheelchair-accessible, glasses-and-badge,\n  and hijab-wearing) join the office rotation.\n- **Office floor groundwork**: a first-class render-layer grid replaces the\n  sandbox's old string-keyed hack (#977) -- render-only, purely cosmetic for\n  now; and dev-build performance logging gained mark/gauge instrumentation\n  across save/load, scene transitions, and office-roster rebuilds (#973), in\n  preparation for surfacing real load-time and scaling data later.\n\n#### Fixed\n- **Hire candidates could silently vanish** (#952, #960): if your cash\n  dropped between queuing a hire and it executing later the same turn, the\n  candidate was removed from the pool but never actually hired -- gone for\n  good, with no message. Stranded hires now return to the pool (or a\n  walk-away line if the pool had refilled), including self-healing existing\n  saves.\n\n#### Dev / data (no visible gameplay change yet)\n- Typed reputation dimensions -- org / operator / employee -- landed\n  additively behind `rep_for()`/`rep_dims()`; the legacy scalar\n  `GameState.reputation` stays authoritative and is still what every\n  existing write site touches (#975). Ships alongside a first governance-body\n  roster (`godot/data/bodies.json`).\n- Workstream substrate core -- the object model, backlog, per-person\n  assignment, and topic-tagged effort accrual that the Attention-economy\n  migration builds on -- landed with a `reported` vs `actual` progress seam\n  for self-directed researchers (deterministic per-person optimism, no new\n  RNG); nothing consumes `reported` yet (#981).\n- Balance-key coverage guard test so a doom-stream key silently falling back\n  to a call-site default can't ship unnoticed again (#974).\n- ~500 art files (worker round 2, cat west-walk variants, prop re-base, tier-6\n  diagonals) made durable from the day's generation runs, plus shared\n  bulk-select/mass-tag triage tooling across the art review sheets (#965,\n  #966, #972, #978).\n- `ladder_version` bumped 2 -> 3 for the day's core/ changes.\n- ADR-0018 drafted: render-only office doctrine (no spatial fact becomes a\n  gameplay input) (#968).\n\n---\n\n### Added\n- **Research Quality System** (#500): Rushed / Standard / Thorough quality toggle for research\n  - **Rushed**: faster research, but accumulates technical debt and raises risk\n  - **Standard**: baseline speed, neutral\n  - **Thorough**: slower research, reduces doom/risk (safety-focused builds)\n  - Feeds the hidden Risk Pool system (research integrity, capability overhang, financial exposure)\n  - New `research_quality_selector.gd` UI; defaults to Standard and remembers last selection\n  - Unit tests: `test_research_quality.gd`, `test_risk_system.gd`\n- **Game-design documentation** (#500): `godot/docs/design/` -- `TWO_ACT_STRUCTURE.md`, `INTRO_CINEMATIC.md`, `TONE_AND_ART.md`\n- **Scenario/Mod Hook System** (#483): Custom scenarios without code changes\n  - Drop JSON files into `godot/data/scenarios/` to add new scenarios\n  - Scenario selection dropdown in Custom Game setup screen\n  - Support for overriding starting resources (money, compute, research, reputation, doom, etc.)\n  - Support for custom events with trigger conditions and player choices\n  - Support for custom start dates (year, month, day)\n  - Three sample scenarios included:\n    - **Bootstrap Mode**: Extra resources for learning ($500k, 200 compute)\n    - **Crisis Mode**: Challenging start (2020, $150k, 65 doom)\n    - **Sandbox Mode**: Unlimited resources for experimentation ($10M)\n  - User scenarios supported in `user://scenarios/` directory\n  - Complete documentation in `docs/SCENARIOS.md`\n\n### Fixed\n- **CI/CD pipeline restored** (#527, #530, #535): the daily Enhanced CI/CD pipeline had been failing for 10+ days and two workflows (`data-validation`, `dev-blog-automation`) failed at startup for months\n  - Repaired PEP 701 nested-quote f-strings that broke on the Python 3.11 runner (valid only on 3.12+)\n  - Added missing `pyyaml` dependency to the sync/cleanup stages\n  - Fixed invalid workflow YAML (column-0 lines terminating `run:` block scalars -> 0s startup failures)\n  - Fixed schema-validation check failing under AJV strict mode on `format: \"uri\"` (added `ajv-formats`)\n\n### Technical\n- **Python 3.11 baseline** (#527): authoritative `pyproject.toml` + CI syntax gate so modern-only syntax can't silently break CI; standardized workflow Python pins\n- **Repo cleanup**: archived ~35 pygame-era debris files to `archive/legacy-pygame/`; removed duplicates; pruned 9 stale remote branches and 6 orphaned worktrees\n- New files: `scenario_loader.gd`, `docs/SCENARIOS.md`, `godot/data/scenarios/*.json`\n- Modified: `game_config.gd`, `game_manager.gd`, `pregame_setup.gd`, `pregame_setup.tscn`, `events.gd`\n\n---\n\n\n## Build Information\n\n- **Commit:** `868c784efa3fe78859346d2e8cd3e0edac982237`\n- **Data Hash:** `28821d833c1be9ec12ab73afc717cb1d7f35ed2dc2165462ddce5de9fb2b77ad`\n- **Manifest Hash:** `9377091c14d7cd2198111ac3f3a41e62a2cc1761c50bf0d5fe9ebd2cb33e2efe`\n- **Engine:** Godot 4.5.1\n",
    "platforms": {
      "windows": true,
      "macos": true,
      "linux": true
    }
  },
  "repository_stats": {
    "stars": 8,
    "forks": 1,
    "open_issues": 199,
    "last_updated": "2026-08-05T01:52:18Z"
  },
  "last_updated": "2026-08-05T07:01:44.007468",
  "game_stats": {
    "baseline_doom_percent": null,
    "frontier_labs_count": 5,
    "strategic_possibilities": null,
    "pending": {
      "baseline_doom_percent": {
        "status": "not yet measured",
        "needs": "the game's calibration emit -- baseline doom is a property of the simulation, so only pdoom1 can measure it",
        "tracking": "https://github.com/PipFoweraker/pdoom1-website/issues/177"
      },
      "strategic_possibilities": {
        "status": "not yet measured",
        "needs": "a real count derived from the shipped action/upgrade content, which lives in the game repo and is not fetchable here yet",
        "tracking": "https://github.com/PipFoweraker/pdoom1-website/issues/177"
      }
    },
    "last_calculated": "2026-08-05T07:01:44.007460"
  }
}