Sync Dev
What does this PR aim to accomplish?:
Merge dev into master to publish all changes since stable 3.6.0, covering 3.6.1–3.6.6, as stable 3.7.0. The repository's UpdateToRelease workflow prepares the next stable version (expected 3.7.0).
How does this PR accomplish the above?:
Use a merge commit to preserve development history. Includes the fixes and improvements from #1006, #1013, #1015, #1019, #1021, and #1023. No additional application changes are introduced by this integration PR.
Verification before opening:
git merge-tree --write-tree origin/master origin/devsucceeds without conflicts.node --checkpasses for the dev userscript.Update.jsonparses successfully; package and userscript versions are both 3.6.6.- Existing checks on dev commit
5f348ffaab00f0d97dd7d9b26cc827b2bc4b8576passed. - No other open dev-to-master PR exists.
- The package has no implemented automated test suite. Browser behavior in the new and classic interfaces has not been verified during this integration.
By submitting this pull request, I confirm the following:
- I have read and understood the contributor's guide, as well as this entire template. I understand which branch to base my commits and Pull Requests against. This release integration targets master as requested by the maintainer.
- I have commented on my proposed changes within the code. Not applicable: integration of existing changes only.
- I have tested my changes. Syntax, JSON, and merge checks completed; functional browser testing is not claimed.
- I am willing to help maintain this change if there are issues with it later. Future maintenance commitment remains with the maintainers.
- It is compatible with the GNU General Public License v3.0. Existing project changes; no new dependencies or licensing changes introduced by this PR.
- I have squashed any insignificant commits. (
git rebase) Not applicable: preserve dev history for this branch integration. - I have checked that another pull request for this purpose does not exist.
- I have considered and confirmed that this submission will be valuable to others.
- I accept that this submission may not be used, and the pull request can be closed at the will of the maintainer.
- I give this submission freely and claim no ownership to its content.
- I have verified that my changes work correctly in both the new UI and the old/classic UI. Not verified by this assistant; please verify both interfaces before checking this item.
- I have read the above and my PR is ready for review. Check this box to confirm
Summary by Sourcery
Merge the accumulated development fixes and feature improvements into the stable 3.7.0 release.
New Features:
- Add local captcha display, submission support, and optional automatic recognition with retry handling.
- Upgrade data retrieval with gzip/Base93 encoding and an optional high-speed numeric mode while supporting pages without a data-application area.
Bug Fixes:
- Fix comparison editor sizing, submission-history rendering for problem ID 0, and ended-contest fallback submissions including cooldowns, errors, and full problem IDs.
Enhancements:
- Preserve development history while consolidating the 3.6.1–3.6.6 fixes and enhancements into the 3.7.0 release.
Chores:
- Bump the package and userscript versions to 3.7.0.
Summary by cubic
Publishes the accumulated 3.6.1–3.6.6 development updates as stable 3.7.0 by merging dev into master; this merge carries only the existing dev history.
What's included
- Fixes #1004 and the submission-history layout when the problem ID is 0.
- Replaces the
获取数据Base64 payload with gzip + Base93 compression, and adds an NSC3 numeric mode with an optional line-break toggle. - Shows
获取数据controls even when the server doesn't render the apply-data area. - Shows and submits the server captcha on the submit page, and adds an
AutoCaptchasetting that fills 4-digit captchas locally and retries unclear ones. - Restores ended-contest fallback submissions: cooldown errors are retried, and server messages are shown instead of a generic failure.
Caveats
- No automated tests exist, and behavior in the classic and new UIs hasn't been verified.