Competitor Scout 4.0.1 — Rechecked full extension
Validated: 2026-10-18

PASS — npm test: 728/728 passed; 0 failed, cancelled or skipped.
PASS — npm run validate: manifest paths, assets, UI IDs, CSP and scoped permissions.
PASS — npm run smoke:browser: five real Chromium local HTTP fixture scenarios with mocked Chrome runtime, without live provider lookups.

Browser scenarios
1. Native Bulk: 100 domains, 99 correctly matched DA values including zero, one explicit no-data row, All rows selected.
2. Two batches in one Bulk tab: one native submission per batch. Historical firstcry.com DA 73 is not credited to five new domains. Wakes and reader reinjection do not resubmit.
3. Google: five publishers with purchase offers and a human-verification article title. All five are discovered; valid DA is captured, foreign DA rejected, and only two missing scores need Bulk fallback. The article title does not falsely pause searches.
4. Ahrefs DR: 12 sequential exact-domain jobs in one reused page. One submit each; stale numbers rejected, fresh equal values and zero accepted, disabled controls waited for.
5. Ahrefs traffic: 12 sequential jobs with the same freshness, domain and submission checks.

Confirmed bugs corrected during this recheck
- Organic CAPTCHA discussions no longer trigger false global verification holds. Actual sorry routes and native challenges still pause without automated CAPTCHA interaction. All 232 reader tests pass.
- Dashboard archive updates keep 11 summary fields rather than full snapshots/corrections. A regression with 200 large corrections verifies compact state, live DR zero/traffic 6100 and complete 201-row worker-backed Excel data.
- Explicit unresolved DR retries wait for an allowed API health test rather than a fixed 30-second delay. Tests cover immediate Continue, provider cooldown, failed probes, the actual 30-second timeout callback, disabled/removed keys and active website checks.
- New runs refresh their selected qualification stage before reusing saved rows. DR-only to traffic-enabled runs correctly queue missing traffic. Expired 7-day DR/traffic and 30-day age values restart their gates. Finished snapshots stay unchanged, and old optional backlinks do not discard fresh API DR.

Preserved workflow
One native Bulk DA tab; missing-only batches; exact-domain attribution; partial capture during processing; readable DA beside purchase offers; discovered organic URL retention with honest partial-scan reporting; DR only after DA and age; private multiple keys; three temporary-error API attempts; governed failover; asynchronous recovery; correct website form entry and reading; keyless age and deferred traffic defaults; full memory/CSV/Excel across runs.

Large-batch integration
50 keywords and 100 eligible sites finish with 100 correct API DR values, 100 traffic captures and 100 qualified records. No DR website tab opens. Injected failures include authentication rejection after 10 domain successes, credential quota after 20, account 429 and temporary 502. Health probes count separately. A new run retains all 100 saved rows and exports.

Synthetic storage profile
Baseline: the 3.0.6 full-history implementation. Current release: the same 50-keyword/100-site workload with bounded API recovery in 4.x. This is not a live browser timing guarantee.
Archive reads: 776 → 16.
Archive writes: 1990 → 16.
Read bytes: 640,684,485 → 246,458,867.
Written bytes: 1,630,737,553 → 605,245,439.
Live captures remain immediately durable; full archive copies use checkpoints.

Validation limits
Administrator policy blocks loading unpacked extensions in this cloud Chromium. Live Google, Keywords Everywhere and Ahrefs account integration remains unverified. Browser/API tests use controlled fixtures. Provider availability and allowances apply. Ahrefs docs and Keywords Everywhere homepage requests returned proxy 403. Buster listing links came from its publisher README. No unlimited API allowance or second registry endpoint for every domain is promised. Companions install separately; CAPTCHA completion remains manual.

Runtime and installation
Node.js 24, Python 3, Chromium 154. No npm dependencies or build step.
Update: export a memory backup, stop research, replace files in the same installed folder, then Reload at chrome://extensions. Keep the extension installed.
New users: enable Developer mode, choose Load unpacked and select the folder containing manifest.json.
See INSTALL.html, README.md and WORKFLOW-CHECK.txt.
