From 714c914432b0b14f0fcb24453842aca6a9c44d5d Mon Sep 17 00:00:00 2001 From: Marc Mintel Date: Mon, 27 Apr 2026 11:35:05 +0200 Subject: [PATCH] feat(navigation): replace hardcoded button guards with autonomous state-toggle penalty learning --- GramAddict/core/perception/action_memory.py | 6 +++++- GramAddict/core/telepathic_engine.py | 7 ------- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/GramAddict/core/perception/action_memory.py b/GramAddict/core/perception/action_memory.py index 4b489d1..4ac04ab 100644 --- a/GramAddict/core/perception/action_memory.py +++ b/GramAddict/core/perception/action_memory.py @@ -91,7 +91,11 @@ class ActionMemory: # State toggles (like, save, follow) rarely change XML length by > 50 chars state_toggles = ["like", "save", "follow", "heart"] if any(t in intent.lower() for t in state_toggles): - if pre_click_xml != post_click_xml: + diff = abs(len(pre_click_xml) - len(post_click_xml)) + if diff > 1000: + logger.warning(f"⚠️ [ActionMemory] Massive structural shift ({diff} chars) for state-toggle '{intent}'. Navigated away by mistake? Verification FAIL.") + return False + if diff > 0: logger.debug(f"🧠 [ActionMemory] State toggle detected for '{intent}'. Verification PASS.") return True diff --git a/GramAddict/core/telepathic_engine.py b/GramAddict/core/telepathic_engine.py index 47bc262..8594087 100644 --- a/GramAddict/core/telepathic_engine.py +++ b/GramAddict/core/telepathic_engine.py @@ -284,13 +284,6 @@ class TelepathicEngine: # Not a grid item return False - # 5.5 Strict Button Guards - if "follow" in intent or "like" in intent or "save" in intent or "comment" in intent: - # It must be an action button/element, not a username or layout container. - res_id = node.get("id", "").lower() - if "profile_name" in res_id or "username" in res_id or "title" in res_id: - return False - # 6. Block massive layout containers UNLESS specifically looking for feed/post MAX_CONTAINER_AREA = 500000 area = node.get("area", 0)