Commit Graph

13 Commits

Author SHA1 Message Date
kitbyte 43e898c66c feat(panel): add IconButton primitive and fix input, reconnect and a11y gaps
Extract IconButton into shared/ui and reuse it across the drawers, top bar and
cheat tiles instead of repeating the glass button markup.

Render the app even when the locale catalog fails to load; a rejected import
previously left a blank page.
Keep a draft string while a number input is focused so typing a decimal point
survives formatting, and snap stepper results to the step precision.
Let IncrementalControl step forward from an unrecognised value.
Back off reconnect attempts and stop reconnecting after an explicit disconnect.
Route locale storage through shared/storage.

Give the drawers dialog semantics, Escape and focus containment; add listbox
semantics plus click-away and Escape to the selection dropdown; add
aria-expanded to category headers and accessible names to the controls.
Add a pin button to cheat tiles, which were previously pin-by-swipe only.
Compare handler props in the CategorySection memo comparator.
Clear the swipe settle timer on unmount.
2026-08-29 16:57:00 +03:00
kitbyte f2e88e9247 fix(renderer-scripts): await the bridge bind and retry it on poll
ipcRenderer.invoke rejects asynchronously, so marking the bridge bound before
awaiting left set-value dead for the session while the log reported success.

Compare installed-app snapshots structurally instead of by an explicit field
list, which had already drifted from the bridge copy and hid location changes.
2026-08-29 16:56:51 +03:00
kitbyte 5d1aa69a97 refactor(bridge): type the bridge and harden the websocket and file server
Type every module under bridge/src against a shared types.ts vocabulary and the
protocol payload types; narrow Wand IPC input as unknown instead of any.
Keep the Electron port types out of the CommonJS runtime files, where an export
statement makes esbuild treat the module as ESM and drop module.exports.

Reject unmasked client frames, enforce control-frame length and fragmentation
limits, and echo the peer close code.
Resolve static requests inside the panel root and serve the whole root, not
only assets/.
Ignore value-changed events that name a different trainer.
Validate envelopes through the shared protocol validator.
Bind the renderer destroyed listener once per sender.
Handle https response errors while fetching trainer strings.
Compare installed-app snapshots structurally so no field is missed.
2026-08-29 16:56:45 +03:00
kitbyte f798714f8d chore(build): enforce lint, type-check and dist invariants in build and CI
Add verify-dist.mjs (node --check on bundles, dev-only payload guard).
Wire lint into build.ps1 and type-check both web and bridge in pnpm build.
Drop noImplicitAny override and switch bridge to Bundler resolution.
Run CI on pull_request and push to master.
2026-08-29 16:55:07 +03:00
kitbyte 643c8f8b62 fix: bump version to 1.0.9.4, update changelog 2026-07-22 00:03:38 +03:00
kitbyte 4ce47dc6d2 feat(web-panel): multi-locale i18n with selector + browser autodetect
- Add 6 locales (en-US source + ru-RU, de-DE, fr-FR, es-ES, zh-CN)
  matching the patcher's WPF UI; full .po catalogs incl. plural forms.
- Language selector in the left settings drawer; persist choice and
  auto-detect from navigator language on first load.
- Load .po directly via @lingui/vite-plugin (drop the compile step);
  gitignore generated catalog .js as build artifacts.
2026-06-15 00:49:47 +03:00
kitbyte a0b3968d33 refactor(web-panel): update architecture + cheat i18n
Reorganize the panel around product capabilities and integrate the
remote i18n feature from origin/master into the new structure.

- Restructure src into capability features (app, trainer, library,
  remote-session, appearance, shared); move the bridge to bridge/src.
- Add lingui-based UI localization and wrap remaining user-facing
  strings (Trans / msg macros); fix the 'END В·' mojibake.
- Port WeMod cheat-metadata i18n: capture the access token from the
  snapshot's renderer in the bridge and fetch localized trainer_meta
  in remote-session.i18n; guarantee snapshot sync on token failure.
- Wire vitest to the app's lingui/preact pipeline (mergeConfig).
2026-06-15 00:10:49 +03:00
kitbyte 8756e41fb9 feat: bump version to 1.0.8.4 - fix QR code pairing and post-update hang 2026-06-10 17:07:04 +03:00
kitbyte 544b9f0fb0 feat: update changelog for version 1.0.8.3, enhance Pro activation handling, minor fixes and improve renderer script management 2026-06-06 10:56:29 +03:00
kitbyte 1f5ba9fc95 patch: fix a syntax error in the Disable Updates, websocket connection wouldn't automatically reconnect, ui rerender optimizations
bump version to 1.0.8.1
2026-05-15 14:46:04 +03:00
kitbyte 13759b1db6 feat: ship 1.0.8.0 release automation and runtime overhaul
- reduce ASAR IO overhead with streamed archive reads, buffered copies, faster relative-path handling and placeholder integrity records
- fix in-place app.asar.unpacked packing/extraction self-copy cases that caused locked-file failures
- tighten JS patch discovery with candidate bundle filters and search hints
- require prebuilt remote-panel dist artifacts and clean up embedded bridge/script packaging
- add unified build entrypoints for PowerShell, cmd and bash and move native CMake output under .tmp
- add release metadata validation, changelog section extraction, pre-commit hook and GitHub Actions validation/release pipelines
- make CHANGELOG the source of truth for release notes and document the tag-driven release flow
- add updater release notes UI with latest/full changelog loading and localize the new update strings
- modularize bridge renderer scripts, add installed apps and game status sync, and support remote launch/stop commands
- centralize bridge protocol, IPC and WebSocket constants and improve LAN IP selection for QR pairing
- refactor remote panel controls/state enums, persist accent color, polish library/session UI and refresh assets
2026-05-06 13:07:09 +03:00
kitbyte 3b2f373946 feat(web-panel): Add ipc-logger script to intercept WeMod Electron IPC traffic 2026-05-02 11:39:54 +03:00
kitbyte fa753b4a34 Release 1.0.7.0: Remote Web Panel & Stability Fixes 2026-05-01 22:39:15 +03:00