Skip to content

Redesign xmoj-script.uk and deploy the site on every push - #1043

Merged
boomzero merged 12 commits into
devfrom
website-redesign
Oct 5, 2026
Merged

boomzero merged 12 commits into
devfrom
website-redesign

Conversation

@boomzero

@boomzero boomzero commented Oct 4, 2026 •

Copy link
Copy Markdown
Member

What does this PR aim to accomplish?:

The project website (xmoj-script.uk) was dated, wordy (GPT-3.5-era copy), and full of dead links (xmoj-bbs.me, sso.xmoj-bbs.me). It also didn't tell Chrome/Edge users that they must allow userscripts, which is the most common "installed but nothing happens" cause.

How does this PR accomplish the above?:

Site (40babdc)

  • index.html rewritten in the userscript's MonochromeUI style: hero, 6-card feature grid, 3-step install with browser auto-detection (Chrome 138+ "允许用户脚本" toggle vs Developer mode for older Chrome/Edge, per Tampermonkey FAQ Q209), FAQ, feedback. Version is read live from Update.json.
  • Removed AdSense (we don't serve ads), Microsoft Clarity (Microsoft says it shouldn't be used on sites aimed at under-18s, and most users are minors), the inline GPL text, the screenshot carousel, and the SSO / xmoj-bbs.me links. Statuspage and the 萌ICP line are kept.
  • New shared site.css (tokens copied from MonochromeSkinCSS, with a note to keep them in sync) and site.js. Bootstrap 5.2.3 → 5.3.3 for data-bs-theme dark mode; fonts from the same fonts.loli.net mirror as the script.
  • 404.html rebuilt in the same style.
  • privacy.html / terms.html / child-protection.html rewritten in plain Chinese, based on an audit of what XMOJ-bbs master actually stores (session hash ≤5 days, read messages deleted after 5 days, analytics fields, images in a GitHub repo, AI badge moderation).
  • messages.html: only the dead SSO tab and its code are removed (it never redirected). Its visual style is unchanged.
  • sitemap.xml, robots.txt, README: moved to xmoj-script.uk.

CI / submodule (96c57e1)

Privacy claim now holds: the page says server logs contain only a session hash prefix. XMOJ-bbs#72–#74 are deployed (build 8bc3b56e, 2026-10-05 11:34 UTC). Querying Workers Logs after the deploy finds no SessionID= entries, and the new per-request lines are present. Older raw entries age out under Cloudflare's log retention.

Testing (done locally with Playwright, Chromium):

  • Every changed page at 1280px and 390px, light and dark: no console errors, no horizontal overflow.
  • Browser detection with spoofed UAs (Chrome 140 / 130, Edge, Firefox, Safari) selects the right tab and Chrome version note; tab switching and the theme toggle (persisted across reload) work.
  • Link check on all changed pages. Only expected failures: Chrome Web Store (blocked from the test network), Open Collective (403 to bots).
  • messages.html login with a real account after the SSO removal: tested by the maintainer (2026-10-05).

By submitting this pull request, I confirm the following:

  1. I have read and understood the contributor's guide, as well as this entire template.
  2. I have commented on my proposed changes within the code.
  3. I have tested my changes.
  4. I am willing to help maintain this change if there are issues with it later.
  5. It is compatible with the GNU General Public License v3.0.
  6. I have squashed any insignificant commits.
  7. I have checked that another pull request for this purpose does not exist.
  8. I have considered and confirmed that this submission will be valuable to others.
  9. I accept that this submission may not be used, and the PR can be closed at the will of the maintainer.
  10. I give this submission freely and claim no ownership to its content.
  11. N/A: this PR doesn't change XMOJ.user.js, only the project website.

⚠️ Item 11 needs a human: this PR doesn't touch XMOJ.user.js, so XMOJ UI compatibility shouldn't be affected, but I couldn't verify it in a real browser on xmoj.tech.


  • I have read the above and my PR is ready for review.

🤖 Generated with Claude Code

https://claude.ai/code/session_017dqWu3YgeVRGwBt5pXDq4A


Summary by cubic

Redesigns xmoj-script.uk in the userscript's monochrome style and deploys site changes on every push instead of only when XMOJ.user.js changes. The new site replaces dead links and outdated content with clearer installation guidance, including the Chrome/Edge 138+ userscript toggle.

