Marc Mintel 738a59ac8d test: add E2E coverage gate and full lifecycle integration test
Two critical test additions:

1. test_system_full_lifecycle.py — Full A-to-Z integration test:
   Exercises the ENTIRE bot pipeline across 4 screen types (HomeFeed →
   Explore → Post Detail → Profile) with a real InstagramEmulator state
   machine. Validates plugin execution, session state accumulation,
   cognitive stack survival, dopamine session timeout, and post-session
   serialization. This is the single most important test in the suite.

2. test_system_coverage_gate.py — Critical Path Coverage Enforcement:
   Reads coverage_e2e.json and enforces minimum coverage thresholds on
   production-critical modules. Each threshold is tied to a real production
   incident. If persistent_list.py drops below 20% coverage, the build
   fails — because that's exactly how the sessions.json corruption
   bug went undetected.

   Usage: pytest tests/e2e --cov=GramAddict.core \
     --cov-report=json:coverage_e2e.json

   Critical paths enforced:
   - session_state.py (>=50%): serialization crash prevention
   - persistent_list.py (>=20%): persist() path must be tested
   - dopamine_engine.py (>=40%): session timeout logic
   - screen_identity.py (>=60%): screen identification
   - spatial_parser.py (>=70%): UI element parsing
   - intent_resolver.py (>=50%): click decision logic
   - q_nav_graph.py (>=25%): navigation integrity
   - device_facade.py (>=40%): device interface
2026-05-02 21:56:19 +02:00
2026-04-16 18:58:18 +02:00
2026-04-16 18:58:18 +02:00
2026-04-16 18:58:18 +02:00
2026-04-16 18:58:18 +02:00
2026-04-16 18:58:18 +02:00
2026-04-16 18:58:18 +02:00
2026-04-16 18:58:18 +02:00
2026-04-16 18:58:18 +02:00
2026-04-16 18:58:18 +02:00


GramPilot


Full Self-Driving for Instagram.
An autonomous Agentic Engine that navigates the Instagram App like a human.

Originally derived from GramAddict, completely re-architected.

Created by Marc Mintel <marc@mintel.me>


🏎️ What is GramPilot?

GramPilot is not a traditional script. Traditional bots rely on fixed UI locators (like XPaths) or external APIs, causing them to crash with every Instagram update or get banned within days.

GramPilot introduces a Telepathic Full Self-Driving (FSD) approach to UI navigation: It uses a 3-Stage Resolution Cascade backed by CPU Fast-Paths, Ollama Vector Similarity, and OpenRouter LLMs (Gemini/Qwen) to "read" the screen, understand context, and learn new UI layouts asynchronously.

If Instagram updates its app and moves a button, GramPilot doesn't crash. It falls back to its Agentic LLM reasoning, dynamically reasons about the new layout using raw XML structure, clicks the right button, and never hallucinates on that button again.

Core Features

  • 🚫 Zero Limits Configuration: Forget about configuring "max_likes" or "delays". GramPilot uses a Dopamine Pacing Engine to simulate human boredom. If the content isn't interesting, it skips it or ends the session early.
  • 🎯 Mission-Driven Navigation: Say goodbye to abstract goal configurations. Define a strategy (like aggressive_growth or nurture_community) in config.yml, and the Goal Decomposer Engine automatically orchestrates the optimal routing and task allocation using enabled plugins.
  • ⚖️ Active Inference (Shadow Mode): The bot continuously predicts the outcome of its clicks. If it lands on a popup instead of a profile, it registers a "Prediction Error", presses back, and dynamically recalibrates without panicking.
  • ⛩️ Telepathic Engine: A strictly tiered resolution cascade (Keyword -> Vectors -> LLM) that ensures 90% of navigation happens at 0-token cost while maintaining fallback AI resilience.
  • 🧬 Resonance Oracle: The bot only interacts with content that matches a pre-defined persona aesthetic, completely bypassing spam or low-quality content.
  • 🛡️ Honeypot Radome: Instagram plants invisible, 1x1 pixel trap buttons for bots. Our Radome Sensor sanitizes the XML view before the agent ever sees it, mathematically guaranteeing evasion of tracker traps.

🏗️ Project Status (April 2026)

The engine has undergone a massive stabilization refactor to achieve 100% TDD compliance on critical navigation paths.

  • Navigation Reliability: Resolved 'Identity Shadowing' bugs to ensure deterministic detection of OWN_PROFILE.
  • Autonomous Recovery: Hardened the SituationalAwarenessEngine (SAE) to handle 12+ anomaly states including system dialogs and persistent survey modals.
  • Zero-Latency Memory: Optimized Qdrant vector retrieval for sub-second navigational decisions.

🚀 Quick Start

Prerequisites

  • A physical Android device or emulator
  • Python 3.10+
  • adb (Android Debug Bridge) installed and added to your PATH

Installation

  1. Clone the repository:

    git clone https://github.com/marcmintel/grampilot.git
    cd grampilot
    
  2. Initialize Environment & Dependencies:

    python3 -m venv .venv
    source .venv/bin/activate
    pip install -r requirements.txt
    
  3. Start the Engine:

    python3 run.py --config config.yml
    

Note

Unlike legacy bots, GramPilot requires zero maintenance. It will automatically re-learn the UI over time using its integrated Qdrant memory vectors.

Description
No description provided
Readme MIT 14 MiB
Languages
Python 99.7%
Shell 0.3%