fix(captcha): retire post-solve read inference - #2720
Conversation
|
@alectimison-maker is attempting to deploy a commit to the esokullu's projects Team on Vercel. A member of the Team first needs to authorize it. |
There was a problem hiding this comment.
Pull request overview
Retires accessibility-tree inference from CAPTCHA post-solve verification.
Changes:
- Uses correlated token and active-frame state for clearance.
- Routes recurring challenges to manual completion.
- Migrates legacy persisted gate state and updates regressions.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
src/chrome/src/agent/agent.js |
Updates Chrome CAPTCHA gate transitions. |
src/firefox/src/agent/agent.js |
Mirrors Chrome gate behavior. |
test/run.js |
Revises CAPTCHA regression coverage. |
馃挕 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| if (existing?.status === 'cleared') { | ||
| return { gate: null, loopCheck }; | ||
| } |
There was a problem hiding this comment.
Fixed in 06feb2a. A cleared candidate-backed gate now revalidates before mutation; when the correlated token is missing or detection is inconclusive, it transitions to verification_pending and removes the stale responseTokenPresent / clearedByResponseToken fields. A subsequently visible active frame still routes to manual completion. I added the same regression coverage for Chrome and Firefox.
| if (existing?.status === 'cleared') { | ||
| return { gate: null, loopCheck }; | ||
| } |
There was a problem hiding this comment.
Fixed in 06feb2a. A cleared candidate-backed gate now revalidates before mutation; when the correlated token is missing or detection is inconclusive, it transitions to verification_pending and removes the stale responseTokenPresent / clearedByResponseToken fields. A subsequently visible active frame still routes to manual completion. I added the same regression coverage for Chrome and Firefox.
1347bcf to
06feb2a
Compare
Summary
Why
This is the next focused cleanup from #505 after #2637 began consuming exact per-widget token state. Dialog disappearance, tree pagination, and read depth should no longer decide whether an automatically solved widget cleared.
The remaining English-matcher consolidation and full-page Cloudflare managed-challenge detection stay out of this PR.
Verification
node test/run.js: 1564 passed, 1 inherited failure (package.jsonis27.1.5, latest changelog entry is27.1.0)npm run test:security: 60/60 passednpm run test:fixtures: 143/145; the same Chrome/Firefox selection-dialog failures reproduce on a cleanupstream/mainworktreenpm run test:webmcp: both protocol and extension smoke assertions print PASS; cleanup then hits the existing timeout, reproduced unchanged on cleanupstream/mainnpm run build:zip: Chrome, Edge, and Firefox packages built successfullyPart of #505.