Add Phase 4 Final Bugs Specification and Tests
- Introduced a new architecture specification for Phase 4 final bugs, detailing scope, decisions, runtime data contracts, action roles, execution lanes, speech ownership, and signal flow. - Implemented changes in `scripts/action_registry.gd`, `scripts/action_editor.gd`, `scripts/sandbox_stage.gd`, `scripts/stage_gizmos.gd`, `scripts/stickman_factory.gd`, and `scripts/stickman_rig.gd` to address identified bugs. - Created a new test suite `tests/test_phase4_final_bugs.gd` to validate the implementation, covering action roles, grid snapping, prop manipulation, reactive runtime lane, spawn pose preservation, and more. - Added a unique identifier for the test file to ensure proper tracking and management.
This commit is contained in:
@@ -192,6 +192,25 @@ Bug 1 is last because it is the largest and touches the most systems. It also be
|
||||
- Bugs 2–8 are diagnosed defects with localized fixes.
|
||||
- Suggested order minimizes risk: local fixes first, cross-cutting refactor last.
|
||||
|
||||
## 14. Final implementation record
|
||||
|
||||
The approved implementation is complete. The runtime behavior is:
|
||||
|
||||
| Area | Final behavior |
|
||||
| --- | --- |
|
||||
| Reactive actions | `StickmanRig` keeps authored actions in the editor queue and runs rule actions in a private lane. Overlay speech runs concurrently in one replaceable slot; Sequential actions cancel the current primary action and continue with the authored future; Takeover actions cancel primary and overlay work before taking control. |
|
||||
| Prop transforms | `SandboxStage` routes the exact mouse event position through `_viewport_to_world()`. `StageGizmos` writes translation/rotation continuously, and frozen `RigidBody2D` props are synchronized through `PhysicsServer2D` during the drag and for three post-release settle frames. |
|
||||
| Grid snapping | Translation snap is based only on the configured grid size. The drag delta is accumulated from the original press, so sub-grid mouse events remain smooth instead of requiring an object-length drag. |
|
||||
| Walk completion | LEFT-facing walks stop on the exact current animation marker/bone frame when the queue reaches the end; no factory-pose restore occurs at arrival. Explicit stage reset (`stop_queue()` + `snap_to_standing()`) restores the captured factory spawn pose. |
|
||||
| Stop/flinch cleanup | Mode exit cancels reaction and recovery tweens, restores captured base rotations immediately, and collision dispatch is PLAY-only so delayed contacts cannot recreate a flinch after STOP. |
|
||||
| Walk To summary | Rule summaries read the waypoint from `params.target` and keep the actor instance id in the top-level `target`, with type guards for malformed/legacy payloads. |
|
||||
|
||||
Validation recorded for this hand-off:
|
||||
|
||||
- Focused Phase 4 final-bugs regression: **81/81 passed**.
|
||||
- Grid regression: **7/7 passed**.
|
||||
- `scenes/sandbox_stage.tscn` headless smoke test: **passed**.
|
||||
|
||||
---
|
||||
|
||||
**End of Phase 4 Bug Fixes — High-Level Plan**
|
||||
|
||||
Reference in New Issue
Block a user