Project status¶
Historical status through 2026-10-28. Its priorities, worktree descriptions and test instructions are superseded by current status and the roadmap. Retained for its evidence and checkpoint history.
Initially audited 2026-10-24 at 4fb9c7f1. Published game/audit checkpoint eda876e3 includes stabilization/planning checkpoint 93d92282 and the batch-29 combat documentation. On 2026-10-26 the owner requested repair because GitHub Desktop was blocked. The local dev-0.9.0-bootloader branch and index were aligned to that published commit without changing working files. Normal Git index writes and status now succeed. Check actual HEAD/upstream when resuming; this recovery note is a subsequent documentation-only change.
Current position: the prepared character moves and dashes in the shared test scene through its assigned input. Dash uses private ability state/work plus the existing stamina recovery and immunity clocks. Health recovery, full status/damage/life participation, targeting and attacks remain unconnected there. Production scenes retain their legacy input/ability adapters and share the extracted rules.
Latest implementation: batch 58, 56f764c9. One command frame drives movement and dash; explicit character/pause/feedback/effect adapters replace dash's hard dependency on global managers in the development actor. Scoped completion and weapon cleanup retire cancelled work safely. Fifteen new headless groups pass, including seven-character costs/impulses and independent keyboard/gamepad dash. All 70 original dash and 14 status cases still match; prior ability clock/ownership/scene/launcher checks pass. Concrete perk bodies and full combat remain unfinished. No new native build/control test; batch 52 remains the latest native two-player smoke.
Latest planning: batch 59 records the broader ability-module design, including shields/assets, carriers/summons, stat conditions, time/count meters, ordered triggers, child attacks, pickup/evolution and HUD integration. All 101 ability types have a lexical discovery index; 92 have literal enum sites across 17 runtime files. This is source/design evidence, not catalog-wide runtime acceptance. Owner clarification now prioritizes completing the dash registration/owned activation-cooldown path with a real existing module before further adapter-only extractions. The contract records hook publication requirements and cooldown policies; these are planned APIs, not newly implemented registration.
Current workflow: plan the complete player-system overhaul first, then implement it and the connected changes. AbilityHolder is one part of that work. Discuss newly discovered or better approaches with the owner before adopting a different agreed design. The owner has asked to defer tests for now while implementing the broader changes. Record future work as unverified until compilation, focused checks and gameplay/platform qualification resume. Keep implementation and documentation commits separate. The existing dash perk list and concrete abilities still need migration to the agreed registration design. Dedicated GAME-01 investigation, new menu/redesign, remapping/four-player layout work and unrelated features remain deferred.
The owner further specified a two-part player stat design: one responsibility holds base/final player stats; a central calculation explicitly lists the ability and other sources affecting each stat. Ability modules own their state, which the calculation reads. A new chat can start from the continuation handoff. The earlier goal in this chat is paused and its wording predates this direction; use the current plan rather than assuming autonomous goal work is running.
Scope¶
Rebuild intertwined gameplay responsibilities and make characters/enemies/stages straightforward to author using explicit data, prefab wiring and validated runtime contracts. Owner clarification on 2026-10-26: plan up to four slots, with P1 keyboard or gamepad and P2–P4 gamepads only; explicitly assign one device per slot and add persistent keyboard/gamepad button remapping through Unity's Input System. These are approved planned extensions; the current implementation/baseline remains one/two-player. Unrelated redesign/features and the Godot rewrite remain deferred. A development dummy stage/enemy is authorized as a verification fixture, to be implemented after the design gate using the shared gameplay runtime. The owner added one shared gameplay scene configured by stage ScriptableObjects/environment composition (IDEA-20) and event-bus planning (IDEA-21). Current GameEvents already supplies static events; typed ownership/lifetime migration remains to design and implement.
Inventory and initial source review are recorded in the cleanup audit, whose initial CSV covered 227 project C# files and now covers all 293, including the added verification/runtime scripts. Whole-file inventory is not full semantic review or measured optimization evidence. The plan owns dependency order; the issue register owns known defects. The core contracts now support the narrow first lifecycle implementation; affected source/binding checks and the grouped verification workflow apply to later migrations.
Batch 24 is the last player-verified checkpoint for the scenarios recorded in its evidence; it is not a verified full playthrough. Batch 25 contains an incomplete Tutorial menu migration: focused checks pass 6/6, but its trial player predates the final Credits focus correction. Its remaining player verification is parked by the owner-directed change in work order. Preserve its code/evidence; decide retain/rework when shared systems reach Tutorial integration. Previous repairs are useful behavior evidence and are not mandatory architecture for the rebuild.
Historical owner update 2026-10-27: the original small verified-batch cadence and automatic goal workflow were later superseded by grouped work, planning first and the present test deferral above. Preserve normal saves, unrelated edits, unresolved audio changes and archived tooling evidence. No numerical quota/token budget has been specified.
Dedicated work on the reported one-minute main-menu freeze remains deferred until the owner resumes it. Local validation target is Linux IL2CPP; production Windows IL2CPP is built/tested on the other PC. December 2026 was the earlier release target; the expanded rebuild has no verified estimate yet. Re-estimate after design and the first implementation slice, without silently cutting scope or promising the date.
The documentation process explains how to turn memories into verified findings/contracts. Design ideas remain deferred except the promoted assignment/four-player/remapping scope and shared-scene/event architecture planning. Existing opt-in bounded diagnostics and regression evidence remain available; see runtime diagnostics. No telemetry service or new public feature is included.
Owner-supplied business context: Steam Early Access since March 2024, $4.99, 81% positive across 53 reviews, approximately $160/month, one developer, no budget. These figures were not independently checked and are not release acceptance criteria.
Repository evidence¶
| Item | Verified state |
|---|---|
| Required Editor | Unity 6000.2.8f1, revision c9992ac36c34, from ProjectVersion.txt. |
| Branch | dev-0.9.0-bootloader, tracking origin/dev-0.9.0-bootloader. Local and remote were aligned at recovery; check live refs rather than relying on historical ahead counts. |
| Checkpoint | Latest reviewed implementation: 56f764c9 (batch 58). Code and evidence are committed separately. Verify live local/upstream refs when resuming. |
| Latest commit affecting the Unity project | 56f764c9 connects assigned dash to owned ability work in the development actor and extracts explicit dash adapters. Legacy concrete effects and production input/ownership remain compatibility boundaries. Production scenes retain their legacy input adapter. The pre-audit baseline remains 8ef1d91a (2026-01-20); no revision is certified as the Steam public build. |
Local main |
eeea863a. The branch-to-main difference includes substantial earlier Unity changes, not just HEAD's documentation. |
| Release identification | No Git tags. No verified mapping from the Steam public build/depot to a commit. Neither main nor HEAD is certified as the shipped source. |
| Existing workspace changes | Earlier stabilization/planning through batch 29 is published. Documentation-only dd0a666b collects planning batches 30–34 before implementation, as requested by the owner. It and Plastic cleanup 026941da were initially committed locally without a push and are now included in verified remote checkpoint 224ef2d9. The 78 implementation paths from batches 35–45 are now committed in twelve separate implementation/fix commits; their documentation/evidence is committed separately. The only excluded working-file changes are the unresolved audio deletions and generated Addressables metadata listed below; verify live refs/status on resume. On 2026-10-26 the owner confirmed Plastic is no longer used and approved removing/ignoring its root workspace metadata. The four tracked .plastic entries are intentionally retired; remaining local metadata/backups/log were archived under .git/codex-recovery/ and /.plastic/ is ignored. The unresolved Assets/Audio/Ability_Lightning_whip.wav plus .meta deletions and untracked Assets/AddressableAssetsData/Linux.meta remain untouched. The earlier URP status-only entry was refreshed after confirming its filtered content equals HEAD. |
| Version metadata | Global PlayerSettings says 0.8.2; Windows LZ4HC profile overrides it with 0.9.0. See the issue register before choosing release metadata. |
Implementation checkpoints¶
The owner requested one commit per implementation batch. Verified implementations are saved in dependency order, with separate implementation and focused fix commits:
| Batch | Local commit | Scope | Existing verification |
|---|---|---|---|
| Batch 35 | 59ca1d6e |
Run lifetime and participant teardown | 9/9 Editor checks; exit0. |
| Batch 36 | 5358ab27 |
Shared lifecycle scene and development launcher | 7/7 import/Play Mode groups; exit0. |
| Batch 37 | 936d7c76 |
Slot/device ownership and Input System 1.17.0 | 9/9 simulated-device groups; exit0. |
| Batch 38 | 28fbaad1 |
Action sessions and gameplay/reward command routing | 8/8 simulated-device groups; exit0. |
| Batch 39 | a173274d |
In-memory binding profiles and legacy conversion | 9/9 Edit Mode groups; exit0. |
| Batch 40 | 889a73f6 |
Blocked-session profile application and reversible drafts | 9/9 new + 8/8 prior simulated-device groups; both exit0. |
| Batch 41 | 70a99ce1 + 1254c178 |
Device-owned capture and opening-event correction | 10/10 new + 9/9 draft groups; both exit0. |
| Batch 42 | c947f248 |
Full-config document/file adapter | 10/10 Edit Mode groups with disposable Linux files; exit0. |
| Batch 43 | e948199b |
Control-preset compatibility and read-only loaded application | 10/10 new + 10/10 persistence groups; both exit0. |
| Batch 44 | 1500ff94 |
Audio/locale loaded application and explicit first-run screen initialization | 8/8 new + 7/7 settings-screen groups; both exit0. |
| Batch 45 | 248f4049 |
Production config document ownership, caller compatibility and writer guard | 10/10 new + 34/34 regression groups; five processes exit0. |
| Batch 46 | No new implementation; reuses 248f4049 |
Linux IL2CPP config/startup verification | Build exit0; two natural interactive runs and four scoped startup probes. |
| Batch 48 | edc36af2 |
Canvas-relative slide travel | 6/6 geometry + 7/7 animation/pause groups, exits0; Linux IL2CPP build/player at two client sizes. |
| Batch 49 | be81418a |
Explicit character setup and owned prefab mount | Original 15/15 capture; 22/22 standalone comparison groups; Linux IL2CPP one/two-player setup and natural exit. |
| Batch 50 | 7054e7a1 |
Owned player preparation and development preview | 13/13 GPU/lifecycle + 22/22 character + 7/7 scene groups; Linux IL2CPP two-player smoke/natural exit. |
| Batch 51 | c19ef425 |
Measured keyboard sampling and held-direction metadata | 8,220 original observations; exact 2,967-boundary replay; 9/9 new + 8/8 prior input groups, exits0. |
| Batch 52 | 7df4717f |
Shared motor and session-owned movement | 11 GPU/scene + 9 keyboard + 8 session + 22 character groups; live virtual-input equality; native two-player movement/reward/return/quit. |
| Batch 53 | 6f770fb8 |
Motion constraints and callback ownership | 10 boundary + 10 motor groups, headless; native integration pending. Grouped workflow replaces repeated full-control checks. |
| Batch 54 | a86b4742 |
Stat projection and resource rules | 217 original stat cases, 14 original setup cases and six resource groups; headless, full integration pending. |
| Batch 55 | 50a33027 |
Ordered damage and death/revive boundaries | 28 original damage/status + four revive cases; eight pipeline + two callback groups; headless, live integration pending. |
| Batch 56 | 41f13af2 |
Actor dash and shared status owners | 70 original dash + 14 status cases; ten ownership/reset groups; damage/life regression; headless, full integration pending. |
| Batch 57 | ef1440f2 |
Per-player ability state and owned work | 16 original clock cases, 14 ownership groups, shared-scene and seven-character handoffs, launcher regression; headless, effect/input wiring pending. |
| Batch 58 | 56f764c9 |
Assigned dash and resource-clock composition | 15 new groups; 70 original dash + 14 status cases; ability/scene/launcher regression; headless, broader combat pending. |
| Batch 59 | Documentation only; implementation remains 56f764c9 |
Broader ability-module design and discovery index | Source/serialized-reference and documentation checks; no Unity run or new gameplay acceptance. |
Each implementation has a separate evidence/documentation checkpoint under the commit workflow. Before publishing, verified source hashes are compared with staged blobs; expensive checks are reused when their sources and scope remain applicable. Earlier publication/DNS and recovery notes are historical and remain in their batch records. The current workflow fetches, reconciles safely, normally pushes and verifies remote identity after each checkpoint. Unresolved audio deletions and generated Addressables Linux metadata remain excluded.
GitHub Desktop lock recovery · 2026-10-26¶
The real index was readable with a valid checksum, 7,759 entries and no staged changes. The old 655,360-byte index.lock was unchanged, unused and malformed: its checksum failed and Git could not parse it. Under the owner's explicit repository-repair request, both files, refs, status and a working-file manifest were backed up to .git/codex-recovery/index-lock-20261026T031015Z/; the broken lock was moved there intact. A mixed reset aligned branch/index to the verified pushed descendant eda876e3, preserving working files. No hard reset, checkout, deletion of recovery data or force push was used.
A separate empty lock appeared afterward; its origin was not established. After confirming it was stable and unused, it was archived separately. A normal scoped index write then succeeded, and subsequent status checks left no lock. All 7,835 tracked/untracked path states, file bytes and modes matched the pre-repair manifest. There were no staged changes and local/upstream divergence was 0/0. GitHub Desktop itself was not visually exercised; refresh it after recovery. Pending unrelated files above are expected, not evidence that the lock remains.
The canonical personal Git checkpoint skill now includes this user-authorized recovery procedure and distinguishes remote publication from local branch/index synchronization. Recovery copies stay local under .git, outside commits.
Working base¶
Continue maintenance on the existing branch while preserving its history. This is a working choice, not a claim that HEAD equals the Steam build. The decisive evidence remains a runtime-affecting comparison with a verified shipped source revision, including scenes, prefabs, assets, settings, and dependencies. Reconsider the base if that evidence reveals substantial untested changes that are cheaper to exclude than validate.
Boundaries of this audit¶
The findings combine direct source/settings inspection with clearly marked legacy-document leads. The reported Steam/Windows freeze has not been reproduced. Batches 12–16 verify local logo-skip recovery, early Meadow gameplay, pause/resume, retry, and repeated arena return. Batch 17 additionally reaches a visible Steam-unavailable death result and writes matching local progress; another process enters its native save-load path. Batch 20 verifies Meadow result No/Back/focus, actual game-over retry and MainMenu return, and Page keyboard interaction ownership. Batch 21 additionally repairs and player-verifies MainMenu quit/corner Exit, safe cancel focus, repeated interaction, and actual application exit. Settings/Database, other navigation, and later-stage migration remain incomplete. Batch 18 repairs the owner-reproduced non-pausing, unselectable level-up rewards (GAME-02): 17/17 reward checks and 7/7 pause checks pass, and the Linux player verifies a naturally earned one-player reward, keyboard selection/confirmation, damage application, and resumed gameplay. Other reward types in real play, repeated rewards/runs, and co-op remain acceptance work. No complete playthrough, physical-controller interaction, save migration, or Steam public-build validation has passed. Command-line results are recorded separately in the tooling reference. The issue register distinguishes source defects, reported symptoms, and risks that need runtime or content-reachability checks.