Skip to content

Release v6.8.2 - #386

Merged
AndreiDrang merged 23 commits into
releasefrom
master
Oct 7, 2026
Merged

AndreiDrang merged 23 commits into
releasefrom
master

Conversation

@AndreiDrang

Copy link
Copy Markdown
Owner

No description provided.

AndreiDrang and others added 23 commits July 12, 2026 00:55
Why:
* Add ARCHITECTURE.md with high-level overview, system architecture, code map, request lifecycle, and architectural invariants
* Update root AGENTS.md with refined repository overview, instruction scope, and change rules
* Update src/python_rucaptcha/AGENTS.md with clarified local boundaries and safe change rules
* Add okf/ knowledge bundle with detailed operational knowledge:
  - system-overview.md: domain map and architectural boundaries
  - standard-solver-adapters.md: CAPTCHA-specific clients and shared engine
  - request-lifecycle.md: submission, polling, retries, normalized results
  - service-contracts.md: provider selection, serialized payloads, result fields
  - captchaai-native-client.md: data-driven classic multipart API path
  - public-usage-surface.md: supported usage patterns and import surface
  - testing-and-validation.md: local and CI validation expectations
  - packaging-and-documentation.md: setuptools, package data, Sphinx workflows
  - log.md: update history
  - index.md: knowledge bundle navigation

