docs: mark simulation architecture gate complete
- Update ACTION_SYSTEM_ARCHITECTURE.md to describe the active-position contract and visual lifecycle proof - Mark BUILD_IN_PUBLIC_PLAN.md systems-gate section complete - Mark LEARNING_ROADMAP.md architecture-gate section complete and renumber post-gate implementation sequence - Update PROJECT_CONTEXT.md immediate-milestone section to reflect completed gate and next food-loop milestone - Update SIMULATION_STATE_SCHEMA.md with NPCStateRecord v2 details - Update ADR 0001 checklist to mark active-position sync done
This commit is contained in:
@@ -63,16 +63,22 @@ targets, and translates presentation callbacks into simulation transitions.
|
||||
Further decomposition should follow measured pressure rather than splitting it
|
||||
into managers for their own sake.
|
||||
|
||||
## Remaining architecture-gate gap
|
||||
## Active-position contract
|
||||
|
||||
The resolver currently asks WorldViewManager for a visual's position at target
|
||||
request time. SimNPC also stores a position, but active movement is not yet
|
||||
synchronized back through an explicit authority contract.
|
||||
NpcVisual emits active position changes after successful movement.
|
||||
WorldViewManager forwards those facts through
|
||||
`SimulationManager.synchronize_npc_position()`. Arrival, navigation failure,
|
||||
and visual unload also perform a final synchronization.
|
||||
|
||||
The next phase must:
|
||||
SimNPC stores both authoritative position and the resolved travel destination.
|
||||
The destination is versioned simulation state, so reloading a visual resumes
|
||||
the same route request without rerolling wander, resolving another resource, or
|
||||
changing a reservation.
|
||||
|
||||
- define when active position is written to simulation state;
|
||||
- preserve the last authoritative position when a visual unloads;
|
||||
- spawn a reloaded visual from that position;
|
||||
- prove visual unload/reload does not change action, target, reservation, or
|
||||
position state.
|
||||
`tests/npc_visual_lifecycle_test.gd` proves that visual unload/reload preserves
|
||||
action, target ID, travel destination, resource reservation, position, and
|
||||
state checksum.
|
||||
|
||||
Unloaded NPCs do not yet resolve abstract travel time; they remain in their
|
||||
current task state until an active visual or a future simulation-LOD travel
|
||||
system advances them.
|
||||
|
||||
Reference in New Issue
Block a user