Skip to content

Sync upstream PR #67: native themes, SpinTexture, alert sounds - #10

Merged
JDS300 merged 7 commits into
mainfrom
sync/upstream-67-themes
Aug 14, 2026
Merged

Sync upstream PR #67: native themes, SpinTexture, alert sounds#10
JDS300 merged 7 commits into
mainfrom
sync/upstream-67-themes

Conversation

@JDS300

@JDS300 JDS300 commented Aug 14, 2026

Copy link
Copy Markdown
Owner

First of four staged merges bringing itsspin/spinips up to date. One PR per upstream PR, each merged before the next, so every step has its own CI run and its own revert point (git revert -m 1 <merge>).

Step Upstream PR Contents Status
1 itsspin#67 31571ab themes, SpinTexture, sounds, attack pulse this PR
2 itsspin#68 8a4aef1 attack perimeter, player frame bars queued
3 itsspin#72 ca5bc5b progression journal, secure updates queued
4 itsspin#73 f04c861 Windows updater path fix queued

What comes in

The Vellum & Ember / Midnight Frost Glass theme system with persistent cross-window themes, the SpinTexture companion project, restored pet illusions, custom alert sounds, and a brighter attack pulse.

Conflict resolutions

Alt+Z lockout OCR is retired, following upstream's decision. They removed the feature and added audit_retired_lockout_ocr() to the gate, which fails the build if the module exists or the retired names appear in the audited sources. So this deletes instance_lockout_ocr.py and its tests, removes the scan hotkey, its IPC handler and the renderer bridge, and leaves upstream's audit passing unmodified. The half of "keep every pending raid kill" that cleared a stale prompt after a scan retires with it, along with its test.

The multi-kill fix stays. A single pending slot silently discarded the first kill when two raid targets died before a difficulty was confirmed — a cross-platform engine bug that predates the Linux branch and that upstream still has. pending_raid_kills / pendingRaidTargets are kept over upstream's single-slot field. Worth sending upstream separately.

electron/main.ts is hand-merged, not taken from either side. It keeps this fork's Wayland window naming (all three windows would otherwise share a caption, and a WM rule needs something to match on) and the guard that shows the window even when renderer setup fails — an invisible window with a live tray icon was indistinguishable from a hang. It takes upstream's rendererUrl() so the theme reaches the renderer. Notification stays imported for alerts; globalShortcut left with the hotkey.

README keeps this fork's Linux-facing header.

Verification

  • Release quality gate: ALL PASS
  • Upstream's new audit_loremaster_desktop.py: ALL PASS — including the retired-lockout audit, unmodified
  • test_desktop_worker: 12 passing
  • tsc --noEmit and tsc -p tsconfig.electron.json: both clean, which is what covers the hand-merged main.ts

🤖 Generated with Claude Code

itsspin and others added 7 commits August 11, 2026 20:44
Takes itsspin/spinips 31571ab: the Vellum & Ember / Midnight Frost theme
system, the SpinTexture companion project, pet illusions, custom alert sounds
and the brighter attack pulse.

Conflicts resolved:

- Alt+Z lockout OCR is retired, as upstream decided. instance_lockout_ocr.py
  and its tests are deleted, the scan hotkey and its IPC bridge are gone from
  the desktop shell, and the retired names are out of the audited sources so
  upstream's new audit_retired_lockout_ocr passes unmodified. The half of
  "keep every pending raid kill" that cleared the prompt from a scan goes with
  it; its test is removed.

- The multi-kill fix itself stays. A single pending slot silently discarded
  the first kill when two raid targets died before a difficulty was confirmed,
  which is a cross-platform engine bug upstream still has. pending_raid_kills
  and pendingRaidTargets are kept over upstream's single-slot field.

- electron/main.ts is hand-merged rather than taken from either side: it keeps
  this fork's Wayland window naming and the guard that shows the window even
  when renderer setup fails, and takes upstream's rendererUrl() theme query.
  Notification stays imported for alerts; globalShortcut goes with the hotkey.

- README keeps this fork's Linux-facing header.

Verified: release quality gate ALL PASS, upstream's Loremaster desktop audit
ALL PASS, worker tests pass, and both tsc projects typecheck.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@JDS300
JDS300 merged commit 1b5297e into main Aug 14, 2026
6 checks passed
@JDS300
JDS300 deleted the sync/upstream-67-themes branch August 14, 2026 12:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants