Commit Graph

4 Commits

Author SHA1 Message Date
b36dde77d8 fix(navigation): harden autonomous perimeter guards against Play Store trap 2026-05-03 18:29:25 +02:00
cd6cecbe27 test: add proactive system integrity contracts
Replaces reactive bug-specific tests with 4 structural CONTRACTS
that make entire categories of bugs impossible:

1. Serialization Contract (13 parametrized hostile payloads):
   Proves SessionStateEncoder NEVER crashes regardless of what
   gets injected onto args (datetime, lambda, bytes, inf, nan, etc.)

2. Persistence Contract:
   Forces the REAL persist() path by removing PYTEST_CURRENT_TEST guard.
   Validates write → read round-trip with poisoned sessions.

3. Production Parity Contract:
   Scans ALL GramAddict source for pytest/test-mode divergence guards.
   Any unaudited divergence point fails the build. New guards require
   explicit justification in KNOWN_DIVERGENCES registry.

4. Import Integrity Contract:
   Imports every single GramAddict module to catch syntax errors,
   circular imports, and missing dependencies at test time.

This addresses the root systemic failure: tests were running in a
parallel universe where serialization was silently skipped, allowing
a datetime injection to corrupt sessions.json and kill production.
2026-05-02 20:15:35 +02:00
2b992cf2a8 test(RED): expose story view detection gap — ScreenIdentity returns UNKNOWN
Bug evidence from run 2026-04-27_23-46-57:
- Bot started on a story (reel_viewer_media_layout, 'Like Story')
- ScreenIdentity classified it as UNKNOWN
- GOAP chose 'scroll down' 4 times (stories don't scroll)
- Bot was trapped in infinite scroll loop

Captured real XML fixture: story_view_full.xml
1 test FAILS (screen_identity → UNKNOWN instead of STORY_VIEW)
2026-04-27 23:51:04 +02:00
7b8daa7670 fix: enforce quoted intent for follow to prevent VLM hallucination 2026-04-27 21:47:40 +02:00