Skip to content

Main#1

Merged
lifefloating merged 34 commits into
mainfrom
main-v1-arch
Apr 20, 2026
Merged

Main#1
lifefloating merged 34 commits into
mainfrom
main-v1-arch

Conversation

@lifefloating
Copy link
Copy Markdown
Owner

No description provided.

lifefloating and others added 30 commits April 16, 2026 21:52
Fixes appid=2046626712 failure (click_image_uncheck returned but slide
pipeline assumed fg_elem_list). Migrates base_url to
turing.captcha.qcloud.com, adds pure-function classifier, registry-based
pipeline dispatch, and a GPT-5.4 vision solver for image_select. Ports
slide and icon_click into the new layout and deletes _legacy_solver.py.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Evidence from artifacts/harvest/compare.json showed two issues with the
original rules: fg_binding_list (not fg_elem_list) is the exclusive
slide marker, and shape_click's instruction is "请依次点击:" with empty
post-colon text, which would have collided with icon_click. Rule 4 now
excludes shape_click via ins_elem_cfg absence and non-empty-after-colon
check. Also documents instruction smart-quote stripping for the LLM
prompt and fixes elem_id handling to be a hardcoded empty string.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
13 tasks covering settings/env migration, classifier module, pipeline
package with registry, LLM vision client, slide/icon_click port, legacy
cleanup, and end-to-end manual verification. Each task has file paths,
full code, exact commands, expected output, and a commit step.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Live E2E testing against appid=2046626712 proved:
- turing.captcha.qcloud.com/cap_union_prehandle → HTTP 403
- turing.captcha.qcloud.com/cap_union_new_getcapbysig → HTTP 200 with 0 bytes
- t.captcha.qq.com for all three endpoints works: prehandle (200, valid
  JSONP), image download (200, 63 KB JPEG), verify POST (200, parseable).

Removes the prehandle_url / base_url split (introduced earlier today
when we were mid-diagnosis) and points everything at t.captcha.qq.com.
This restores the domain used in the user's original (pre-refactor)
working log for the prehandle/image calls. verify already wrote back to
the same host, so nothing to change there.

Tencent still rejects verify with errorCode=9 — that's TDC/fingerprint
level detection, not an endpoint issue. Separate follow-up.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…ory handling

- Add event_dispatch.js to manage mouse event simulation for slider, click, and multi-click trajectories.
- Introduce invariants.js to handle server-rejected fields for TDC data.
- Create profile.js to define a fingerprint profile for jsdom based on a real Chrome environment.
- Enhance tdc_executor.js to orchestrate TDC.js execution, including fetching scripts and dispatching trajectories.
- Update nodejs_jsdom.py to support new trajectory structure and improve error handling.
- Remove scrapling_browser.py as it is replaced by the new Node.js based approach.
- Add trajectory building functions to generate realistic click and image selection trajectories.
…s and update solve_pow to support min/max sleep times
…ons; add TCaptcha 2.0 loader example and success image
Copy link
Copy Markdown

@sourcery-ai sourcery-ai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @lifefloating! 👋

Your private repo does not have access to Sourcery.

Please upgrade to continue using Sourcery ✨

Copy link
Copy Markdown
Owner Author

@lifefloating lifefloating left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK

@lifefloating lifefloating merged commit 699b12b into main Apr 20, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant