Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/UpdateVersion.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
pull-requests: write
contents: write
runs-on: ubuntu-latest
if: github.event.pull_request.head.repo.full_name == github.repository && github.actor != 'github-actions[bot]'
if: github.event.pull_request.head.repo.full_name == github.repository && !endsWith(github.actor, '[bot]')
steps:
- name: Generate a token
id: generate_token
Expand All @@ -26,4 +26,4 @@ jobs:
- name: Update version
env:
PR_BODY: ${{ github.event.pull_request.body }}
run: node ./Update/UpdateVersion.js ${{ steps.generate_token.outputs.token }} ${{ github.event.number }} "${{ github.event.pull_request.title }}" "$PR_BODY"
run: node ./Update/UpdateVersion.js ${{ steps.generate_token.outputs.token }} ${{ github.event.number }} "${{ github.event.pull_request.title }}" "$PR_BODY" "${{ github.event.action }}"
11 changes: 11 additions & 0 deletions Update.json
Original file line number Diff line number Diff line change
Expand Up @@ -3396,6 +3396,17 @@
}
],
"Notes": "Fix contest ranking table colors in dark mode (contestrank-oi.php and contestrank-correct.php)"
},
"3.2.2": {
"UpdateDate": 1771848993140,
"Prerelease": true,
"UpdateContents": [
{
"PR": 919,
"Description": "Gate WebSocket toast notifications by per-feature popup settings"
}
],
"Notes": "Fix WebSocket notification toasts ignoring per-feature popup settings (BBSPopup/MessagePopup)."
}
}
}
7 changes: 6 additions & 1 deletion Update/UpdateVersion.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,14 @@ execSync("gh pr checkout " + PRNumber);
console.info("PR #" + PRNumber + " has been checked out.");

// Check if the last commit was made by github-actions[bot]
// Only skip for synchronize events (push-triggered) to prevent infinite loops.
// For edited events (PR title/body changes), allow metadata updates even when
// the branch tip is a bot commit.
const eventAction = String(process.argv[6] || "");
const lastCommitAuthor = execSync("git log -1 --pretty=format:'%an'").toString().trim();
console.log("Last commit author: " + lastCommitAuthor);
if (lastCommitAuthor === "github-actions[bot]") {
console.log("Event action : " + eventAction);
if (lastCommitAuthor === "github-actions[bot]" && eventAction !== "edited") {
Copy link

@cubic-dev-ai cubic-dev-ai bot Feb 23, 2026

Choose a reason for hiding this comment

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

P2: The guard still skips for any action other than edited, which contradicts the comment that says only synchronize events should be skipped. This can prevent metadata updates on non-synchronize actions (e.g., opened), even though they should be allowed per the new behavior.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At Update/UpdateVersion.js, line 18:

<comment>The guard still skips for any action other than `edited`, which contradicts the comment that says only synchronize events should be skipped. This can prevent metadata updates on non-synchronize actions (e.g., `opened`), even though they should be allowed per the new behavior.</comment>

<file context>
@@ -8,9 +8,14 @@ execSync("gh pr checkout " + PRNumber);
 console.log("Last commit author: " + lastCommitAuthor);
-if (lastCommitAuthor === "github-actions[bot]") {
+console.log("Event action       : " + eventAction);
+if (lastCommitAuthor === "github-actions[bot]" && eventAction !== "edited") {
     console.log("Last commit was made by github-actions[bot]. Skipping to prevent infinite loop.");
     process.exit(0);
</file context>
Suggested change
if (lastCommitAuthor === "github-actions[bot]" && eventAction !== "edited") {
if (lastCommitAuthor === "github-actions[bot]" && eventAction === "synchronize") {
Fix with Cubic

console.log("Last commit was made by github-actions[bot]. Skipping to prevent infinite loop.");
process.exit(0);
}
Expand Down
12 changes: 7 additions & 5 deletions XMOJ.user.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// ==UserScript==
// @name XMOJ
// @version 3.2.1
// @version 3.2.2
// @description XMOJ增强脚本
// @author @XMOJ-Script-dev, @langningchen and the community
// @namespace https://github/langningchen
Expand Down Expand Up @@ -650,11 +650,13 @@ function HandleNotificationMessage(event) {
console.log("WebSocket: Server confirmed connection at timestamp", notification.timestamp);
}
} else if (notification.type === 'bbs_mention') {
// Backend now provides all data needed for immediate display
CreateAndShowBBSMentionToast(notification.data);
if (UtilityEnabled("BBSPopup")) {
CreateAndShowBBSMentionToast(notification.data);
}
} else if (notification.type === 'mail_mention') {
// Backend now provides all data needed for immediate display
CreateAndShowMailMentionToast(notification.data);
if (UtilityEnabled("MessagePopup")) {
CreateAndShowMailMentionToast(notification.data);
}
} else if (notification.type === 'pong') {
if (UtilityEnabled("DebugMode")) {
console.log("WebSocket: Received pong");
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "xmoj-script",
"version": "3.2.1",
"version": "3.2.2",
"description": "an improvement script for xmoj.tech",
"main": "AddonScript.js",
"scripts": {
Expand Down
Loading