Replace Chrome-remote-debugging login capture with a cookie-paste import flow
All checks were successful
Deploy / deploy (push) Successful in 25s

Live testing showed the CDP approach still fails hCaptcha even with a
real human clicking through chrome://inspect: the headless Chromium's
own fingerprint (HeadlessChrome user-agent, navigator.webdriver=true)
is what gets flagged, independent of who's driving it. Trying to
disguise that browser to get past bot detection would be captcha
evasion, not a session-handling technique, so that path is dropped
entirely rather than patched further.

New flow: log into MassPrice with an ordinary, non-automated browser
(hCaptcha passes normally), export the session's cookies with a
extension, and paste them into the Session page. import_cookies()
converts the export into Playwright's storage_state shape and verifies
it actually authenticates against the live site before saving it,
so a bad paste never clobbers a working session. This also removes the
now-unnecessary socat proxy / debug port exposure — Chromium's own
CDP port was only ever needed for the dropped approach.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01H6TgffxTvYhqxykAbVQg2v
This commit is contained in:
Barely Removable 2026-08-31 20:10:51 -07:00
parent bec399dd11
commit 48d8bac332
10 changed files with 214 additions and 311 deletions

View file

@ -7,16 +7,6 @@ services:
shm_size: "1gb"
ports:
- "${HOST_PORT:-5057}:5000"
# MassPrice's login is behind hCaptcha, which blocks fully
# automated sign-in — this port reaches (via an in-container socat
# proxy, see automation.py) headless Chromium's CDP debug endpoint,
# so a human can log in via chrome://inspect from their own machine
# (see the Session page / deploy-massprice skill). Maps to 9333,
# NOT Chromium's own 9222 — Chromium's debug port binds loopback-
# only regardless of config, so socat re-exposes it on a different
# internal port. Only listens while a login session is actively
# started from the webui, and only reachable on the LAN.
- "${DEBUG_PORT:-9222}:9333"
volumes:
# Schedules, run history, the rule-name cache, and the saved
# MassPrice login session must outlive `up -d --build`, which
@ -25,6 +15,5 @@ services:
environment:
- LOGIN_PASSWORD=${LOGIN_PASSWORD}
- SECRET_KEY=${SECRET_KEY}
- DEBUG_PORT=${DEBUG_PORT:-9222}
- TZ=${TZ:-America/New_York}
restart: unless-stopped