diff --git a/CHANGELOG.md b/CHANGELOG.md index c92d84c..f6b67a1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,7 @@ All notable user-facing changes to Gig Line. The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and versions use Semantic Versioning. -## [Unreleased] +## [0.9.2] — 2026-11-02 ### Added diff --git a/DONE.md b/DONE.md index a4770c2..e5930f1 100644 --- a/DONE.md +++ b/DONE.md @@ -1480,7 +1480,7 @@ and supported by a stable CI/release baseline. - [x] Decided to keep the 1.7 m gameplay camera (concept frames are art reference at ~1.55 m); documented the decision and retained the capture poses. - [x] Use the existing escalation/idle pose layers for warning/blocking/recognition/de-escalation; - explicit cinematic transition clips remain a post-1.0 enhancement. + explicit cinematic transition clips remain a post-0.10 enhancement. - [x] Reduced coat/dress stride amplitude and kept the hem readable in normal walking/blocking; full corrective shape keys remain deferred. - [x] Portrait/close-up pass completed with the fitted gear set and refreshed gallery captures. @@ -1506,7 +1506,7 @@ and supported by a stable CI/release baseline. - [x] Tutorial/help/review/campaign strings are backed by the JSON table (Help control rows are generated from input bindings); remaining debug-only labels are not player-facing. - [x] String-table validation and layout-safe autowrap/scroll behavior cover the release UI; - a full pseudo-locale CI harness remains a post-1.0 localization expansion. + a full pseudo-locale CI harness remains a post-0.10 localization expansion. - [x] Existing UI uses the engine fallback font with arrows/punctuation verified in strings and help; a custom non-Latin font is deferred. - [x] `content/strings.en.json` remains the source; `Strings` validation and the docs ownership map diff --git a/MEMORY.md b/MEMORY.md index 97fe562..3957f89 100644 --- a/MEMORY.md +++ b/MEMORY.md @@ -24,7 +24,7 @@ Session memory for durable decisions, state, and gotchas. Keep concise, remove o skirt in y 0.30–0.52 with a pants hip fallback. The command reports per-character gear boxes, head-band status and x/radial skirt clearance; `test_blender_assets` covers its shape. - Post-realism work is split by theme, not by date: finished items are archived in `DONE.md`, and - `TODO.md` carries the v1.0.0 gap register and milestone roadmap. New work belongs there, not in + `TODO.md` carries the 0.x gap register and milestone roadmap. New work belongs there, not in a revived historical plan document. - Graphics v0.6.0 plan (completed 2026-11-01; ADR-0013): NPCs move to Blender-authored skinned meshes. `tools/npc_pipeline.py` builds @@ -43,7 +43,7 @@ Session memory for durable decisions, state, and gotchas. Keep concise, remove o - RNG: NPC reactions and event scheduling are seedable for deterministic tests. - **Mouse look (v0.7.3):** guard look is handled in `GuardController._input()` (before GUI), not `_unhandled_input`; focus/click-back recaptures the cursor and the HUD is made mouse-transparent recursively. Regression tests cover yaw/pitch and HUD filters. -- **v0.9.0 production pass:** CI/release, local dev and project now use Godot 4.7.2; the version-adaptive light falloff remains for older editors. Audio settings are `master_volume`/`sfx_volume`/`ambience_volume`; accessibility has `reduce_motion` and `captions_enabled` (HUD log is the caption surface). Budget smoke is 24 NPCs (6.94 ms headless). Coat/dress stride is scaled to 0.76 to reduce hem clipping. Localization remains English-table based; pseudo-locale/VO/music are post-1.0. +- **v0.9.0 production pass:** CI/release, local dev and project now use Godot 4.7.2; the version-adaptive light falloff remains for older editors. Audio settings are `master_volume`/`sfx_volume`/`ambience_volume`; accessibility has `reduce_motion` and `captions_enabled` (HUD log is the caption surface). Budget smoke is 24 NPCs (6.94 ms headless). Coat/dress stride is scaled to 0.76 to reduce hem clipping. Localization remains English-table based; pseudo-locale/VO/music are post-0.10. - **Radio submit fix (v0.8.1):** `RadioPanel.action_button` now connects `pressed` for normal reports; `button_down/up` remains exclusive to emergency hold-to-confirm. Regression test covers both modes. - **Campaign/v0.8.0:** `Campaign` owns Hollywood → Joke Shop → TV Studio progression. `campaign.json`, `shift_results.json`, `settings.json` and versioned `shift_state.json` persist separately; pause saves a checkpoint, review Continue advances, Settings resets with confirmation. Difficulty keys are `easy/normal/hard` (`ai_difficulty`); scripted QA bypasses tutorial unless `--tutorial` is passed. Help is searchable and generated from `InputBindings.REMAPPABLE`. - **Tutorial (0.8.0 work):** `docs/tutorial.md` is the eight-beat design; `src/game/tutorial.gd` is the pure state machine, `TutorialOverlay` is the non-blocking card, and `GameManager` wires it with a safe visitor, suppressed spawns, persisted completion/skip and Settings replay. Scripted test/capture runs bypass it unless `--tutorial` is passed; `smoke_tutorial.gd` covers completion/replay/skip. @@ -61,10 +61,16 @@ Session memory for durable decisions, state, and gotchas. Keep concise, remove o gallery is 13 good / 0 bad, the screen-design judge is 13/13 and a clean portrait measured a 0.732 vision gap against the photoreal concept. No release build, version bump or tag was created at this gate. -- **Priority change (2026-11-02):** the map optimization (0.9.5) and the pre-build - NPC revisit are complete and in `DONE.md`. The postponed 0.9.2 UI, 0.9.3 NPC - detail, 0.9.4 textures and 0.9.6 integration/0.10.0 release work are next. No - build or tag has been produced. +- **Version and roadmap renumber (2026-11-02):** source is now **0.9.2**; the + completed map/NPC work is the patch content. Postponed work is renumbered to + **0.9.3 UI**, **0.9.4 NPC**, **0.9.5 textures**, **0.9.6 integration**, then the + **0.10.0** minor release candidate. `TODO.md` plans only 0.x patch/minor + increments; no major-version scope is defined yet. No release build or tag has been produced + for 0.9.2. +- **Priority change (2026-11-02):** the map optimization (originally planned for 0.9.5) and the pre-build + NPC revisit are complete and in `DONE.md`. The postponed 0.9.3 UI, 0.9.4 NPC + detail, 0.9.5 textures and 0.9.6 integration/0.10.0 release work are next. The + current source version is 0.9.2; no release build or tag has been produced. - **Hollywood landmark map (2026-11-02):** the default venue is the real El Capitan Entertainment Centre block at 6840 Hollywood Blvd, not a generic brick entrance. Its reference/mapping notes live in `docs/hollywood-boulevard-map.md`; the map-budget test @@ -87,13 +93,13 @@ Session memory for durable decisions, state, and gotchas. Keep concise, remove o `JokeGround_*`; `set_night_mode()` owns their energies and the hill tint. The latest local realism judge reports a 0.454 reference gap on the night entrance; the concept is photoreal while the map keeps stylized materials, so texture/foliage - detail stays with the postponed 0.9.4 pass rather than the map milestone. + detail stays with the postponed 0.9.5 pass rather than the map milestone. - **Docs validation (2026-11-02):** `python3 tools/check_docs.py` requires a README only in directories containing tracked files, verifies local links and requires every tracked image in a folder to be linked from its README. Gitignored generated files (notably `docs/screens/realism/`) are exempt; the tool also has unit tests in `tools/test_check_docs.py`. -- **Documentation ownership (2026-11-01):** `docs/architecture.md` §12 defines the source-of-truth map and consolidation rules. Obsolete/historical plan documents are removed rather than kept; current work belongs in `TODO.md`. README/development-status/Blender AO/Forward+ stale claims were corrected. The v1.0.0 gap register and 0.8/0.9/0.9.5/1.0 roadmap live in `TODO.md`. +- **Documentation ownership (2026-11-01):** `docs/architecture.md` §12 defines the source-of-truth map and consolidation rules. Obsolete/historical plan documents are removed rather than kept; current work belongs in `TODO.md`. README/development-status/Blender AO/Forward+ stale claims were corrected. The 0.x gap register and roadmap live in `TODO.md`. - **Vision judge (v0.7.2):** `tools/openrouter_judge.py` reads `/api/v1/models`, filters image-input models with `response_format`, and ranks by advertised prompt/image/completion prices. `--model auto` (default) uses the cheapest (`z-ai/glm-5.3-flash` on 2026-11-01) with fallbacks; explicit `--model`/`GIG_LINE_JUDGE_MODEL` wins. Auth errors abort, provider/model errors fall through. Full screen judge 13/13 match, 0 diff; A/B judge ~$0.006. - **Desktop HQ preset (v0.7.1):** `packaging/desktop_hq/override.cfg` switches a copied executable to Forward+; `Materials.forward_plus_active()` gates diff --git a/PLAN.md b/PLAN.md index 5e5033c..dbc868e 100644 --- a/PLAN.md +++ b/PLAN.md @@ -157,7 +157,7 @@ The visual direction is readable stylized realism: - **References and QA:** runtime UI art lives in `assets/images/ui/`; reference/art-direction sets live in `docs/screens/designs/` and `docs/screens/concepts/`; captures live in `docs/screenshots/`; realism runs live in `docs/screens/realism/`. `screen_designs.py compare/judge` and `tools/check_screenshots.sh` guard drift. - **Storage convention:** see [ADR-0014](docs/adr/0014-runtime-image-root.md). Never overwrite an existing image; new outputs get a new path or `-vN` suffix. -The path from the current vertical slice to v1.0.0 — content depth, onboarding, accessibility, platform QA and release readiness — is tracked in [`TODO.md`](TODO.md); this plan stays at the product/design level. +The path from the current vertical slice to the 0.10.0 release candidate — content depth, onboarding, accessibility, platform QA and release readiness — is tracked in [`TODO.md`](TODO.md); this plan stays at the product/design level. Primary decisions: [ADR-0007](docs/adr/0007-locomotion-and-input-layers.md), [ADR-0008](docs/adr/0008-cone-focus-and-head-ring.md), [ADR-0009](docs/adr/0009-radial-action-menu.md), [ADR-0010](docs/adr/0010-procedural-npc-presentation.md), [ADR-0011](docs/adr/0011-aim-free-selection-and-precision-walk.md), [ADR-0012](docs/adr/0012-surface-materials-and-generated-props.md), [ADR-0013](docs/adr/0013-blender-authored-npc-characters.md). @@ -176,7 +176,7 @@ Primary decisions: [ADR-0007](docs/adr/0007-locomotion-and-input-layers.md), [AD ## Versioning and Delivery -`config/version` in `project.godot` is the single version source (currently `0.9.1`). Releases are tagged `v`; the CI pipeline builds and publishes the standard artifacts plus the optional Desktop HQ zip. Version bumps follow [Semantic Versioning](https://semver.org/). See [`docs/RELEASING.md`](docs/RELEASING.md) and [`README.md`](README.md) for commands. +`config/version` in `project.godot` is the single version source (currently `0.9.2`). Releases are tagged `v`; the CI pipeline builds and publishes the standard artifacts plus the optional Desktop HQ zip. Version bumps follow [Semantic Versioning](https://semver.org/). See [`docs/RELEASING.md`](docs/RELEASING.md) and [`README.md`](README.md) for commands. ## Design Direction diff --git a/README.md b/README.md index 639477a..be542db 100644 --- a/README.md +++ b/README.md @@ -38,8 +38,11 @@ precision walk, the Joke Shop's Sunset Strip frontage, the TV Studio arrival, an > Downloads are public (no sign-in required) since the host's instance-wide > `REQUIRE_SIGNIN_VIEW` was disabled on 2026-10-31. > -> **Latest: v0.9.1** — unified Godot 4.7.2 CI/release environment, plus +> **Latest published: v0.9.1** — unified Godot 4.7.2 CI/release environment, plus > v0.9.0's production-quality and v0.8 tutorial/campaign/resume work. +> +> **Current source: v0.9.2** — the Hollywood/Joke Shop map rebuilds and the +> NPC final-context review; the release tag is pending. > Releases are built automatically when a `vX.Y.Z` tag is pushed > (see [`docs/RELEASING.md`](docs/RELEASING.md)); manual builds use > `./tools/build_releases.sh`. Installer/AppImage packaging runs in the same pipeline @@ -118,16 +121,17 @@ Full setup, every run/test/smoke command, and the controls table are in - [`docs/smoke-checklist.md`](docs/smoke-checklist.md) — Manual smoke-test checklist. - [`docs/blender-assets.md`](docs/blender-assets.md) — Blender asset library: characters, gear, props, attach points. - [`docs/adr/`](docs/adr/) — Architecture Decision Records. -- [`TODO.md`](TODO.md) — Active tasks plus the v1.0.0 gap analysis and milestone roadmap. +- [`TODO.md`](TODO.md) — Active tasks plus the 0.x gap analysis and milestone roadmap. ## Development Status -v0.9.1 unifies the project, local tooling and CI/release environment on Godot -4.7.2. It builds on v0.9.0's production-quality and audio/accessibility pass, -v0.8's tutorial/campaign/resume work and the v0.7.x venue/gear/judge work. See -[`docs/development-status.md`](docs/development-status.md) for the implemented -list and [`TODO.md`](TODO.md) for the v1.0.0 roadmap. Manual verification uses -the [`docs/smoke-checklist.md`](docs/smoke-checklist.md). +v0.9.2 is the current source version: the Hollywood and Joke Shop map +rebuilds, the NPC final-context review and the HUD/wand string fixes. It builds +on v0.9.1's Godot 4.7.2 baseline, v0.9.0's production-quality and +audio/accessibility pass, v0.8's tutorial/campaign/resume work and the v0.7.x +venue/gear/judge work. See [`docs/development-status.md`](docs/development-status.md) +for the implemented list and [`TODO.md`](TODO.md) for the 0.x roadmap. Manual +verification uses the [`docs/smoke-checklist.md`](docs/smoke-checklist.md). ## Development Workflow diff --git a/TODO.md b/TODO.md index f172179..fc8cc90 100644 --- a/TODO.md +++ b/TODO.md @@ -3,13 +3,13 @@ Work is grouped by theme. Each item should be small enough to complete and verify on its own; see `AGENTS.md` for the workflow and `MEMORY.md` for the decisions behind these plans. -## Gap Analysis and v1.0.0 Roadmap +## Gap Analysis and 0.x Roadmap -Baseline: **v0.9.1** (2026-11-02). Three playable venues, tutorial/campaign/checkpoint resume, +Baseline: **v0.9.2** (2026-11-02). Three playable venues, tutorial/campaign/checkpoint resume, difficulty/help, audio/accessibility settings, a 24-NPC budget baseline, a complete escalation/access/radio loop, shift review, the Blender asset library, 256 headless + 97 Python tests, a clean screen-design judge and an optional Forward+ Desktop HQ build. This is a strong -release-candidate foundation, not yet a 1.0 product. +release-candidate foundation, not yet a 0.10.0 release candidate. ### Documentation audit (completed 2026-11-01) @@ -28,28 +28,29 @@ release-candidate foundation, not yet a 1.0 product. decisions (ADRs), status (`development-status.md`), roadmap (`TODO.md`), operations (tooling/release docs). -### Gap register (remaining to 1.0) +### Gap register (remaining roadmap) | Area | Current baseline | Remaining gap | Risk | Milestone | | --- | --- | --- | --- | --- | -| Content and balance | 3 venues with validated 12+ event matrices, recovery events and contextual dialogue | External playtest evidence, balance/fairness pass, event-weight tuning and final content lock | Repetition or unfair outcomes survive into 1.0 | 0.10.0 | -| Dialog/UI | Complete screens and panel art, but copy/button behavior has not had a dedicated audit | Terminology, button states, long-string layout and full screen coverage need a focused pass | Inconsistent UI undermines first-hour clarity | 0.9.2 | -| Animation/presentation | Procedural pose layers, portrait captures, reduced hem clipping | Thorough NPC silhouette/face/gear/pose/LOD optimization before visual QA | Close-up jank reduces perceived quality | 0.9.3 | -| Audio/accessibility | Procedural ambience/SFX, volume controls, captions/reduce-motion settings, searchable Help | Full accessibility/localization acceptance review, audio caption coverage and P0/P1 fixes | Public 1.0 cannot claim accessible play | 0.9.2 / 0.10.0 | -| Localization | English JSON table, validation and input-generated Help | Pseudo-locale/layout audit and translator workflow sign-off | Text expansion/clipping at release | 0.9.2 / 0.10.0 | -| Performance/platform | 24-NPC headless budget (6.9 ms), Compatibility/Web/HQ paths | Target hardware matrix, Web/HQ manual profiling, frame-time/memory evidence | Platform-specific drops or startup failures | 0.9.5 / 0.10.0 | +| Content and balance | 3 venues with validated 12+ event matrices, recovery events and contextual dialogue | External playtest evidence, balance/fairness pass, event-weight tuning and final content lock | Repetition or unfair outcomes survive into the release candidate | 0.10.0 | +| Dialog/UI | Complete screens and panel art, but copy/button behavior has not had a dedicated audit | Terminology, button states, long-string layout and full screen coverage need a focused pass | Inconsistent UI undermines first-hour clarity | 0.9.3 | +| Animation/presentation | Procedural pose layers, portrait captures, reduced hem clipping | Thorough NPC silhouette/face/gear/pose/LOD optimization before visual QA | Close-up jank reduces perceived quality | 0.9.4 | +| Audio/accessibility | Procedural ambience/SFX, volume controls, captions/reduce-motion settings, searchable Help | Full accessibility/localization acceptance review, audio caption coverage and P0/P1 fixes | Public release cannot claim accessible play | 0.9.3 / 0.10.0 | +| Localization | English JSON table, validation and input-generated Help | Pseudo-locale/layout audit and translator workflow sign-off | Text expansion/clipping at release | 0.9.3 / 0.10.0 | +| Performance/platform | 24-NPC headless budget (6.9 ms), Compatibility/Web/HQ paths | Target hardware matrix, Web/HQ manual profiling, frame-time/memory evidence | Platform-specific drops or startup failures | 0.9.6 / 0.10.0 | | Save lifecycle | Settings/campaign/history/checkpoint files, atomic writes | Migration fixtures from 0.8/0.9, fresh-install/upgrade verification, rollback instructions | Player progress loss on upgrade | 0.10.0 | -| QA/CI | Headless suite, smokes, screenshot compare, optional judge | Full visual judge gate, release-candidate smoke matrix, final gallery and release dry run | Regressions escape the release gate | 0.9.5 / 0.10.0 | +| QA/CI | Headless suite, smokes, screenshot compare, optional judge | Full visual judge gate, release-candidate smoke matrix, final gallery and release dry run | Regressions escape the release gate | 0.9.6 / 0.10.0 | | Release/legal | Unsigned desktop/macOS builds, Web/HQ packages | Signing/notarization decision, checksums, AI-asset provenance, credits, privacy/body-camera and rating review | Public release blocked by trust/policy | 0.10.0 | -| Documentation | Architecture/ADR/status/roadmap ownership established | Final README/changelog/status/TODO/smoke-checklist sign-off and known-limitations page | Docs drift at launch | 0.9.5 / 0.10.0 | -| Post-launch | Stable 0.9 feature set | Live replay, more venues, VO/music, image-to-mesh props and seasonal content | Scope creep before launch | Post-1.0 | +| Documentation | Architecture/ADR/status/roadmap ownership established | Final README/changelog/status/TODO/smoke-checklist sign-off and known-limitations page | Docs drift at launch | 0.9.6 / 0.10.0 | +| Future 0.x | Stable 0.x feature set | Live replay, more venues, VO/music, image-to-mesh props and seasonal content | Scope creep before release | 0.11.0+ | **Current priority:** map optimization and the **pre-build NPC revisit** are -complete (both moved to `DONE.md` on 2026-11-02). The postponed 0.9.2/0.9.3/0.9.4 -UI, NPC-detail and texture patches, then 0.9.6 integration and the 0.10.0 release -candidate, are next. No release build, version bump or tag has been produced. +complete (both moved to `DONE.md` on 2026-11-02). The postponed 0.9.3 UI, +0.9.4 NPC-detail and 0.9.5 texture patches, then 0.9.6 integration and the 0.10.0 +release candidate, are next. No release build or tag has been produced for the +current source version. -## Postponed — Patch 0.9.2 — Dialog, button and UI polish +## Postponed — Patch 0.9.3 — Dialog, button and UI polish Goal: make every player-facing screen read consistently and pass the Python screen-design judge before any model/texture changes. No gameplay rules change. @@ -103,7 +104,7 @@ screen-design judge before any model/texture changes. No gameplay rules change. strings/scale pass, and the Python compare/judge gate has no unexplained diff. -## Postponed — Patch 0.9.3 — NPC visual optimization +## Postponed — Patch 0.9.4 — NPC visual optimization Goal: make the eight character variants hold up in portrait, conversation and crowd views without changing the `npc_base`/`Rig/Head` contract or the skinned/procedural @@ -199,7 +200,7 @@ fallback behavior. clip in normal play, the 24-NPC budget remains green, and the visual judge has no unexplained regressions. -## Postponed — Patch 0.9.4 — Texture and material refinement +## Postponed — Patch 0.9.5 — Texture and material refinement Goal: improve close-range surface and character texture quality while keeping GL Compatibility/Web parity, deterministic assets and offline CI. @@ -269,7 +270,7 @@ target paths and leave a clean release-candidate handoff. - [ ] Update README, architecture, development status, changelog and TODO with the final patch-level results and any remaining gaps. -- [ ] Tag/version or otherwise freeze `0.9.4` as the integration checkpoint before +- [ ] Tag/version or otherwise freeze `0.9.6` as the integration checkpoint before the `0.10.0` release candidate. - [ ] Exit: combined build is functionally green, visually reviewed, performance measured and ready for the 0.10.0 content-lock/playtest phase. @@ -277,7 +278,7 @@ target paths and leave a clean release-candidate handoff. ## Postponed — Milestone 0.10.0 — Release candidate Goal: freeze the feature set, prove it with external players, clear release/legal blockers and -verify every distribution path. This is the next shipped version before 1.0. +verify every distribution path. This is the next minor release after the 0.9.x patch line. ### Content lock and external playtest @@ -288,7 +289,7 @@ verify every distribution path. This is the next shipped version before 1.0. - [ ] Run at least five first-time-player sessions covering the tutorial and one full venue shift; record where players get stuck, misunderstand evidence or choose disproportionate escalation. - [ ] Triage findings by severity (P0/P1/P2) and fix every P0/P1 onboarding/accessibility issue; - keep the rest as explicit known limitations or post-1.0 items. + keep the rest as explicit known limitations or post-0.10 items. - [ ] Re-run the affected tutorial/campaign smokes after each fix and capture a fresh first-hour walkthrough for the release notes. @@ -329,7 +330,7 @@ verify every distribution path. This is the next shipped version before 1.0. - [ ] Verify release metadata, tag/version consistency, asset counts and download links; retain at least the latest 0.8/0.9 releases and document older-asset pruning. - [ ] Decide and document whether macOS signing/notarization is required for 0.10.0 or explicitly - remains a 1.0 blocker; record the quarantine instructions either way. + remains a future release blocker; record the quarantine instructions either way. ### Legal, credits and platform policy @@ -340,7 +341,7 @@ verify every distribution path. This is the next shipped version before 1.0. and storefront requirements; fix any release-blocking copy or content. - [ ] Add the player-facing credits, known limitations, accessibility statement and privacy note to the release package/README. -- [ ] Mark external legal/storefront approval as complete or explicitly block 1.0 on it. +- [ ] Mark external legal/storefront approval as complete or explicitly block the 0.10.0 release on it. ### Documentation and visual sign-off @@ -359,27 +360,13 @@ verify every distribution path. This is the next shipped version before 1.0. - [ ] Run the manual QA matrix: fresh install, upgrade, offline launch, gamepad, accessibility settings, pause/resume, all venues and Desktop HQ fallback. - [ ] Confirm no P0/P1 defects remain; P2 items must be documented as known limitations or - post-1.0 work. + post-0.10 work. - [ ] Create the `v0.10.0` version bump, changelog entry and tag; build/publish the release and verify all assets and download links. - [ ] Exit: the release candidate is content-locked, externally played, legally reviewed, - documented, reproducibly built, and approved as the final stepping stone to 1.0.0. + documented, reproducibly built, and approved as the 0.10.0 release candidate. -## Milestone 1.0.0 — Launch - -Goal: publish a stable, documented and supportable 1.0 build. - -- [ ] Freeze content and version, run full final QA on Windows/Linux/macOS/Web/Desktop HQ, and - verify fresh installs plus upgrade paths. -- [ ] Publish store/release notes, credits, known limitations, accessibility statement and - controls; verify every download link and artifact checksum. -- [ ] Tag `v1.0.0`, publish through CI, verify the release page and post-launch patch policy. -- [ ] Definition of 1.0: three complete venues with campaign/tutorial, stable save/resume, - accessibility/localization acceptance, measured performance on the target matrix, signed - release artifacts where platform rules require it, and documentation synchronized with the - build. - -## Post-1.0 / non-blocking candidates +## Future 0.x / non-blocking candidates - [ ] Live 3D body-camera replay. - [ ] Additional venues or seasonal events. diff --git a/docs/architecture.md b/docs/architecture.md index 8acfc5f..b4c652d 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -37,7 +37,7 @@ This document follows the structure of the arc42 architecture documentation temp - **MINOR** — new venues, NPC archetypes, systems, or features that are backward compatible. - **PATCH** — bug fixes and small polish that do not change behavior. -The single source of truth for the version is `config/version` in `project.godot` (currently `0.9.1`). Each release is tagged in git as `v` (e.g. `v0.6.0`). The `0.x` series is pre-1.0, so MINOR bumps may introduce breaking changes while the prototype is still stabilizing. `tools/build_releases.sh` and `tools/publish_release.sh` read the version from `project.godot`, so bumping it there is the only required step before a release. The full bump checklist lives in [`RELEASING.md`](RELEASING.md). +The single source of truth for the version is `config/version` in `project.godot` (currently `0.9.2`). Each release is tagged in git as `v` (e.g. `v0.6.0`). The `0.x` series is pre-stable, so MINOR bumps may introduce breaking changes while the prototype is still stabilizing. `tools/build_releases.sh` and `tools/publish_release.sh` read the version from `project.godot`, so bumping it there is the only required step before a release. The full bump checklist lives in [`RELEASING.md`](RELEASING.md). ## 3. Context and Scope @@ -253,7 +253,7 @@ Architecture decisions are recorded as ADRs: | Testability | Access and escalation rules can be tested independently of presentation. | | Accessibility | Core actions are available through clear input alternatives and readable feedback. | | Reliability | A fresh checkout, missing optional asset, invalid AI key, or unavailable Forward+ renderer must not prevent a normal Compatibility/Web/headless boot. | -| Performance | A busy venue should hold its budget at the target NPC cap on desktop and Web; the current 16-NPC check is a baseline, not a 1.0 guarantee. | +| Performance | A busy venue should hold its budget at the target NPC cap on desktop and Web; the current 24-NPC check is a baseline, not a release guarantee. | | Documentation integrity | Every released version has a changelog entry, current status/roadmap, and architecture/ADR references that match the build. | ## 11. Risks and Technical Debt @@ -269,8 +269,8 @@ Architecture decisions are recorded as ADRs: - Content volume and authoring tools are still thin; adding venues/events by editing the factory can become error-prone without schema validation and preview tooling. - Save data currently covers settings and shift history, not mid-shift resume; adding saves/replays requires a versioned schema and migration policy. - The optional judge and image-generation paths depend on an external key, model availability and budget; CI cannot make them a release gate, and keys must never be committed. -- Accessibility and localization coverage is partial; a 1.0 release needs subtitles/captions, colour-independent cues, remapping, text expansion tests and at least a documented localization workflow. -- Unsigned macOS builds, AI asset provenance and any storefront/legal requirements are release blockers for a public 1.0. +- Accessibility and localization coverage is partial; a public release needs subtitles/captions, colour-independent cues, remapping, text expansion tests and at least a documented localization workflow. +- Unsigned macOS builds, AI asset provenance and any storefront/legal requirements are release blockers for a public release. - Documentation drift has already occurred (release version, implemented status and obsolete plan docs); the ownership map and roadmap must be kept current in the same change as the implementation. ## 12. Documentation Consolidation and Ownership @@ -291,7 +291,7 @@ architecture document. | [`docs/RELEASING.md`](RELEASING.md) | Release checklist and CI/publishing steps | Deployment appendix to §7 | | [`docs/smoke-checklist.md`](smoke-checklist.md) | Manual verification script | QA appendix to §10 | | [`docs/development-status.md`](development-status.md) | Implemented features and current gaps | Status companion to the roadmap | -| [`TODO.md`](../TODO.md) | Active tasks and v1.0.0 roadmap | Planning source; no architecture duplication | +| [`TODO.md`](../TODO.md) | Active tasks and 0.x roadmap | Planning source; no architecture duplication | | [`CHANGELOG.md`](../CHANGELOG.md) | User-facing release history | Release/version companion | Consolidation decisions: @@ -299,7 +299,7 @@ Consolidation decisions: - **Architecture owns the "how"** (components, contracts, data flow, constraints, quality gates); **PLAN/gameplay own the "what"**; **ADRs own the "why"**. Links replace duplicated prose. - **Asset and release documents remain separate** because they are command-heavy operational procedures; their architecture-relevant contracts and failure modes are summarized in §5 and §7. - **Completed plans are removed, not kept as competing roadmaps.** Historical graphics work is summarized by ADR-0013, the asset pipeline section and the v0.6.0 changelog; new work belongs in TODO. -- **Status and roadmap are separate from architecture.** `docs/development-status.md` records what exists; `TODO.md` records what remains, including the v1.0.0 gap analysis and milestone exit criteria. +- **Status and roadmap are separate from architecture.** `docs/development-status.md` records what exists; `TODO.md` records what remains, including the 0.x gap analysis and milestone exit criteria. - **Documentation drift is a tracked risk:** release/version, test counts, renderer status, and stale plans must be corrected in the same commit as the change that invalidates them. ## 13. Glossary diff --git a/docs/development-status.md b/docs/development-status.md index 0e407be..15922e2 100644 --- a/docs/development-status.md +++ b/docs/development-status.md @@ -53,4 +53,4 @@ Implemented so far: - Gear fit (post-v0.6.0): Blender gear is measured against the avatar head/skirt silhouette and the checks run in both the Python tooling and the headless suite. Sunglasses, the shoulder bag and the firefighter helmet were fitted to the new faces; the Influencer portrait and gallery were recaptured with a before/after report. - Pre-build NPC review (2026-11-02): all eight library characters were staged at portrait, conversation and crowd distance on Hollywood and the Joke Shop, in day and night lighting, with the normal crowd hidden (`src/test/capture_npc_review.gd`). No P0 issues were found. Two P1 gear-fit issues were fixed with runtime attach offsets: the authorized-guest lanyard badge now clears the jacket and the firefighter helmet sits above the eyes. Backpack straps, caps, hands and the intentionally low-poly faces were accepted for the stylized target; close-range flashlight wash remains an optional-lighting follow-up. The 24-NPC budget stayed at 6.93 ms, the gallery passed 13 good / 0 bad and the screen-design judge stayed 13/13, and a clean portrait scored a 0.732 vision gap against the photoreal concept. -Current gaps for v1.0.0: deeper authored content/dialogue, animation and audio production, localization/accessibility expansion, 24-NPC/platform profiling, external playtesting, and signed/notarized release packaging. The full gap analysis and milestone plan live in [`TODO.md`](../TODO.md); the current architecture and documentation ownership map are in [`docs/architecture.md`](architecture.md). +Current gaps for the 0.x release line: deeper authored content/dialogue, animation and audio production, localization/accessibility expansion, 24-NPC/platform profiling, external playtesting, and signed/notarized release packaging. The full gap analysis and milestone plan live in [`TODO.md`](../TODO.md); the current architecture and documentation ownership map are in [`docs/architecture.md`](architecture.md). diff --git a/docs/joke-shop-map.md b/docs/joke-shop-map.md index 036bd83..436654b 100644 --- a/docs/joke-shop-map.md +++ b/docs/joke-shop-map.md @@ -75,7 +75,7 @@ just as with the Hollywood day/night rows. - The concept frames are photoreal; the game keeps its stylized, low-poly material treatment. The vision judge therefore still scores material and foliage detail below the reference. The remaining texture/realism work is - tracked with the postponed 0.9.4 pass, not treated as a map-geometry defect. + tracked with the postponed 0.9.5 pass, not treated as a map-geometry defect. ## References diff --git a/docs/ui-copy.md b/docs/ui-copy.md index 82963c4..a203aea 100644 --- a/docs/ui-copy.md +++ b/docs/ui-copy.md @@ -1,6 +1,6 @@ # UI copy and button inventory -Status: audit in progress for the 0.9.2 UI polish patch. +Status: audit in progress for the 0.9.3 UI polish patch. ## Screen inventory diff --git a/project.godot b/project.godot index b33046b..bfeef4f 100644 --- a/project.godot +++ b/project.godot @@ -12,7 +12,7 @@ config_version=5 config/name="Gig Line" config/description="Workplace security simulation about observation, access verification, and proportionate escalation." -config/version="0.9.1" +config/version="0.9.2" run/main_scene="res://scenes/main.tscn" config/features=PackedStringArray("4.7", "GL Compatibility")