Site

  • Adds responsive light/dark themes, real lazy-loaded light and dark screenshots, feature and short-message sections, FAQ, feedback links, and browser-aware installation steps covering Chrome/Edge 138+; browser detection ignores legacy EdgeHTML Edge tokens.
  • Points confused Chrome/Edge users to an illustrated install guide.
  • Shows the latest stable version from Update.json, supports ScriptCat alongside Tampermonkey, and uses accessible browser toggles.
  • Rewrites the privacy, terms, and child-protection pages in plain Chinese, including the EU notice, a third-party services table, and the note that short messages are AES-encrypted at rest, so admins can't read them.
  • Removes the obsolete SSO login tab and Microsoft Clarity, and updates the README, sitemap, robots file, navigation, and 404 page for xmoj-script.uk.
  • Pins Bootstrap assets with SRI and makes the 404 page work under GitHub Pages project paths.

Deployment

  • Deploys GitHub Pages for master and dev, while Cloudflare Pages deploys from master; the jobs fail independently and Cloudflare deploys are serialized.
  • Keeps release workflows focused on publishing releases and adds daily Dependabot updates for the XMOJ-bbs submodule.
  • Bumps the backend submodule to a55c2b0, which includes the session-log redaction. The privacy wording depends on that XMOJ-bbs change being live, so its pending Cloudflare deployment must be retried before merging.

Written for commit c7549b0. Summary will update on new commits.

Review in cubic

Summary by Sourcery

Modernize the XMOJ-Script website, improve installation and privacy guidance, remove obsolete integrations, and streamline push-based deployment.

New Features:

  • Redesign the xmoj-script.uk website with a responsive monochrome interface, light/dark themes, feature overview, FAQ, feedback section, and live version display.
  • Add browser-aware installation guidance for Chrome, Edge, Firefox, and Safari, including the required Chrome and Edge userscript permissions.
  • Rebuild the 404 page and provide consistent navigation, styling, and accessibility across the website.

Bug Fixes:

  • Remove obsolete SSO functionality and dead xmoj-bbs.me links from the website and messages page.
  • Clarify privacy, terms, and minor-protection information to reflect the services and data actually used.

Enhancements:

  • Centralize website styling and behavior in shared assets and upgrade the site to Bootstrap 5.3.3 with theme support.
  • Remove unused advertising, analytics, screenshot carousel, and embedded license content from the site.

CI:

  • Move website deployment out of release workflows so Cloudflare Pages can deploy from repository pushes.
  • Add daily Dependabot updates for the Git submodule.

Deployment:

  • Update the backend submodule to include session-log redaction and related service changes.
  • Update site metadata and documentation links for xmoj-script.uk.

Documentation:

  • Rewrite the README, sitemap, robots configuration, privacy statement, usage terms, and minor-protection page for the current website and services.

Tests:

  • Validate changed pages, responsive layouts, themes, browser detection, navigation, and links with Playwright.

boomzero and others added 2 commits October 4, 2026 19:23
- Rewrite index.html: new copy, feature grid, 3-step install with browser
  detection and the Chrome/Edge "allow user scripts" step, FAQ, feedback.
  Drop AdSense, the inline GPL text, and the screenshot carousel.
- Add shared site.css (tokens copied from MonochromeSkinCSS in
  XMOJ.user.js) and site.js (theme toggle, browser detection, live version
  from Update.json).
- Rebuild 404.html in the same style.
- Rewrite privacy/terms/child-protection in plain Chinese based on what
  the script and XMOJ-bbs actually store.
- Remove the dead SSO login tab and its code from messages.html.
- Move links off the dead xmoj-bbs.me domain (site, README, sitemap);
  add the sitemap to robots.txt.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017dqWu3YgeVRGwBt5pXDq4A
- New Deploy workflow deploys on every push to master (Cloudflare Pages +
  GitHub Pages) and dev (GitHub Pages). Release/Prerelease now only cut
  releases, so site-only changes no longer wait for a script release.
- Track XMOJ-bbs master in .gitmodules and let Dependabot open daily
  submodule bump PRs against dev.
