diff --git a/implementation_plan.md b/implementation_plan.md index 2e27b4a..85a1d72 100644 --- a/implementation_plan.md +++ b/implementation_plan.md @@ -18,6 +18,7 @@ Implement the core logic for the "Headless-Plus" architecture: - Launch Camoufox (via Playwright) with specific `user_agent` and `viewport`. - `initialize()`: Set up browser context. - `extract_session_state()`: Gather cookies, storage, and fingerprint info into `SessionState`. + - **Safety**: Implement `__aenter__` and `__aexit__` for aggressively reclaiming memory (close context/page). ### Extractor Tier #### [NEW] [src/extractor/client.py](file:///home/kasm-user/workspace/FAEA/src/extractor/client.py) @@ -29,11 +30,8 @@ Implement the core logic for the "Headless-Plus" architecture: ### Testing Infrastructure #### [NEW] [tests/e2e/test_handover.py](file:///home/kasm-user/workspace/FAEA/tests/e2e/test_handover.py) -- A full flow test: - 1. Instantiate `CamoufoxManager` -> Navigate to Mock Server -> Extract State. - 2. Save State to Redis. - 3. Instantiate `CurlClient` with State -> Request Mock Server. - 4. **Verify**: Mock Server sees matching `User-Agent` and (if possible) consistent TLS signatures. +- **TLS Verification**: The automated test will likely use a local mock for Header/Cookie verification. +- **Manual JA3 Verification**: A separate script `tests/manual/verify_tls.py` will be created to hit an external service (e.g., `https://tls.peet.ws/api/all`) to print and compare JA3 hashes from both Camoufox and CurlClient. This addresses the "High Risk" feedback by acknowledging external dependency for true TLS verification. ## Verification Plan