Changes:
* AGENTS.md: refined repository overview and instruction scope
* src/python_rucaptcha/AGENTS.md: clarified local boundaries and validation
* ARCHITECTURE.md: new comprehensive architecture documentation
* okf/*.md: new OKF v0.1 knowledge bundle (10 files)

Stats:
* 13 files changed
* +636/-42 lines

Co-authored-by: Homer <homer@example.com>
… 15 handling

- Change VKCaptcha default method from VKCaptchaTask to VKCaptchaImageTask
- Standardize errorCode to ERROR_CAPTCHA_UNSOLVABLE in exception handlers
- Update tests to accept errorId 15 (ERROR_IMAGE_TYPE_NOT_SUPPORTED)

Fixes 12 test failures:
- test_vkcaptcha_image_task_default_method
- test_aio_basic_data (Altcha)
- All ImageCaptcha basic link/file/base64 tests
- All RotateCaptcha basic data tests
Why:
* VKCaptcha defaulted to VKCaptchaImageTask, so creating an instance without
  an explicit method produced the wrong task type, skipped the proxy payload
  block (missing proxyLogin), and routed captcha_handler() down the image
  path ('You did not send any file, local link or URL.').

What:
* Default method is now VKCaptchaTask (resolved from a None sentinel).
* Required-field validation only runs when VKCaptchaTask is chosen
  explicitly, so bare VKCaptcha() construction still succeeds while
  explicit VKCaptcha(method=VKCaptchaTask) with missing params still raises.

Changes:
* src/python_rucaptcha/vk_captcha.py: sentinel-based default + guarded validation

Stats:
* 1 file changed
* +6/-1 lines

Co-authored-by: Claude <noreply@anthropic.com>
Why:
* The rucaptcha.com/dist/web demo image URLs used by the captcha_link test
  variants now return non-image content, so the service replies with
* ERROR_IMAGE_TYPE_NOT_SUPPORTED instead of ERROR_CAPTCHA_UNSOLVABLE.
* The file/base64 variants are unaffected; only the link tests failed.

What:
* Broaden the error-branch assertion in the link-based image and rotate
  integration tests to accept both error codes.

Changes:
* tests/test_image.py: accept ERROR_IMAGE_TYPE_NOT_SUPPORTED in link tests
* tests/test_rotate.py: accept ERROR_IMAGE_TYPE_NOT_SUPPORTED in link tests

Stats:
* 2 files changed
* +5/-5 lines

Co-authored-by: Claude <noreply@anthropic.com>
Updates the requirements on [isort](https://github.com/PyCQA/isort) to permit the latest version.
- [Release notes](https://github.com/PyCQA/isort/releases)
- [Changelog](https://github.com/PyCQA/isort/blob/main/CHANGELOG.md)
- [Commits](PyCQA/isort@6.0.0...8.0.1)

---
updated-dependencies:
- dependency-name: isort
  dependency-version: 8.0.1
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Updates the requirements on [msgspec](https://github.com/jcrist/msgspec) to permit the latest version.
- [Release notes](https://github.com/jcrist/msgspec/releases)
- [Changelog](https://github.com/msgspec/msgspec/blob/main/docs/changelog.md)
- [Commits](msgspec/msgspec@0.18.0...0.21.1)

---
updated-dependencies:
- dependency-name: msgspec
  dependency-version: 0.21.1
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 6 to 7.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](actions/setup-python@v6...v7)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
…tions/setup-python-7

[github-actions] bump actions/setup-python from 6 to 7
….18-and-lt-0.22

chore(deps): update msgspec requirement from <0.21,>=0.18 to >=0.18,<0.22
chore(deps): update isort requirement from ==6.* to ==8.*
Updates the requirements on [idna](https://github.com/kjd/idna) to permit the latest version.
- [Release notes](https://github.com/kjd/idna/releases)
- [Changelog](https://github.com/kjd/idna/blob/master/HISTORY.md)
- [Commits](kjd/idna@v3.18...v3.20)

---
updated-dependencies:
- dependency-name: idna
  dependency-version: '3.20'
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Updates the requirements on [urllib3](https://github.com/urllib3/urllib3) to permit the latest version.
- [Release notes](https://github.com/urllib3/urllib3/releases)
- [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst)
- [Commits](urllib3/urllib3@2.7.0...2.8.0)

---
updated-dependencies:
- dependency-name: urllib3
  dependency-version: 2.8.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Updates the requirements on [msgspec](https://github.com/msgspec/msgspec) to permit the latest version.
- [Release notes](https://github.com/msgspec/msgspec/releases)
- [Changelog](https://github.com/msgspec/msgspec/blob/main/docs/changelog.md)
- [Commits](msgspec/msgspec@0.18.0...0.22.0)

---
updated-dependencies:
- dependency-name: msgspec
  dependency-version: 0.22.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
….18-and-lt-0.23

chore(deps): update msgspec requirement from <0.22,>=0.18 to >=0.18,<0.23
chore(deps): update idna requirement from >=3.18 to >=3.20
….8.0

chore(deps): update urllib3 requirement from >=2.7.0 to >=2.8.0
Why:
* align build/deploy tooling with the python3-capsolver uv workflow

What:
* add dev/docs dependency groups to pyproject.toml
* replace requirements files with dependency groups
* switch make targets to uv sync/run/build/publish
* commit uv.lock for reproducible environments

Changes:
* pyproject.toml: add [dependency-groups] dev and docs, cap sphinx<9 for enum-tools compatibility, add pytest asyncio_default_fixture_loop_scope
* Makefile: uv-driven install, refactor, lint, build, upload, tests, and doc targets
* uv.lock: initial lockfile for all dependency groups
* requirements.style.txt, requirements.test.txt, docs/requirements.txt: removed, superseded by dependency groups

Stats:
*  6 files changed, 4237 insertions(+), 39 deletions(-)

Co-Authored-By: Pi <noreply@pi.dev>
Why:
* workflows must drive the new uv-based make targets

What:
* use astral-sh/setup-uv@v7 with enabled cache
* provision interpreters via uv python install
* trigger on pyproject.toml and uv.lock changes
* check the published package with uv pip install
* add master-branch docs build workflow

Changes:
* build.yml, install.yml, lint.yml, test.yml, sphinx.yml: swap setup-python for setup-uv, drop pip bootstrap steps
* build_sphinx.yml: new docs build check on master pushes

Stats:
*  6 files changed, 95 insertions(+), 58 deletions(-)

Co-Authored-By: Pi <noreply@pi.dev>
Why:
* agent instructions must reflect the migrated build system

What:
* describe uv sync/uv run usage in validation sections
* point docs dependencies at the pyproject docs group

Changes:
* AGENTS.md: pyproject/Makefile descriptions and validation commands updated for uv
* docs/AGENTS.md: drop docs/requirements.txt references, document docs dependency group

Stats:
*  2 files changed, 10 insertions(+), 7 deletions(-)

Co-Authored-By: Pi <noreply@pi.dev>
Why:
* release the uv build system migration

What:
* bump __version__ from 6.8.0 to 6.8.1

Changes:
* src/python_rucaptcha/__version__.py: version bump

Stats:
* 1 file changed, 1 insertion(+), 1 deletion(-)

Co-Authored-By: Pi <noreply@pi.dev>
@AndreiDrang
AndreiDrang merged commit 0dfeaeb into release Oct 7, 2026
30 of 33 checks passed
@codecov

codecov Bot commented Oct 7, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 55.55556% with 4 lines in your changes missing coverage. Please review.
✅ Project coverage is 88.59%. Comparing base (81f9b03) to head (9d45d70).
⚠️ Report is 343 commits behind head on release.

Files with missing lines Patch % Lines
src/python_rucaptcha/core/base.py 0.00% 2 Missing ⚠️
src/python_rucaptcha/core/result_handler.py 0.00% 2 Missing ⚠️
Additional details and impacted files
@@             Coverage Diff              @@
##           release     #386       +/-   ##
============================================
+ Coverage    62.42%   88.59%   +26.17%     
============================================
  Files            7       41       +34     
  Lines          322     1394     +1072     
============================================
+ Hits           201     1235     +1034     
- Misses         121      159       +38     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

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