- Bump backend to 7bd99ac (latest master, includes the session log
  redaction from XMOJ-bbs#72).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017dqWu3YgeVRGwBt5pXDq4A
@sourcery-ai

sourcery-ai Bot commented Oct 4, 2026 •

Copy link
Copy Markdown
Contributor

Reviewer's Guide

This PR modernizes the website with a shared monochrome responsive UI, clearer browser-aware installation instructions and rewritten policy pages, removes obsolete SSO/dead-link integrations, and introduces push-triggered Cloudflare Pages/GitHub Pages deployment plus automated submodule updates. Review should block merging until the backend privacy fix is live and the new deployment workflow and real messages login have been verified.

Sequence diagram for browser-aware userscript installation

sequenceDiagram
    actor User
    participant Site as xmoj-script.uk
    participant Browser as Browser
    participant Manager as Tampermonkey_or_ScriptCat
    participant XMOJ as xmoj.tech

    User->>Site: Open installation section
    Site->>Browser: DetectBrowser()
    Browser-->>Site: Chrome, Edge, Firefox, or Safari
    Site->>Site: ChromeMajorVersion()
    Site-->>User: Show browser-specific instructions
    User->>Browser: Enable userscript permission or developer mode
    User->>Site: Click XMOJ.user.js
    Site->>Manager: Download userscript
    User->>Manager: Install script
    User->>XMOJ: Open and refresh xmoj.tech
    Manager-->>XMOJ: Run XMOJ-Script
Loading

File-Level Changes

Change Details Files
Rebuilt the public website around a shared monochrome, responsive design system with live version display and browser-specific installation guidance.
  • Replaced the homepage with hero, feature cards, installation flow, FAQ, and feedback sections.
  • Added shared CSS tokens/components and JavaScript for persisted theme switching, browser detection, Chrome-version guidance, and Update.json version lookup.
  • Reworked the 404 page and aligned navigation, footer, dark mode, metadata, and typography across informational pages.
  • Upgraded Bootstrap and updated external asset/font integrations while removing advertising, obsolete license copy, screenshots, and dead links.
index.html
404.html
site.css
site.js
privacy.html
terms.html
child-protection.html
Rewrote the site's privacy, usage, and minor-protection documentation to describe current data handling and community rules in plain Chinese.
  • Documented session hashing/retention, message deletion, analytics, image hosting, AI moderation, third-party services, and deletion requests.
  • Added rules for discussion and messaging content, service limitations, account enforcement, and minor-user reporting/deletion paths.
  • Removed the obsolete SSO login tab and client-side OAuth flow from the messages interface.
privacy.html
terms.html
child-protection.html
messages.html
Separated website deployment from release workflows and configured branch-based continuous deployment.
  • Added deployment on every push to master and dev, with Cloudflare Pages for master and GitHub Pages deployments serialized through a shared concurrency group.
  • Kept release/prerelease workflows focused on release publication.
  • Enabled daily Git submodule update PRs and updated the XMOJ-bbs/backend references, including the session-log privacy fix.
.github/workflows/Deploy.yml
.github/workflows/Release.yml
.github/workflows/Prerelease.yml
.github/dependabot.yml
.gitmodules
backend
Updated project and crawler metadata to use the xmoj-script.uk domain.
  • Repointed README documentation and website links.
  • Updated sitemap entries, robots configuration, and removed references to retired xmoj-bbs and SSO domains.
README.md
sitemap.xml
robots.txt

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@hendragon-bot hendragon-bot Bot added GitHub-related website This issue or pull request is related to website related files labels Oct 4, 2026
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Oct 4, 2026 •

Copy link
Copy Markdown

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

Latest commit: c7549b0
Status: ✅  Deploy successful!
Preview URL: https://64584c15.xmoj-script-dev-channel.pages.dev
Branch Preview URL: https://website-redesign.xmoj-script-dev-channel.pages.dev

View logs

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Hey - I've found 4 issues

Prompt for AI Agents
Please address the comments from this code review:

## Individual Comments

### Comment 1
<location path=".github/workflows/Deploy.yml" line_range="26" />
<code_context>
+    steps:
+      - uses: actions/checkout@v6
+      - uses: cloudflare/pages-action@v1
+        if: github.ref == 'refs/heads/master'
+        with:
+          apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
+          accountId: 89969bdf9d5ab8202f8ad8b8ae2c40b8
+          projectName: xmoj-script
+          directory: .
+      - uses: actions/configure-pages@v5
+      - uses: actions/upload-pages-artifact@v3
+        with:
</code_context>
<issue_to_address>
**issue (broader_impact):** A failure in the Cloudflare Pages deployment stops the job before `configure-pages`, `upload-pages-artifact`, and `deploy-pages` run, so GitHub Pages is not deployed either. The documented transient Cloudflare API failure therefore prevents the GitHub Pages deployment from completing.

**Triggers:** When the Cloudflare Pages action returns an error on a master push.

**Suggested fix:** Put the Cloudflare and GitHub Pages deployments in separate jobs, or otherwise allow the GitHub Pages job to run independently of Cloudflare failures.

```suggestion
        if: github.ref == 'refs/heads/master'
        continue-on-error: true
```
</issue_to_address>

### Comment 2
<location path=".github/workflows/Deploy.yml" line_range="6" />
<code_context>
+name: Deploy
+on:
+  push:
+    branches:
+      - master
+      - dev
+  workflow_dispatch:
+# master 与 dev 共用同一个 GitHub Pages 站点,避免两次部署同时进行
</code_context>
<issue_to_address>
**issue (bug_risk):** Pushes to `dev` deploy the checked-out dev branch to the same public `github-pages` environment/site used by `master`, so a dev push overwrites the public site with development content instead of providing an isolated dev deployment.

**Triggers:** When dev receives a push after a master deployment.

**Suggested fix:** Use a separate Pages site/environment for dev, or remove `dev` from this public deployment workflow and publish it through a branch-specific preview.

```suggestion

```
</issue_to_address>

### Comment 3
<location path="privacy.html" line_range="92" />
<code_context>
+            </table>
+        </div>
+        <p>发帖等操作可能需要通过 Cloudflare Turnstile 人机验证,验证时你的 IP 地址会发送给 Cloudflare。</p>
+        <p>服务器的运行日志会记录用户名和会话哈希值的前几位,用于排查故障,不包含会话本身。</p>

-        <h3>四、信息共享与披露</h3>
</code_context>
<issue_to_address>
**issue:** The privacy page states that runtime logs contain only a session-hash prefix, but the repository change only updates the backend submodule pointer and does not make the failed Cloudflare backend deployment live. Until that backend deployment succeeds, the published policy contradicts the actual logging behavior and exposes an inaccurate privacy disclosure.

**Triggers:** When the site deploys before XMOJ-bbs#72 is live on the API backend.

**Suggested fix:** Do not publish this wording until the backend deployment succeeds, or describe the currently deployed logging behavior and update the page after rollout.

```suggestion

```
</issue_to_address>

### Comment 4
<location path="404.html" line_range="105" />
<code_context>
+        </div>
+    </footer>
+    <script>
+        document.getElementById("RequestedPath").textContent = decodeURI(location.pathname);
+    </script>
+</body>
</code_context>
<issue_to_address>
**nitpick (bug_risk):** `decodeURI(location.pathname)` throws `URIError` for a malformed percent-encoded request path, producing a console error and leaving the requested-path diagnostic unset on the 404 page.

**Triggers:** When a user requests a path containing an invalid percent escape such as `%`.

**Suggested fix:** Wrap the decode in `try/catch` or use the raw `location.pathname` as a fallback.

```suggestion
        try {
            document.getElementById("RequestedPath").textContent = decodeURI(location.pathname);
        } catch {
            document.getElementById("RequestedPath").textContent = location.pathname;
        }
```
</issue_to_address>

Sourcery assessment

Needs a human reviewer. 3 findings to address first, and the new workflow publishes repository contents on every push and grants GitHub Pages, deployment, and OIDC permissions, so a mistaken change can take the public site down or publish unintended content. Reverting stops future deployments, but it does not undo an already-published artifact without another deployment.

Blocking findings: .github/workflows/Deploy.yml:26, .github/workflows/Deploy.yml:6, privacy.html:92


Sourcery is free for open source - if you like our reviews please consider sharing them ✨

Comment thread .github/workflows/Deploy.yml Outdated
Comment thread .github/workflows/Deploy.yml Outdated
Comment thread privacy.html
Comment thread 404.html Outdated
Comment thread 404.html Fixed
Comment thread child-protection.html Fixed
Comment thread index.html Fixed
Comment thread privacy.html Fixed
Comment thread terms.html Fixed

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 96c57e1c4a

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread 404.html Outdated
Comment thread privacy.html Outdated

@cubic-dev-ai cubic-dev-ai Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

All reported issues were addressed across 17 files

Tip: cubic can generate docs of your entire codebase and keep them up to date. Try it here.

Re-trigger cubic

Comment thread .github/workflows/Deploy.yml Outdated
Comment thread privacy.html
Comment thread site.css
Comment thread terms.html Outdated
Comment thread index.html Outdated
Comment thread child-protection.html Outdated
Comment thread child-protection.html Outdated
Comment thread .github/workflows/Deploy.yml Outdated
Comment thread 404.html Outdated
Comment thread index.html Outdated
- Replace the CSS mock status card with screenshots of xmoj.tech running
  XMOJ.user.js with MonochromeUI (contest problem page), captured with
  tests/userscript-harness.cjs in light and dark theme. The username in
  the navbar is blurred. The shown image follows the site theme.
- The logo is 317x180; keep its aspect ratio instead of forcing 32x32.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017dqWu3YgeVRGwBt5pXDq4A

@cubic-dev-ai cubic-dev-ai Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

All reported issues were addressed across 4 files (changes from recent commits).

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

Comment thread index.html Outdated
boomzero and others added 2 commits October 4, 2026 21:18
- Deploy: split Cloudflare Pages and GitHub Pages into separate jobs so a
  Cloudflare failure no longer blocks the GitHub Pages deploy.
- Pin Bootstrap CSS/JS with SRI (sha512 from cdnjs, verified locally).
- 404: resolve assets/links through <base> so the page works under the
  github.io /XMOJ-Script/ project path; don't throw on malformed paths.
- Show the latest stable version from Update.json, not a prerelease.
- Replace the ↗ character (renders as emoji on Apple devices) with a CSS
  arrow that follows the text color.
- Browser picker: toggle buttons with aria-pressed instead of fake tabs.
- Chrome 138+ step covers ScriptCat as well as Tampermonkey.
- Link 短消息在线看 from the main nav and add a homepage section for it.
- Privacy: Clarity is site-wide; state the product is not intended for EU
  residents. Child protection: admins can technically read messages;
  GitHub Issues are public, send identifying details by email.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017dqWu3YgeVRGwBt5pXDq4A
Messages are AES-encrypted before storage (XMOJ-bbs Process.ts SendMail),
so admins can't read them without changing server code. Say that, note
it's not end-to-end, and ask reporters to include a screenshot.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017dqWu3YgeVRGwBt5pXDq4A

@cubic-dev-ai cubic-dev-ai Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

All reported issues were addressed across 8 files (changes from recent commits).

Requires human review: Auto-approval blocked because this review re-detected 1 unresolved issue already reported by Cubic.
Tip: Review your code locally with the cubic CLI to iterate faster.

Re-trigger cubic

Comment thread .github/workflows/Deploy.yml Outdated
- Drop Microsoft Clarity from every page: Microsoft says it shouldn't be
  used on sites aimed at under-18s, and most of our users are minors.
- Privacy: replace "以代码为准" with a commitment to keep the page in
  sync; rephrase the EU notice; say third parties do process data
  instead of "不会交给其他人"; add a third-party services table; warn
  that uploaded images are public by link and can't be self-deleted;
  state that unread messages currently have no retention limit.
- Child protection: "不会要求提供…个人照片" instead of "不收集照片";
  extend the personal-info warning to images.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017dqWu3YgeVRGwBt5pXDq4A

@PythonSmall-Q PythonSmall-Q left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

其他我觉得都挺好的

Comment thread index.html Outdated
Comment thread index.html
…rialize Cloudflare deploys

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017dqWu3YgeVRGwBt5pXDq4A

@cubic-dev-ai cubic-dev-ai Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

All reported issues were addressed across 3 files (changes from recent commits).

Tip: Review your code locally with the cubic CLI to iterate faster.

Re-trigger cubic

Comment thread site.js Outdated
@boomzero
boomzero requested a review from PythonSmall-Q October 5, 2026 11:59
boomzero and others added 3 commits October 5, 2026 20:01
xmoj-script (master → www.xmoj-script.uk) and xmoj-script-dev-channel
(dev → dev./ghpages.xmoj-script.uk) build on every push, including
pushes that don't touch XMOJ.user.js. The workflow only produced
duplicate deployments and a github.io copy nothing links to.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017dqWu3YgeVRGwBt5pXDq4A
@boomzero
boomzero merged commit 0b517f9 into dev Oct 5, 2026
14 checks passed
@boomzero
boomzero deleted the website-redesign branch October 5, 2026 12:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

GitHub-related size/XXL website This issue or pull request is related to website related files

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants