Skip to content

sync: dev to extern-contrib#904

Merged
PythonSmall-Q merged 18 commits intoextern-contribfrom
dev
Feb 11, 2026
Merged

sync: dev to extern-contrib#904
PythonSmall-Q merged 18 commits intoextern-contribfrom
dev

Conversation

@github-actions
Copy link
Contributor

@github-actions github-actions bot commented Feb 10, 2026

sync-branches: New code has just landed in dev, so let's bring extern-contrib up to speed!


Summary by cubic

Sync extern-contrib with dev: add CLAUDE.md and .claude/agents/xmoj-code-navigator.md, and remove stray dot-underscore files. Update XMOJ.user.js to 2.7.3 with real-time WebSocket notifications (auto-reconnect, fallback polling, XSS and race-condition fixes) and guard UpdateVersion from bot commit loops.

Written for commit 8c30579. Summary will update on new commits.

@cloudflare-workers-and-pages
Copy link

cloudflare-workers-and-pages bot commented Feb 10, 2026

Deploying xmoj-script-dev-channel with  Cloudflare Pages  Cloudflare Pages

Latest commit: 8c30579
Status: ✅  Deploy successful!
Preview URL: https://c826d145.xmoj-script-dev-channel.pages.dev

View logs

Copy link

@cubic-dev-ai cubic-dev-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.

No issues found across 6 files

boomzero and others added 15 commits February 10, 2026 21:03
Replaces focus-based polling with persistent WebSocket connection to the backend notification service. Notifications now arrive within 1-2 seconds with automatic reconnection and exponential backoff. Maintains polling as fallback for reliability when WebSocket is unavailable.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
The backend now includes all required fields (PostTitle, PageNumber, MentionID) in WebSocket notifications, eliminating the need for additional API calls to fetch mention details. This reduces latency and server load for real-time notifications.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
…issues

1. Race condition (P1): Store reconnect timer ID to prevent duplicate WebSocket connections when visibilitychange handler and delayed reconnect fire simultaneously

2. XSS vulnerability (P1): Sanitize user-supplied PostTitle with escapeHTML() before rendering to prevent script injection attacks

3. DOM destruction (P2): Replace innerHTML += with appendChild to preserve async GetUsernameHTML() results in mail mention toasts

Note: Mail mention matching issue (violation #2) was already resolved by previous commit that passes notification.data directly

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
…ns[bot]

This prevents infinite loops where the bot commits version updates,
which triggers the workflow again, causing another commit.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@PythonSmall-Q PythonSmall-Q merged commit 5a1c2db into extern-contrib Feb 11, 2026
7 checks passed
@hendragon-bot hendragon-bot bot added user-script This issue or pull request is related to the main user script update-script Related to our update infrastructure! labels Feb 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/XL update-script Related to our update infrastructure! user-script This issue or pull request is related to the main user script

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants