fix(navigation): stabilize GramPilot autonomous grid navigation and Qdrant persistence

- Hardened `NavigationKnowledge` and `TelepathicEngine` to prevent premature blacklisting on high-latency grid taps by returning `None` (inconclusive) when grid markers are still present.
- Updated `_execute_action` in `goap.py` to respect inconclusive verification states and avoid polluting the blacklist.
- Refined `Adaptive Snap` in `timing.py` to detect `ProgressBar` loading spinners, extending timeouts for slow connections.
- Prevented brittle Adaptive Snap `wobble` routines from firing while the bot is still trapped on the Explore Grid.
- Stabilized Qdrant collections by converting destructive delete-only wipes into safe `wipe_collection` routines that instantly recreate the index.
- Maintained 100% TDD pass-rate by aligning E2E grid navigation tests with the new inconclusive states.
This commit is contained in:
2026-04-24 13:48:27 +02:00
parent 30724d3c03
commit f1590631a1
10 changed files with 199 additions and 39 deletions

View File

@@ -166,10 +166,10 @@ class TestVerifySuccessExploreGrid:
just didn't register; it doesn't mean the mapping is wrong.
"""
def test_verify_success_returns_false_when_still_on_grid(self):
def test_verify_success_returns_none_when_still_on_grid(self):
"""
If we tapped a grid item but the screen still shows the explore grid
(no feed markers), verify_success must return False.
(no feed markers), verify_success must return None (Inconclusive).
"""
engine = TelepathicEngine()
@@ -192,7 +192,7 @@ class TestVerifySuccessExploreGrid:
"""
result = engine.verify_success("first image in explore grid", still_on_grid_xml)
assert result is False, "verify_success should fail when still on explore grid"
assert result is None, "verify_success should be inconclusive (None) when still on explore grid"
def test_verify_success_returns_true_when_post_opened(self):
"""