Sync Dev
What does this PR aim to accomplish?:
Promotes dev to master, releasing 3.5.4 as a production release (master is currently on 3.5.0).
This rolls up four prereleases:
| Version | PR | Change |
|---|---|---|
| 3.5.1 | #986 | Fix Violentmonkey SyntaxError — wrap async init block in an IIFE |
| 3.5.2 | #989 | Use Monaco Editor in submitpage.php, with code saving on edit |
| 3.5.3 | #992 | Eliminate dark-mode flash (FOUC/CLS) in MonochromeUI / NewBootstrap |
| 3.5.4 | #997 | Pin Monaco to 0.52.2 to stop intermittent editor load failures |
How does this PR accomplish the above?:
A straight merge of dev into master. Merging triggers UpdateToRelease.js, which flips "Prerelease": false on the 3.5.4 entry in Update.json and cuts the production release.
Verification done before opening:
- Merge is conflict-free — confirmed with
git merge-tree --write-tree origin/master origin/dev(exit 0). 31 commits ahead. - All checks green on
devHEAD (0da6227): CodeQL, Prerelease, Sync. - Versions are in sync at 3.5.4 across
package.json,XMOJ.user.js@version, and theUpdate.jsonkey. - The master-only changes to
ads.txtandindex.htmlare preserved —devhas not touched either file since the merge base (ec4cadc), so the merge takes master's side and does not resurrect the removed Google Ads script.
Not included in this release (both target dev, CI-only, no userscript impact): #995 actions/setup-node 4→7, #996 actions/labeler 4→7.
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.
- I have commented on my proposed changes within the code.
- I have tested my changes.
- I am willing to help maintain this change if there are issues with it later.
- It is compatible with the GNU General Public License v3.0
- I have squashed any insignificant commits. (
git rebase) - 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.
Note on items 3 and 11: these were verified manually by the maintainer, not by automation — this repo has no automated test suite. The browser checks (Monaco loading on submitpage.php, dark-mode behaviour) were done by hand.
- I have read the above and my PR is ready for review. Check this box to confirm
🤖 Generated with Claude Code
Summary by cubic
Release 3.5.4 by merging the latest dev into master. Ships the Monaco-based submit editor, removes dark-mode flash on the new UI, and fixes intermittent editor load errors.
-
New Features
- Replace the submit editor on
submitpage.phpwithmonaco-editor, including auto-save while editing.
- Replace the submit editor on
-
Bug Fixes
- Fix Violentmonkey top-level
awaiterror by wrapping async init in an IIFE. - Remove dark-mode FOUC/CLS in MonochromeUI/NewBootstrap with early theme/CSS injection.
- Pin
monaco-editorto 0.52.2 and make the loader single-flight to prevent random load failures.
- Fix Violentmonkey top-level