Marc Mintel
9c6f80de9d
test: add 63-test GOAP navigation engine suite
Production bug 2026-05-02 22:30: Bot got trapped in a restart loop:
1. 'tap reels tab' → VLM clicked wrong element → EXPLORE_GRID
2. After 2 failures → action masked
3. HD Map: 'REELS_FEED unreachable due to masked edges'
4. GOAP: 'completely trapped' → force Instagram restart
5. Repeat forever
ALL TESTS WERE GREEN because NONE of this logic was tested.
NEW: test_system_goap_navigation.py — 63 tests across 8 contracts:
CONTRACT 1: Screen Identification from XML (16 tests)
- Home, Explore, Reels, Profile, DM, Story, Modal, Foreign App
- Post detail vs Home feed (action_bar discriminator)
- Reels full-screen (no tab bar, structural markers only)
CONTRACT 2: Available Actions Extraction (4 tests)
- All 5 tab actions present on home feed
- Screen-specific actions (first post on Explore)
CONTRACT 3: HD Map BFS Routing (7 tests)
- Direct routes, multi-step routes, already-there
- Masked edges, all-edges-masked → None
CONTRACT 4: Goal → Target Screen Mapping (14 tests)
- All navigation goals + non-navigation goals return None
CONTRACT 5: Action Failure Masking (4 tests)
- Mask after MAX_RETRIES, no mask under threshold
- Full production chain reproduction
CONTRACT 6: Goal Achievement Detection (9 tests)
- Screen-based, context-based, non-nav goals
CONTRACT 7: Structural Action Protection (4 tests)
- HD Map actions are structural, random actions are not
CONTRACT 8: Step-Aware Navigation Validation (5 tests)
- Expected screen for action, mismatch detection
2026-05-02 22:34:45 +02:00
..
2026-05-02 18:59:35 +02:00
2026-04-16 18:58:18 +02:00
2026-05-02 18:59:35 +02:00
2026-05-02 18:59:35 +02:00
2026-04-28 17:53:47 +02:00
2026-04-29 15:42:03 +02:00
2026-05-02 18:59:35 +02:00
2026-05-02 18:59:35 +02:00
2026-04-29 00:06:23 +02:00
2026-05-02 18:59:35 +02:00
2026-05-02 18:59:35 +02:00
2026-05-02 19:57:33 +02:00
2026-05-02 18:59:35 +02:00
2026-05-02 18:59:35 +02:00
2026-05-02 18:59:35 +02:00
2026-04-28 23:09:15 +02:00
2026-05-02 18:59:35 +02:00
2026-04-29 01:39:10 +02:00
2026-04-29 01:39:10 +02:00
2026-04-28 23:09:15 +02:00
2026-04-28 23:09:15 +02:00
2026-04-29 01:39:10 +02:00
2026-04-29 00:55:59 +02:00
2026-05-01 23:41:51 +02:00
2026-05-02 21:56:19 +02:00
2026-05-02 21:56:19 +02:00
2026-05-02 22:34:45 +02:00
2026-05-02 20:15:35 +02:00
2026-05-02 22:28:03 +02:00
2026-05-02 18:59:35 +02:00
2026-04-30 12:10:44 +02:00
2026-05-02 18:59:35 +02:00
2026-05-02 18:59:35 +02:00
2026-05-02 18:59:35 +02:00
2026-05-02 18:59:35 +02:00
2026-05-02 18:59:35 +02:00
2026-05-02 18:59:35 +02:00
2026-05-02 18:59:35 +02:00
2026-04-30 11:20:35 +02:00
2026-05-02 18:59:35 +02:00
2026-05-02 18:59:35 +02:00
2026-05-02 18:59:35 +02:00
2026-05-02 18:59:35 +02:00
2026-05-02 18:59:35 +02:00
2026-05-02 18:59:35 +02:00
2026-05-02 18:59:35 +02:00
2026-04-30 12:10:44 +02:00