Activate the Patchright fallback and align the self-learning host key.
- Patchright activated (
engine/templates/package.json): addedpatchright(^1.61.1). The real-Chrome template already preferredrequire('patchright')but the package was never declared, so it always fell back to playwright-extra+stealth. Patchright is a Playwright-API-compatible drop-in that patches the CDPRuntime.enable(console-attach) leak that modern Cloudflare/DataDome-class detection keys on. Verified end-to-end (automation:patchright, HTTP 200, real HTML). Falls back to playwright-extra+stealth → plain playwright when absent (all onchannel:'chrome'). - Learning host-key fix (
engine/learning.py):key_forusednetloc(kept port + userinfo) while the session pool and browser profile dir key onhostname. Switched tohostnameso learned route, warm session, and profile share one key. - Docs: install instructions updated to local
engine/templatesnpm install withnpx patchright install chrome.
Full engine regression 59/59; bias_check clean.