Skip to content

feat(windows): Russian UI and reliable shortcut editing - #68

Open
yomoe wants to merge 6 commits into
AhakeyAI:eternal-devfrom
yomoe:feat/windows-russian-ui
Open

yomoe wants to merge 6 commits into
AhakeyAI:eternal-devfrom
yomoe:feat/windows-russian-ui

Conversation

@yomoe

@yomoe yomoe commented Sep 19, 2026

Copy link
Copy Markdown

Add Russian to the Windows JavaFX client and BLE bridge, and fix the shortcut editor and Save interaction. Studio includes 312 resource keys plus 368 legacy display translations; the bridge embeds 47 English/Russian/Chinese resource keys. Studio passes the selected language to the bridge; standalone startup reads the shared preference and then Windows UI language, with English fallback.

Deleting a shortcut's base key previously threw from the model setter because empty/modifier-only intermediate states were rejected. Rebuilding then restored the old key. Drafts now retain those intermediate states, both left/right modifiers remain visible, and Clear removes all keys. Save validates complete active shortcuts; runtime never substitutes Win+H for an incomplete draft. F18 remains reserved.

Save previously probed device capabilities on the JavaFX thread even for desktop-only K1 actions. K1-only edits now persist locally while disconnected; device preflight runs in the background transaction before writes. Capability gates, ACK checks and dirty-snapshot semantics remain intact. BLE window opacity is now 100%, and secondary toolbar groups wrap without horizontal scrolling. New messages are in all three translation catalogs.

build-local-windows.ps1 creates a Russian-default portable EXE/ZIP and optional WiX installer using a supplied JavaFX runtime and built bridge. The local package is unsigned and excludes speech models/native speech assets, firmware and WCHISP. The formal release pipeline is unchanged; JDK installer auxiliary messages retain English fallback. Low-level vendor logs and remaining firmware exception strings are outside this localization pass.

Validation:

  • Independent JDK 17 checkout: mvn -f ahakeyconfig-win-java/pom.xml package — 312 tests passed, release contents OK.
  • Combined local build with fix(windows): forward legacy BLE physical status notifications #66 and fix(windows): include required WCHISP verification mode key #67: 314 Java tests passed, MSBuild Release, BLE localization and physical-status regressions passed, portable EXE/ZIP and WiX setup built.
  • JavaFX smoke test fires actual Add/Delete/Clear buttons, checks Shift+Ctrl+D persistence while disconnected, incomplete-save validation, and toolbar bounds at 1024/1280 px. Uses isolated draft storage and simulation; screenshots inspected.
  • Catalog coverage, placeholders, locale/persistence and packaged-resource checks passed. Local package JAR/bridge hashes match the tested binaries.

Local saving does not provide missing firmware support. The existing physical F18 and device-write requirements remain; no firmware was flashed. The central canvas retains its existing scrolling; this is a bounded toolbar improvement.

Integration with #66: both changes touch the cache log in TcpServer.OnBleNotify. Keep this PR's localized log and #66's removal of the early return so physical status is broadcast. The combined result is tested locally; this PR remains based on eternal-dev without bundling the transport or WCHISP fixes.

Exact commands, root causes and validation limits: docs/windows-shortcut-save-fix.md, docs/windows-stabilization-plan.md, and BLE_tcp_bridge/readme.md. No binaries, private settings, raw logs or proprietary tools are included.

Installer upgrade correction: local replacement builds can specify -PackageVersion independently from the source JAR version. The initial rebuilt 1.5.3 MSI reused its ProductCode and returned Windows Installer 1638. The replacement 1.5.4 EXE was installed over the existing 1.5.3 successfully (exit 0), preserving user draft/language preference hashes; installed JAR/bridge hashes match the build, and Studio starts with a responsive window. The read-only Test-LocalInstallerUpgrade.ps1 passes for 1.5.3 -> 1.5.4 and rejects the old package against itself. Fourth-component versions are rejected because MSI ignores that component for upgrades.

Conflict resolution against eternal-dev a878f63: retained upstream verified-USB preference, real AhaType/account behavior and prepared WCHISP workflow, together with Russian UI and shortcut/save fixes. Maintenance completion messages preserve the upstream distinction between writing firmware and reading its version. Full Maven package passed 354 tests; MSBuild Release, BLE localization and the actual JavaFX shortcut/save smoke test passed. No firmware or installed application changes.

@yomoe yomoe changed the title feat(windows): add Russian UI and local EXE packaging feat(windows): localize Studio and BLE bridge in Russian Sep 19, 2026
@yomoe yomoe changed the title feat(windows): localize Studio and BLE bridge in Russian feat(windows): Russian UI and reliable shortcut editing Sep 19, 2026
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