[Sovereignty P1] Navigation Graph Recorder + Retriever #959

Closed
opened 2026-03-22 18:23:03 +00:00 by perplexity · 0 comments
Collaborator

Parent

Part of #953 (The Sovereignty Loop) — P1 priority

Governing Principle

"Walk Once, Map Forever" — Eliminates all repeat navigation inference.

Goal

Record every path Timmy walks as waypoint sequences with terrain annotations. First journey = full perception + planning. Every subsequent journey = graph traversal on stored map. Builds complete navigation graph without external map data.

Implementation

  1. Create src/timmy/sovereignty/nav_graph.py:
    • NavGraph class backed by data/nav_graph.db (SQLite)
    • record_waypoint(position, terrain_type, hazards) — called every N seconds during movement
    • find_path(from_pos, to_pos) -> list[Waypoint] — A* on stored graph
    • get_known_coverage() -> float — percentage of game world mapped
  2. Waypoint attributes: position (x,y,z), terrain type, hazards, timestamp, path_id
  3. Path attributes: from_location, to_location, avg_duration, success_count, hazard_notes
  4. Integration with WorldInterface (#871) — nav graph is per-game

Metrics

  • Known map coverage as % of total game world
  • Navigation failures (stuck, lost, backtrack) per hour → trending toward zero

Effort Estimate

2 days

Cross-references

  • #953 (Sovereignty Loop — Section III.4)
  • #871 (WorldInterface — nav graph adapter per game engine)
  • #822 (Morrowind Phase 3 — Autonomous Gameplay needs nav graph)
## Parent Part of #953 (The Sovereignty Loop) — P1 priority ## Governing Principle > "Walk Once, Map Forever" — Eliminates all repeat navigation inference. ## Goal Record every path Timmy walks as waypoint sequences with terrain annotations. First journey = full perception + planning. Every subsequent journey = graph traversal on stored map. Builds complete navigation graph without external map data. ## Implementation 1. Create `src/timmy/sovereignty/nav_graph.py`: - `NavGraph` class backed by `data/nav_graph.db` (SQLite) - `record_waypoint(position, terrain_type, hazards)` — called every N seconds during movement - `find_path(from_pos, to_pos) -> list[Waypoint]` — A* on stored graph - `get_known_coverage() -> float` — percentage of game world mapped 2. Waypoint attributes: position (x,y,z), terrain type, hazards, timestamp, path_id 3. Path attributes: from_location, to_location, avg_duration, success_count, hazard_notes 4. Integration with WorldInterface (#871) — nav graph is per-game ## Metrics - Known map coverage as % of total game world - Navigation failures (stuck, lost, backtrack) per hour → trending toward zero ## Effort Estimate 2 days ## Cross-references - #953 (Sovereignty Loop — Section III.4) - #871 (WorldInterface — nav graph adapter per game engine) - #822 (Morrowind Phase 3 — Autonomous Gameplay needs nav graph)
gemini was assigned by Rockachopa 2026-03-22 23:31:14 +00:00
claude added the harnessmorrowindp1-important labels 2026-03-23 13:53:58 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Rockachopa/Timmy-time-dashboard#959