fix(navigation): enforce HD Map pre-checks and resolve test inconsistencies

This commit is contained in:
2026-04-28 13:47:10 +02:00
parent 52c553827f
commit de2a1c104f
8 changed files with 395 additions and 513 deletions

View File

@@ -101,7 +101,18 @@ class GoalPlanner:
if count >= 2: # MAX_RETRIES is 2 in goap
avoid_actions.add(act)
# ── 1. Brain-Driven Decision Making (Primary Strategy) ──
target_screen = ScreenTopology.goal_to_target_screen(goal)
# ── 1. HD Map Pre-Check for Dead Ends ──
# If the topological map KNOWS the target is unreachable due to action_failures,
# we must preempt the Brain from blindly routing into a dead end.
if target_screen and target_screen != screen_type:
route = ScreenTopology.find_route(screen_type, target_screen, avoid_actions=avoid_actions)
if route is None and ScreenTopology.find_route(screen_type, target_screen):
logger.warning(f"🛡️ [HD Map] Target {target_screen.name} is unreachable due to masked edges! Preventing Brain from blind routing.")
return None
# ── 2. Brain-Driven Decision Making (Primary Strategy) ──
# The user explicitly wants the AI to be the primary driver of goals.
from GramAddict.core.navigation.brain import ask_brain_for_action

View File

@@ -369,8 +369,8 @@ class SituationalAwarenessEngine:
args = Config().args
except Exception:
pass
model = getattr(args, "ai_telepathic_model", "qwen3.5:latest")
url = getattr(args, "ai_telepathic_url", "http://localhost:11434/api/generate")
model = getattr(args, "ai_model", "qwen3.5:latest")
url = getattr(args, "ai_model_url", "http://localhost:11434/api/generate")
res = query_telepathic_llm(
model=model,
@@ -459,8 +459,8 @@ class SituationalAwarenessEngine:
args = Config().args
except Exception:
pass
model = getattr(args, "ai_telepathic_model", "qwen3.5:latest")
url = getattr(args, "ai_telepathic_url", "http://localhost:11434/api/generate")
model = getattr(args, "ai_model", "qwen3.5:latest")
url = getattr(args, "ai_model_url", "http://localhost:11434/api/generate")
res = query_telepathic_llm(
model=model, url=url, system_prompt="Strict JSON classifier.", user_prompt=prompt, use_local_edge=True