From 71a18a773aa39c41a1e59c16ba0744b99a86b573 Mon Sep 17 00:00:00 2001 From: TRIP <192432815+appergb@users.noreply.github.com> Date: Wed, 21 Oct 2026 23:19:13 -0700 Subject: [PATCH 1/3] fix(desktop): preserve interrupted dictation and align native UI --- .github/workflows/ci.yml | 29 +- openless-all/app/Cargo.lock | 125 +- .../app/crates/openless-capsule/src/icons.rs | 105 +- .../app/crates/openless-capsule/src/lib.rs | 302 ++++- .../app/crates/openless-capsule/src/motion.rs | 202 +++ .../app/crates/openless-capsule/src/pill.rs | 1082 +++++++++++++++++ .../crates/openless-capsule/src/renderer.rs | 247 +--- .../app/crates/openless-capsule/src/shapes.rs | 308 +++++ .../crates/openless-capsule/src/supervisor.rs | 21 +- .../app/crates/openless-capsule/src/theme.rs | 3 - .../app/crates/openless-core/Cargo.toml | 2 +- .../app/crates/openless-core/src/api.rs | 393 +++++- .../openless-core/src/asr/volcengine.rs | 21 +- .../app/crates/openless-core/src/audio.rs | 48 +- .../src/cloud_sync_e2ee_documents/registry.rs | 7 + .../openless-core/src/dictation_engine.rs | 35 +- .../app/crates/openless-core/src/domains.rs | 21 + .../app/crates/openless-core/src/events.rs | 6 + .../openless-core/src/language_catalog.rs | 9 + .../app/crates/openless-core/src/lib.rs | 5 +- .../app/crates/openless-core/src/ports.rs | 7 + .../openless-core/src/provider_service.rs | 19 + .../crates/openless-core/src/qa_service.rs | 23 +- .../app/crates/openless-core/src/settings.rs | 5 +- .../crates/openless-core/src/shared_types.rs | 54 +- .../openless-core/src/shortcut_types.rs | 13 + .../openless-core/src/streaming_insert.rs | 29 + .../crates/openless-core/tests/qa_contract.rs | 54 + openless-all/app/e2e/ask-anything.spec.ts | 116 ++ .../app/e2e/capsule-reference-motion.spec.ts | 158 +++ .../app/e2e/fixtures/capsule-motion.html | 11 + .../app/e2e/fixtures/capsule-motion.tsx | 169 +++ openless-all/app/e2e/motion.spec.ts | 3 + openless-all/app/e2e/openless-default.spec.ts | 108 ++ openless-all/app/e2e/refinements.spec.ts | 4 +- .../app/e2e/resource-lifecycle.spec.ts | 3 + .../app/e2e/settings-regressions.spec.ts | 13 +- openless-all/app/e2e/switch-motion.spec.ts | 285 +++++ .../app/e2e/visual-refinements.spec.ts | 86 +- .../shortcuts-dark-chromium-darwin.png | Bin 90221 -> 0 bytes .../shortcuts-dark-chromium-linux.png | Bin 95300 -> 0 bytes .../shortcuts-dark-webkit-darwin.png | Bin 116238 -> 0 bytes .../shortcuts-dark-webkit-linux.png | Bin 103695 -> 0 bytes .../shortcuts-light-chromium-darwin.png | Bin 90119 -> 0 bytes .../shortcuts-light-chromium-linux.png | Bin 94914 -> 0 bytes .../shortcuts-light-webkit-darwin.png | Bin 117814 -> 0 bytes .../shortcuts-light-webkit-linux.png | Bin 105094 -> 0 bytes .../typography-dark-chromium-darwin.png | Bin 63875 -> 0 bytes .../typography-dark-chromium-linux.png | Bin 65653 -> 0 bytes .../typography-dark-webkit-darwin.png | Bin 86660 -> 0 bytes .../typography-dark-webkit-linux.png | Bin 72986 -> 0 bytes .../typography-light-chromium-darwin.png | Bin 64033 -> 0 bytes .../typography-light-chromium-linux.png | Bin 65435 -> 0 bytes .../typography-light-webkit-darwin.png | Bin 87439 -> 0 bytes .../typography-light-webkit-linux.png | Bin 74158 -> 0 bytes openless-all/app/harmony/ipc-audit.json | 25 +- openless-all/app/linux-egui/Cargo.toml | 2 +- .../app/linux-egui/src/local_hotkeys.rs | 1 + openless-all/app/linux-egui/src/settings.rs | 1 + openless-all/app/native-capsule/Cargo.toml | 3 + openless-all/app/native-capsule/src/main.rs | 243 +++- .../app/native-capsule/src/platform.rs | 46 + openless-all/app/package-lock.json | 4 +- openless-all/app/package.json | 2 +- openless-all/app/public/startup.js | 4 +- .../app/scripts/ci-changed-areas.test.mjs | 18 +- .../scripts/desktop-version-contract.test.mjs | 2 +- .../app/scripts/layout-mode-contract.test.mjs | 17 +- .../local-asr-polling-contract.test.mjs | 25 +- .../app/scripts/qa-panel-runtime.test.mjs | 43 +- .../app/scripts/windows-ui-config.test.mjs | 22 +- openless-all/app/src-tauri/Cargo.lock | 68 +- openless-all/app/src-tauri/Cargo.toml | 4 +- .../app/src-tauri/backend-tests/Cargo.lock | 278 +---- .../backend-tests/tests/mouse_dictation.rs | 4 + .../backend-tests/tests/tls_crypto.rs | 3 + .../capabilities/macos-native-theme.json | 8 + .../src-tauri/src/android/native_bridge.rs | 79 +- .../app/src-tauri/src/commands/dictation.rs | 53 + .../app/src-tauri/src/commands/mod.rs | 1 - openless-all/app/src-tauri/src/commands/qa.rs | 32 +- openless-all/app/src-tauri/src/coordinator.rs | 27 +- .../src/coordinator/dictation_core.rs | 22 +- .../app/src-tauri/src/coordinator/qa.rs | 59 +- .../src/coordinator/restore_runtime.rs | 1 + .../app/src-tauri/src/core_adapters.rs | 8 + .../app/src-tauri/src/desktop_resources.rs | 19 +- openless-all/app/src-tauri/src/hotkey.rs | 34 +- openless-all/app/src-tauri/src/lib.rs | 70 +- .../app/src-tauri/src/mouse_dictation.rs | 1 + .../app/src-tauri/src/native_capsule.rs | 140 ++- openless-all/app/src-tauri/src/qa_adapter.rs | 16 +- openless-all/app/src-tauri/src/recorder.rs | 322 ++++- .../app/src-tauri/src/recording_companion.rs | 195 +++ .../app/src-tauri/src/side_aware_combo.rs | 27 +- .../src-tauri/src/tauri_coordinator_host.rs | 166 ++- .../app/src-tauri/src/tauri_events.rs | 103 +- openless-all/app/src-tauri/src/tls_crypto.rs | 17 + .../app/src-tauri/src/unicode_keystroke.rs | 312 ++++- openless-all/app/src-tauri/tauri.conf.json | 2 +- openless-all/app/src/components/Capsule.tsx | 419 +------ .../app/src/components/CapsuleStyles.css | 69 +- .../components/CapsuleTranslationBadge.tsx | 231 ++++ .../app/src/components/FloatingShell.tsx | 76 +- .../app/src/components/LiveTranscriptPill.tsx | 24 +- .../app/src/components/OpenLessCapsule.css | 174 +++ .../app/src/components/OpenLessCapsule.tsx | 182 +++ openless-all/app/src/components/QaSurface.tsx | 62 + .../app/src/components/SettingsModal.tsx | 110 +- .../app/src/components/TypelessCapsule.tsx | 151 --- .../app/src/components/WindowChrome.tsx | 4 +- .../app/src/components/ui/ChoiceChips.tsx | 17 +- .../app/src/components/ui/Segmented.tsx | 65 + openless-all/app/src/components/ui/Select.css | 2 +- openless-all/app/src/components/ui/Select.tsx | 11 +- .../app/src/components/ui/SelectLite.tsx | 30 +- openless-all/app/src/i18n/de.ts | 29 +- openless-all/app/src/i18n/en.ts | 30 +- openless-all/app/src/i18n/es.ts | 30 +- openless-all/app/src/i18n/experimentalAsr.ts | 21 +- openless-all/app/src/i18n/fr.ts | 30 +- openless-all/app/src/i18n/ja.ts | 34 +- openless-all/app/src/i18n/ko.ts | 33 +- openless-all/app/src/i18n/zh-CN.ts | 36 +- openless-all/app/src/i18n/zh-TW.ts | 34 +- .../app/src/lib/capsuleLayout.test.ts | 23 +- openless-all/app/src/lib/capsuleLayout.ts | 8 +- openless-all/app/src/lib/fontScale.ts | 5 +- openless-all/app/src/lib/hotkey.ts | 4 +- openless-all/app/src/lib/ipc/channels.ts | 16 +- openless-all/app/src/lib/ipc/dictation.ts | 25 + openless-all/app/src/lib/ipc/mock-data.ts | 11 +- openless-all/app/src/lib/ipc/qa.ts | 30 +- openless-all/app/src/lib/motion.ts | 63 +- .../app/src/lib/nativeWindowTheme.test.ts | 88 ++ openless-all/app/src/lib/nativeWindowTheme.ts | 37 + openless-all/app/src/lib/themeMode.ts | 25 +- openless-all/app/src/lib/types.ts | 8 + openless-all/app/src/pages/LocalAsr/index.tsx | 7 + openless-all/app/src/pages/Overview.tsx | 3 +- openless-all/app/src/pages/QaPanel.tsx | 170 ++- openless-all/app/src/pages/SelectionAsk.css | 215 +--- openless-all/app/src/pages/SelectionAsk.tsx | 238 +--- openless-all/app/src/pages/_atoms.tsx | 2 + openless-all/app/src/pages/qa-panel.css | 270 +++- .../app/src/pages/settings/ChannelList.tsx | 79 +- .../src/pages/settings/PermissionsSection.tsx | 8 +- .../src/pages/settings/ProvidersSection.tsx | 23 +- .../pages/settings/RecordingInputSection.tsx | 94 +- .../src/pages/settings/RemoteInputSection.tsx | 35 +- .../settings/SelectionWorkspaceSection.tsx | 140 +-- .../src/pages/settings/ShortcutsSection.tsx | 9 +- .../app/src/pages/settings/shared.tsx | 52 +- openless-all/app/src/pages/settings/tabs.tsx | 45 +- .../app/src/pages/voice-edit-panel.css | 4 +- openless-all/app/src/styles/global.css | 207 +++- openless-all/app/src/styles/refinements.css | 80 +- openless-all/app/src/styles/tokens.css | 41 +- 158 files changed, 7714 insertions(+), 2915 deletions(-) create mode 100644 openless-all/app/crates/openless-capsule/src/motion.rs create mode 100644 openless-all/app/crates/openless-capsule/src/pill.rs create mode 100644 openless-all/app/crates/openless-capsule/src/shapes.rs create mode 100644 openless-all/app/e2e/ask-anything.spec.ts create mode 100644 openless-all/app/e2e/capsule-reference-motion.spec.ts create mode 100644 openless-all/app/e2e/fixtures/capsule-motion.html create mode 100644 openless-all/app/e2e/fixtures/capsule-motion.tsx create mode 100644 openless-all/app/e2e/openless-default.spec.ts create mode 100644 openless-all/app/e2e/switch-motion.spec.ts delete mode 100644 openless-all/app/e2e/visual-refinements.spec.ts-snapshots/shortcuts-dark-chromium-darwin.png delete mode 100644 openless-all/app/e2e/visual-refinements.spec.ts-snapshots/shortcuts-dark-chromium-linux.png delete mode 100644 openless-all/app/e2e/visual-refinements.spec.ts-snapshots/shortcuts-dark-webkit-darwin.png delete mode 100644 openless-all/app/e2e/visual-refinements.spec.ts-snapshots/shortcuts-dark-webkit-linux.png delete mode 100644 openless-all/app/e2e/visual-refinements.spec.ts-snapshots/shortcuts-light-chromium-darwin.png delete mode 100644 openless-all/app/e2e/visual-refinements.spec.ts-snapshots/shortcuts-light-chromium-linux.png delete mode 100644 openless-all/app/e2e/visual-refinements.spec.ts-snapshots/shortcuts-light-webkit-darwin.png delete mode 100644 openless-all/app/e2e/visual-refinements.spec.ts-snapshots/shortcuts-light-webkit-linux.png delete mode 100644 openless-all/app/e2e/visual-refinements.spec.ts-snapshots/typography-dark-chromium-darwin.png delete mode 100644 openless-all/app/e2e/visual-refinements.spec.ts-snapshots/typography-dark-chromium-linux.png delete mode 100644 openless-all/app/e2e/visual-refinements.spec.ts-snapshots/typography-dark-webkit-darwin.png delete mode 100644 openless-all/app/e2e/visual-refinements.spec.ts-snapshots/typography-dark-webkit-linux.png delete mode 100644 openless-all/app/e2e/visual-refinements.spec.ts-snapshots/typography-light-chromium-darwin.png delete mode 100644 openless-all/app/e2e/visual-refinements.spec.ts-snapshots/typography-light-chromium-linux.png delete mode 100644 openless-all/app/e2e/visual-refinements.spec.ts-snapshots/typography-light-webkit-darwin.png delete mode 100644 openless-all/app/e2e/visual-refinements.spec.ts-snapshots/typography-light-webkit-linux.png create mode 100644 openless-all/app/src-tauri/backend-tests/tests/tls_crypto.rs create mode 100644 openless-all/app/src-tauri/capabilities/macos-native-theme.json create mode 100644 openless-all/app/src-tauri/src/recording_companion.rs create mode 100644 openless-all/app/src-tauri/src/tls_crypto.rs create mode 100644 openless-all/app/src/components/CapsuleTranslationBadge.tsx create mode 100644 openless-all/app/src/components/OpenLessCapsule.css create mode 100644 openless-all/app/src/components/OpenLessCapsule.tsx create mode 100644 openless-all/app/src/components/QaSurface.tsx delete mode 100644 openless-all/app/src/components/TypelessCapsule.tsx create mode 100644 openless-all/app/src/components/ui/Segmented.tsx create mode 100644 openless-all/app/src/lib/nativeWindowTheme.test.ts create mode 100644 openless-all/app/src/lib/nativeWindowTheme.ts diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2821c2b6c..4d3f9075c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -38,9 +38,8 @@ jobs: msrv: ${{ steps.detect.outputs.msrv }} linux: ${{ steps.detect.outputs.linux }} harmony: ${{ steps.detect.outputs.harmony }} - # Only worth a macOS runner when the declared MSRV is actually older than - # the stable toolchain the other jobs already build with. - msrv_needed: ${{ steps.msrv.outputs.needed }} + # Validate the pinned minimum compiler whenever native sources can change. + msrv_needed: ${{ steps.detect.outputs.msrv }} steps: - uses: actions/checkout@v4 with: @@ -59,23 +58,6 @@ jobs: # 失败即运行:脚本读不到差异时返回 true,这里也只接受明确的 false。 echo "$area=$( [ "$verdict" = 'false' ] && echo false || echo true )" >> "$GITHUB_OUTPUT" done - - name: Is the declared MSRV older than stable? - id: msrv - # `rust-version` is the promise; a dedicated compile only proves something - # while it is behind the toolchain the other jobs use. When they coincide - # (today: 1.99 vs stable 1.99.x) the macOS MSRV job is pure duplication. - run: | - set -euo pipefail - # The workspace manifest carries no `rust-version`; every member declares - # its own. `openless-core` is the shared one, so read it there. - declared=$(grep -m1 '^rust-version' openless-all/app/crates/openless-core/Cargo.toml | sed -E 's/.*"([0-9.]+)".*/\1/') - stable=$(rustc --version | sed -E 's/rustc ([0-9]+\.[0-9]+)\.[0-9]+.*/\1/') - echo "declared MSRV: ${declared:-none}, stable: $stable" - if [ -z "$declared" ] || [ "$declared" = "$stable" ]; then - echo "needed=false" >> "$GITHUB_OUTPUT" - else - echo "needed=true" >> "$GITHUB_OUTPUT" - fi ui-motion: name: UI motion (Chromium + WebKit) @@ -820,11 +802,8 @@ jobs: macos-msrv: needs: [changes] - # Two conditions, both fail-open in the direction that matters: the change set - # must be able to reach Rust sources, and the declared MSRV must be older than - # the stable toolchain (otherwise `cross-platform` already compiles that code - # with stable, which is a superset of the MSRV promise). - if: needs.changes.outputs.msrv != 'false' && needs.changes.outputs.msrv_needed == 'true' + # Run the declared minimum toolchain even when stable has the same version. + if: needs.changes.outputs.msrv != 'false' name: macOS Rust 1.99 MSRV runs-on: macos-latest timeout-minutes: 60 diff --git a/openless-all/app/Cargo.lock b/openless-all/app/Cargo.lock index 95fa2698e..bfacf02f8 100644 --- a/openless-all/app/Cargo.lock +++ b/openless-all/app/Cargo.lock @@ -546,29 +546,6 @@ version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53" -[[package]] -name = "aws-lc-rs" -version = "1.18.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "faac5829c2b74c28f830747e7818ccfb684261b5f48a1118b1e2a13d36dfab13" -dependencies = [ - "aws-lc-sys", - "zeroize", -] - -[[package]] -name = "aws-lc-sys" -version = "0.46.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1622d8446a2d4b2ce0c7eefc73dd43a99779028d5ee5c2dd8073a658ba8a2bc" -dependencies = [ - "cc", - "cmake", - "dunce", - "fs_extra", - "pkg-config", -] - [[package]] name = "axum" version = "0.8.9" @@ -988,15 +965,6 @@ dependencies = [ "error-code", ] -[[package]] -name = "cmake" -version = "0.1.58" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0f78a02292a74a88ac736019ab962ece0bc380e3f977bf72e376c5d78ff0678" -dependencies = [ - "cc", -] - [[package]] name = "cmov" version = "0.5.4" @@ -1501,12 +1469,6 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d8b14ccef22fc6f5a8f4d7d768562a182c04ce9a3b3157b91390b52ddfdf1a76" -[[package]] -name = "dunce" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" - [[package]] name = "easyfft" version = "0.4.2" @@ -2044,12 +2006,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "fs_extra" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c" - [[package]] name = "fst" version = "0.4.7" @@ -2597,6 +2553,7 @@ dependencies = [ "tokio", "tokio-rustls", "tower-service", + "webpki-roots 1.0.9", ] [[package]] @@ -4041,21 +3998,17 @@ name = "openless-native-capsule" version = "0.1.0" dependencies = [ "eframe", + "memmap2", "objc2 0.5.3", "objc2-app-kit 0.2.2", "objc2-foundation 0.2.2", "openless-capsule", "raw-window-handle", + "skrifa", "windows 0.58.0", "winit", ] -[[package]] -name = "openssl-probe" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c87def4c32ab89d880effc9e097653c8da5d6ef28e6b539d313baaacfbafcbe" - [[package]] name = "orbclient" version = "0.3.55" @@ -4659,7 +4612,6 @@ version = "0.11.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0e750cca55fe4f0439a15d0bb529da9651e79993e8e72c61a899a36d462befbe" dependencies = [ - "aws-lc-rs", "bytes", "getrandom 0.4.3", "lru-slab", @@ -4930,11 +4882,11 @@ checksum = "19b30a45b0cd0bcca8037f3d0dc3421eaf95327a17cad11964fb8179b4fc4832" [[package]] name = "reqwest" -version = "0.13.5" +version = "0.12.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16a1cfa75cc186dd73d5818e510e042e40927bccc9c236b061cea97e1eb08029" +checksum = "eddd3ca559203180a307f12d114c268abf583f59b03cb906fd0b3ff8646c1147" dependencies = [ - "base64 0.23.1", + "base64 0.22.1", "bytes", "futures-core", "futures-util", @@ -4952,7 +4904,6 @@ dependencies = [ "quinn", "rustls", "rustls-pki-types", - "rustls-platform-verifier", "serde", "serde_json", "serde_urlencoded", @@ -4968,6 +4919,7 @@ dependencies = [ "wasm-bindgen-futures", "wasm-streams", "web-sys", + "webpki-roots 1.0.9", ] [[package]] @@ -5183,7 +5135,6 @@ version = "0.23.46" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "48e13bd8c0e9365c43cfa5c9e8f9ad49d3c8444926c9aac819e0e4dc503c8fdf" dependencies = [ - "aws-lc-rs", "log", "once_cell", "ring", @@ -5193,18 +5144,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "rustls-native-certs" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a073f5dc7469f984c52ad2752b63b0807745133b6de880b7b64c1ac4c48aec4" -dependencies = [ - "openssl-probe", - "rustls-pki-types", - "schannel", - "security-framework", -] - [[package]] name = "rustls-pki-types" version = "1.15.1" @@ -5215,40 +5154,12 @@ dependencies = [ "zeroize", ] -[[package]] -name = "rustls-platform-verifier" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1167586491e2b18b8bfbb293e8180ec17c201c4f076d7cb3070ca964e7598f98" -dependencies = [ - "core-foundation 0.10.1", - "core-foundation-sys", - "jni", - "log", - "once_cell", - "rustls", - "rustls-native-certs", - "rustls-platform-verifier-android", - "rustls-webpki", - "security-framework", - "security-framework-sys", - "webpki-root-certs", - "windows-sys 0.61.2", -] - -[[package]] -name = "rustls-platform-verifier-android" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eec689c0bc40ff2458a5977b6619cb718087084a18e02a131c599b62d05e1a5f" - [[package]] name = "rustls-webpki" version = "0.103.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f3c3cf1d8b1e7d4927e2d154c3fcb02979afb9939629c62cd9048d4f07b60ac2" dependencies = [ - "aws-lc-rs", "ring", "rustls-pki-types", "untrusted", @@ -5275,15 +5186,6 @@ dependencies = [ "winapi-util", ] -[[package]] -name = "schannel" -version = "0.1.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cb23c424d8ee841bb4d813677ca237e2a610067d594fec130f87d6093495ab5" -dependencies = [ - "windows-sys 0.61.2", -] - [[package]] name = "scoped-tls" version = "1.0.1" @@ -6540,9 +6442,9 @@ dependencies = [ [[package]] name = "wasm-streams" -version = "0.5.0" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d1ec4f6517c9e11ae630e200b2b65d193279042e28edd4a2cda233e46670bbb" +checksum = "15053d8d85c7eccdbefef60f06769760a563c7f0a9d6902a13d35c7800b0ad65" dependencies = [ "futures-util", "js-sys", @@ -6680,15 +6582,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "webpki-root-certs" -version = "1.0.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b96554aa2acc8ccdb7e1c9a58a7a68dd5d13bccc69cd124cb09406db612a1c9b" -dependencies = [ - "rustls-pki-types", -] - [[package]] name = "webpki-roots" version = "0.26.11" diff --git a/openless-all/app/crates/openless-capsule/src/icons.rs b/openless-all/app/crates/openless-capsule/src/icons.rs index fa63d0a16..f2c93a2ac 100644 --- a/openless-all/app/crates/openless-capsule/src/icons.rs +++ b/openless-all/app/crates/openless-capsule/src/icons.rs @@ -1,76 +1,57 @@ +//! Lucide outlines (`Icon.tsx`), rasterized at the device size and tinted. use resvg::{tiny_skia, usvg}; -#[derive(Clone, Copy)] + +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)] pub enum IconName { Close, Check, } -fn lucide_svg(icon: IconName) -> Option<(&'static str, &'static str)> { - Some(match icon { - IconName::Close => ( - "Close", - include_str!("../../../linux-egui/assets/lucide/Close.svg"), - ), - IconName::Check => ( - "Check", - include_str!("../../../linux-egui/assets/lucide/Check.svg"), - ), - }) + +fn paths(icon: IconName) -> &'static str { + match icon { + // lucide `x` + IconName::Close => r#""#, + // lucide `check` + IconName::Check => r#""#, + } } -use super::theme; -const ICON_PIXELS: usize = 48; // 3x the 16-point sidebar/control icon. -const ICON_SIZE: f32 = 16.0; -fn rasterize_mask(source: &str) -> Option { - let tree = usvg::Tree::from_str(source, &usvg::Options::default()).ok()?; - let mut pixmap = tiny_skia::Pixmap::new(ICON_PIXELS as u32, ICON_PIXELS as u32)?; +/// White coverage mask for `size` points. As in lucide-react, `stroke_width` +/// is in the icon's 24-unit space and scales with `size`. +pub fn texture( + ctx: &egui::Context, + icon: IconName, + size: f32, + stroke_width: f32, +) -> Option { + let pixels = (size * ctx.pixels_per_point()).round().max(1.0) as u32; + let id = egui::Id::unique(("lucide-icon", icon, pixels, (stroke_width * 100.0) as u32)); + if let Some(texture) = ctx.data(|data| data.get_temp::(id)) { + return Some(texture); + } + let svg = format!( + r##"{}"##, + paths(icon) + ); + let tree = usvg::Tree::from_str(&svg, &usvg::Options::default()).ok()?; + let mut pixmap = tiny_skia::Pixmap::new(pixels, pixels)?; + let scale = pixels as f32 / 24.0; resvg::render( &tree, - tiny_skia::Transform::from_scale(ICON_PIXELS as f32 / 24.0, ICON_PIXELS as f32 / 24.0), + tiny_skia::Transform::from_scale(scale, scale), &mut pixmap.as_mut(), ); - // tiny-skia returns premultiplied white; ColorImage expects straight RGBA. - // SVGs contain only white strokes, so opacity is the entire mask. - let mut pixels = Vec::with_capacity(ICON_PIXELS * ICON_PIXELS * 4); + // tiny-skia returns premultiplied white; the mask is the alpha channel. + let mut rgba = Vec::with_capacity(pixmap.data().len()); for pixel in pixmap.data().as_chunks::<4>().0 { - pixels.extend_from_slice(&[255, 255, 255, pixel[3]]); - } - Some(egui::ColorImage::from_rgba_unmultiplied( - [ICON_PIXELS, ICON_PIXELS], - &pixels, - )) -} - -/// Draw the same SVG outlines used by Tauri, recolored for this surface. -/// Texture handles live in egui's context and are reused across frames/windows. -pub fn draw_icon(ui: &egui::Ui, center: egui::Pos2, icon: IconName, color: egui::Color32) { - let Some((name, svg)) = lucide_svg(icon) else { - // Not part of Icon.tsx: the account avatar fallback is deliberately - // separate from the monochrome Lucide interface controls. - let p = ui.painter(); - p.circle_filled(center, 7.0, color.gamma_multiply(0.75)); - p.circle_filled(center + egui::vec2(0.0, 3.0), 3.4, theme::SURFACE_2); - return; - }; - let ctx = ui.ctx(); - let id = egui::Id::unique(("lucide-icon", name)); - let texture = ctx - .data(|data| data.get_temp::(id)) - .or_else(|| { - let image = rasterize_mask(svg)?; - let texture = ctx.load_texture( - format!("lucide-{name}"), - image, - egui::TextureOptions::LINEAR, - ); - ctx.data_mut(|data| data.insert_temp(id, texture.clone())); - Some(texture) - }); - if let Some(texture) = texture { - ui.painter().image( - texture.id(), - egui::Rect::from_center_size(center, egui::vec2(ICON_SIZE, ICON_SIZE)), - egui::Rect::from_min_max(egui::Pos2::ZERO, egui::pos2(1.0, 1.0)), - color, - ); + rgba.extend_from_slice(&[255, 255, 255, pixel[3]]); } + let image = egui::ColorImage::from_rgba_unmultiplied([pixels as usize; 2], &rgba); + let texture = ctx.load_texture( + format!("lucide-{icon:?}-{pixels}"), + image, + egui::TextureOptions::LINEAR, + ); + ctx.data_mut(|data| data.insert_temp(id, texture.clone())); + Some(texture) } diff --git a/openless-all/app/crates/openless-capsule/src/lib.rs b/openless-all/app/crates/openless-capsule/src/lib.rs index 589ccf2e2..23499b988 100644 --- a/openless-all/app/crates/openless-capsule/src/lib.rs +++ b/openless-all/app/crates/openless-capsule/src/lib.rs @@ -3,7 +3,9 @@ use serde::{Deserialize, Serialize}; use std::io::{self, BufRead, Write}; -pub const PROTOCOL_VERSION: u16 = 1; +/// v2: the default (OpenLess) capsule needs warming/operating/inserted counts, +/// the translation target, theme, the leaving (exit) frame and the full label set. +pub const PROTOCOL_VERSION: u16 = 2; pub const MAX_LINE_BYTES: usize = 1024 * 1024; #[cfg(feature = "ui")] @@ -11,8 +13,14 @@ mod icons; #[cfg(feature = "ui")] mod layout; #[cfg(feature = "ui")] +mod motion; +#[cfg(feature = "ui")] +pub mod pill; +#[cfg(feature = "ui")] pub mod renderer; #[cfg(feature = "ui")] +mod shapes; +#[cfg(feature = "ui")] pub mod siri_gl; #[cfg(feature = "host")] pub mod supervisor; @@ -26,14 +34,38 @@ pub struct CapsulePopupState { pub audio_level: Option, pub translation_active: bool, pub style: String, + /// Optimistically shown before the first microphone frame. + #[serde(default)] + pub warming: bool, + /// Less Computer session: processing reads "using" instead of "thinking". + #[serde(default)] + pub operating: bool, + #[serde(default)] + pub inserted_chars: Option, + /// Selection polish shares the capsule window but shows a one-line notice. + #[serde(default)] + pub selection_polish: bool, + /// Display name of the translation target, already localized by the host. + #[serde(default)] + pub translation_target: Option, } +/// Copy shared with the WebView capsule (`src/i18n/*.ts`, `capsule.*`). +/// `inserted` keeps the i18next `{{count}}` placeholder. #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(default)] pub struct CapsuleLabels { pub thinking: String, + pub using: String, pub cancelled: String, pub error: String, + pub inserted: String, + pub translate_to: String, pub translating: String, + pub polishing: String, + pub replaced: String, + pub no_selection: String, + pub polish_failed: String, } impl Default for CapsuleLabels { @@ -44,60 +76,170 @@ impl Default for CapsuleLabels { impl CapsuleLabels { pub fn for_locale(locale: &str) -> Self { - let (thinking, cancelled, error, translating) = - if locale.starts_with("zh-TW") || locale.starts_with("zh-HK") { - ("正在處理", "已取消", "處理失敗", "正在翻譯") - } else if locale.starts_with("zh") { - ("正在处理", "已取消", "处理失败", "正在翻译") - } else if locale.starts_with("ja") { - ("処理中", "キャンセル済み", "処理に失敗しました", "翻訳中") - } else if locale.starts_with("ko") { - ("처리 중", "취소됨", "처리 실패", "번역 중") - } else if locale.starts_with("es") { - ( - "pensando", - "Cancelado", - "Se ha producido un error", - "Traduciendo", - ) - } else if locale.starts_with("fr") { - ( - "réflexion", - "Annulé", - "Une erreur s’est produite", - "Traduction", - ) - } else if locale.starts_with("de") { - ( - "denkt nach", - "Abgebrochen", - "Ein Fehler ist aufgetreten", - "Wird übersetzt", - ) - } else { - ("Processing", "Cancelled", "Failed", "Translating") - }; + let labels: [&str; 11] = if locale.starts_with("zh-TW") || locale.starts_with("zh-HK") { + [ + "thinking", + "using", + "已取消", + "出錯了", + "已插入 {{count}}", + "翻譯為", + "正在翻譯", + "正在潤色...", + "已替換", + "未選中內容", + "潤色失敗,請重試", + ] + } else if locale.starts_with("zh") { + [ + "thinking", + "using", + "已取消", + "出错了", + "已插入 {{count}}", + "翻译为", + "正在翻译", + "正在润色...", + "已替换", + "未选中内容", + "润色失败,请重试", + ] + } else if locale.starts_with("ja") { + [ + "thinking", + "using", + "キャンセルしました", + "エラーが発生しました", + "{{count}} 文字を入力しました", + "翻訳先", + "翻訳中", + "推敲中...", + "置き換えました", + "選択されていません", + "推敲に失敗しました。もう一度お試しください", + ] + } else if locale.starts_with("ko") { + [ + "thinking", + "using", + "취소됨", + "오류 발생", + "{{count}}자 입력됨", + "번역 언어", + "번역 중", + "다듬는 중...", + "교체됨", + "선택된 내용 없음", + "다듬기 실패, 다시 시도하세요", + ] + } else if locale.starts_with("es") { + [ + "pensando", + "actuando", + "Cancelado", + "Se ha producido un error", + "{{count}} insertados", + "Traducir al", + "Traduciendo", + "Mejorando el texto…", + "Reemplazado", + "No hay texto seleccionado", + "No se pudo mejorar el texto. Inténtalo de nuevo", + ] + } else if locale.starts_with("fr") { + [ + "réflexion", + "action", + "Annulé", + "Une erreur s’est produite", + "{{count}} insérés", + "Traduire en", + "Traduction", + "Amélioration du texte…", + "Remplacé", + "Aucun texte sélectionné", + "L’amélioration a échoué. Réessayez", + ] + } else if locale.starts_with("de") { + [ + "denkt nach", + "verwendet", + "Abgebrochen", + "Ein Fehler ist aufgetreten", + "{{count}} eingefügt", + "Übersetzen in", + "Wird übersetzt", + "Wird überarbeitet…", + "Ersetzt", + "Kein Text ausgewählt", + "Überarbeitung fehlgeschlagen. Erneut versuchen", + ] + } else { + [ + "thinking", + "using", + "Cancelled", + "Something went wrong", + "Inserted {{count}}", + "Translate to", + "Translating", + "Polishing…", + "Replaced", + "Nothing selected", + "Polish failed, try again", + ] + }; + let [thinking, using, cancelled, error, inserted, translate_to, translating, polishing, replaced, no_selection, polish_failed] = + labels.map(String::from); Self { - thinking: thinking.into(), - cancelled: cancelled.into(), - error: error.into(), - translating: translating.into(), + thinking, + using, + cancelled, + error, + inserted, + translate_to, + translating, + polishing, + replaced, + no_selection, + polish_failed, } } } +/// The app's theme preference; `System` is resolved by the helper itself. +#[derive(Debug, Clone, Copy, Default, PartialEq, Eq, Serialize, Deserialize)] +#[serde(rename_all = "snake_case")] +pub enum ThemeMode { + #[default] + System, + Light, + Dark, +} + #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] pub struct Frame { pub session_id: String, /// Presentation epoch, independent of the Core's event sequence. pub sequence: u64, pub state: CapsulePopupState, + /// Live recognition text for this session. The rail only shows it when + /// `show_transcript` is set; the processing label may still use it, as the + /// WebView capsule does. #[serde(default)] pub transcript: String, + #[serde(default)] + pub show_transcript: bool, #[serde(default = "default_transcript_font_size")] pub transcript_font_size: f32, #[serde(default)] pub labels: CapsuleLabels, + #[serde(default)] + pub theme: ThemeMode, + /// The last visible frame, replayed while the helper plays the exit motion. + /// The host stops the helper once the motion has finished. + #[serde(default)] + pub leaving: bool, /// Native pixels in the global virtual desktop; chosen by the host before /// the helper is shown, so the helper never has to activate itself. pub bounds: Option<[i32; 4]>, @@ -112,7 +254,8 @@ impl Frame { self.state.phase != "idle" } pub fn update_transcript(&mut self, session_id: &str, text: String) -> bool { - if self.session_id != session_id + if self.leaving + || self.session_id != session_id || !matches!( self.state.phase.as_str(), "recording" | "transcribing" | "polishing" @@ -125,6 +268,7 @@ impl Frame { } pub fn accepts(&self, session_id: &str, sequence: u64, action: Action) -> bool { self.interactive + && !self.leaving && self.session_id == session_id && sequence <= self.sequence && match action { @@ -135,6 +279,14 @@ impl Frame { ), } } + /// Turn the last visible frame into its exit frame: no controls, no rail. + pub fn into_leaving(mut self, sequence: u64) -> Self { + self.leaving = true; + self.interactive = false; + self.sequence = self.sequence.max(sequence); + self.transcript.clear(); + self + } } #[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)] @@ -221,8 +373,11 @@ mod tests { ..Default::default() }, transcript: String::new(), + show_transcript: true, transcript_font_size: 15.0, labels: Default::default(), + theme: ThemeMode::System, + leaving: false, bounds: None, interactive: true, } @@ -251,6 +406,28 @@ mod tests { assert_eq!(frame.transcript, "latest text"); } #[test] + fn a_leaving_frame_keeps_its_look_but_drops_controls_rail_and_late_text() { + let mut leaving = frame(); + leaving.transcript = "spoken".into(); + let mut leaving = leaving.into_leaving(50); + assert!(leaving.visible() && leaving.leaving && !leaving.interactive); + assert_eq!((leaving.sequence, leaving.transcript.as_str()), (50, "")); + assert!(!leaving.accepts("new", 42, Action::Cancel)); + assert!(!leaving.update_transcript("new", "late".into())); + // An exit can never move the presentation epoch backwards. + assert_eq!(frame().into_leaving(7).sequence, 42); + } + #[test] + fn v1_frames_without_new_fields_still_parse_with_safe_defaults() { + let frame: Frame = serde_json::from_str( + r#"{"session_id":"s","sequence":1,"state":{"phase":"recording","text":"","audio_level":0.2,"translation_active":false,"style":"classic"},"bounds":null,"interactive":true}"#, + ) + .unwrap(); + assert!(!frame.leaving && !frame.state.warming && !frame.show_transcript); + assert_eq!(frame.theme, ThemeMode::System); + assert_eq!(frame.labels, CapsuleLabels::for_locale("en")); + } + #[test] fn jsonl_rejects_oversized_or_unterminated_frames() { assert!( read_message::(&mut io::Cursor::new(vec![b'x'; MAX_LINE_BYTES + 2])) @@ -263,4 +440,51 @@ mod tests { .is_none() ); } + + /// Source contract: the helper repeats the WebView's `capsule.*` copy, so a + /// change to the i18n files must be mirrored in `CapsuleLabels::for_locale`. + #[test] + fn labels_match_the_webview_i18n_sources() { + fn value(block: &str, key: &str) -> String { + let start = block + .find(&format!("\n {key}: ")) + .or_else(|| block.find(&format!("\n {key}: "))) + .unwrap_or_else(|| panic!("missing capsule.{key}")); + let rest = &block[start..]; + let quote = rest.find('\'').unwrap() + 1; + let end = quote + rest[quote..].find("',").unwrap(); + rest[quote..end].to_string() + } + for (file, locale) in [ + ("en", "en"), + ("zh-CN", "zh-CN"), + ("zh-TW", "zh-TW"), + ("ja", "ja"), + ("ko", "ko"), + ("es", "es"), + ("fr", "fr"), + ("de", "de"), + ] { + let path = format!("{}/../../src/i18n/{file}.ts", env!("CARGO_MANIFEST_DIR")); + let source = std::fs::read_to_string(&path).unwrap(); + let start = source.find("\n capsule: {").expect("capsule block"); + let block = &source[start..start + source[start..].find("\n },").unwrap()]; + let labels = CapsuleLabels::for_locale(locale); + for (key, actual) in [ + ("thinking", &labels.thinking), + ("using", &labels.using), + ("cancelled", &labels.cancelled), + ("error", &labels.error), + ("inserted", &labels.inserted), + ("translateTo", &labels.translate_to), + ("translating", &labels.translating), + ("polishing", &labels.polishing), + ("replaced", &labels.replaced), + ("noSelection", &labels.no_selection), + ("failed", &labels.polish_failed), + ] { + assert_eq!(&value(block, key), actual, "{file}: capsule.{key}"); + } + } + } } diff --git a/openless-all/app/crates/openless-capsule/src/motion.rs b/openless-all/app/crates/openless-capsule/src/motion.rs new file mode 100644 index 000000000..a8f8f2476 --- /dev/null +++ b/openless-all/app/crates/openless-capsule/src/motion.rs @@ -0,0 +1,202 @@ +//! Easing and spring integration for capsule transitions. Interrupted animations +//! continue from their current values instead of restarting at their initial state. + +/// `cubic-bezier(x1, y1, x2, y2)`. +#[derive(Clone, Copy, Debug, PartialEq)] +pub struct Ease(pub f32, pub f32, pub f32, pub f32); + +pub const LINEAR: Ease = Ease(0.0, 0.0, 1.0, 1.0); +/// CSS `ease`. +pub const EASE: Ease = Ease(0.25, 0.1, 0.25, 1.0); +/// Symmetric acceleration and deceleration for property transitions. +pub const EASE_IN_OUT: Ease = Ease(0.42, 0.0, 0.58, 1.0); +/// `MORPH` in OpenLessCapsule.tsx. +pub const MORPH: Ease = Ease(0.22, 1.0, 0.36, 1.0); + +impl Ease { + pub fn at(self, t: f32) -> f32 { + let t = t.clamp(0.0, 1.0); + if self == LINEAR || t == 0.0 || t == 1.0 { + return t; + } + let Ease(x1, y1, x2, y2) = self; + let bezier = |a: f32, b: f32, s: f32| { + let u = 1.0 - s; + 3.0 * u * u * s * a + 3.0 * u * s * s * b + s * s * s + }; + // x(s) is monotonic for valid CSS curves: bisect for the parameter. + let (mut low, mut high) = (0.0_f32, 1.0_f32); + for _ in 0..24 { + let mid = (low + high) * 0.5; + if bezier(x1, x2, mid) < t { + low = mid; + } else { + high = mid; + } + } + bezier(y1, y2, (low + high) * 0.5) + } +} + +#[derive(Clone, Copy, Debug)] +pub struct Tween { + from: f32, + to: f32, + start: f64, + delay: f64, + duration: f64, + ease: Ease, +} + +impl Tween { + pub fn at(value: f32) -> Self { + Self { + from: value, + to: value, + start: 0.0, + delay: 0.0, + duration: 0.0, + ease: LINEAR, + } + } + + pub fn value(&self, now: f64) -> f32 { + let elapsed = now - self.start - self.delay; + if elapsed < 0.0 { + return self.from; + } + if self.duration <= 0.0 || elapsed >= self.duration { + return self.to; + } + let progress = self.ease.at((elapsed / self.duration) as f32); + self.from + (self.to - self.from) * progress + } + + pub fn active(&self, now: f64) -> bool { + now < self.start + self.delay + self.duration && self.from != self.to + } + + /// Retarget from the current value; an unchanged target keeps running. + pub fn set(&mut self, now: f64, to: f32, duration: f64, delay: f64, ease: Ease) { + if to == self.to { + return; + } + *self = Self { + from: self.value(now), + to, + start: now, + delay, + duration, + ease, + }; + } + + pub fn jump(&mut self, value: f32) { + *self = Self::at(value); + } +} + +/// A damped mass-spring system integrated in bounded time steps. +#[derive(Clone, Copy, Debug)] +pub struct Spring { + pub value: f32, + velocity: f32, + pub target: f32, + stiffness: f32, + damping: f32, + mass: f32, +} + +impl Spring { + pub fn new(value: f32, stiffness: f32, damping: f32, mass: f32) -> Self { + Self { + value, + velocity: 0.0, + target: value, + stiffness, + damping, + mass, + } + } + + pub fn step(&mut self, dt: f32) { + let mut remaining = dt.clamp(0.0, 0.05); + while remaining > 0.0 { + let h = remaining.min(1.0 / 240.0); + let force = -self.stiffness * (self.value - self.target) - self.damping * self.velocity; + self.velocity += force / self.mass * h; + self.value += self.velocity * h; + remaining -= h; + } + if !self.active() { + self.value = self.target; + self.velocity = 0.0; + } + } + + pub fn active(&self) -> bool { + (self.value - self.target).abs() > 0.05 || self.velocity.abs() > 0.5 + } + + pub fn jump(&mut self, value: f32) { + self.value = value; + self.target = value; + self.velocity = 0.0; + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn eases_hit_their_endpoints_and_the_morph_curve_front_loads_motion() { + for ease in [LINEAR, EASE, EASE_IN_OUT, MORPH] { + assert_eq!(ease.at(0.0), 0.0); + assert_eq!(ease.at(1.0), 1.0); + } + assert!((EASE_IN_OUT.at(0.5) - 0.5).abs() < 1e-3); + // 50% of the 220ms morph has covered most of the distance. + assert!(MORPH.at(0.5) > 0.85); + } + + #[test] + fn an_interrupted_tween_restarts_from_where_it_is() { + let mut width = Tween::at(116.0); + width.set(0.0, 80.0, 0.22, 0.0, MORPH); + let midway = width.value(0.05); + assert!(midway < 116.0 && midway > 80.0); + width.set(0.05, 116.0, 0.22, 0.0, MORPH); + assert_eq!(width.value(0.05), midway); + assert_eq!(width.value(1.0), 116.0); + assert!(!width.active(1.0)); + } + + #[test] + fn delayed_tweens_hold_their_start_value() { + let mut opacity = Tween::at(0.0); + opacity.set(1.0, 1.0, 0.08, 0.12, LINEAR); + assert_eq!(opacity.value(1.1), 0.0); + assert!((opacity.value(1.16) - 0.5).abs() < 1e-3); + assert_eq!(opacity.value(1.3), 1.0); + } + + #[test] + fn reduced_motion_lands_in_the_same_frame() { + let mut width = Tween::at(68.0); + width.set(2.0, 116.0, 0.0, 0.0, MORPH); + assert_eq!(width.value(2.0), 116.0); + assert!(!width.active(2.0)); + } + + #[test] + fn springs_settle_on_their_target() { + let mut spring = Spring::new(72.0, 330.0, 32.0, 0.9); + spring.target = 200.0; + for _ in 0..120 { + spring.step(1.0 / 60.0); + } + assert_eq!(spring.value, 200.0); + assert!(!spring.active()); + } +} diff --git a/openless-all/app/crates/openless-capsule/src/pill.rs b/openless-all/app/crates/openless-capsule/src/pill.rs new file mode 100644 index 000000000..edc16ab45 --- /dev/null +++ b/openless-all/app/crates/openless-capsule/src/pill.rs @@ -0,0 +1,1082 @@ +//! Draws the default recording capsule, translation target, transcript rail and +//! selection notice, anchored to the bottom of the helper window. +use crate::motion::{Spring, Tween, EASE, EASE_IN_OUT, LINEAR, MORPH}; +use crate::renderer::CapsuleAction; +use crate::{icons, shapes, Frame}; +use egui::emath::TSTransform; +use egui::epaint::{Shadow, TextShape}; +use egui::epaint::text::VariationCoords; +use egui::text::{LayoutJob, TextFormat, TextWrapping}; +use egui::{pos2, vec2, Color32, Painter, Pos2, Rect, Shape, Stroke, StrokeKind}; +use std::sync::Arc; + +const HEIGHT: f32 = 32.0; +const RADIUS: u8 = 16; +const RECORDING_WIDTH: f32 = 116.0; +const COMPACT_WIDTH: f32 = 68.0; +const STATUS_PADDING: f32 = 14.0; +/// `getCapsuleHostMetrics(.., 'classic').bottomInset`. +const BOTTOM_INSET: f32 = 16.0; +const BUTTON_RADIUS: f32 = 12.0; +/// Buttons sit 4px inside the fixed 116px recording layer. +const BUTTON_OFFSET: f32 = RECORDING_WIDTH / 2.0 - 4.0 - BUTTON_RADIUS; +// Measured from the 60 fps reference: 232×64 physical pixels at 2×. +const ENVELOPE: [f32; 11] = [0.22, 0.34, 0.48, 0.65, 0.82, 1.0, 0.82, 0.65, 0.48, 0.34, 0.22]; +const STACK_GAP: f32 = 8.0; +const BADGE_HEIGHT: f32 = 28.0; +const RAIL_HEIGHT: f32 = 52.0; +const RAIL_PAD: f32 = 18.0; +const RAIL_MIN_WIDTH: f32 = 72.0; +/// `maxWidth={hostMetrics.width - 16}` in the 460px Classic host. +const RAIL_MAX_WIDTH: f32 = 444.0; +const RAIL_TAIL_CHARS: usize = 160; + +const BLUE: Color32 = Color32::from_rgb(0x25, 0x63, 0xeb); +const BLUE_HOVER: Color32 = Color32::from_rgb(0x1d, 0x4e, 0xd8); +const BORDER: Color32 = Color32::from_rgb(0xd4, 0xd4, 0xd8); +const SWEEP: Color32 = Color32::from_rgb(0xdb, 0xea, 0xfe); +const CANCEL_BG: Color32 = Color32::from_rgb(0xf0, 0xf0, 0xf2); +const CANCEL_HOVER: Color32 = Color32::from_rgb(0xe4, 0xe4, 0xe7); +const CANCEL_INK: Color32 = Color32::from_rgb(0x52, 0x52, 0x5b); +const ERROR: Color32 = Color32::from_rgb(0xdc, 0x26, 0x26); + +/// `tokens.css` values for the parts that follow the app theme. The pill and +/// the badge shell are `color-scheme: light` and never change. +struct Tokens { + surface: Color32, + line: Color32, + shadow: Color32, + ring: Color32, + highlight: Color32, + ink: Color32, + medium: f32, + semibold: f32, + control: Color32, + control_line: Color32, + control_ink: Color32, +} + +fn tokens(dark: bool) -> Tokens { + let rgba = Color32::from_rgba_unmultiplied; + if dark { + Tokens { + surface: Color32::from_rgb(0x1b, 0x22, 0x2c), + line: rgba(226, 232, 240, 31), + shadow: rgba(0, 0, 0, 122), + ring: rgba(226, 232, 240, 15), + highlight: rgba(255, 255, 255, 20), + ink: Color32::from_rgb(0xf4, 0xf7, 0xfb), + medium: 460.0, + semibold: 560.0, + // rgba(24, 24, 27, .98) over the white badge. + control: Color32::from_rgb(29, 29, 32), + control_line: Color32::from_rgb(0x3f, 0x3f, 0x46), + control_ink: Color32::from_rgb(0xfa, 0xfa, 0xfa), + } + } else { + Tokens { + surface: Color32::from_rgb(0xfa, 0xfa, 0xfa), + line: rgba(0, 0, 0, 26), + shadow: rgba(15, 17, 22, 41), + ring: rgba(0, 0, 0, 15), + highlight: rgba(255, 255, 255, 184), + ink: Color32::from_rgb(0x18, 0x18, 0x1b), + medium: 500.0, + semibold: 600.0, + control: Color32::WHITE, + control_line: BORDER, + control_ink: Color32::from_rgb(0x09, 0x09, 0x0b), + } + } +} + +/// Families the helper installs for static CJK faces at CSS weights 500 and +/// 600 (`Proportional` is 400). The variable system face covers every weight. +pub const MEDIUM_FAMILY: &str = "openless-medium"; +pub const SEMIBOLD_FAMILY: &str = "openless-semibold"; + +/// `--ol-font-sans` at a CSS weight: the static face CSS weight matching +/// would pick, with the variable face's weight and optical size set exactly. +fn format(size: f32, weight: f32, line_height: f32, color: Color32) -> TextFormat { + let family = if weight < 450.0 { + egui::FontFamily::Proportional + } else if weight < 550.0 { + egui::FontFamily::Name(MEDIUM_FAMILY.into()) + } else { + egui::FontFamily::Name(SEMIBOLD_FAMILY.into()) + }; + TextFormat { + font_id: egui::FontId::new(size, family), + line_height: Some(line_height), + color, + coords: VariationCoords::new([("wght", weight), ("opsz", size)]), + ..Default::default() + } +} + +/// One line, ellipsized like `text-overflow: ellipsis` (cut at any glyph). +fn line(painter: &Painter, text: &str, format: TextFormat, max_width: f32) -> Arc { + let mut job = LayoutJob::single_section(text.to_owned(), format); + job.wrap = TextWrapping { + max_width: max_width.max(1.0), + max_rows: 1, + break_anywhere: true, + overflow_character: Some('…'), + }; + painter.layout_job(job) +} + +fn text(pos: Pos2, galley: Arc, opacity: f32) -> Shape { + TextShape::new(pos, galley, Color32::PLACEHOLDER) + .with_opacity_factor(opacity) + .into() +} + +/// Physical-pixel aligned square for a texture rasterized at `size` points. +fn snapped_square(center: Pos2, size: f32, pixels_per_point: f32) -> Rect { + let side = (size * pixels_per_point).round() / pixels_per_point; + let min = center - vec2(side, side) * 0.5; + let min = pos2( + (min.x * pixels_per_point).round() / pixels_per_point, + (min.y * pixels_per_point).round() / pixels_per_point, + ); + Rect::from_min_size(min, vec2(side, side)) +} + +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +enum Target { + Cancel, + Confirm, + /// `.ol-default-processing-cancel`: the whole processing pill. + Processing, +} + +/// `CapsuleWaveform`: the level is smoothed per frame, then shaped by the +/// envelope and a slow ripple. +#[derive(Default)] +struct Waveform { + smoothed: f32, + previous: Option, + active: Option, +} + +impl Waveform { + fn heights(&mut self, now: f64, level: f32, active: bool, reduced: bool) -> [f32; 11] { + if self.active != Some(active) { + // The effect restarts from rest whenever `active` flips. + self.active = Some(active); + self.smoothed = 0.0; + self.previous = None; + } + let voice = if active { + ((level - 0.008) / 0.32).clamp(0.0, 1.0) + } else { + 0.0 + }; + if reduced { + // Under reduced motion the WebView draws a single frame per level. + self.smoothed = voice * (1.0 - (-16.0_f32 / 35.0).exp()); + } else { + let dt = self + .previous + .map_or(16.0, |previous| ((now - previous) * 1000.0).min(50.0) as f32); + self.previous = Some(now); + let tau = if voice > self.smoothed { 35.0 } else { 90.0 }; + self.smoothed += (voice - self.smoothed) * (1.0 - (-dt / tau).exp()); + } + let phase = (now * 1000.0 / 85.0) as f32; + let strength = self.smoothed.powf(0.6); + std::array::from_fn(|index| { + let ripple = if reduced { + 1.0 + } else { + 0.86 + 0.14 * (phase + index as f32 * 0.8).sin() + }; + 1.5 + 14.5 * strength * ENVELOPE[index] * ripple + }) + } +} + +/// `CapsuleTranscriptRail` (frost): a right-anchored line whose shell hugs the +/// text, growing on a spring and re-centring a little later. +struct Rail { + text: String, + births: Vec, + galley_width: f32, + width: Spring, + right: Spring, + shift: Spring, + width_at: Option<(f64, f32)>, + right_at: Option<(f64, f32)>, + previous: Option, +} + +impl Rail { + fn new(stage_center: f32) -> Self { + Self { + text: String::new(), + births: Vec::new(), + galley_width: 0.0, + // INSERT_TEXT_MOTION.widthSpring / recenterSpring / shiftSpring. + width: Spring::new(RAIL_MIN_WIDTH, 330.0, 32.0, 0.9), + right: Spring::new(stage_center + RAIL_MIN_WIDTH / 2.0, 180.0, 27.0, 1.0), + shift: Spring::new(0.0, 260.0, 30.0, 1.0), + width_at: None, + right_at: None, + previous: None, + } + } + + /// Births are per character of the whole transcript; only the tail is drawn. + fn tail(&self) -> (&str, &[f64]) { + let count = self.births.len(); + let skip = count.saturating_sub(RAIL_TAIL_CHARS); + let start = self + .text + .char_indices() + .nth(skip) + .map_or(self.text.len(), |(index, _)| index); + (&self.text[start..], &self.births[skip..]) + } + + fn job(&self, now: f64, size: f32, weight: f32, ink: Color32) -> LayoutJob { + let (tail, births) = self.tail(); + let mut job = LayoutJob::default(); + let mut format = format(size, weight, size * 1.2, ink); + // `glyphGapPx`: every measured glyph carries 1.4px of air. + format.extra_letter_spacing = 1.4; + let mut start = 0; + let mut current = None; + for ((index, _), birth) in tail.char_indices().zip(births) { + // INSERT_TEXT_MOTION.bornFadeMs, quantized so a line keeps few sections. + let alpha = (((now - birth) / 0.18).clamp(0.0, 1.0) * 16.0).round() as u8; + if current.is_some_and(|value| value != alpha) { + let mut section = format.clone(); + section.color = ink.gamma_multiply(current.unwrap() as f32 / 16.0); + job.append(&tail[start..index], 0.0, section); + start = index; + } + current = Some(alpha); + } + if let Some(alpha) = current { + format.color = ink.gamma_multiply(alpha as f32 / 16.0); + job.append(&tail[start..], 0.0, format); + } + job + } + + #[allow(clippy::too_many_arguments)] + fn update( + &mut self, + painter: &Painter, + text: &str, + size: f32, + weight: f32, + ink: Color32, + stage_center: f32, + now: f64, + reduced: bool, + ) { + if text != self.text { + let common = self + .text + .chars() + .zip(text.chars()) + .take_while(|(old, new)| old == new) + .count(); + self.births.truncate(common); + let born = text.chars().count() - common; + // bornStaggerMs between the glyphs of one insertion. + self.births + .extend((0..born).map(|index| if reduced { 0.0 } else { now + 0.008 * index as f64 })); + self.text = text.to_owned(); + let galley = painter.layout_job(self.job(now, size, weight, ink)); + let width = galley.size().x; + let old_content = self.galley_width.min(RAIL_MAX_WIDTH - 2.0 * RAIL_PAD); + let delta = width - self.galley_width; + self.galley_width = width; + let content = width.min(RAIL_MAX_WIDTH - 2.0 * RAIL_PAD); + let target = (content + 2.0 * RAIL_PAD).clamp(RAIL_MIN_WIDTH, RAIL_MAX_WIDTH); + let right = stage_center + target / 2.0; + if reduced { + self.width.jump(target); + self.right.jump(right); + } else { + // `planCapsuleInsertMotion`: the change ripples out from where + // the new glyphs are born, then the shell re-centres. + let width_delay = (12.0 + (old_content / 2.35).min(96.0)) as f64 / 1000.0; + self.width_at = Some((now + width_delay, target)); + self.right_at = Some((now + width_delay + 0.14, right)); + // Retained glyphs keep their place and slide to the new anchor. + self.shift.value += delta; + } + } + let dt = self + .previous + .map_or(0.0, |previous| (now - previous) as f32); + self.previous = Some(now); + for (spring, pending) in [ + (&mut self.width, &mut self.width_at), + (&mut self.right, &mut self.right_at), + ] { + match *pending { + // A stopped motion value holds still until its delayed spring starts. + Some((at, _)) if now < at => {} + Some((_, target)) => { + spring.jump(spring.value); + spring.target = target; + *pending = None; + spring.step(dt); + } + None => spring.step(dt), + } + } + self.shift.step(dt); + } + + fn animating(&self, now: f64) -> bool { + self.width_at.is_some() + || self.right_at.is_some() + || self.width.active() + || self.right.active() + || self.shift.active() + || self.births.last().is_some_and(|birth| now - birth < 0.18) + } +} + +pub struct DefaultCapsule { + started: bool, + width: Tween, + opacity: Tween, + lift: Tween, + layer: Tween, + actions: Tween, + status: Tween, + cancel_hover: Tween, + confirm_hover: Tween, + badge_opacity: Tween, + badge_lift: Tween, + badge_scale: Tween, + sweep_since: Option, + waveform: Waveform, + pressed: Option, + rail: Option, +} + +impl Default for DefaultCapsule { + fn default() -> Self { + Self { + started: false, + width: Tween::at(COMPACT_WIDTH), + opacity: Tween::at(0.0), + lift: Tween::at(8.0), + layer: Tween::at(0.0), + actions: Tween::at(0.0), + status: Tween::at(0.0), + cancel_hover: Tween::at(0.0), + confirm_hover: Tween::at(0.0), + badge_opacity: Tween::at(0.0), + badge_lift: Tween::at(7.0), + badge_scale: Tween::at(0.94), + sweep_since: None, + waveform: Waveform::default(), + pressed: None, + rail: None, + } + } +} + +/// `OpenLessPill`'s label for the non-recording states. +fn status_label(frame: &Frame) -> String { + let state = &frame.state; + let labels = &frame.labels; + // Capsule.tsx shows the local recognition while transcribing. + let live = frame.transcript.trim(); + let message = if state.phase == "transcribing" && !live.is_empty() { + live + } else { + state.text.trim() + }; + let fallback = |text: &str| { + if message.is_empty() { + text.to_owned() + } else { + message.to_owned() + } + }; + match state.phase.as_str() { + "transcribing" | "polishing" => fallback(if state.operating { + &labels.using + } else { + &labels.thinking + }), + "completed" => fallback( + &labels + .inserted + .replace("{{count}}", &state.inserted_chars.unwrap_or(0).to_string()), + ), + "cancelled" => labels.cancelled.clone(), + _ => fallback(&labels.error), + } +} + +impl DefaultCapsule { + /// Draws the capsule for `frame` and reports a clicked control. `dark` + /// is the resolved app theme; the pill itself is theme independent. + pub fn show( + &mut self, + ui: &egui::Ui, + frame: &Frame, + dark: bool, + reduced: bool, + ) -> CapsuleAction { + let painter = ui.painter().clone(); + let now = ui.input(|input| input.time); + let stage = ui.max_rect(); + let tokens = tokens(dark); + if frame.state.selection_polish { + if notice(&painter, stage, frame, &tokens, now) && !reduced { + ui.ctx().request_repaint(); + } + return CapsuleAction::None; + } + + let state = &frame.state; + let phase = state.phase.as_str(); + let recording = phase == "recording"; + let warming = recording && state.warming; + let processing = matches!(phase, "transcribing" | "polishing"); + let leaving = frame.leaving; + let label = status_label(frame); + let label_format = format(12.0, 500.0, 18.0, if phase == "failed" { ERROR } else { BLUE }); + let label_width = painter + .layout_job(LayoutJob::single_section(label.clone(), label_format.clone())) + .size() + .x; + // `scrollWidth + 28`, rounded up so a label that fits is never ellipsized. + let status_width = (label_width.ceil() + 2.0 * STATUS_PADDING).clamp(80.0, 300.0); + let time = |seconds: f64| if reduced { 0.0 } else { seconds }; + + if !self.started { + self.started = true; + let layer = (recording || warming) as u8 as f32; + self.layer.jump(layer); + self.status.jump(1.0 - layer); + self.actions.jump(recording as u8 as f32); + if reduced { + self.width.jump(if warming { COMPACT_WIDTH } else if recording { RECORDING_WIDTH } else { status_width }); + self.opacity.jump(1.0); + self.lift.jump(0.0); + } + } + // Animate shell geometry independently from the content opacity. + let width = if leaving || warming { + COMPACT_WIDTH + } else if recording { + RECORDING_WIDTH + } else { + status_width + }; + self.width.set(now, width, time(0.22), 0.0, MORPH); + self.opacity.set( + now, + if leaving { 0.0 } else { 1.0 }, + time(if leaving { 0.16 } else { 0.1 }), + 0.0, + EASE_IN_OUT, + ); + self.lift.set( + now, + if leaving { 7.0 } else { 0.0 }, + time(if leaving { 0.18 } else { 0.22 }), + 0.0, + EASE_IN_OUT, + ); + // CSS opacity transitions of the layers inside the shell. + let layer_visible = recording || warming; + self.layer + .set(now, layer_visible as u8 as f32, time(0.09), time(0.06), LINEAR); + self.actions.set( + now, + recording as u8 as f32, + time(0.08), + time(if processing { 0.05 } else { 0.0 }), + LINEAR, + ); + self.status.set( + now, + !layer_visible as u8 as f32, + time(0.08), + time(if layer_visible { 0.0 } else { 0.12 }), + LINEAR, + ); + let badge_visible = state.translation_active && recording && !leaving; + let (badge_duration, badge_delay) = if badge_visible { (0.2, 0.04) } else { (0.12, 0.0) }; + for (tween, target) in [ + (&mut self.badge_opacity, if badge_visible { 1.0 } else { 0.0 }), + (&mut self.badge_lift, if badge_visible { 0.0 } else { 7.0 }), + (&mut self.badge_scale, if badge_visible { 1.0 } else { 0.94 }), + ] { + tween.set(now, target, time(badge_duration), time(badge_delay), MORPH); + } + if processing { + self.sweep_since.get_or_insert(now); + } else { + self.sweep_since = None; + } + + // Geometry: the Classic stack is bottom-anchored in the 460px host. + let center_x = stage.center().x; + let body_bottom = stage.bottom() - BOTTOM_INSET; + let body_top = body_bottom - HEIGHT; + let width = self.width.value(now); + let opacity = self.opacity.value(now); + let lift = self.lift.value(now); + let shell = Rect::from_min_max( + pos2(center_x - width / 2.0, body_top + lift), + pos2(center_x + width / 2.0, body_bottom + lift), + ); + let outline = shapes::stadium(shell); + let cancel_center = pos2(center_x - BUTTON_OFFSET, shell.center().y); + let confirm_center = pos2(center_x + BUTTON_OFFSET, shell.center().y); + + // Pointer: the buttons while recording, the whole pill while processing. + let (pointer, pressed, released, down) = ui.input(|input| { + ( + input.pointer.hover_pos(), + input.pointer.primary_pressed(), + input.pointer.primary_released(), + input.pointer.primary_down(), + ) + }); + let hovered = pointer + .filter(|&point| { + frame.interactive + && !leaving + && shapes::rounded_rect_distance(point, shell, HEIGHT / 2.0) <= 0.0 + }) + .and_then(|point| { + if recording { + if point.distance(cancel_center) <= BUTTON_RADIUS { + Some(Target::Cancel) + } else if point.distance(confirm_center) <= BUTTON_RADIUS { + Some(Target::Confirm) + } else { + None + } + } else if processing { + Some(Target::Processing) + } else { + None + } + }); + if pressed { + self.pressed = hovered; + } + let mut action = CapsuleAction::None; + if released { + if let Some(target) = self.pressed.take().filter(|&target| Some(target) == hovered) { + action = match target { + Target::Confirm => CapsuleAction::Confirm, + Target::Cancel | Target::Processing => CapsuleAction::Cancel, + }; + } + } else if !down { + self.pressed = None; + } + if hovered.is_some() { + ui.ctx().set_cursor_icon(egui::CursorIcon::PointingHand); + } + self.cancel_hover.set( + now, + (hovered == Some(Target::Cancel)) as u8 as f32, + time(0.1), + 0.0, + EASE, + ); + self.confirm_hover.set( + now, + (hovered == Some(Target::Confirm)) as u8 as f32, + time(0.1), + 0.0, + EASE, + ); + + // Rail and badge sit above the pill and never move with its lift. + let font_size = frame.transcript_font_size.clamp(12.0, 20.0); + let rail_text = frame.transcript.trim(); + let rail_visible = frame.show_transcript + && !leaving + && matches!(phase, "recording" | "transcribing" | "polishing") + && !rail_text.is_empty(); + let rail_bottom = body_top - STACK_GAP; + if rail_visible { + let rail = self.rail.get_or_insert_with(|| Rail::new(center_x)); + rail.update( + &painter, + rail_text, + font_size, + tokens.medium, + tokens.ink, + center_x, + now, + reduced, + ); + draw_rail(&painter, stage, rail, rail_bottom, font_size, &tokens, now); + } else { + self.rail = None; + } + let badge_bottom = body_top + - STACK_GAP + - if rail_visible && state.translation_active { + RAIL_HEIGHT + STACK_GAP + } else { + 0.0 + }; + let badge_opacity = self.badge_opacity.value(now); + if badge_opacity > 0.0 { + let badge = badge( + &painter, + frame, + &tokens, + pos2(center_x, badge_bottom), + badge_opacity, + ui.ctx().pixels_per_point(), + ); + let scale = self.badge_scale.value(now); + let pivot = pos2(center_x, badge_bottom); + let transform = TSTransform::new( + pivot.to_vec2() * (1.0 - scale) + vec2(0.0, self.badge_lift.value(now)), + scale, + ); + for mut shape in badge { + shape.transform(transform); + painter.add(shape); + } + } + + // The pill: shadow, paper, translation tint, border, processing sweep. + let fade = |color: Color32| color.gamma_multiply(opacity); + let pixels_per_point = ui.ctx().pixels_per_point(); + painter.add( + Shadow { + offset: [0, 2], + blur: 8, + spread: 0, + color: fade(Color32::from_black_alpha(36)), + } + .as_shape(shell, RADIUS), + ); + painter.rect_filled(shell, RADIUS, fade(Color32::WHITE)); + if state.translation_active && layer_visible { + painter.add(shapes::inset_shadow( + shell.shrink(1.0), + HEIGHT / 2.0 - 1.0, + pixels_per_point, + 4.0, + 7.0, + -3.0, + fade(Color32::from_rgba_unmultiplied(37, 99, 235, 166)), + )); + } + painter.rect_stroke(shell, RADIUS, Stroke::new(1.0, fade(BORDER)), StrokeKind::Inside); + if let Some(since) = self.sweep_since.filter(|_| !reduced) { + // `ol-capsule-sweep`: −100% → 0 over 85% of 2.4s, linear, then hold. + let progress = (((now - since) % 2.4) / (2.4 * 0.85)).min(1.0) as f32; + let sweep = shapes::stadium(shell.translate(vec2(-width * (1.0 - progress), 0.0))); + painter.add(shapes::fill_clipped(&sweep, &outline, fade(SWEEP))); + } + + // Recording layer: waveform and the two buttons, clipped by the shell. + let layer = self.layer.value(now) * opacity; + if layer > 0.0 { + let heights = self.waveform.heights( + now, + state.audio_level.unwrap_or(0.0), + recording && !leaving, + reduced, + ); + for (index, height) in heights.into_iter().enumerate() { + let x = center_x - 17.5 + 3.5 * index as f32; + painter.rect_filled( + Rect::from_center_size(pos2(x, shell.center().y), vec2(1.5, height)), + 1, + BLUE.gamma_multiply(layer), + ); + } + let actions = layer * self.actions.value(now); + if actions > 0.0 { + let held = if down { self.pressed } else { None }; + for (target, center, fill, ink, icon, size, stroke) in [ + ( + Target::Cancel, + cancel_center, + lerp_color(CANCEL_BG, CANCEL_HOVER, self.cancel_hover.value(now)), + CANCEL_INK, + icons::IconName::Close, + 15.0, + 1.8, + ), + ( + Target::Confirm, + confirm_center, + lerp_color(BLUE, BLUE_HOVER, self.confirm_hover.value(now)), + Color32::WHITE, + icons::IconName::Check, + 17.0, + 2.0, + ), + ] { + // `:active { scale: 0.92 }`, around the button centre. + let scale = if held == Some(target) { 0.92 } else { 1.0 }; + painter.add(shapes::fill_clipped( + &shapes::circle(center, BUTTON_RADIUS * scale), + &outline, + fill.gamma_multiply(actions), + )); + if let Some(texture) = icons::texture(ui.ctx(), icon, size, stroke) { + let rect = if scale == 1.0 { + snapped_square(center, size, pixels_per_point) + } else { + Rect::from_center_size(center, vec2(size, size) * scale) + }; + painter.add(shapes::image_clipped( + texture.id(), + rect, + &outline, + ink.gamma_multiply(actions), + )); + } + } + } + } + + // Status: one centred, ellipsized line inside 14px padding. + let status = self.status.value(now) * opacity; + if status > 0.0 { + let galley = line( + &painter, + &label, + label_format, + width - 2.0 * STATUS_PADDING, + ); + let pos = shell.center() - galley.size() * 0.5; + painter.add(text(pos, galley, status)); + } + + let animating = [ + &self.width, + &self.opacity, + &self.lift, + &self.layer, + &self.actions, + &self.status, + &self.cancel_hover, + &self.confirm_hover, + &self.badge_opacity, + &self.badge_lift, + &self.badge_scale, + ] + .iter() + .any(|tween| tween.active(now)) + || (!reduced && ((recording && !leaving) || self.sweep_since.is_some())) + || self.rail.as_ref().is_some_and(|rail| rail.animating(now)); + if animating { + ui.ctx().request_repaint(); + } + action + } +} + +fn lerp_color(from: Color32, to: Color32, t: f32) -> Color32 { + from.lerp_to_gamma(to, t.clamp(0.0, 1.0)) +} + +/// `.ol-classic-translation`: "Translate to" and the target language chip. +/// The chip is a label here: the native helper has no language menu. +fn badge( + painter: &Painter, + frame: &Frame, + tokens: &Tokens, + bottom_center: Pos2, + opacity: f32, + pixels_per_point: f32, +) -> Vec { + let fade = |color: Color32| color.gamma_multiply(opacity); + let label = painter.layout_job(LayoutJob::single_section( + frame.labels.translate_to.clone(), + format(11.0, 400.0, 16.5, BLUE), + )); + let target = frame + .state + .translation_target + .as_deref() + .filter(|target| !target.trim().is_empty()) + .unwrap_or("…"); + // SelectLite trigger: 0.5px border + 7px padding, 8px gap and an 11px chevron. + let value_width = painter + .layout_job(LayoutJob::single_section( + target.to_owned(), + format(11.0, 400.0, 16.5, tokens.control_ink), + )) + .size() + .x; + let chip_width = (value_width.ceil() + 34.0).clamp(92.0, 174.0); + let value = line( + painter, + target, + format(11.0, 400.0, 16.5, tokens.control_ink), + chip_width - 34.0, + ); + let width = 1.0 + 8.0 + label.size().x + 6.0 + chip_width + 4.0 + 1.0; + let rect = Rect::from_min_max( + pos2(bottom_center.x - width / 2.0, bottom_center.y - BADGE_HEIGHT), + pos2(bottom_center.x + width / 2.0, bottom_center.y), + ); + let center_y = rect.center().y; + let label_pos = pos2(rect.left() + 9.0, center_y - label.size().y / 2.0); + let chip = Rect::from_min_size( + pos2(label_pos.x + label.size().x + 6.0, center_y - 11.0), + vec2(chip_width, 22.0), + ); + vec![ + Shadow { + offset: [0, 2], + blur: 8, + spread: 0, + color: fade(Color32::from_black_alpha(26)), + } + .as_shape(rect, 6) + .into(), + egui::epaint::RectShape::filled(rect, 6, fade(Color32::WHITE)).into(), + shapes::inset_shadow( + rect.shrink(1.0), + 5.0, + pixels_per_point, + -2.0, + 4.0, + 0.0, + fade(Color32::from_rgba_unmultiplied(37, 99, 235, 31)), + ), + egui::epaint::RectShape::stroke( + rect, + 6, + Stroke::new(1.0, fade(SWEEP)), + StrokeKind::Inside, + ) + .into(), + text(label_pos, label, opacity), + egui::epaint::RectShape::new( + chip, + 4, + fade(tokens.control), + Stroke::new(0.5, fade(tokens.control_line)), + StrokeKind::Inside, + ) + .into(), + text( + pos2(chip.left() + 7.5, center_y - value.size().y / 2.0), + value, + opacity, + ), + ] +} + +/// `--ol-capsule-pill-shadow` + `--ol-capsule-pill-inset` around a frost shell. +fn frost_shell(painter: &Painter, rect: Rect, stage: Rect, tokens: &Tokens, border: Color32) { + let radius = rect.height() / 2.0; + // 0 18px 50px -10px: σ = 25 around the box shrunk by 10 and lowered 18. + painter.add(shapes::soft_shadow( + rect.shrink(10.0).translate(vec2(0.0, 18.0)), + 25.0, + tokens.shadow, + stage, + )); + painter.rect_stroke(rect, radius, Stroke::new(0.5, tokens.ring), StrokeKind::Outside); + painter.rect_filled(rect, radius, tokens.surface); + painter.add(shapes::inset_shadow( + rect.shrink(1.0), + radius - 1.0, + painter.ctx().pixels_per_point(), + 1.0, + 0.0, + 0.0, + tokens.highlight, + )); + painter.rect_stroke(rect, radius, Stroke::new(1.0, border), StrokeKind::Inside); +} + +fn draw_rail( + painter: &Painter, + stage: Rect, + rail: &Rail, + bottom: f32, + font_size: f32, + tokens: &Tokens, + now: f64, +) { + let width = rail.width.value; + // The rendered frame stays inside the stage while the shell re-centres. + let right = rail.right.value.min(stage.right()).max(stage.left() + width); + let rect = Rect::from_min_max(pos2(right - width, bottom - RAIL_HEIGHT), pos2(right, bottom)); + frost_shell(painter, rect, stage, tokens, tokens.line); + let track = rect.shrink2(vec2(RAIL_PAD, 0.0)); + let galley = painter.layout_job(rail.job(now, font_size, tokens.medium, tokens.ink)); + let size = galley.size(); + let clipped = painter.with_clip_rect(track.intersect(painter.clip_rect())); + clipped.add(text( + pos2( + track.right() + rail.shift.value - size.x, + rect.center().y - size.y / 2.0, + ), + galley, + 1.0, + )); + if size.x > track.width() { + // `mask-image: linear-gradient(to right, transparent, #000 22px)`. + let mut mesh = egui::epaint::Mesh::default(); + let fade = Rect::from_min_size(track.min, vec2(22.0, track.height())); + mesh.colored_vertex(fade.left_top(), tokens.surface); + mesh.colored_vertex(fade.right_top(), Color32::TRANSPARENT); + mesh.colored_vertex(fade.right_bottom(), Color32::TRANSPARENT); + mesh.colored_vertex(fade.left_bottom(), tokens.surface); + mesh.add_triangle(0, 1, 2); + mesh.add_triangle(0, 2, 3); + clipped.add(Shape::mesh(mesh)); + } +} + +/// `SelectionPolishNotice`: a non-interactive one-line status. Returns true +/// while its spinner turns. +fn notice(painter: &Painter, stage: Rect, frame: &Frame, tokens: &Tokens, now: f64) -> bool { + let state = &frame.state; + let labels = &frame.labels; + let phase = state.phase.as_str(); + let processing = phase == "polishing"; + let (color, symbol, fallback) = match phase { + "failed" => (Color32::from_rgb(0xff, 0x82, 0x78), Some(("!", 16.0)), &labels.polish_failed), + "completed" => (Color32::from_rgb(0x63, 0xd5, 0x96), Some(("✓", 15.0)), &labels.replaced), + "cancelled" => (tokens.ink, Some(("·", 16.0)), &labels.no_selection), + _ => ( + Color32::from_rgb(0x8f, 0xc0, 0xff), + None, + if processing { &labels.polishing } else { &labels.polish_failed }, + ), + }; + let message = state.text.trim(); + let label = if message.is_empty() { fallback.as_str() } else { message }; + let icon_width = if processing { 12.0 } else { 13.0 }; + let mut label_format = format(13.0, tokens.semibold, 16.25, color); + label_format.extra_letter_spacing = 0.13; + let galley = line(painter, label, label_format, 360.0 - 2.0 - 28.0 - icon_width - 8.0); + let width = 2.0 + 28.0 + icon_width + 8.0 + galley.size().x; + let height = 2.0 + 16.0 + 16.25; + let bottom = stage.bottom() - BOTTOM_INSET; + let rect = Rect::from_min_max( + pos2(stage.center().x - width / 2.0, bottom - height), + pos2(stage.center().x + width / 2.0, bottom), + ); + let border = if phase == "failed" { + Color32::from_rgba_unmultiplied(255, 112, 102, 107) + } else { + tokens.line + }; + frost_shell(painter, rect, stage, tokens, border); + let icon_center = pos2(rect.left() + 15.0 + icon_width / 2.0, rect.center().y); + if processing { + // 12px ring, 2px border, the top quarter coloured, turning every .75s. + painter.circle_stroke( + icon_center, + 5.0, + Stroke::new(2.0, Color32::from_rgba_unmultiplied(143, 192, 255, 82)), + ); + let turn = ((now % 0.75) / 0.75) as f32 * std::f32::consts::TAU; + let points = (0..=12) + .map(|step| { + let angle = turn - 0.75 * std::f32::consts::PI + + step as f32 / 12.0 * 0.5 * std::f32::consts::PI; + icon_center + 5.0 * vec2(angle.cos(), angle.sin()) + }) + .collect(); + painter.add(Shape::line(points, Stroke::new(2.0, color))); + } else if let Some((symbol, size)) = symbol { + let glyph = painter.layout_job(LayoutJob::single_section( + symbol.to_owned(), + format(size, 800.0, size, color), + )); + painter.add(text(icon_center - glyph.size() * 0.5, glyph, 1.0)); + } + painter.add(text( + pos2(rect.left() + 15.0 + icon_width + 8.0, rect.center().y - galley.size().y / 2.0), + galley, + 1.0, + )); + processing +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::{CapsuleLabels, CapsulePopupState, ThemeMode}; + + fn frame(phase: &str) -> Frame { + Frame { + session_id: "s".into(), + sequence: 1, + state: CapsulePopupState { + phase: phase.into(), + ..Default::default() + }, + transcript: String::new(), + show_transcript: false, + transcript_font_size: 15.0, + labels: CapsuleLabels::for_locale("zh-CN"), + theme: ThemeMode::System, + leaving: false, + bounds: None, + interactive: true, + } + } + + #[test] + fn status_labels_follow_the_webview_rules() { + let mut done = frame("completed"); + done.state.inserted_chars = Some(12); + assert_eq!(status_label(&done), "已插入 12"); + done.state.text = "Pasted".into(); + assert_eq!(status_label(&done), "Pasted"); + + let mut thinking = frame("polishing"); + assert_eq!(status_label(&thinking), "thinking"); + thinking.state.operating = true; + assert_eq!(status_label(&thinking), "using"); + + // While transcribing, the live recognition replaces the message. + let mut transcribing = frame("transcribing"); + transcribing.state.text = "server".into(); + transcribing.transcript = " 你好 ".into(); + assert_eq!(status_label(&transcribing), "你好"); + + let mut cancelled = frame("cancelled"); + cancelled.state.text = "ignored".into(); + assert_eq!(status_label(&cancelled), "已取消"); + assert_eq!(status_label(&frame("failed")), "出错了"); + } + + #[test] + fn the_waveform_rests_until_the_voice_clears_the_noise_floor() { + let mut waveform = Waveform::default(); + let quiet = waveform.heights(0.0, 0.008, true, false); + assert!(quiet.iter().all(|height| (height - 1.5).abs() < 1e-4)); + let mut loud = quiet; + for frame in 1..30 { + loud = waveform.heights(frame as f64 / 60.0, 1.0, true, false); + } + // Full voice: the centre bar approaches 1.5 + 14.5 × ripple. + assert!(loud[5] > 13.0 && loud[5] <= 16.0); + assert!(loud[0] < loud[5] * 0.3); + // Leaving (inactive) drops straight back to dots. + let dots = waveform.heights(1.0, 1.0, false, false); + assert!(dots.iter().all(|height| (height - 1.5).abs() < 1e-4)); + } +} diff --git a/openless-all/app/crates/openless-capsule/src/renderer.rs b/openless-all/app/crates/openless-capsule/src/renderer.rs index 85e8e129a..1db41b217 100644 --- a/openless-all/app/crates/openless-capsule/src/renderer.rs +++ b/openless-all/app/crates/openless-capsule/src/renderer.rs @@ -1,5 +1,6 @@ -//! Disposable desktop capsule renderer, based on the Linux frontend. -use super::{icons, layout, siri_gl, theme}; +//! Disposable desktop capsule renderer for the optional spectral style. The +//! OpenLess default capsule lives in [`crate::pill`]. +use super::{layout, siri_gl, theme}; use crate::{CapsuleLabels, CapsulePopupState}; #[derive(Clone, Debug, PartialEq, Eq)] pub enum CapsuleAction { @@ -10,19 +11,8 @@ pub enum CapsuleAction { const PILL_WIDTH: f32 = 176.0; const PILL_HEIGHT: f32 = 42.0; -/// Round icon buttons in the capsule / composer. -const ROUND_BUTTON: f32 = 28.0; /// Tauri `getCapsuleHostMetrics(.., 'classic').bottomInset`。 const CAPSULE_BOTTOM_INSET: f32 = 16.0; -/// Typeless 胶囊(Tauri `CapsuleStyles.css`:176×64、46×46 圆形按钮、11 根波形)。 -const TYPELESS_WIDTH: f32 = 176.0; -const TYPELESS_HEIGHT: f32 = 64.0; -const TYPELESS_BUTTON: f32 = 46.0; -/// `.ol-typeless-*` 调色板。 -const TYPELESS_BG: egui::Color32 = egui::Color32::from_rgb(0x18, 0x18, 0x1b); -const TYPELESS_BORDER: egui::Color32 = egui::Color32::from_rgb(0x52, 0x52, 0x5b); -const TYPELESS_INK: egui::Color32 = egui::Color32::from_rgb(0xfa, 0xfa, 0xfa); -const TYPELESS_BUTTON_BG: egui::Color32 = egui::Color32::from_rgb(0x3f, 0x3f, 0x46); /// 徽章与药丸之间的间距(Tauri `badgeGap`)。 const CAPSULE_BADGE_GAP: f32 = 8.0; @@ -61,147 +51,37 @@ fn translating_badge(ui: &mut egui::Ui, pill: egui::Rect, labels: &CapsuleLabels ); } +/// A transparent spectral listening indicator without interactive controls. pub fn dictation_capsule( root_ui: &mut egui::Ui, state: &CapsulePopupState, labels: &CapsuleLabels, ) -> CapsuleAction { - let mut action = CapsuleAction::None; let phase = state.phase.to_ascii_lowercase(); egui::CentralPanel::default() .frame(egui::Frame::NONE) .show(root_ui, |ui| { - // 胶囊进程的首帧预热(同 QA 面板;录音环与 Siri 波都是 GPU 路径)。 - // Tauri `capsuleStyle`:siri = 流光药丸(GPU 波/环),classic = 经典药丸 + - // 五根音量条,typeless = 176×64 深色胶囊 + 11 根波形。 - let style = state.style.as_str(); - let typeless = style == "typeless"; - // 未知/空值走 siri(默认样式),只有显式选择 classic 才关掉 GPU 光效。 - let use_gpu = !typeless && style != "classic"; - let (pill_width, pill_height, button, bar_count) = if typeless { - (TYPELESS_WIDTH, TYPELESS_HEIGHT, TYPELESS_BUTTON, 11) - } else { - (PILL_WIDTH, PILL_HEIGHT, ROUND_BUTTON, 5) - }; - let siri = use_gpu; - let (pill_bg, pill_border, pill_ink) = if typeless { - (TYPELESS_BG, TYPELESS_BORDER, TYPELESS_INK) - } else if siri { - ( - egui::Color32::TRANSPARENT, - egui::Color32::TRANSPARENT, - theme::INK_2, - ) - } else { - (theme::SURFACE, theme::LINE, theme::INK_2) - }; // Tauri 经典药丸宿主:窗口高 100,药丸水平居中、距底 16,徽章再上移 8。 let available = ui.available_rect_before_wrap(); let rect = egui::Rect::from_min_size( egui::pos2( - available.center().x - pill_width / 2.0, - available.bottom() - CAPSULE_BOTTOM_INSET - pill_height, + available.center().x - PILL_WIDTH / 2.0, + available.bottom() - CAPSULE_BOTTOM_INSET - PILL_HEIGHT, ), - egui::vec2(pill_width, pill_height), + egui::vec2(PILL_WIDTH, PILL_HEIGHT), ); let _ = ui.allocate_rect(rect, egui::Sense::hover()); if state.translation_active { translating_badge(ui, rect, labels); } - // Tauri 的经典药丸只有「1px 中性描边」+「随音量轻微放大」两件事 - // (Capsule.tsx 的 ClassicPill:border 1px var(--ol-capsule-pill-border)、 - // transform scale(1 + ambient * 0.018)),**没有**任何外圈扫光/描边颜色变化。 - // 所以这里不再把录音相位画成红圈(那是本仓自己加的,用户报「有一个红边」); - // 运动感只保留药丸中心的音量波形。 - let ambient = if phase == "recording" { - state.audio_level.unwrap_or(0.0).clamp(0.0, 1.0) - } else { - 0.0 - }; - let pill = - egui::Rect::from_center_size(rect.center(), rect.size() * (1.0 + ambient * 0.018)); - if !siri { - ui.painter().rect_filled( - pill, - egui::CornerRadius::same((pill_height / 2.0) as u8), - pill_bg, - ); - ui.painter().rect_stroke( - pill, - egui::CornerRadius::same((pill_height / 2.0) as u8), - egui::Stroke::new(1.0, pill_border), - egui::StrokeKind::Inside, - ); - } - // Siri is a clean, transparent listening indicator. The cancel / - // confirm affordances belong to the classic and Typeless capsules. - let center = if siri { - rect.shrink(3.0) - } else { - let inset = if typeless { 7.0 } else { 8.0 }; - let cancel_rect = egui::Rect::from_center_size( - egui::pos2(rect.left() + inset + button / 2.0, rect.center().y), - egui::vec2(button, button), - ); - let cancel = ui.interact( - cancel_rect, - ui.scope_id().with("openless-capsule-cancel"), - egui::Sense::click(), - ); - let cancel_fill = if typeless { - TYPELESS_BUTTON_BG - } else { - theme::SURFACE_2 - }; - round_button( - ui, - cancel_rect, - icons::IconName::Close, - cancel.hovered(), - cancel_fill, - pill_ink, - ); - if cancel.clicked() { - action = CapsuleAction::Cancel; - } - let confirm_rect = egui::Rect::from_center_size( - egui::pos2(rect.right() - inset - button / 2.0, rect.center().y), - egui::vec2(button, button), - ); - let confirm = ui.interact( - confirm_rect, - ui.scope_id().with("openless-capsule-confirm"), - egui::Sense::click(), - ); - let (confirm_fill, confirm_ink) = if typeless { - (TYPELESS_INK, TYPELESS_BG) - } else { - (theme::SURFACE_2, theme::INK_2) - }; - round_button( - ui, - confirm_rect, - icons::IconName::Check, - confirm.hovered(), - confirm_fill, - confirm_ink, - ); - if confirm.clicked() { - action = CapsuleAction::Confirm; - } - egui::Rect::from_min_max( - egui::pos2(cancel_rect.right() + 4.0, rect.top() + 4.0), - egui::pos2(confirm_rect.left() - 4.0, rect.bottom() - 4.0), - ) - }; + let center = rect.shrink(3.0); let processing = matches!( phase.as_str(), "starting" | "transcribing" | "polishing" | "inserting" ); if phase == "recording" { - // Siri capsules are a transparent overlay. Draw the spectral - // ribbons with egui primitives so they work on the Vulkan path - // too (the legacy GL shader callback is unavailable there). + // Draw the spectral ribbons with egui primitives so they work on + // the Vulkan path too (the legacy GL shader callback is unavailable there). let drive = siri_gl::SiriDrive { level: state.audio_level.unwrap_or_default(), resolved: 1.0, @@ -210,25 +90,15 @@ pub fn dictation_capsule( }; let dt = ui.input(|input| input.stable_dt); let clock = siri_gl::tick(ui.ctx(), "capsule-siri-wave", drive, dt); - if siri { - let _ = siri_gl::paint( - ui, - center, - siri_gl::SiriGlow::wave(clock.time, clock.level), - ); - ui.ctx() - .request_repaint_after(std::time::Duration::from_millis(16)); - } else { - audio_bars( - ui, - center, - state.audio_level.unwrap_or_default(), - bar_count, - pill_ink, - ); - } + let _ = siri_gl::paint( + ui, + center, + siri_gl::SiriGlow::wave(clock.time, clock.level), + ); + ui.ctx() + .request_repaint_after(std::time::Duration::from_millis(16)); } else if processing { - // 思考中:Siri 流体圆点(orb),从 wave 收拢的光点化开成环。 + // Collapse the listening waveform into a processing orb. let drive = siri_gl::SiriDrive { level: 0.0, resolved: 0.0, @@ -240,7 +110,7 @@ pub fn dictation_capsule( // 0.3s 全聚圆心接住 wave 收拢的光点,再缓缓散开成环。 let gather = (1.0 - (clock.time / 0.9).clamp(0.0, 1.0)).clamp(0.0, 1.0); let glow = siri_gl::SiriGlow::orb(clock.time, gather); - if !use_gpu || !siri_gl::paint(ui, center, glow) { + if !siri_gl::paint(ui, center, glow) { ui.painter().text( center.center(), egui::Align2::CENTER_CENTER, @@ -250,25 +120,20 @@ pub fn dictation_capsule( ); } } else if state.text.is_empty() { - let label = if processing { - labels.thinking.as_str() - } else if phase == "cancelled" { + let label = if phase == "cancelled" { labels.cancelled.as_str() } else if phase == "failed" { labels.error.as_str() } else { labels.thinking.as_str() }; - let size = if processing { 17.0 } else { 11.0 }; ui.painter().text( center.center(), egui::Align2::CENTER_CENTER, label, - egui::FontId::proportional(size), + egui::FontId::proportional(11.0), if phase == "failed" { theme::ERR - } else if typeless { - TYPELESS_INK } else { theme::INK }, @@ -276,80 +141,16 @@ pub fn dictation_capsule( } else { // 11px/500 单行居中,超长省略(Tauri `getCapsuleMessageLayout`)。 let galley = - layout::text_galley(ui, &state.text, pill_ink, 11.0, center.width(), 1); + layout::text_galley(ui, &state.text, theme::INK_2, 11.0, center.width(), 1); ui.painter().galley( egui::pos2( center.center().x - galley.rect.width() / 2.0, center.center().y - galley.rect.height() / 2.0, ), galley, - pill_ink, + theme::INK_2, ); } }); - action -} - -fn round_button( - ui: &egui::Ui, - rect: egui::Rect, - icon: icons::IconName, - hovered: bool, - fill: egui::Color32, - ink: egui::Color32, -) { - ui.painter().circle_filled( - rect.center(), - rect.width() / 2.0, - if hovered { - fill.gamma_multiply(1.06) - } else { - fill - }, - ); - ui.painter().circle_stroke( - rect.center(), - rect.width() / 2.0, - egui::Stroke::new(0.8, theme::LINE), - ); - icons::draw_icon(ui, rect.center(), icon, ink); -} - -fn audio_bars(ui: &egui::Ui, rect: egui::Rect, level: f32, bar_count: usize, ink: egui::Color32) { - const CLASSIC_ENVELOPE: [f32; 5] = [0.55, 0.85, 1.0, 0.85, 0.55]; - // Tauri `WAVE_ENVELOPE`(Typeless 的 11 根)。 - const TYPELESS_ENVELOPE: [f32; 11] = [ - 0.28, 0.44, 0.63, 0.82, 0.96, 1.0, 0.96, 0.82, 0.63, 0.44, 0.28, - ]; - let envelope: &[f32] = if bar_count > CLASSIC_ENVELOPE.len() { - &TYPELESS_ENVELOPE - } else { - &CLASSIC_ENVELOPE - }; - const BASE: f32 = 2.0; - let max = if bar_count > CLASSIC_ENVELOPE.len() { - 26.0 - } else { - 24.0 - }; - let voice = level.clamp(0.0, 1.0); - let gated = ((voice - 0.012) / (0.34 - 0.012)).clamp(0.0, 1.0); - let eased = gated * gated * (3.0 - 2.0 * gated); - let visual = eased.powf(0.42); - let bar_width = 3.0; - let gap = 3.0; - let total = envelope.len() as f32 * bar_width + (envelope.len() - 1) as f32 * gap; - let mut x = rect.center().x - total / 2.0; - for envelope in envelope { - let height = BASE + (max - BASE) * visual * envelope; - ui.painter().rect_filled( - egui::Rect::from_center_size( - egui::pos2(x + bar_width / 2.0, rect.center().y), - egui::vec2(bar_width, height), - ), - egui::CornerRadius::same(2), - ink, - ); - x += bar_width + gap; - } + CapsuleAction::None } diff --git a/openless-all/app/crates/openless-capsule/src/shapes.rs b/openless-all/app/crates/openless-capsule/src/shapes.rs new file mode 100644 index 000000000..abda78a8a --- /dev/null +++ b/openless-all/app/crates/openless-capsule/src/shapes.rs @@ -0,0 +1,308 @@ +//! Shape helpers egui lacks: content clipped to a rounded shell (CSS +//! `overflow: hidden` + `border-radius`), inset shadows and wide soft shadows. +use egui::{epaint, pos2, vec2, Color32, Pos2, Rect, Shape}; + +#[derive(Clone, Copy, Debug, PartialEq)] +pub struct Vertex { + pub pos: Pos2, + pub uv: Pos2, +} + +/// A fully rounded rect, clockwise on screen. +pub fn stadium(rect: Rect) -> Vec { + let radius = rect.height().min(rect.width()) * 0.5; + let caps = [ + (pos2(rect.right() - radius, rect.center().y), -0.5), + (pos2(rect.left() + radius, rect.center().y), 0.5), + ]; + const SEGMENTS: usize = 32; + let mut points = Vec::with_capacity(2 * SEGMENTS + 2); + for (center, start) in caps { + for step in 0..=SEGMENTS { + let angle = std::f32::consts::PI * (start + step as f32 / SEGMENTS as f32); + points.push(center + radius * vec2(angle.cos(), angle.sin())); + } + } + points +} + +pub fn circle(center: Pos2, radius: f32) -> Vec { + const SEGMENTS: usize = 64; + (0..SEGMENTS) + .map(|step| { + let angle = std::f32::consts::TAU * step as f32 / SEGMENTS as f32; + center + radius * vec2(angle.cos(), angle.sin()) + }) + .collect() +} + +fn cross(a: egui::Vec2, b: egui::Vec2) -> f32 { + a.x * b.y - a.y * b.x +} + +/// Sutherland–Hodgman against a convex `clip` polygon, interpolating UVs. +pub fn clip_convex(subject: &[Vertex], clip: &[Pos2]) -> Vec { + let area: f32 = (0..clip.len()) + .map(|i| cross(clip[i].to_vec2(), clip[(i + 1) % clip.len()].to_vec2())) + .sum(); + let orientation = area.signum(); + let mut output = subject.to_vec(); + for i in 0..clip.len() { + let a = clip[i]; + let edge = clip[(i + 1) % clip.len()] - a; + if edge.length_sq() < 1e-8 { + continue; + } + let input = std::mem::take(&mut output); + let Some(&last) = input.last() else { + break; + }; + let side = |p: Pos2| orientation * cross(edge, p - a); + let mut previous = last; + for current in input { + let (before, now) = (side(previous.pos), side(current.pos)); + if (before >= 0.0) != (now >= 0.0) { + let t = before / (before - now); + output.push(Vertex { + pos: previous.pos + (current.pos - previous.pos) * t, + uv: previous.uv + (current.uv - previous.uv) * t, + }); + } + if now >= 0.0 { + output.push(current); + } + previous = current; + } + } + output +} + +/// A filled convex shape clipped to `shell`, anti-aliased by egui. +pub fn fill_clipped(shape: &[Pos2], shell: &[Pos2], fill: Color32) -> Shape { + let subject: Vec<_> = shape.iter().map(|&pos| Vertex { pos, uv: pos }).collect(); + let points: Vec<_> = clip_convex(&subject, shell) + .into_iter() + .map(|vertex| vertex.pos) + .collect(); + if points.len() < 3 { + return Shape::Noop; + } + Shape::convex_polygon(points, fill, egui::Stroke::NONE) +} + +/// A tinted texture quad clipped to `shell`. +pub fn image_clipped(texture: egui::TextureId, rect: Rect, shell: &[Pos2], tint: Color32) -> Shape { + let quad = [ + (rect.left_top(), pos2(0.0, 0.0)), + (rect.right_top(), pos2(1.0, 0.0)), + (rect.right_bottom(), pos2(1.0, 1.0)), + (rect.left_bottom(), pos2(0.0, 1.0)), + ] + .map(|(pos, uv)| Vertex { pos, uv }); + let polygon = clip_convex(&quad, shell); + if polygon.len() < 3 { + return Shape::Noop; + } + let mut mesh = epaint::Mesh::with_texture(texture); + for vertex in &polygon { + mesh.vertices.push(epaint::Vertex { + pos: vertex.pos, + uv: vertex.uv, + color: tint, + }); + } + for index in 1..polygon.len() as u32 - 1 { + mesh.add_triangle(0, index, index + 1); + } + Shape::mesh(mesh) +} + +/// Standard normal CDF (Abramowitz–Stegun 7.1.26). +fn normal_cdf(x: f32) -> f32 { + let z = x.abs() / std::f32::consts::SQRT_2; + let t = 1.0 / (1.0 + 0.327_591_1 * z); + let poly = t + * (0.254_829_6 + + t * (-0.284_496_74 + t * (1.421_413_7 + t * (-1.453_152_1 + t * 1.061_405_4)))); + let erf = 1.0 - poly * (-z * z).exp(); + 0.5 * (1.0 + erf.copysign(x)) +} + +/// Signed distance to a rounded rect; negative inside. +pub fn rounded_rect_distance(p: Pos2, rect: Rect, radius: f32) -> f32 { + let radius = radius.min(rect.width() * 0.5).min(rect.height() * 0.5).max(0.0); + let q = (p - rect.center()).abs() - (rect.size() * 0.5 - vec2(radius, radius)); + q.max(egui::Vec2::ZERO).length() + q.x.max(q.y).min(0.0) - radius +} + +/// Coverage of CSS `inset 0 ` at `p` inside the +/// rounded padding box: the blurred hole is approximated from its distance. +pub fn inset_coverage( + p: Pos2, + padding_box: Rect, + radius: f32, + offset_y: f32, + blur: f32, + spread: f32, +) -> f32 { + let hole = padding_box.translate(vec2(0.0, offset_y)).shrink(spread); + let sigma = (blur * 0.5).max(0.3); + normal_cdf(rounded_rect_distance(p, hole, (radius - spread).max(0.0)) / sigma) +} + +/// An inset shadow as a mesh over the rounded padding box, one row per +/// physical pixel and dense columns near the ends. The outline itself is not +/// anti-aliased: callers keep it under a border. +#[allow(clippy::too_many_arguments)] +pub fn inset_shadow( + padding_box: Rect, + radius: f32, + pixels_per_point: f32, + offset_y: f32, + blur: f32, + spread: f32, + color: Color32, +) -> Shape { + const OFFSETS: [f32; 17] = [ + 0.0, 0.5, 1.0, 1.5, 2.0, 3.0, 4.0, 5.0, 6.0, 8.0, 10.0, 13.0, 16.0, 20.0, 25.0, 32.0, 40.0, + ]; + let rect = padding_box; + let radius = radius.min(rect.height() * 0.5).min(rect.width() * 0.5); + let inset = |y: f32| { + let dy = if y < rect.top() + radius { + rect.top() + radius - y + } else if y > rect.bottom() - radius { + y - (rect.bottom() - radius) + } else { + 0.0 + }; + radius - (radius * radius - dy * dy).max(0.0).sqrt() + }; + let columns = 2 * OFFSETS.len() as u32 + 1; + let rows = (rect.height() * pixels_per_point).ceil().max(1.0) as u32; + let mut mesh = epaint::Mesh::default(); + for row in 0..=rows { + let y = (rect.top() + row as f32 / pixels_per_point).min(rect.bottom()); + let (left, right) = (rect.left() + inset(y), rect.right() - inset(y)); + let half = ((right - left) * 0.5).max(0.0); + let xs = OFFSETS + .iter() + .map(|offset| left + offset.min(half)) + .chain(std::iter::once(left + half)) + .chain(OFFSETS.iter().rev().map(|offset| right - offset.min(half))); + for x in xs { + let p = pos2(x, y); + let coverage = inset_coverage(p, padding_box, radius, offset_y, blur, spread); + mesh.colored_vertex(p, color.gamma_multiply(coverage)); + } + if row > 0 { + let (above, here) = ((row - 1) * columns, row * columns); + for column in 0..columns - 1 { + mesh.add_triangle(above + column, above + column + 1, here + column); + mesh.add_triangle(above + column + 1, here + column + 1, here + column); + } + } + } + Shape::mesh(mesh) +} + +/// CSS outer `box-shadow` with a blur too wide for egui's feathered shadow +/// (which cannot exceed the box): a separable Gaussian of the spread box. +/// Corners much smaller than the blur wash out, so they are not modelled. +pub fn soft_shadow(rect: Rect, sigma: f32, color: Color32, clip: Rect) -> Shape { + let area = rect.expand(3.0 * sigma).intersect(clip); + if !area.is_positive() { + return Shape::Noop; + } + let step = (sigma / 4.0).clamp(1.0, 6.0); + let columns = (area.width() / step).ceil() as u32 + 1; + let rows = (area.height() / step).ceil() as u32 + 1; + let band = |value: f32, low: f32, high: f32| { + normal_cdf((value - low) / sigma) - normal_cdf((value - high) / sigma) + }; + let mut mesh = epaint::Mesh::default(); + for row in 0..rows { + let y = (area.top() + row as f32 * step).min(area.bottom()); + let vertical = band(y, rect.top(), rect.bottom()); + for column in 0..columns { + let x = (area.left() + column as f32 * step).min(area.right()); + let coverage = vertical * band(x, rect.left(), rect.right()); + mesh.colored_vertex(pos2(x, y), color.gamma_multiply(coverage)); + if row > 0 && column > 0 { + let here = row * columns + column; + let above = here - columns; + mesh.add_triangle(above - 1, above, here - 1); + mesh.add_triangle(above, here, here - 1); + } + } + } + Shape::mesh(mesh) +} + +#[cfg(test)] +mod tests { + use super::*; + + fn plain(points: &[Pos2]) -> Vec { + points.iter().map(|&pos| Vertex { pos, uv: pos }).collect() + } + + #[test] + fn content_inside_the_shell_is_untouched() { + let shell = stadium(Rect::from_min_size(pos2(0.0, 0.0), vec2(116.0, 32.0))); + let button = circle(pos2(16.0, 16.0), 12.0); + assert_eq!(clip_convex(&plain(&button), &shell).len(), button.len()); + } + + #[test] + fn a_contracting_shell_cuts_the_buttons_to_a_lens() { + // Warming: 68px shell, confirm button centred 42px right of the middle. + let shell = stadium(Rect::from_center_size(pos2(0.0, 0.0), vec2(68.0, 32.0))); + let clipped = clip_convex(&plain(&circle(pos2(42.0, 0.0), 12.0)), &shell); + let (min_x, max_x) = clipped + .iter() + .fold((f32::MAX, f32::MIN), |(lo, hi), v| (lo.min(v.pos.x), hi.max(v.pos.x))); + assert!((min_x - 30.0).abs() < 0.1 && (max_x - 34.0).abs() < 0.1); + assert!(clipped.iter().all(|v| v.pos.y.abs() < 12.0)); + // Fully outside: nothing left to draw. + assert!(clip_convex(&plain(&circle(pos2(80.0, 0.0), 12.0)), &shell).is_empty()); + } + + #[test] + fn texture_coordinates_follow_the_cut() { + let shell = [pos2(0.0, 0.0), pos2(5.0, 0.0), pos2(5.0, 10.0), pos2(0.0, 10.0)]; + let quad = [ + Vertex { pos: pos2(0.0, 0.0), uv: pos2(0.0, 0.0) }, + Vertex { pos: pos2(10.0, 0.0), uv: pos2(1.0, 0.0) }, + Vertex { pos: pos2(10.0, 10.0), uv: pos2(1.0, 1.0) }, + Vertex { pos: pos2(0.0, 10.0), uv: pos2(0.0, 1.0) }, + ]; + let clipped = clip_convex(&quad, &shell); + assert!(clipped.iter().all(|v| v.pos.x <= 5.0 + 1e-4)); + assert!(clipped + .iter() + .any(|v| (v.pos.x - 5.0).abs() < 1e-4 && (v.uv.x - 0.5).abs() < 1e-4)); + } + + #[test] + fn translation_inset_shadow_tints_the_top_edge_and_fades_down_the_ends() { + // `inset 0 4px 7px -3px` inside the 114×30 padding box of the 116px pill. + let padding = Rect::from_min_size(pos2(1.0, 1.0), vec2(114.0, 30.0)); + let at = |x, y| inset_coverage(pos2(x, y), padding, 15.0, 4.0, 7.0, -3.0); + assert!((at(58.0, 1.0) - 0.61).abs() < 0.02); + assert!(at(58.0, 5.0) < 0.25 && at(58.0, 11.0) < 0.01 && at(58.0, 30.0) < 0.02); + // The rounded ends keep a faint tint, as the browser's blurred hole does. + assert!((0.15..0.35).contains(&at(1.0, 16.0))); + } + + #[test] + fn a_wide_soft_shadow_peaks_below_the_box_and_never_exceeds_its_colour() { + let rect = Rect::from_min_size(pos2(0.0, 0.0), vec2(400.0, 32.0)); + let Shape::Mesh(mesh) = soft_shadow(rect, 25.0, Color32::BLACK, rect.expand(200.0)) else { + panic!("expected a mesh"); + }; + let peak = mesh.vertices.iter().map(|v| v.color.a()).max().unwrap(); + // A 32px-tall box under a 25px sigma never reaches full strength. + assert!((110..140).contains(&peak), "{peak}"); + } +} diff --git a/openless-all/app/crates/openless-capsule/src/supervisor.rs b/openless-all/app/crates/openless-capsule/src/supervisor.rs index 9d36b6131..a0715013d 100644 --- a/openless-all/app/crates/openless-capsule/src/supervisor.rs +++ b/openless-all/app/crates/openless-capsule/src/supervisor.rs @@ -272,6 +272,9 @@ mod tests { transcript: String::new(), transcript_font_size: 15.0, labels: Default::default(), + show_transcript: false, + theme: Default::default(), + leaving: false, bounds: None, interactive: true, } @@ -289,13 +292,13 @@ mod tests { .as_nanos() )); std::fs::write(&script, r#"#!/bin/sh -printf '%s\n' '{"type":"ready","version":1}' +printf '%s\n' '{"type":"ready","version":2}' while IFS= read -r frame; do case "$frame" in *'"shutdown"'*) exit 0;; *'"frame"'*) - printf '%s\n' '{"type":"action","version":1,"session_id":"old","sequence":7,"action":"cancel"}' - printf '%s\n' '{"type":"action","version":1,"session_id":"current","sequence":7,"action":"confirm"}' + printf '%s\n' '{"type":"action","version":2,"session_id":"old","sequence":7,"action":"cancel"}' + printf '%s\n' '{"type":"action","version":2,"session_id":"current","sequence":7,"action":"confirm"}' ;; esac done @@ -348,6 +351,9 @@ done transcript: String::new(), transcript_font_size: 15.0, labels: Default::default(), + show_transcript: false, + theme: Default::default(), + leaving: false, bounds: None, interactive: false, })); @@ -387,6 +393,9 @@ mod health_tests { transcript: String::new(), transcript_font_size: 14.0, labels: Default::default(), + show_transcript: false, + theme: Default::default(), + leaving: false, bounds: None, interactive: true, } @@ -422,7 +431,7 @@ mod health_tests { { let mut command = Command::new("powershell.exe"); let script = if ready { - r#"[Console]::WriteLine('{"type":"ready","version":1}'); while ($null -ne ($line = [Console]::ReadLine())) { if ($line.Contains('"type":"shutdown"')) { break } }"# + r#"[Console]::WriteLine('{"type":"ready","version":2}'); while ($null -ne ($line = [Console]::ReadLine())) { if ($line.Contains('"type":"shutdown"')) { break } }"# } else { "while ($null -ne [Console]::ReadLine()) {}" }; @@ -433,7 +442,7 @@ mod health_tests { { let mut command = Command::new("/bin/sh"); let script = if ready { - r#"printf '%s\n' '{"type":"ready","version":1}'; while IFS= read -r line; do case "$line" in *'"shutdown"'*) exit 0;; esac; done"# + r#"printf '%s\n' '{"type":"ready","version":2}'; while IFS= read -r line; do case "$line" in *'"shutdown"'*) exit 0;; esac; done"# } else { "cat >/dev/null" }; @@ -500,7 +509,7 @@ mod health_tests { ) .await .is_err()); - writer.write_all(b"\"version\":1}\n").await.unwrap(); + writer.write_all(b"\"version\":2}\n").await.unwrap(); assert!(matches!( read_ui(&mut reader, &mut pending).await.unwrap(), Some(UiMessage::Ready { diff --git a/openless-all/app/crates/openless-capsule/src/theme.rs b/openless-all/app/crates/openless-capsule/src/theme.rs index d5ea12318..68a032e84 100644 --- a/openless-all/app/crates/openless-capsule/src/theme.rs +++ b/openless-all/app/crates/openless-capsule/src/theme.rs @@ -5,6 +5,3 @@ pub const CAPSULE_BADGE_BORDER: egui::Color32 = pub const ERR: egui::Color32 = egui::Color32::from_rgb(220, 38, 38); pub const INK: egui::Color32 = egui::Color32::from_rgb(9, 9, 11); pub const INK_2: egui::Color32 = egui::Color32::from_rgb(63, 63, 70); -pub const LINE: egui::Color32 = egui::Color32::from_rgb(228, 228, 231); -pub const SURFACE: egui::Color32 = egui::Color32::WHITE; -pub const SURFACE_2: egui::Color32 = egui::Color32::from_rgb(244, 244, 245); diff --git a/openless-all/app/crates/openless-core/Cargo.toml b/openless-all/app/crates/openless-core/Cargo.toml index 88b071bbb..274e8e991 100644 --- a/openless-all/app/crates/openless-core/Cargo.toml +++ b/openless-all/app/crates/openless-core/Cargo.toml @@ -26,7 +26,7 @@ md-5 = "0.11.0" once_cell = "1" parking_lot = "0.12" regex = "1" -reqwest = { version = "0.13.5", default-features = false, features = ["json", "multipart", "rustls", "stream", "system-proxy", "query", "form"] } +reqwest = { version = "0.12", default-features = false, features = ["json", "multipart", "rustls-tls", "stream", "system-proxy"] } serde = { version = "1", features = ["derive"] } serde_json = "1" sha1 = "0.11.0" diff --git a/openless-all/app/crates/openless-core/src/api.rs b/openless-all/app/crates/openless-core/src/api.rs index f5b809476..ab3a2a084 100644 --- a/openless-all/app/crates/openless-core/src/api.rs +++ b/openless-all/app/crates/openless-core/src/api.rs @@ -61,6 +61,16 @@ pub struct BackendSnapshot { pub credentials: CredentialsStatus, } +/// Session-bound translation picker. Working languages come from the frozen recording context. +#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct DictationTranslationTarget { + pub session_id: SessionId, + pub target_language: String, + pub working_languages: Vec, + pub mutable: bool, +} + #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] #[serde(rename_all = "camelCase")] pub struct StartupSnapshot { @@ -1783,6 +1793,7 @@ struct MutableState { dictation_destination_changed: bool, credentials: CredentialsStatus, transcripts: HashMap, + recording_fault_cleanup: Option, silence_monitor: Option, } @@ -1998,7 +2009,15 @@ impl ActiveTextInsertion { self.drained.notify_waiters(); return; } - std::mem::take(&mut state.stream.pending) + let delta = state.stream.take_ready_prefix(); + if delta.is_empty() { + // Whitespace alone waits for another delta, not another timer + // tick. Final reconciliation will flush a trailing suffix. + state.scheduled = false; + self.drained.notify_waiters(); + return; + } + delta }; let expected = delta.chars().count(); let result = if delta.is_empty() { @@ -3332,6 +3351,7 @@ impl OpenLessBackend { dictation_destination_changed: false, credentials: CredentialsStatus::default(), transcripts: HashMap::new(), + recording_fault_cleanup: None, silence_monitor: None, })), phase_changed: Arc::new(tokio::sync::Notify::new()), @@ -5248,7 +5268,13 @@ impl OpenLessBackend { | DictationPhase::Failed => Ok(CliDispatchOutcome::Noop), }, crate::cli::CliIntent::ToggleQa => { - self.deps.services.qa.toggle_recording().await?; + let qa = &self.deps.services.qa; + let snapshot = qa.snapshot().await?; + match (snapshot.phase, snapshot.session_id) { + (crate::QaPhase::Recording, Some(session_id)) => qa.stop_recording(session_id).await?, + (crate::QaPhase::Thinking | crate::QaPhase::AwaitingApproval, _) => return Ok(CliDispatchOutcome::Noop), + _ => qa.start_question().await?, + } Ok(CliDispatchOutcome::QaToggled) } crate::cli::CliIntent::CancelDictation => { @@ -5592,6 +5618,38 @@ impl OpenLessBackend { } } + /// Transfer the recording-key prefix into a fresh voice question. Serialize + /// with physical dictation edges so a delayed prefix release cannot restart + /// dictation after QA has acquired the microphone. + pub async fn start_voice_question_from_recording_key(&self) -> Result<(), BackendError> { + let _dispatch = self.hotkey_dispatch_gate.lock().await; + let snapshot = self.snapshot().dictation; + if let Some(session_id) = snapshot.session_id { + if !matches!(snapshot.phase, DictationPhase::Starting | DictationPhase::Recording) { + return Err(BackendError::new(BackendErrorCode::Busy, "dictation is finalizing")); + } + if let Err(error) = self.cancel_dictation(Some(session_id)).await { + // The independent combo-abort bridge may have claimed this same + // prefix already. Its native cleanup still owns the voice lease. + if self.snapshot().dictation.session_id.is_some() + || error.code != BackendErrorCode::InvalidState { return Err(error); } + } + } + let provisional = std::mem::take(&mut *self.pending_audio_captures.lock() + .expect("pending audio capture lock poisoned")); + for capture in provisional.into_values() { capture.discard().await?; } + self.hotkey.lock().expect("hotkey interpreter lock poisoned").reset(); + // Logical cancellation can precede the final native cleanup hold. Never + // cancel another domain or open a second microphone during that interval. + for _ in 0..25 { + if self.voice_sessions.runtime_restore_idle() { + return self.deps.services.qa.start_question().await; + } + tokio::time::sleep(std::time::Duration::from_millis(20)).await; + } + Err(BackendError::new(BackendErrorCode::Busy, "microphone is still being released")) + } + /// Accept the only mutable dictation intent into the current session. The /// engine only uses it during final polish, so synchronize at the common /// stop boundary instead of racing engine registration during Starting. @@ -5645,6 +5703,65 @@ impl OpenLessBackend { Ok(()) } + pub fn dictation_translation_target(&self) -> Option { + let state = self.state.read().expect("backend state lock poisoned"); + let context = state.dictation_context.as_ref()?; + Some(DictationTranslationTarget { + session_id: state.dictation.session_id?, + target_language: context.polish.translation_target_language.clone(), + working_languages: context.polish.working_languages.clone(), + mutable: state.running + && state.dictation.phase == DictationPhase::Recording + && context.polish.translation_active, + }) + } + + /// Explicitly retarget this recording and remember the choice. Ordinary settings + /// edits still leave an in-flight recording's frozen context untouched. + pub fn select_dictation_translation_target( + &self, + session_id: SessionId, + target_language: String, + ) -> Result { + let target = crate::language_catalog::native_language_name(&target_language) + .ok_or_else(|| BackendError::new(BackendErrorCode::InvalidArgument, "unsupported translation language"))?; + let _write_guard = self.settings_write_gate.lock() + .unwrap_or_else(std::sync::PoisonError::into_inner); + let mut state = self.state.write().expect("backend state lock poisoned"); + ensure_running(&state)?; + if state.dictation.session_id != Some(session_id) + || state.dictation.phase != DictationPhase::Recording + { + return Err(BackendError::new(BackendErrorCode::InvalidState, + "translation picker belongs to a recording that has ended")); + } + let context = state.dictation_context.as_ref().ok_or_else(|| + BackendError::new(BackendErrorCode::InvalidState, "recording context is not ready"))?; + if !context.polish.translation_active + || !crate::shared_types::translation_effective(true, &target, &context.polish.working_languages) + { + return Err(BackendError::new(BackendErrorCode::InvalidArgument, + "translation is inactive or the target matches the only working language")); + } + let mut updated = (**context).clone(); + updated.polish.translation_target_language = target.clone(); + let result = DictationTranslationTarget { + session_id, + target_language: target.clone(), + working_languages: updated.polish.working_languages.clone(), + mutable: true, + }; + // Keep finalization outside this critical section. A failed save changes neither + // the active target nor the remembered choice, and no other preference is overwritten. + self.preferences.update(|preferences| preferences.translation_target_language = target)?; + state.dictation_context = Some(Arc::new(updated)); + // The common stop boundary must also send the changed context to a streaming engine. + state.dictation_translation_requested = Some(true); + drop(state); + self.publish_preferences_changed(); + Ok(result) + } + pub fn siwc_service(&self) -> Result, BackendError> { self.deps .credential_store @@ -8119,7 +8236,18 @@ impl OpenLessBackend { let error = failure.error; if error.code != BackendErrorCode::Cancelled { self.mark_dictation_failed(session_id, &error); - let raw_text = failure.raw_text.unwrap_or_default(); + let raw_text = failure + .raw_text + .filter(|text| !text.trim().is_empty()) + .unwrap_or_else(|| { + self.state + .read() + .expect("backend state lock poisoned") + .transcripts + .get(&session_id) + .map(|transcript| transcript.text().to_owned()) + .unwrap_or_default() + }); let (error_code, final_text, llm_used) = match failure.stage { EngineFailureStage::Transcribing => { ("transcribeFailed", String::new(), false) @@ -8712,6 +8840,7 @@ impl OpenLessBackend { state.dictation_start_output_target = None; state.silence_monitor = None; state.transcripts.remove(&session_id); + state.recording_fault_cleanup = None; hotkey.terminal(std::time::Instant::now()); self.phase_changed.notify_waiters(); drop(state); @@ -8905,8 +9034,8 @@ impl OpenLessBackend { session_id: SessionId, error: BackendError, ) -> Result<(), BackendError> { - let (context, duration_ms, already_failed) = { - let state = self.state.read().expect("backend state lock poisoned"); + let (context, duration_ms, already_failed, raw_text) = { + let mut state = self.state.write().expect("backend state lock poisoned"); ensure_running(&state)?; if state.dictation.session_id != Some(session_id) { return Err(BackendError::new( @@ -8914,15 +9043,25 @@ impl OpenLessBackend { "recording fault belongs to an inactive session", )); } + if state.recording_fault_cleanup == Some(session_id) { + return Ok(()); + } + let context = state.dictation_context.clone().ok_or_else(|| { + BackendError::new( + BackendErrorCode::Internal, + "active recording fault has no captured context", + ) + })?; + state.recording_fault_cleanup = Some(session_id); ( - state.dictation_context.clone().ok_or_else(|| { - BackendError::new( - BackendErrorCode::Internal, - "active recording fault has no captured context", - ) - })?, + context, state.dictation.elapsed_ms, state.dictation.phase == DictationPhase::Failed, + state + .transcripts + .get(&session_id) + .map(|transcript| transcript.text().to_owned()) + .unwrap_or_default(), ) }; // RecordingProgressForwarder marks the state Failed immediately so UI @@ -8932,22 +9071,31 @@ impl OpenLessBackend { if !already_failed { self.mark_dictation_failed(session_id, &error); } + let archive = if context.output_target == DictationOutputTarget::CloudNote + || self.is_cloud_note(session_id) + { + None + } else { + self.deps + .dictation_engine + .retain_failed_recording(session_id) + }; + let cancel_result = self.cancel_session_adapters(session_id).await; self.persist_failed_dictation( &context, session_id, "recordingFailed", - String::new(), + raw_text, String::new(), None, Some(duration_ms), None, None, - None, + archive.as_ref().map(|archive| archive.is_available()), false, None, None, ); - let cancel_result = self.cancel_session_adapters(session_id).await; let _ = self.hide_dictation_feedback(session_id); self.reset_dictation_session(session_id); self.cleanup_voice_activation_after_dictation(session_id) @@ -11291,12 +11439,17 @@ mod tests { #[derive(Default)] struct FakeQaControl { + starts: std::sync::atomic::AtomicUsize, stops: std::sync::atomic::AtomicUsize, cancels: std::sync::atomic::AtomicUsize, faults: std::sync::atomic::AtomicUsize, } impl crate::domains::QaApi for FakeQaControl { + fn start_question(&self) -> BoxFuture<'static, Result<(), BackendError>> { + self.starts.fetch_add(1, Ordering::AcqRel); + Box::pin(async { Ok(()) }) + } fn show(&self) -> BoxFuture<'static, Result<(), BackendError>> { Box::pin(async { Ok(()) }) } @@ -13277,6 +13430,17 @@ mod tests { let (backend, _) = backend(); backend.start().await.unwrap(); let session_id = backend.start_dictation().await.unwrap(); + backend + .engine_progress_sink() + .publish( + session_id, + EngineProgress::TranscriptDelta(crate::TranscriptDelta { + text: "recognized draft".into(), + offset: 0, + is_final: false, + }), + ) + .unwrap(); let error = BackendError::new(BackendErrorCode::Platform, "device disconnected"); backend .engine_progress_sink() @@ -13292,6 +13456,13 @@ mod tests { let history = backend.list_history().unwrap(); assert_eq!(history.len(), 1); assert_eq!(history[0].error_code.as_deref(), Some("recordingFailed")); + assert_eq!(history[0].raw_transcript, "recognized draft"); + assert_eq!( + history[0].asr_transcript.as_deref(), + Some("recognized draft") + ); + assert!(history[0].final_text.is_empty()); + let next_session = backend.start_dictation().await.unwrap(); assert_eq!( backend .report_recording_fault(session_id, error) @@ -13301,6 +13472,65 @@ mod tests { BackendErrorCode::InvalidState ); assert_eq!(backend.list_history().unwrap().len(), 1); + assert_eq!(backend.snapshot().dictation.session_id, Some(next_session)); + backend.cancel_dictation(Some(next_session)).await.unwrap(); + } + + #[tokio::test] + async fn recording_fault_preserves_draft_and_audio_but_explicit_cancel_discards_audio() { + let data_dir = TestDataDir::new("recording-fault-retention"); + let engine = crate::PipelineDictationEngine::new( + Arc::new(crate::ExternalAudioRecorder::with_recordings_directory( + data_dir.path().join("recordings"), + )), + Arc::new(crate::testing::FixtureTranscriptionEngine::successful( + "complete", 1000, + )), + Arc::new(crate::testing::FixtureTextPolisher::successful("complete")), + ); + let backend = + backend_with_dictation_engine(data_dir.path().to_path_buf(), Arc::new(engine)); + backend.start().await.unwrap(); + let pcm = vec![1, 0, 2, 0]; + let id = backend.start_external_dictation().await.unwrap(); + backend.feed_external_pcm(id, &pcm).unwrap(); + backend + .engine_progress_sink() + .publish( + id, + EngineProgress::TranscriptDelta(crate::TranscriptDelta { + text: "unfinished draft".into(), + offset: 0, + is_final: false, + }), + ) + .unwrap(); + backend + .report_recording_fault( + id, + BackendError::new(BackendErrorCode::Platform, "fixture backlog"), + ) + .await + .unwrap(); + let history = backend.list_history().unwrap(); + assert_eq!(history.len(), 1); + assert_eq!(history[0].raw_transcript, "unfinished draft"); + assert!(history[0].final_text.is_empty()); + assert_eq!(history[0].has_audio_recording, Some(true)); + let wav = + std::fs::read(data_dir.path().join("recordings").join(format!("{id}.wav"))).unwrap(); + assert_eq!(crate::audio::decode_dictation_wav(&wav).unwrap(), pcm); + + let next = backend.start_external_dictation().await.unwrap(); + backend.feed_external_pcm(next, &pcm).unwrap(); + backend.cancel_dictation(Some(next)).await.unwrap(); + assert!(!data_dir + .path() + .join("recordings") + .join(format!("{next}.wav")) + .exists()); + assert_eq!(backend.list_history().unwrap().len(), 1); + backend.shutdown().await.unwrap(); } #[tokio::test] @@ -13593,6 +13823,111 @@ mod tests { backend.cancel_dictation(Some(second)).await.unwrap(); } + #[tokio::test] + async fn question_prefix_handoff_cancels_dictation_and_discards_its_late_release() { + let data_dir = TestDataDir::new("question-prefix-handoff"); + let engine = crate::testing::FixtureDictationEngine::successful("must not insert", "unused"); + let qa = Arc::new(FakeQaControl::default()); + let mut deps = BackendDependencies::unsupported(); + deps.dictation_engine = Arc::new(engine.clone()); + deps.host_actions = Arc::new(FakeHost::default()); + deps.text_inserter = Arc::new(crate::testing::FixtureTextInserter::with_outcome(InsertOutcome::Inserted)); + deps.credential_store = llm_configured_credentials(); + deps.services.qa = qa.clone(); + let backend = OpenLessBackend::new(BackendConfig {data_dir:data_dir.path().to_path_buf(), ..Default::default()}, deps).unwrap(); + backend.start().await.unwrap(); + let mut prefs = backend.get_preferences(); + prefs.hotkey.mode = crate::HotkeyMode::Hold; + backend.set_preferences(prefs).unwrap(); + let at = std::time::Instant::now(); + backend.dispatch_dictation_hotkey_edge(DictationHotkeyEdge::Pressed {press_id:7,at}).await.unwrap(); + assert_eq!(backend.snapshot().dictation.phase, DictationPhase::Recording); + backend.start_voice_question_from_recording_key().await.unwrap(); + assert_eq!(qa.starts.load(Ordering::Acquire), 1); + backend.dispatch_dictation_hotkey_edge(DictationHotkeyEdge::Released {press_id:7,at:std::time::Instant::now()}).await.unwrap(); + assert_eq!(backend.snapshot().dictation.phase, DictationPhase::Idle); + assert!(backend.list_history().unwrap().is_empty()); + backend.shutdown().await.unwrap(); + } + + #[tokio::test] + async fn translation_picker_updates_current_engine_and_remembers_only_the_language() { + let data_dir = TestDataDir::new("translation-picker-current"); + let engine = crate::testing::FixtureDictationEngine::successful("raw", "translated"); + let backend = backend_with_dictation_engine(data_dir.path().to_path_buf(), Arc::new(engine.clone())); + backend.start().await.unwrap(); + let mut prefs = backend.get_preferences(); + prefs.translation_target_language = "English".into(); + prefs.working_languages = vec!["简体中文".into()]; + prefs.microphone_device_name = "captured microphone".into(); + backend.set_preferences(prefs).unwrap(); + let session = backend.start_dictation_with_options(DictationStartOptions { + translation_requested: true, ..Default::default() + }).await.unwrap(); + let mut changed = backend.get_preferences(); + changed.microphone_device_name = "next microphone".into(); + backend.set_preferences(changed).unwrap(); + let selected = backend.select_dictation_translation_target(session, "ja".into()).unwrap(); + assert_eq!(selected.target_language, "日本語"); + assert_eq!(backend.get_preferences().translation_target_language, "日本語"); + assert_eq!(backend.get_preferences().microphone_device_name, "next microphone"); + backend.stop_dictation().await.unwrap(); + let contexts = engine.contexts(); + let last = contexts.last().unwrap(); + assert_eq!(last.polish.translation_target_language, "日本語"); + assert_eq!(last.recording.microphone_device_name.as_deref(), Some("captured microphone")); + assert!(last.polish.translation_active); + backend.shutdown().await.unwrap(); + } + + #[tokio::test] + async fn translation_picker_save_failure_keeps_active_and_saved_targets() { + let data_dir = TestDataDir::new("translation-picker-save-failure"); + let engine = crate::testing::FixtureDictationEngine::successful("raw", "translated"); + let backend = backend_with_dictation_engine(data_dir.path().to_path_buf(), Arc::new(engine)); + backend.start().await.unwrap(); + let mut prefs = backend.get_preferences(); + prefs.translation_target_language = "English".into(); + prefs.working_languages = vec!["简体中文".into()]; + backend.set_preferences(prefs).unwrap(); + let session = backend.start_dictation_with_options(DictationStartOptions { + translation_requested: true, ..Default::default() + }).await.unwrap(); + let file = backend.preferences.persistence_path().to_path_buf(); + std::fs::remove_file(&file).unwrap(); + std::fs::create_dir(&file).unwrap(); + assert!(backend.select_dictation_translation_target(session, "日本語".into()).is_err()); + assert_eq!(backend.dictation_translation_target().unwrap().target_language, "English"); + assert_eq!(backend.get_preferences().translation_target_language, "English"); + std::fs::remove_dir(&file).unwrap(); + backend.cancel_dictation(Some(session)).await.unwrap(); + backend.shutdown().await.unwrap(); + } + + #[tokio::test] + async fn translation_picker_rejects_stale_sessions_finalization_and_redundant_targets() { + let data_dir = TestDataDir::new("translation-picker-stale"); + let engine = crate::testing::FixtureDictationEngine::successful("raw", "translated"); + let backend = backend_with_dictation_engine(data_dir.path().to_path_buf(), Arc::new(engine)); + backend.start().await.unwrap(); + let mut prefs = backend.get_preferences(); + prefs.translation_target_language = "English".into(); + prefs.working_languages = vec!["简体中文".into()]; + backend.set_preferences(prefs).unwrap(); + let options = DictationStartOptions { translation_requested: true, ..Default::default() }; + let first = backend.start_dictation_with_options(options.clone()).await.unwrap(); + backend.cancel_dictation(Some(first)).await.unwrap(); + let second = backend.start_dictation_with_options(options).await.unwrap(); + assert!(backend.select_dictation_translation_target(first, "日本語".into()).is_err()); + assert!(backend.select_dictation_translation_target(second, "简体中文".into()).is_err()); + assert!(backend.select_dictation_translation_target(second, "unknown".into()).is_err()); + assert_eq!(backend.dictation_translation_target().unwrap().target_language, "English"); + backend.stop_dictation().await.unwrap(); + assert!(backend.select_dictation_translation_target(second, "日本語".into()).is_err()); + assert_eq!(backend.get_preferences().translation_target_language, "English"); + backend.shutdown().await.unwrap(); + } + #[tokio::test] async fn dictation_captures_preferences_style_and_vocabulary_once_per_session() { let data_dir = std::env::temp_dir().join(format!( @@ -14499,7 +14834,14 @@ mod tests { #[tokio::test] async fn cloud_notes_never_retain_history_or_audio_on_success_failure_or_cancel() { - for outcome in ["success", "failure", "polish_failure", "empty", "cancel"] { + for outcome in [ + "success", + "failure", + "polish_failure", + "empty", + "cancel", + "recording_fault", + ] { let data_dir = std::env::temp_dir().join(format!("openless-cloud-note-{}", uuid::Uuid::new_v4())); let transcription = if outcome == "failure" { @@ -14541,6 +14883,14 @@ mod tests { backend.set_dictation_cloud_note(id, true).unwrap(); if outcome == "cancel" { backend.cancel_dictation(Some(id)).await.unwrap(); + } else if outcome == "recording_fault" { + backend + .report_recording_fault( + id, + BackendError::new(BackendErrorCode::Platform, "fixture recording fault"), + ) + .await + .unwrap(); } else { let result = backend.stop_dictation_session(id).await; assert_eq!(result.is_ok(), outcome == "success"); @@ -15600,6 +15950,17 @@ mod tests { backend.start().await.unwrap(); let session_id = backend.start_dictation().await.unwrap(); + backend + .engine_progress_sink() + .publish( + session_id, + EngineProgress::TranscriptDelta(crate::TranscriptDelta { + text: "draft before provider failure".into(), + offset: 0, + is_final: false, + }), + ) + .unwrap(); let error = backend.stop_dictation().await.expect_err("ASR must fail"); assert_eq!(error.code, BackendErrorCode::Provider); @@ -15607,6 +15968,8 @@ mod tests { assert_eq!(history.len(), 1); assert_eq!(history[0].id, session_id.to_string()); assert_eq!(history[0].error_code.as_deref(), Some("transcribeFailed")); + assert_eq!(history[0].raw_transcript, "draft before provider failure"); + assert!(history[0].final_text.is_empty()); assert_eq!(backend.snapshot().dictation.phase, DictationPhase::Idle); assert!(backend.start_dictation().await.is_ok()); diff --git a/openless-all/app/crates/openless-core/src/asr/volcengine.rs b/openless-all/app/crates/openless-core/src/asr/volcengine.rs index 7b073747e..9777a5fd6 100644 --- a/openless-all/app/crates/openless-core/src/asr/volcengine.rs +++ b/openless-all/app/crates/openless-core/src/asr/volcengine.rs @@ -173,7 +173,9 @@ pub enum VolcengineASRError { /// the account; the latter means network down / firewall / DNS. The message is /// short; the reasons are documented rather than piling long guidance into the /// capsule. - #[error("凭据被拒({0})")] + // Keep an explicit HTTP marker so provider validation can retain the status + // when it removes untrusted provider response details. + #[error("凭据被拒(HTTP {0})")] AuthRejected(u16), /// WebSocket handshake returned 429: too many requests / account throttled. /// Classified separately instead of falling into `ConnectionFailed` — the latter @@ -181,7 +183,7 @@ pub enum VolcengineASRError { /// worsening the throttle and showing a vague "network failure" message. Like /// `AuthRejected`, this short-circuits without retry and returns a clear message /// so the user knows it is throttling, not a disconnect. - #[error("请求过多,账号被限流({0})")] + #[error("请求过多,账号被限流(HTTP {0})")] RateLimited(u16), #[error("no final result")] NoFinalResult, @@ -482,6 +484,21 @@ impl VolcengineStreamingASR { return Ok(ws); } Ok(Err(e)) => { + if let tokio_tungstenite::tungstenite::Error::Http(response) = &e { + // Failed handshakes also carry a provider trace ID. Log + // only status and trace IDs, never auth headers or bodies. + log::warn!( + "[asr] Volcengine handshake rejected status={} connect_id={} request_id={} log_id={}", + response.status().as_u16(), + connect_id, + request_id, + response + .headers() + .get("X-Tt-Logid") + .and_then(|value| value.to_str().ok()) + .unwrap_or("-") + ); + } let classified = classify_connect_error(e); if is_non_retryable(&classified) || attempt >= CONNECT_MAX_ATTEMPTS { return Err(classified); diff --git a/openless-all/app/crates/openless-core/src/audio.rs b/openless-all/app/crates/openless-core/src/audio.rs index 254ec2684..46233a7ab 100644 --- a/openless-all/app/crates/openless-core/src/audio.rs +++ b/openless-all/app/crates/openless-core/src/audio.rs @@ -17,8 +17,9 @@ pub struct AudioProcessingConfig { } /// Shared processor for native and external microphone hosts. -/// Enhancement is session-frozen. Hosts must deliver `finish()` before closing -/// their ASR consumer or recording archive. +/// Enhancement starts with the session's settings and may be disabled under +/// load. Hosts must deliver every returned tail before feeding more input or +/// closing their ASR consumer or recording archive. pub struct AudioProcessor { config: AudioProcessingConfig, normalizer: PcmNormalizer, @@ -48,6 +49,19 @@ impl AudioProcessor { *self = Self::new(self.config); } + /// Flush delayed enhanced samples before switching to basic normalization. + /// The change lasts until the processor is replaced for a new capture. + pub fn disable_enhancement(&mut self) -> Option { + if !self.config.enhancement_enabled || self.finished { + return None; + } + let tail = self.finish(); + self.config.enhancement_enabled = false; + self.enhanced = None; + self.finished = false; + tail + } + pub fn process( &mut self, input: &[f32], @@ -408,6 +422,36 @@ mod tests { ); } + #[test] + fn disabling_enhancement_flushes_lookahead_once_and_preserves_duration() { + for rate in [16_000, 44_100, 48_000] { + let mut processor = AudioProcessor::new(AudioProcessingConfig { + enhancement_enabled: true, + ..Default::default() + }); + let mut samples = 0; + for chunk in [ + processor.process(&vec![0.25; 317], 1, rate), + processor.disable_enhancement(), + ] + .into_iter() + .flatten() + { + samples += chunk.pcm_i16_le.len() / 2; + } + assert_eq!( + samples, + (317_u64 * 16_000).div_ceil(u64::from(rate)) as usize + ); + assert!(processor.disable_enhancement().is_none()); + let next = processor.process(&[0.5; 160], 1, 16_000).unwrap(); + assert_eq!(decode(&next.pcm_i16_le), vec![16383; 160]); + assert!(processor.finish().is_none()); + assert!(processor.disable_enhancement().is_none()); + assert!(processor.process(&[0.5; 160], 1, 16_000).is_none()); + } + } + #[test] fn processor_reset_discards_resampling_state() { let mut processor = AudioProcessor::new(AudioProcessingConfig::default()); diff --git a/openless-all/app/crates/openless-core/src/cloud_sync_e2ee_documents/registry.rs b/openless-all/app/crates/openless-core/src/cloud_sync_e2ee_documents/registry.rs index 6163cd56b..3b7e806c1 100644 --- a/openless-all/app/crates/openless-core/src/cloud_sync_e2ee_documents/registry.rs +++ b/openless-all/app/crates/openless-core/src/cloud_sync_e2ee_documents/registry.rs @@ -396,6 +396,13 @@ pub const PREFERENCE_FIELDS: &[PreferenceField] = &[ shape: PreferenceShape::OptionalObject, reason: "device_bound", }, + PreferenceField { + rust_name: "qa_companion_key", + key: "qaCompanionKey", + class: PreferenceClass::DeviceProfile, + shape: PreferenceShape::Text, + reason: "device_bound", + }, PreferenceField { rust_name: "quick_note_hotkey", key: "quickNoteHotkey", diff --git a/openless-all/app/crates/openless-core/src/dictation_engine.rs b/openless-all/app/crates/openless-core/src/dictation_engine.rs index 08d46eafe..f8d3d58ee 100644 --- a/openless-all/app/crates/openless-core/src/dictation_engine.rs +++ b/openless-all/app/crates/openless-core/src/dictation_engine.rs @@ -89,6 +89,7 @@ struct PipelineSession { polishing: AtomicBool, polisher_cancelled: AtomicBool, recording_fault: Mutex>, + retain_failed_recording: AtomicBool, resources: Mutex, } @@ -151,6 +152,7 @@ impl PipelineSession { polishing: AtomicBool::new(false), polisher_cancelled: AtomicBool::new(false), recording_fault: Mutex::new(None), + retain_failed_recording: AtomicBool::new(false), resources: Mutex::new(PipelineResources::default()), } } @@ -1208,6 +1210,29 @@ impl DictationEngine for PipelineDictationEngine { self.recorder.feed_pcm(session_id, pcm) } + fn retain_failed_recording(&self, session_id: SessionId) -> Option> { + let session = self + .sessions + .lock() + .expect("pipeline session lock poisoned") + .get(&session_id) + .cloned()?; + if session.context().output_target == DictationOutputTarget::CloudNote { + return None; + } + session + .retain_failed_recording + .store(true, Ordering::Release); + let resources = session + .resources + .lock() + .expect("pipeline resource lock poisoned"); + resources + .recording + .as_ref() + .and_then(PipelineRecording::archive) + } + fn cancel(&self, session_id: SessionId) -> BoxFuture<'static, Result<(), BackendError>> { let sessions = Arc::clone(&self.sessions); let polisher = Arc::clone(&self.polisher); @@ -1249,7 +1274,15 @@ impl DictationEngine for PipelineDictationEngine { if let Some(recording) = recording { let archive = recording.archive(); retain_first_error(&mut first_error, recording.stop().await); - if !preserve_quick_note_archive { + if session.retain_failed_recording.load(Ordering::Acquire) { + let mut available = None; + demote_failed_archive( + archive.as_ref(), + session.context().output_target, + &mut available, + ) + .await; + } else if !preserve_quick_note_archive { if let Some(archive) = archive { retain_first_error(&mut first_error, archive.discard().await); } diff --git a/openless-all/app/crates/openless-core/src/domains.rs b/openless-all/app/crates/openless-core/src/domains.rs index 1c87cab17..b5783229e 100644 --- a/openless-all/app/crates/openless-core/src/domains.rs +++ b/openless-all/app/crates/openless-core/src/domains.rs @@ -856,11 +856,26 @@ pub struct QaMessage { pub selection_text: Option, } +/// Status reported by a real provider/tool execution, never inferred from answer text. +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +#[serde(rename_all = "snake_case")] +pub enum QaActivityKind { Thinking, SearchingWeb, ReadingWeb, UsingTool } + +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct QaActivity { + pub kind: QaActivityKind, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub tool_name: Option, +} + #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] pub struct QaSnapshot { pub phase: QaPhase, #[serde(default, skip_serializing_if = "Option::is_none")] + pub activity: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] pub session_id: Option, /// Stable owner for resources that span multiple successful turns, such as /// an edit preview. `session_id` remains a per-turn generation token so a @@ -885,6 +900,7 @@ impl Default for QaSnapshot { fn default() -> Self { Self { phase: QaPhase::Idle, + activity: None, session_id: None, conversation_id: None, messages: Vec::new(), @@ -940,6 +956,7 @@ pub struct QaRuntimeCompletion { #[derive(Debug, Clone, PartialEq)] pub enum QaProgress { + Activity(QaActivity), RecordingLevel(f32), SelectionCaptured(Option), AnswerDelta(String), @@ -1043,6 +1060,10 @@ pub trait QaApi: Send + Sync { fn show(&self) -> BoxFuture<'static, Result<(), BackendError>>; fn snapshot(&self) -> BoxFuture<'static, Result>; fn toggle_recording(&self) -> BoxFuture<'static, Result<(), BackendError>>; + /// Start an independent, single-question voice session without a composer. + fn start_question(&self) -> BoxFuture<'static, Result<(), BackendError>> { + self.toggle_recording() + } /// Stop only this recording generation. Deferred device/silence callbacks /// must never use the UI toggle: it could start or stop a newer turn. fn stop_recording( diff --git a/openless-all/app/crates/openless-core/src/events.rs b/openless-all/app/crates/openless-core/src/events.rs index f5c75272c..cefd53fc4 100644 --- a/openless-all/app/crates/openless-core/src/events.rs +++ b/openless-all/app/crates/openless-core/src/events.rs @@ -212,6 +212,7 @@ pub struct LessComputerEvent { #[derive(Debug, Clone, Copy, PartialEq, Eq, serde::Serialize, serde::Deserialize)] #[serde(rename_all = "snake_case")] pub enum QaStateKind { + Activity, Idle, Loading, Thinking, @@ -232,6 +233,8 @@ pub enum QaStateKind { pub struct QaStateEvent { pub kind: QaStateKind, #[serde(default, skip_serializing_if = "Option::is_none")] + pub activity: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] pub session_id: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub messages: Option>, @@ -255,6 +258,7 @@ impl QaStateEvent { pub fn simple(kind: QaStateKind) -> Self { Self { kind, + activity: None, session_id: None, messages: None, selection_preview: None, @@ -330,6 +334,7 @@ impl QaStateEvent { || snapshot.edit_revert_available)); Self { kind, + activity: snapshot.activity.clone(), session_id: snapshot.session_id.map(|session_id| session_id.to_string()), messages: carries_messages.then_some(messages), selection_preview: carries_selection @@ -904,6 +909,7 @@ mod tests { #[test] fn migration_events_are_typed_and_keep_legacy_payload_fields() { let qa = QaStateEvent { + activity: None, kind: QaStateKind::AnswerDelta, session_id: Some("qa-session".into()), messages: None, diff --git a/openless-all/app/crates/openless-core/src/language_catalog.rs b/openless-all/app/crates/openless-core/src/language_catalog.rs index 6183ff2ea..6bcfcf273 100644 --- a/openless-all/app/crates/openless-core/src/language_catalog.rs +++ b/openless-all/app/crates/openless-core/src/language_catalog.rs @@ -34,6 +34,15 @@ fn language(name: &str) -> Option<&'static Language> { }) } +pub fn native_language_name(value: &str) -> Option { + language(value).map(|language| language.native_name.clone()) +} + +/// The catalog code (`zh-Hans`, `en`, ...) used to name a language in a locale. +pub fn language_code(value: &str) -> Option { + language(value).map(|language| language.code.clone()) +} + pub fn asr_language_code(native_name: &str) -> Option { language(native_name).map(|language| language.asr_code.clone()) } diff --git a/openless-all/app/crates/openless-core/src/lib.rs b/openless-all/app/crates/openless-core/src/lib.rs index 7a4368e0a..1f363893f 100644 --- a/openless-all/app/crates/openless-core/src/lib.rs +++ b/openless-all/app/crates/openless-core/src/lib.rs @@ -220,8 +220,9 @@ pub mod contract { pub use activity::{ActivityDay, ActivityStore, DayStats}; pub use api::{ - AsrRoute, AsrUsage, BackendRepositories, BackendSnapshot, CliDispatchOutcome, DictationHotkeyDispatchOptions, - DictationHotkeyEdge, LessComputerHotkeyAction, LessComputerVoiceFinish, + AsrRoute, AsrUsage, BackendRepositories, BackendSnapshot, CliDispatchOutcome, + DictationHotkeyDispatchOptions, DictationHotkeyEdge, DictationTranslationTarget, + LessComputerHotkeyAction, LessComputerVoiceFinish, LessComputerVoiceOptions, LessComputerVoiceSession, OpenLessBackend, QaVoiceCaptureResult, QaVoiceCaptureSession, StartupSnapshot, VoiceTranscriptionSession, }; diff --git a/openless-all/app/crates/openless-core/src/ports.rs b/openless-all/app/crates/openless-core/src/ports.rs index 87ab414f2..66dfa69f4 100644 --- a/openless-all/app/crates/openless-core/src/ports.rs +++ b/openless-all/app/crates/openless-core/src/ports.rs @@ -471,6 +471,13 @@ pub trait DictationEngine: Send + Sync + 'static { )) } + /// Retain an existing archive during fault cleanup. Availability must be + /// checked after cancellation has drained the recorder. This never enables + /// recording storage for a session whose policy did not already allow it. + fn retain_failed_recording(&self, _session_id: SessionId) -> Option> { + None + } + fn cancel(&self, session_id: SessionId) -> BoxFuture<'static, Result<(), BackendError>>; } diff --git a/openless-all/app/crates/openless-core/src/provider_service.rs b/openless-all/app/crates/openless-core/src/provider_service.rs index 8212879bb..abf797bcc 100644 --- a/openless-all/app/crates/openless-core/src/provider_service.rs +++ b/openless-all/app/crates/openless-core/src/provider_service.rs @@ -1497,6 +1497,25 @@ mod tests { assert!(!format!("{error:?}").contains("response-secret")); } + #[test] + fn volcengine_validation_preserves_handshake_status_without_response_body() { + use crate::asr::volcengine::VolcengineASRError; + + for (failure, status) in [ + (VolcengineASRError::AuthRejected(401), 401), + (VolcengineASRError::AuthRejected(403), 403), + (VolcengineASRError::RateLimited(429), 429), + ] { + // Cloud transcription wraps the provider error before validation + // sanitizes it. Keep the status while discarding untrusted details. + let error = sanitize_validation_error(provider_error(format!( + "ASR provider failed: {failure}; response-secret" + ))); + assert_eq!(error.message, format!("providerHttpStatus:{status}")); + assert!(!format!("{error:?}").contains("response-secret")); + } + } + #[tokio::test] async fn manual_bailian_protocol_is_loaded_per_channel_for_validation() { let credentials = Arc::new(InMemoryCredentialStore::default()); diff --git a/openless-all/app/crates/openless-core/src/qa_service.rs b/openless-all/app/crates/openless-core/src/qa_service.rs index ae948b37c..63e93ce7d 100644 --- a/openless-all/app/crates/openless-core/src/qa_service.rs +++ b/openless-all/app/crates/openless-core/src/qa_service.rs @@ -172,6 +172,7 @@ impl QaService { return; } state.snapshot.phase = QaPhase::Failed; + state.snapshot.activity = None; state.snapshot.pending_approval_token = None; state.snapshot.last_error = Some(message.clone()); state.snapshot.conversation_id = None; @@ -193,7 +194,7 @@ impl QaService { } } - async fn begin_recording(&self) -> Result<(), BackendError> { + async fn begin_recording(&self, fresh: bool) -> Result<(), BackendError> { let _runtime = self.begin_runtime_work()?; let session_id = SessionId::new(); { @@ -207,8 +208,10 @@ impl QaService { self.voice_sessions .acquire(session_id, crate::voice_session::VoiceSessionKind::Qa)?; let previous = state.snapshot.clone(); + if fresh { state.snapshot = QaSnapshot::default(); } let conversation_id = state.snapshot.conversation_id.unwrap_or(session_id); state.snapshot.phase = QaPhase::Recording; + state.snapshot.activity = None; state.snapshot.session_id = Some(session_id); state.snapshot.conversation_id = Some(conversation_id); state.snapshot.pending_approval_token = None; @@ -254,6 +257,7 @@ impl QaService { // back on, stop its successor, or compete with a manual stop. ensure_current_phase(&state.snapshot, session_id, QaPhase::Recording)?; state.snapshot.phase = QaPhase::Thinking; + state.snapshot.activity = Some(crate::domains::QaActivity { kind: crate::domains::QaActivityKind::Thinking, tool_name: None }); self.runtime_work.existing_work() }; self.publish_snapshot(QaStateKind::Loading, Some((session_id, QaPhase::Thinking))); @@ -327,6 +331,7 @@ impl QaService { let previous = state.snapshot.clone(); let conversation_id = state.snapshot.conversation_id.unwrap_or(session_id); state.snapshot.phase = QaPhase::Thinking; + state.snapshot.activity = Some(crate::domains::QaActivity { kind: crate::domains::QaActivityKind::Thinking, tool_name: None }); state.snapshot.session_id = Some(session_id); state.snapshot.conversation_id = Some(conversation_id); state.snapshot.pending_approval_token = None; @@ -402,6 +407,7 @@ impl QaService { let mut state = self.state.lock().expect("QA state lock poisoned"); ensure_current_phase(&state.snapshot, session_id, QaPhase::Thinking)?; state.snapshot.phase = QaPhase::Completed; + state.snapshot.activity = None; state.snapshot.selection_preview = None; drop(state); self.publish_snapshot(QaStateKind::Idle, Some((session_id, QaPhase::Completed))); @@ -522,6 +528,7 @@ impl QaService { selection_text: None, }); state.snapshot.phase = QaPhase::Completed; + state.snapshot.activity = None; state.snapshot.selection_preview = None; state.snapshot.pending_approval_token = None; state.snapshot.last_error = None; @@ -660,6 +667,7 @@ impl QaService { .flatten(); if publish_cancelled { state.snapshot.phase = QaPhase::Cancelled; + state.snapshot.activity = None; } state.snapshot.pending_approval_token = None; state.snapshot.last_error = None; @@ -790,6 +798,11 @@ impl QaApi for QaService { }) } + fn start_question(&self) -> BoxFuture<'static, Result<(), BackendError>> { + let service = self.clone(); + Box::pin(async move { service.begin_recording(true).await }) + } + fn toggle_recording(&self) -> BoxFuture<'static, Result<(), BackendError>> { let service = self.clone(); Box::pin(async move { @@ -804,7 +817,7 @@ impl QaApi for QaService { service.finish_recording(session_id).await } (QaPhase::Idle | QaPhase::Completed | QaPhase::Cancelled | QaPhase::Failed, _) => { - service.begin_recording().await + service.begin_recording(false).await } _ => Err(BackendError::new( BackendErrorCode::Busy, @@ -1030,6 +1043,12 @@ impl QaProgressSink for QaServiceProgress { // Linearize native progress with state changes, but do not take the // presentation mutex: a Host window action must not block audio levels. match progress { + QaProgress::Activity(activity) => { + let mut state = self.state.lock().expect("QA state lock poisoned"); + ensure_current_phase(&state.snapshot, session_id, QaPhase::Thinking)?; + state.snapshot.activity = Some(activity); + publish_qa_snapshot(&self.events, &state.snapshot, QaStateKind::Activity, None, None); + } QaProgress::RecordingLevel(level) => { let state = self.state.lock().expect("QA state lock poisoned"); ensure_current_phase(&state.snapshot, session_id, QaPhase::Recording)?; diff --git a/openless-all/app/crates/openless-core/src/settings.rs b/openless-all/app/crates/openless-core/src/settings.rs index 0f1a573a3..51600f8d8 100644 --- a/openless-all/app/crates/openless-core/src/settings.rs +++ b/openless-all/app/crates/openless-core/src/settings.rs @@ -60,6 +60,8 @@ pub struct HotkeyRuntimeTarget { pub dictation: ShortcutBinding, pub dictation_mode: HotkeyMode, pub qa: Option, + #[serde(default)] + pub qa_companion_key: String, pub quick_note: Option, pub translation: ShortcutBinding, pub switch_style: Option, @@ -79,7 +81,8 @@ impl From<&UserPreferences> for HotkeyRuntimeTarget { Self { dictation: preferences.dictation_hotkey.clone(), dictation_mode: preferences.hotkey.mode, - qa: preferences.qa_hotkey.clone(), + qa: if cfg!(target_os = "linux") { preferences.qa_hotkey.clone() } else { None }, + qa_companion_key: preferences.qa_companion_key.clone(), quick_note: preferences.quick_note_hotkey.clone(), translation: preferences.translation_hotkey.clone(), switch_style: preferences.switch_style_hotkey.clone(), diff --git a/openless-all/app/crates/openless-core/src/shared_types.rs b/openless-all/app/crates/openless-core/src/shared_types.rs index 09786dcfa..ddb570f96 100644 --- a/openless-all/app/crates/openless-core/src/shared_types.rs +++ b/openless-all/app/crates/openless-core/src/shared_types.rs @@ -577,6 +577,9 @@ pub struct UserPreferences { /// Ctrl+Shift+; (Windows). See issue #118. #[serde(default = "default_qa_hotkey")] pub qa_hotkey: Option, + /// Additional key held with the user-selected recording shortcut. Empty disables Ask. + #[serde(default = "default_qa_companion_key")] + pub qa_companion_key: String, /// Standalone quick-note hotkey. None = not configured; when enabled, press once to start and again to stop. #[serde(default)] pub quick_note_hotkey: Option, @@ -1094,6 +1097,8 @@ struct UserPreferencesWire { #[serde(default)] output_language_preference: OutputLanguagePreference, qa_hotkey: Option, + #[serde(default = "default_qa_companion_key")] + qa_companion_key: String, #[serde(default)] quick_note_hotkey: Option, /// Outer `None` means the field was absent in a pre-Selection-Polish file; @@ -1344,6 +1349,7 @@ impl Default for UserPreferencesWire { chinese_script_preference: prefs.chinese_script_preference, output_language_preference: prefs.output_language_preference, qa_hotkey: prefs.qa_hotkey, + qa_companion_key: prefs.qa_companion_key, quick_note_hotkey: prefs.quick_note_hotkey, selection_polish_hotkey: None, selection_polish_style_pack_id: prefs.selection_polish_style_pack_id, @@ -1572,7 +1578,8 @@ impl<'de> Deserialize<'de> for UserPreferences { translation_target_language: wire.translation_target_language, chinese_script_preference: wire.chinese_script_preference, output_language_preference: wire.output_language_preference, - qa_hotkey: wire.qa_hotkey, + qa_hotkey: if cfg!(target_os = "linux") { wire.qa_hotkey } else { None }, // retired desktop follow-up shortcut + qa_companion_key: wire.qa_companion_key, quick_note_hotkey: wire.quick_note_hotkey, selection_polish_hotkey, selection_polish_style_pack_id: wire.selection_polish_style_pack_id, @@ -1791,9 +1798,11 @@ fn salvage_without_incomplete_legacy_hotkey( } fn default_qa_hotkey() -> Option { - Some(ShortcutBinding::default_qa()) + if cfg!(target_os = "linux") { Some(ShortcutBinding::default_qa()) } else { None } } +fn default_qa_companion_key() -> String { "Space".into() } + fn default_selection_polish_hotkey() -> Option { #[cfg(target_os = "windows")] { @@ -1918,7 +1927,7 @@ impl Default for UserPreferences { custom_style_prompts: CustomStylePrompts::default(), launch_at_login: false, show_capsule: true, - capsule_style: CapsuleStyle::Siri, + capsule_style: CapsuleStyle::Classic, capsule_display_mode: CapsuleDisplayMode::CursorScreen, capsule_display_mode_v2: None, capsule_transcript_enabled: true, @@ -1960,6 +1969,7 @@ impl Default for UserPreferences { chinese_script_preference: ChineseScriptPreference::Auto, output_language_preference: OutputLanguagePreference::Auto, qa_hotkey: default_qa_hotkey(), + qa_companion_key: default_qa_companion_key(), quick_note_hotkey: None, selection_polish_hotkey: default_selection_polish_hotkey(), selection_polish_style_pack_id: default_active_style_pack_id(), @@ -2772,14 +2782,16 @@ impl CapsuleDisplayMode { #[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize, Default)] #[serde(rename_all = "camelCase")] pub enum CapsuleStyle { - /// SiriGL light-effect stage style (default). - #[default] + /// Optional spectral light-effect stage. Siri, - /// Openless default style: classic frosted-glass pill (volume bar + - /// cancel/confirm buttons). + /// OpenLess default: white pill, blue waveform and compact processing label. + /// Legacy style preferences migrate before native bounds are computed. + #[default] + #[serde(alias = "typeless")] Classic, - /// Classic dark capsule: blue waveform that narrows into a status hint - /// while processing. + /// Legacy wire variant retained for old native geometry contracts only. + /// It is no longer accepted as a distinct preference or exposed in the UI. + #[serde(skip_deserializing)] Typeless, } @@ -3039,6 +3051,21 @@ mod translation_effective_tests { mod tests { use super::*; + #[test] + fn ask_companion_migrates_legacy_shortcuts_and_round_trips_custom_or_disabled_keys() { + let mut value = serde_json::to_value(UserPreferences::default()).unwrap(); + value.as_object_mut().unwrap().remove("qaCompanionKey"); + value["qaHotkey"] = serde_json::json!({"primary":";", "modifiers":["cmd","shift"]}); + let migrated: UserPreferences = serde_json::from_value(value).unwrap(); + assert_eq!(migrated.qa_companion_key, "Space"); + if !cfg!(target_os = "linux") { assert!(migrated.qa_hotkey.is_none()); } + for key in ["F9", ""] { + let mut prefs = migrated.clone(); prefs.qa_companion_key = key.into(); + let restored: UserPreferences = serde_json::from_value(serde_json::to_value(prefs).unwrap()).unwrap(); + assert_eq!(restored.qa_companion_key, key); + } + } + #[test] fn legacy_less_computer_settings_remain_sealed_until_device_opt_in() { let legacy: UserPreferences = serde_json::from_value(serde_json::json!({ @@ -3413,15 +3440,16 @@ mod tests { } #[test] - fn capsule_style_pref_defaults_to_siri_and_round_trips_wire_key() { - // Old preferences.json has no capsuleStyle field -> falls back to the default Siri. + fn capsule_style_pref_defaults_to_openless_and_migrates_typeless() { let prefs: UserPreferences = serde_json::from_str("{}").unwrap(); - assert_eq!(prefs.capsule_style, CapsuleStyle::Siri); + assert_eq!(prefs.capsule_style, CapsuleStyle::Classic); + let legacy: UserPreferences = serde_json::from_str(r#"{"capsuleStyle":"typeless"}"#).unwrap(); + assert_eq!(legacy.capsule_style, CapsuleStyle::Classic); + assert_eq!(serde_json::to_value(legacy).unwrap()["capsuleStyle"], "classic"); for (style, wire_name) in [ (CapsuleStyle::Siri, "siri"), (CapsuleStyle::Classic, "classic"), - (CapsuleStyle::Typeless, "typeless"), ] { let preferences = UserPreferences { capsule_style: style, diff --git a/openless-all/app/crates/openless-core/src/shortcut_types.rs b/openless-all/app/crates/openless-core/src/shortcut_types.rs index 9e9e87c69..92e436b4d 100644 --- a/openless-all/app/crates/openless-core/src/shortcut_types.rs +++ b/openless-all/app/crates/openless-core/src/shortcut_types.rs @@ -775,6 +775,19 @@ pub fn reconcile_hotkey_collisions( } pub fn reject_hotkey_collisions(preferences: &UserPreferences) -> Result<(), String> { + let companion = preferences.qa_companion_key.trim(); + if !companion.is_empty() { + let binding = ShortcutBinding { primary: companion.into(), modifiers: Vec::new() }; + validate_shortcut_binding(&binding).map_err(|error| error.to_string())?; + if legacy_modifier_trigger(&binding).is_some() + || companion.eq_ignore_ascii_case("Shift") + || companion.eq_ignore_ascii_case("Escape") + || companion.starts_with("Mouse") + || companion.eq_ignore_ascii_case(&preferences.dictation_hotkey.primary) + { + return Err("提问附加键需选择一个与录音主键不同的普通键,例如 Space".into()); + } + } reject_non_dictation_side_specific_shortcuts(preferences)?; let switch_style = preferences.switch_style_hotkey.as_ref(); let open_app = preferences.open_app_hotkey.as_ref(); diff --git a/openless-all/app/crates/openless-core/src/streaming_insert.rs b/openless-all/app/crates/openless-core/src/streaming_insert.rs index d0a02c3bd..e7d7965bf 100644 --- a/openless-all/app/crates/openless-core/src/streaming_insert.rs +++ b/openless-all/app/crates/openless-core/src/streaming_insert.rs @@ -91,6 +91,15 @@ impl StreamingInsertState { self.pending.push_str(&suffix); } + /// Keep trailing ASCII spaces with the next delta, so an SSE boundary + /// cannot turn indentation into separate synthetic Space keystrokes. + /// Final reconciliation writes any remaining suffix, even if it is all spaces. + pub fn take_ready_prefix(&mut self) -> String { + let end = self.pending.trim_end_matches(' ').len(); + let suffix = self.pending.split_off(end); + std::mem::replace(&mut self.pending, suffix) + } + /// Flushes pending text through the host inserter. A partial Unicode write /// is retained as a typed prefix and becomes an explicit fallback. pub fn flush(&mut self, mut insert: F) -> Result @@ -323,6 +332,26 @@ mod tests { ); } + #[test] + fn whitespace_split_across_deltas_stays_literal_and_final_tail_is_retained() { + let mut state = StreamingInsertState::default(); + state.push_delta(0, "变更说明\n "); + let first = state.take_ready_prefix(); + assert_eq!(first, "变更说明\n"); + state.typed_text.push_str(&first); + state.push_delta(6, " "); + assert!(state.take_ready_prefix().is_empty()); + state.push_delta(7, " (a) 保留 "); + let second = state.take_ready_prefix(); + assert_eq!(second, " (a) 保留"); + state.typed_text.push_str(&second); + assert_eq!(state.pending, " "); + assert_eq!( + state.reconcile_final("变更说明\n (a) 保留 "), + FinalReconciliation::WriteTail(" ".into()) + ); + } + #[test] fn failed_stream_preserves_the_complete_final_for_fallback() { let stream = StreamingInsertState { diff --git a/openless-all/app/crates/openless-core/tests/qa_contract.rs b/openless-all/app/crates/openless-core/tests/qa_contract.rs index 48e776623..cc682ccbe 100644 --- a/openless-all/app/crates/openless-core/tests/qa_contract.rs +++ b/openless-all/app/crates/openless-core/tests/qa_contract.rs @@ -21,6 +21,7 @@ struct FixtureQaRuntime { recording_sessions: Mutex>, bound_selection_targets: Mutex>, emit_approval: AtomicBool, + emit_web_activity: AtomicBool, fail_prepare: AtomicBool, fail_finish: AtomicBool, fail_answer: AtomicBool, @@ -50,6 +51,7 @@ impl Default for FixtureQaRuntime { recording_sessions: Mutex::new(Vec::new()), bound_selection_targets: Mutex::new(Vec::new()), emit_approval: AtomicBool::new(false), + emit_web_activity: AtomicBool::new(false), fail_prepare: AtomicBool::new(false), fail_finish: AtomicBool::new(false), fail_answer: AtomicBool::new(false), @@ -183,12 +185,18 @@ impl QaRuntimeAdapter for FixtureQaRuntime { self.requests.lock().unwrap().push(request.clone()); let answer = self.answer.lock().unwrap().clone(); let emit_approval = self.emit_approval.load(Ordering::Acquire); + let emit_web_activity = self.emit_web_activity.load(Ordering::Acquire); let fail_answer = self.fail_answer.load(Ordering::Acquire); let should_block = self.block_answer.load(Ordering::Acquire); let answer_entered = Arc::clone(&self.answer_entered); let started = Arc::clone(&self.answer_started); let gate = Arc::clone(&self.answer_gate); Box::pin(async move { + if emit_web_activity { + progress.publish(request.session_id, QaProgress::Activity(openless_core::QaActivity { + kind: openless_core::QaActivityKind::SearchingWeb, tool_name: Some("web_search".into()) + }))?; + } answer_entered.store(true, Ordering::Release); started.notify_waiters(); progress.publish( @@ -1349,6 +1357,7 @@ fn qa_snapshot_resync_uses_the_same_complete_wire_contract_as_live_events() { let session_id = SessionId::new(); let session_text = session_id.to_string(); let event = QaStateEvent::from_snapshot(&QaSnapshot { + activity: None, phase: QaPhase::AwaitingApproval, session_id: Some(session_id), conversation_id: Some(SessionId::new()), @@ -1374,6 +1383,7 @@ fn qa_snapshot_resync_uses_the_same_complete_wire_contract_as_live_events() { assert!(event.error.is_none()); let failed = QaStateEvent::from_snapshot(&QaSnapshot { + activity: None, phase: QaPhase::Failed, last_error: Some("public failure".into()), ..QaSnapshot::default() @@ -1381,3 +1391,47 @@ fn qa_snapshot_resync_uses_the_same_complete_wire_contract_as_live_events() { assert_eq!(failed.kind, QaStateKind::Error); assert_eq!(failed.error.as_deref(), Some("public failure")); } + +#[tokio::test] +async fn ask_anything_starts_directly_and_each_question_has_fresh_context() { + let runtime = Arc::new(FixtureQaRuntime::responding("answer")); + *runtime.recorded_text.lock().unwrap() = "question".into(); + *runtime.selection.lock().unwrap() = Some("selected reference".into()); + let (backend, data_dir) = backend(runtime.clone()); + let qa = &backend.services().qa; + for _ in 0..2 { + qa.start_question().await.unwrap(); + let recording = qa.snapshot().await.unwrap(); + assert_eq!(recording.phase, QaPhase::Recording); + assert!(recording.messages.is_empty()); + assert_eq!(recording.selection_preview.as_deref(), Some("selected reference")); + qa.stop_recording(recording.session_id.unwrap()).await.unwrap(); + assert_eq!(qa.snapshot().await.unwrap().phase, QaPhase::Completed); + } + let requests = runtime.requests.lock().unwrap(); + assert_eq!(requests.len(), 2); + assert_ne!(requests[0].conversation_id, requests[1].conversation_id); + assert_eq!(requests[1].messages.len(), 1); + assert_eq!(requests[1].input.selection_text.as_deref(), Some("selected reference")); + drop(requests); + let _ = std::fs::remove_dir_all(data_dir); +} + +#[tokio::test] +async fn real_web_tool_activity_is_in_the_snapshot_and_clears_on_completion() { + let runtime = Arc::new(FixtureQaRuntime::responding("answer")); + runtime.emit_web_activity.store(true, Ordering::Release); + runtime.block_answer.store(true, Ordering::Release); + let (backend, data_dir) = backend(runtime.clone()); + let qa = backend.services().qa.clone(); + let answering = tokio::spawn(async move { qa.submit_text("question".into()).await }); + runtime.wait_for_answer().await; + let snapshot = backend.services().qa.snapshot().await.unwrap(); + assert_eq!(snapshot.activity.as_ref().unwrap().kind, openless_core::QaActivityKind::SearchingWeb); + let event = QaStateEvent::from_snapshot(&snapshot); + assert_eq!(event.activity.unwrap().tool_name.as_deref(), Some("web_search")); + runtime.answer_gate.add_permits(1); + answering.await.unwrap().unwrap(); + assert!(backend.services().qa.snapshot().await.unwrap().activity.is_none()); + let _ = std::fs::remove_dir_all(data_dir); +} diff --git a/openless-all/app/e2e/ask-anything.spec.ts b/openless-all/app/e2e/ask-anything.spec.ts new file mode 100644 index 000000000..6699bbf08 --- /dev/null +++ b/openless-all/app/e2e/ask-anything.spec.ts @@ -0,0 +1,116 @@ +import { expect, test, type Page } from '@playwright/test'; +const fixture = 'http://127.0.0.1:5326/e2e/fixtures/capsule-motion.html'; +async function emit(page: Page, event: string, payload: unknown) { + await page.evaluate((v) => (window as any).fixture.emit(v.event, v.payload), { event, payload }); +} + +test('translation uses the shared popup and native headroom; save failure preserves the old language', async ({ + page, +}, info) => { + await page.setViewportSize({ width: 460, height: 172 }); + await page.exposeFunction('resizeMenuForTest', async (open: boolean) => { + await page.setViewportSize({ width: 460, height: open ? 492 : 172 }); + }); + await page.goto(fixture); + await page.locator('.ol-default-capsule').waitFor(); + await page.evaluate(() => (window as any).fixture.setCapsule({ translation: true })); + const picker = page.getByRole('combobox', { name: '翻译目标语言' }); + await expect(picker).toBeEnabled(); + await picker.click(); + const popup = page.locator('.ol-select-popup'); + await expect(popup).toBeVisible(); + await expect(popup).toHaveCSS('border-radius', '10px'); + const bounds = await popup.boundingBox(); + expect(bounds!.y).toBeGreaterThanOrEqual(0); + expect(bounds!.height).toBeGreaterThan(200); + await page.screenshot({ path: info.outputPath('translation-menu.png') }); + await page.getByRole('option', { name: '日语', exact: true }).click(); + await expect(picker).toContainText('日语'); + await expect(popup).toBeHidden(); + await expect.poll(() => page.viewportSize()?.height).toBe(172); + expect(await page.evaluate(() => (window as any).fixture.targetChanges.at(-1))).toEqual({ + sessionId: 'recording-a', + targetLanguage: '日本語', + }); + await page.evaluate(() => ((window as any).fixture.failTarget = true)); + await picker.click(); + await page.getByRole('option', { name: '法语', exact: true }).click(); + await expect(page.getByRole('alert')).toContainText('语言切换失败'); + await expect(picker).toContainText('日语'); + await expect(picker).toBeEnabled(); +}); + +test('translation popup closes when the recording owner changes', async ({ page }) => { + await page.goto(fixture); + await page.locator('.ol-default-capsule').waitFor(); + await page.evaluate(() => (window as any).fixture.setCapsule({ translation: true })); + const picker = page.getByRole('combobox', { name: '翻译目标语言' }); + await expect(picker).toBeEnabled(); + await picker.click(); + await expect(page.locator('.ol-select-popup')).toBeVisible(); + await page.evaluate(() => { + const f = (window as any).fixture; + f.target.sessionId = 'recording-b'; + f.emit('capsule:state', { state: 'recording', sessionId: 'recording-b', translation: true }); + }); + await expect(page.locator('.ol-select-popup')).toBeHidden(); + expect(await page.evaluate(() => (window as any).fixture.targetChanges)).toEqual([]); +}); + +test('Ask has no desktop composer; provider tool status stays in the capsule until the final answer', async ({ + page, +}, info) => { + await page.goto(fixture + '?qa'); + await page.locator('.ol-default-capsule').waitFor(); + await expect(page.locator('input')).toHaveCount(0); + await emit(page, 'qa:state', { + kind: 'recording', + sessionId: 'ask-a', + messages: [], + selectionPreview: 'selected source', + }); + await expect(page.locator('.qa-voice-hint')).toContainText('selected source'); + await emit(page, 'qa:state', { kind: 'thinking', sessionId: 'ask-a', messages: [] }); + await emit(page, 'qa:state', { + kind: 'activity', + sessionId: 'ask-a', + activity: { kind: 'searching_web', toolName: 'web_search' }, + }); + await expect(page.locator('.ol-default-status')).toContainText('正在搜索网页'); + await emit(page, 'qa:state', { kind: 'answer_delta', sessionId: 'ask-a', chunk: 'partial' }); + await expect(page.locator('.qa-answer-panel')).toHaveCount(0); + await emit(page, 'qa:state', { + kind: 'activity', + sessionId: 'old-ask', + activity: { kind: 'using_tool', toolName: 'stale' }, + }); + await expect(page.locator('.ol-default-status')).toContainText('正在搜索网页'); + await emit(page, 'qa:state', { + kind: 'answer', + sessionId: 'ask-a', + messages: [ + { role: 'user', content: '问题', selectionText: 'selected source' }, + { role: 'assistant', content: '最终回答' }, + ], + }); + await expect(page.locator('.qa-answer-panel')).toBeVisible(); + await expect(page.locator('.qa-assistant-message')).toContainText('最终回答'); + await expect(page.locator('.qa-follow-up')).toHaveCount(0); + await expect(page.locator('input')).toHaveCount(0); + await page.screenshot({ path: info.outputPath('ask-result.png') }); +}); + +test('overview is restored and the Ask page remains without the added three-row guide', async ({ + page, +}, info) => { + await page.goto('/'); + await expect(page.locator('[data-ol-page="overview"]')).toBeVisible(); + await expect(page.locator('.ol-recording-key-guide')).toHaveCount(0); + await page.screenshot({ path: info.outputPath('overview-restored.png') }); + const nav = page.locator('.ol-sidebar-surface nav'); + await nav.getByRole('button', { name: '工具', exact: true }).click(); + await nav.getByRole('button', { name: '问任何问题', exact: true }).click(); + await expect(page.getByText('提问附加键', { exact: true })).toBeVisible(); + await expect(page.locator('.ol-recording-key-guide')).toHaveCount(0); + await expect(page.getByText('保存历史', { exact: true })).toBeVisible(); +}); diff --git a/openless-all/app/e2e/capsule-reference-motion.spec.ts b/openless-all/app/e2e/capsule-reference-motion.spec.ts new file mode 100644 index 000000000..52c0b237e --- /dev/null +++ b/openless-all/app/e2e/capsule-reference-motion.spec.ts @@ -0,0 +1,158 @@ +import { expect, test, type Page } from '@playwright/test'; +const fixture = 'http://127.0.0.1:5326/e2e/fixtures/capsule-motion.html'; +async function patch(page: Page, value: Record) { + await page.locator('.ol-default-capsule').waitFor(); + await page.evaluate((value) => (window as any).fixture.setCapsule(value), value); +} +async function emit(page: Page, event: string, payload: unknown) { + await page.evaluate(({ event, payload }) => (window as any).fixture.emit(event, payload), { + event, + payload, + }); +} +const messages = [ + { role: 'user', content: '这是他询问任何问题的内容' }, + { + role: 'assistant', + content: + '这句话的意思是:这是他用来提问任何问题的具体内容。\n\n如果你有任何问题或需要帮助,请随时告诉我,我会尽力为你解答。', + }, +]; + +test('capsule contracts continuously, changes content in sequence, and can reverse mid-flight', async ({ + page, +}) => { + await page.goto(fixture); + const pill = page.locator('.ol-default-capsule'); + await expect(pill).toHaveCSS('width', '116px'); + await expect(pill).toHaveCSS('height', '32px'); + await expect(pill.locator('.ol-default-waveform > span')).toHaveCount(11); + const samples = await page.evaluate(async () => { + const pill = document.querySelector('.ol-default-capsule')!; + (window as any).fixture.setCapsule({ state: 'polishing' }); + const frames: number[] = []; + const start = performance.now(); + while (performance.now() - start < 300) { + await new Promise(requestAnimationFrame); + frames.push(pill.getBoundingClientRect().width); + } + return frames; + }); + expect(samples.some((width) => width > 81 && width < 114)).toBeTruthy(); + await expect(pill).toHaveCSS('width', '80px'); + await expect(pill.locator('.ol-default-status')).toHaveCSS('opacity', '1'); + expect(await pill.evaluate((el) => getComputedStyle(el, '::after').animationName)).toBe( + 'ol-capsule-sweep', + ); + await patch(page, { state: 'recording' }); + await page.waitForTimeout(60); + await patch(page, { state: 'polishing' }); + await page.waitForTimeout(50); + await patch(page, { state: 'recording' }); + await expect(pill).toHaveCSS('width', '116px'); + await patch(page, { leaving: true }); + await page.waitForTimeout(60); + await patch(page, { leaving: false }); + await expect(pill).toHaveCSS('opacity', '1'); + await expect(pill).toHaveCSS('width', '116px'); +}); + +test('translation strip settles above the pill and exits when processing starts', async ({ + page, +}) => { + await page.goto(fixture); + await patch(page, { translation: true }); + const badge = page.locator('.ol-classic-translation'); + await expect(badge).toHaveCSS('opacity', '1'); + const body = await page.locator('.ol-default-capsule').boundingBox(); + const strip = await badge.boundingBox(); + expect(body!.y - strip!.y - strip!.height).toBeCloseTo(8, 0); + await patch(page, { state: 'polishing' }); + await expect(badge).toHaveCSS('opacity', '0'); + await expect(page.locator('.ol-default-capsule')).toHaveCSS('width', '80px'); +}); + +test('QA records in a pill, reveals a wide result, retains content on exit and reopens', async ({ + page, +}, info) => { + const errors: string[] = []; + page.on('pageerror', (error) => errors.push(error.message)); + await page.goto(fixture + '?qa'); + await expect(page.locator('.ol-default-capsule')).toBeVisible(); + await expect(page.locator('.qa-prompt')).toHaveCount(0); + await emit(page, 'qa:state', { kind: 'recording', sessionId: 'a', messages: [] }); + await expect(page.locator('.ol-default-capsule')).toBeVisible(); + await expect(page.locator('.qa-prompt')).toBeHidden(); + await emit(page, 'qa:state', { kind: 'thinking', sessionId: 'a', messages: [messages[0]] }); + await expect(page.locator('.qa-answer-panel')).toHaveCount(0); + await expect(page.locator('.ol-default-capsule')).toHaveAttribute('data-processing', 'true'); + await emit(page, 'qa:state', { kind: 'answer', sessionId: 'a', messages }); + await expect(page.locator('#native-host')).toHaveCSS('width', '760px'); + await expect(page.locator('.qa-answer-panel')).toBeVisible(); + await expect(page.locator('.qa-capsule-shell')).toHaveCSS('opacity', '1'); + await page.screenshot({ path: info.outputPath('qa-result.png') }); + await emit(page, 'chat-panel:closing', {}); + await expect(page.locator('.qa-assistant-message')).toContainText('我会尽力为你解答'); + await page.waitForTimeout(60); + expect( + await page.locator('.qa-capsule-shell').evaluate((el) => Number(getComputedStyle(el).opacity)), + ).toBeLessThan(1); + await emit(page, 'chat-panel:shown', {}); + await emit(page, 'qa:state', { kind: 'recording', sessionId: 'b', messages: [] }); + await expect(page.locator('.qa-capsule-shell')).not.toHaveClass(/is-closing/); + await expect(page.locator('.ol-default-capsule')).toBeVisible(); + await expect(page.locator('#native-host')).toHaveCSS('height', '80px'); + expect(errors).toEqual([]); +}); + +test('immediate geometry acknowledgements keep each QA result visible', async ({ page }) => { + await page.goto(fixture + '?qa'); + await expect(page.locator('.ol-default-capsule')).toBeVisible(); + for (let index = 0; index < 12; index++) { + const sessionId = `instant-layout-${index}`; + await emit(page, 'qa:state', { kind: 'recording', sessionId, messages: [] }); + await expect(page.locator('.ol-default-capsule')).toBeVisible(); + await expect(page.locator('#native-host')).toHaveCSS('width', '480px'); + await emit(page, 'qa:state', { kind: 'answer', sessionId, messages }); + await expect(page.locator('.qa-answer-panel')).toBeVisible(); + await expect(page.locator('#native-host')).toHaveCSS('width', '760px'); + } +}); + +test('reduced motion disables sweeps and geometry interpolation', async ({ page }) => { + await page.emulateMedia({ reducedMotion: 'reduce' }); + await page.goto(fixture); + await patch(page, { state: 'polishing', translation: true }); + await expect(page.locator('.ol-default-capsule')).toHaveCSS('width', '80px'); + expect( + await page + .locator('.ol-default-capsule') + .evaluate((el) => getComputedStyle(el, '::after').animationName), + ).toBe('none'); +}); + +test('native idle keeps the same capsule node through exit; a new recording cancels removal', async ({ + page, +}) => { + await page.goto(fixture + '?full'); + await page.waitForFunction(() => (window as any).fixture.hasListener('capsule:state')); + await emit(page, 'capsule:state', { state: 'recording', level: 0.2, capsuleStyle: 'classic' }); + const pill = page.locator('.ol-default-capsule'); + await expect(pill).toHaveCSS('width', '116px'); + await pill.evaluate((el) => { + (window as any).originalPill = el; + }); + const retained = await page.evaluate(async () => { + (window as any).fixture.emit('capsule:state', { state: 'idle' }); + await new Promise((resolve) => setTimeout(resolve, 50)); + const same = document.querySelector('.ol-default-capsule') === (window as any).originalPill; + (window as any).fixture.emit('capsule:state', { state: 'recording', level: 0.1 }); + return same; + }); + expect(retained).toBe(true); + await expect(pill).toHaveCSS('opacity', '1'); + await page.waitForTimeout(250); + await expect(pill).toBeVisible(); + await emit(page, 'capsule:state', { state: 'idle' }); + await expect(pill).toHaveCount(0); +}); diff --git a/openless-all/app/e2e/fixtures/capsule-motion.html b/openless-all/app/e2e/fixtures/capsule-motion.html new file mode 100644 index 000000000..d6ed6a02f --- /dev/null +++ b/openless-all/app/e2e/fixtures/capsule-motion.html @@ -0,0 +1,11 @@ + + + + + Capsule motion review + + +
+ + + diff --git a/openless-all/app/e2e/fixtures/capsule-motion.tsx b/openless-all/app/e2e/fixtures/capsule-motion.tsx new file mode 100644 index 000000000..ee712f097 --- /dev/null +++ b/openless-all/app/e2e/fixtures/capsule-motion.tsx @@ -0,0 +1,169 @@ +// Real production components with an isolated native event/geometry adapter. +import React, { useState } from 'react'; +import { createRoot } from 'react-dom/client'; +import type { CapsuleState } from '../../src/lib/types'; +import '../../src/styles/tokens.css'; +import '../../src/styles/global.css'; + +const callbacks = new Map void>(); +const listeners = new Map>(); +let callbackId = 0; +const qa = new URLSearchParams(location.search).has('qa'); +const bridge = { + emit(event: string, payload: unknown) { + for (const id of listeners.get(event) ?? []) callbacks.get(id)?.({ event, id, payload }); + }, + hasListener: (event: string) => Boolean(listeners.get(event)?.size), + setCapsule: (_: Record) => {}, + sizes: [] as boolean[], + target: { + sessionId: 'recording-a', + targetLanguage: 'English', + workingLanguages: ['简体中文'], + mutable: true, + }, + targetChanges: [] as any[], + menuChanges: [] as any[], + menuOwner: null as string | null, + failTarget: false, + delayTarget: 0, +}; +Object.assign(window, { fixture: bridge }); +window.__TAURI_INTERNALS__ = { + transformCallback(callback: (value: unknown) => void) { + const id = ++callbackId; + callbacks.set(id, callback); + return id; + }, + unregisterCallback(id: number) { + callbacks.delete(id); + }, + async invoke(command: string, args: any) { + if (command === 'plugin:event|listen') { + const ids = listeners.get(args.event) ?? new Set(); + ids.add(args.handler); + listeners.set(args.event, ids); + return args.handler; + } + if (command === 'plugin:event|unlisten') { + listeners.get(args.event)?.delete(args.eventId); + return; + } + if (command === 'get_startup_snapshot') + return { contractVersion: '2.0.0', backend: { running: true } }; + if (command === 'get_settings') + return { + translationTargetLanguage: bridge.target.targetLanguage, + capsuleStyle: 'classic', + capsuleTranscriptEnabled: false, + }; + if (command === 'get_dictation_translation_target') return { ...bridge.target }; + if (command === 'set_capsule_language_menu') { + if (args.open && (!bridge.target.mutable || args.sessionId !== bridge.target.sessionId)) + throw new Error('stale menu'); + if (!args.open && bridge.menuOwner !== args.sessionId) return; + bridge.menuOwner = args.open ? args.sessionId : null; + bridge.menuChanges.push(args); + const resize = (window as any).resizeMenuForTest; + if (resize) await resize(args.open); + return; + } + if (command === 'select_dictation_translation_target') { + bridge.targetChanges.push(args); + if (bridge.delayTarget) + await new Promise((resolve) => setTimeout(resolve, bridge.delayTarget)); + if (bridge.failTarget || args.sessionId !== bridge.target.sessionId || !bridge.target.mutable) + throw new Error('stale or failed'); + bridge.target.targetLanguage = args.targetLanguage; + bridge.emit('prefs:changed', {}); + return { ...bridge.target }; + } + if (command === 'qa_get_snapshot') return { kind: 'idle', messages: [] }; + if (command === 'qa_window_set_expanded') { + bridge.sizes.push(args.expanded); + const host = document.querySelector('#native-host'); + if (host) { + host.style.width = args.expanded ? '760px' : '480px'; + host.style.height = args.expanded ? '416px' : '80px'; + host.style.bottom = args.expanded ? '48px' : '8px'; + } + return; + } + if (command === 'qa_window_dismiss') bridge.emit('chat-panel:closing', {}); + return null; + }, +}; +Object.assign(window, { __TAURI_EVENT_PLUGIN_INTERNALS__: { unregisterListener() {} } }); +const { i18nReady } = await import('../../src/i18n'); +await i18nReady; +const { OpenLessPill } = await import('../../src/components/OpenLessCapsule'); +const { CapsuleTranslationBadge } = await import('../../src/components/LiveTranscriptPill'); +const { QaPanel } = await import('../../src/pages/QaPanel'); +const { Capsule } = await import('../../src/components/Capsule'); +function CapsuleFixture() { + const [state, set] = useState({ + state: 'recording' as CapsuleState, + level: 0.2, + warming: false, + translation: false, + leaving: false, + operating: false, + }); + bridge.setCapsule = (patch) => set((previous) => ({ ...previous, ...patch })); + return ( +
+ + bridge.setCapsule({ leaving: true })} + onConfirm={() => bridge.setCapsule({ state: 'polishing' })} + /> +
+ ); +} +document.body.style.background = '#0b1215'; +createRoot(document.getElementById('root')!).render( + new URLSearchParams(location.search).has('full') ? ( +
+ +
+ ) : qa ? ( +
+ +
+ ) : ( + + ), +); diff --git a/openless-all/app/e2e/motion.spec.ts b/openless-all/app/e2e/motion.spec.ts index 26aca0ef2..a59cfbe1f 100644 --- a/openless-all/app/e2e/motion.spec.ts +++ b/openless-all/app/e2e/motion.spec.ts @@ -266,6 +266,9 @@ test('changing reduced motion stops the decorative WebGL loop', async ({ page }) }); await page.emulateMedia({ reducedMotion: 'no-preference' }); await page.getByRole('button', { name: '设置', exact: true }).click(); + // OpenLess is now the default; opt into the optional WebGL style for this probe. + await page.getByRole('combobox', { name: '胶囊样式' }).click(); + await page.getByRole('option', { name: /Siri/ }).click(); await expect .poll(() => page.evaluate(() => (window as Window & { motionDraws: number }).motionDraws)) .toBeGreaterThan(5); diff --git a/openless-all/app/e2e/openless-default.spec.ts b/openless-all/app/e2e/openless-default.spec.ts new file mode 100644 index 000000000..a099f89e4 --- /dev/null +++ b/openless-all/app/e2e/openless-default.spec.ts @@ -0,0 +1,108 @@ +import { expect, test } from '@playwright/test'; + +test('default capsule is white and blue with eleven bars, including legacy style links', async ({ + page, +}, info) => { + for (const style of ['classic', 'typeless']) { + await page.goto(`/?window=capsule&style=${style}&state=recording&level=0.2`); + const pill = page.locator('.ol-default-capsule'); + await expect(pill).toBeVisible(); + await expect(pill).toHaveCSS('background-color', 'rgba(0, 0, 0, 0)'); + await expect(pill.locator('.ol-default-waveform > span')).toHaveCount(11); + expect(await pill.evaluate((el) => getComputedStyle(el, '::before').backgroundColor)).toBe( + 'rgb(255, 255, 255)', + ); + await expect(pill.locator('.ol-default-waveform > span').first()).toHaveCSS( + 'background-color', + 'rgb(37, 99, 235)', + ); + await expect(page.locator('.ol-typeless-capsule')).toHaveCount(0); + } + await page.screenshot({ path: info.outputPath('capsule-recording.png'), animations: 'disabled' }); +}); + +test('processing stays cancellable, hides confirm and shows a compact status', async ({ + page, +}, info) => { + await page.goto('/?window=capsule&style=classic&state=polishing&translation=1'); + const pill = page.locator('.ol-default-capsule'); + await expect(pill).toHaveAttribute('data-processing', 'true'); + await expect(pill.locator('.ol-default-status')).toHaveCSS('opacity', '1'); + await expect(pill.locator('.ol-default-processing-cancel')).toBeEnabled(); + await expect(pill.locator('.ol-default-confirm')).toBeDisabled(); + await expect(page.locator('.ol-classic-translation')).toHaveCSS( + 'background-color', + 'rgb(255, 255, 255)', + ); + await expect(pill).toHaveCSS('width', '80px'); + await expect(page.locator('.ol-classic-translation')).toHaveCSS('opacity', '0'); + await page.screenshot({ + path: info.outputPath('capsule-processing.png'), + animations: 'disabled', + }); +}); + +test('sidebar distinguishes hover from selection without navigating on hover', async ({ + page, +}, info) => { + await page.emulateMedia({ colorScheme: 'light' }); + await page.goto('/'); + await expect(page.locator('html')).not.toHaveAttribute('data-ol-theme', 'dark'); + const nav = page.locator('.ol-sidebar-surface nav'); + const history = nav.getByRole('button', { name: '历史', exact: true }); + const overview = nav.getByRole('button', { name: '概览', exact: true }); + // Selected: black on the darker wash. Idle: light gray, no wash. Hover: near-black on a + // lighter wash than the selection, with a pointer. + await expect(overview).toHaveCSS('color', 'rgb(0, 0, 0)'); + await expect(overview).toHaveCSS('background-color', 'rgba(0, 0, 0, 0.075)'); + await expect(history).toHaveCSS('color', 'rgb(133, 133, 142)'); + await expect(history).toHaveCSS('background-color', 'rgba(0, 0, 0, 0)'); + await expect(history).toHaveCSS('cursor', 'pointer'); + await history.hover(); + await expect(history).toHaveCSS('color', 'rgb(24, 24, 27)'); + await expect(history).toHaveCSS('background-color', 'rgba(0, 0, 0, 0.04)'); + await expect(page.locator('[data-ol-page="overview"]')).toBeVisible(); + await history.click(); + await expect(history).toHaveAttribute('aria-current', 'page'); + await expect(history).toHaveCSS('color', 'rgb(0, 0, 0)'); + await expect(history).toHaveCSS('background-color', 'rgba(0, 0, 0, 0.075)'); + await expect(page.locator('[data-ol-page="history"]')).toHaveCSS('opacity', '1'); + await page.screenshot({ path: info.outputPath('navigation.png'), animations: 'disabled' }); +}); + +test('rapid page choices settle immediately and reduced motion leaves no animation', async ({ + page, +}) => { + await page.goto('/'); + await page.emulateMedia({ reducedMotion: 'reduce' }); + for (const name of ['历史', '词典', '概览']) { + await page + .locator('.ol-sidebar-surface nav') + .getByRole('button', { name, exact: true }) + .click(); + } + const content = page.locator('[data-ol-page="overview"]'); + await expect(content).toBeVisible(); + await expect(content).toHaveCSS('opacity', '1'); + expect( + await content.evaluate((el) => ({ + inert: (el as HTMLElement).inert, + animations: el.getAnimations().length, + })), + ).toEqual({ inert: false, animations: 0 }); +}); + +test('quick follow-up uses white surfaces and blue accents even in dark mode', async ({ + page, +}, info) => { + await page.goto('/?window=qa'); + const shell = page.locator('.qa-capsule-shell'); + await expect(shell).toBeVisible(); + expect( + await shell.evaluate((el) => ({ + paper: getComputedStyle(el).getPropertyValue('--qa-paper').trim(), + accent: getComputedStyle(el).getPropertyValue('--qa-accent').trim(), + })), + ).toEqual({ paper: '#fff', accent: '#2563eb' }); + await page.screenshot({ path: info.outputPath('quick-followup.png'), animations: 'disabled' }); +}); diff --git a/openless-all/app/e2e/refinements.spec.ts b/openless-all/app/e2e/refinements.spec.ts index ec3ebe434..ec6456e2a 100644 --- a/openless-all/app/e2e/refinements.spec.ts +++ b/openless-all/app/e2e/refinements.spec.ts @@ -38,6 +38,8 @@ test('shortcut search and categories live in the flat settings pane; keyboard cl test('native scrolling has no JS wheel interception and is stable when stopped', async ({ page, }) => { + // The wheel distance is asserted in CSS pixels, which match device pixels only at 100%. + await page.addInitScript(() => localStorage.setItem('ol-font-scale', 'medium')); await openShortcuts(page); const content = page.locator('.ol-settings-scroll'); await expect(content).toHaveCSS('scroll-behavior', 'auto'); @@ -162,7 +164,7 @@ test('every main destination and settings category stays readable on desktop and await expect(page.locator('main h1')).toBeVisible(); } await page.getByRole('button', { name: '工具', exact: true }).click(); - for (const name of ['翻译', '划词追问', '速记', '纠正规则']) { + for (const name of ['翻译', '问任何问题', '速记', '纠正规则']) { await page.getByRole('button', { name, exact: true }).click(); await expect(page.locator('main h1')).toBeVisible(); } diff --git a/openless-all/app/e2e/resource-lifecycle.spec.ts b/openless-all/app/e2e/resource-lifecycle.spec.ts index 4033fb5ab..258dd9749 100644 --- a/openless-all/app/e2e/resource-lifecycle.spec.ts +++ b/openless-all/app/e2e/resource-lifecycle.spec.ts @@ -20,6 +20,9 @@ test('offscreen WebGL preview releases its animation clock and resumes only when }; }); await page.getByRole('button', { name: '设置', exact: true }).click(); + // The default OpenLess preview is CSS-only; opt into the WebGL style under test. + await page.getByRole('combobox', { name: '胶囊样式' }).click(); + await page.getByRole('option', { name: /Siri/ }).click(); const draws = () => page.evaluate(() => (window as Window & { draws: number }).draws); await expect.poll(draws).toBeGreaterThan(5); await page.locator('.ol-settings-scroll').evaluate((element) => { diff --git a/openless-all/app/e2e/settings-regressions.spec.ts b/openless-all/app/e2e/settings-regressions.spec.ts index 1664d4229..d0bf5de97 100644 --- a/openless-all/app/e2e/settings-regressions.spec.ts +++ b/openless-all/app/e2e/settings-regressions.spec.ts @@ -8,11 +8,11 @@ async function openSettings(page: Page) { return page.getByRole('dialog', { name: '设置', exact: true }); } -test('100% is the fresh default; explicit 110% survives reload and the settings titlebar stays draggable', async ({ +test('110% is the fresh default; explicit 100% survives reload and the settings titlebar stays draggable', async ({ page, }) => { const dialog = await openSettings(page); - await expect(page.locator('html')).toHaveCSS('zoom', '1'); + await expect(page.locator('html')).toHaveCSS('zoom', '1.1'); await expect(dialog.getByRole('button', { name: '返回应用', exact: true })).toHaveCount(1); await expect(dialog.getByRole('button', { name: '关闭', exact: true })).toHaveCount(0); expect( @@ -21,10 +21,13 @@ test('100% is the fresh default; explicit 110% survives reload and the settings ), ).toBe(true); await dialog.getByRole('button', { name: '外观与语言', exact: true }).click(); - await page.getByRole('combobox', { name: '界面大小', exact: true }).click(); - await page.getByRole('option', { name: '110%', exact: true }).click(); + const interfaceSize = page.getByRole('combobox', { name: '界面大小', exact: true }); + await expect(interfaceSize).toContainText('110%'); + await interfaceSize.click(); + await page.getByRole('option', { name: '100%', exact: true }).click(); + await expect(page.locator('html')).toHaveCSS('zoom', '1'); await page.reload(); - await expect(page.locator('html')).toHaveCSS('zoom', '1.1'); + await expect(page.locator('html')).toHaveCSS('zoom', '1'); await page.getByRole('button', { name: '设置', exact: true }).click(); expect( await page.evaluate( diff --git a/openless-all/app/e2e/switch-motion.spec.ts b/openless-all/app/e2e/switch-motion.spec.ts new file mode 100644 index 000000000..035899065 --- /dev/null +++ b/openless-all/app/e2e/switch-motion.spec.ts @@ -0,0 +1,285 @@ +import { expect, test, type ElementHandle, type Locator, type Page } from '@playwright/test'; + +// Every switch the user can reach in Settings (plus the services channel lists and the +// Selection Ask page) must slide its knob between on and off, never jump. Each switch is +// flipped twice so both directions are sampled and the mock preferences end unchanged. + +const errors = new WeakMap(); +test.beforeEach(async ({ page }) => { + const pageErrors: string[] = []; + errors.set(page, pageErrors); + page.on('pageerror', (error) => pageErrors.push(error.message)); + await page.emulateMedia({ reducedMotion: 'no-preference' }); + await page.goto('/?os=mac'); + await expect(page.getByRole('button', { name: '设置', exact: true })).toBeVisible(); +}); +test.afterEach(async ({ page }) => { + expect(errors.get(page)).toEqual([]); +}); + +type Sample = { + name: string; + checked: [string, string]; + start: number; + end: number; + xs: number[]; + /** Knob positions at controlled points of the real CSS transition. */ + controlledXs: number[]; + /** elapsedTime (s) of every completed knob transform transition. */ + finished: number[]; +}; + +/** Clicks a switch and records its knob's left edge on every animation frame. Works on the + * element itself: a channel row may move within its list once its switch flips. */ +async function flip(page: Page, control: ElementHandle): Promise { + await control.scrollIntoViewIfNeeded(); + // Pointer input: keyboard mode deliberately disables the knob transition. + const box = (await control.boundingBox())!; + await page.mouse.move(box.x + box.width / 2, box.y + box.height / 2); + const before = (await control.getAttribute('aria-checked')) ?? ''; + const name = await control.evaluate((element) => { + const labelledBy = element.getAttribute('aria-labelledby'); + return ( + element.getAttribute('aria-label') ?? + (labelledBy ? document.getElementById(labelledBy)?.textContent : null) ?? + '' + ).trim(); + }); + const start = await control.evaluate((element) => { + const knob = element.querySelector('.ol-switch-thumb')!; + return knob.getBoundingClientRect().left; + }); + const sampling = control.evaluate(async (element) => { + const knob = element.querySelector('.ol-switch-thumb')!; + const finished: number[] = []; + const controlledXs: number[] = []; + const onRun = (event: TransitionEvent) => { + if (event.target !== knob || event.propertyName !== 'transform') return; + const transition = knob + .getAnimations() + .find( + (animation) => + animation instanceof CSSTransition && animation.transitionProperty === 'transform', + ); + if (!transition?.effect) return; + const duration = transition.effect.getComputedTiming().duration; + if (typeof duration !== 'number' || duration <= 0) return; + // CI can paint only every 80–100ms, missing the useful part of a 180ms ease-out. + // Seek within the real transition without pausing it. Pausing and playing can defer + // WebKit's restart until another paint, extending the slide into the row reorder. + // Restore the original timeline so sampling cannot delay normal completion. + const startTime = transition.startTime; + const currentTime = transition.currentTime; + for (const fraction of [0.25, 0.5, 0.75]) { + transition.currentTime = duration * fraction; + controlledXs.push(knob.getBoundingClientRect().left); + } + if (startTime !== null) transition.startTime = startTime; + else transition.currentTime = currentTime; + }; + const onEnd = (event: TransitionEvent) => { + if (event.target === knob && event.propertyName === 'transform') { + finished.push(event.elapsedTime); + } + }; + knob.addEventListener('transitionrun', onRun); + knob.addEventListener('transitionend', onEnd); + const xs: number[] = []; + for (let frame = 0; frame < 45; frame++) { + await new Promise(requestAnimationFrame); + // A remount would leave this node detached and frozen: count it as a jump. + xs.push(element.isConnected ? knob.getBoundingClientRect().left : Number.NaN); + } + knob.removeEventListener('transitionrun', onRun); + knob.removeEventListener('transitionend', onEnd); + return { xs, controlledXs, finished }; + }); + await page.mouse.down(); + await page.mouse.up(); + const { xs, controlledXs, finished } = await sampling; + const after = (await control.getAttribute('aria-checked')) ?? ''; + return { name, checked: [before, after], start, end: xs.at(-1)!, xs, controlledXs, finished }; +} + +function expectAnimated(sample: Sample) { + const { name, checked, start, end, controlledXs, finished } = sample; + expect(checked[1], `${name} changed state`).not.toBe(checked[0]); + expect(Math.abs(end - start), `${name} knob travelled`).toBeGreaterThan(4); + // The knob's transform transition ran to completion (a jump or remount has none). + expect( + finished.some((elapsed) => elapsed >= 0.1), + `${name} knob finished a transform transition`, + ).toBe(true); + const low = Math.min(start, end) + 0.5; + const high = Math.max(start, end) - 0.5; + expect(controlledXs, `${name} exposed its transform transition`).toHaveLength(3); + expect( + controlledXs.some((x) => x > low && x < high), + `${name} knob passed through controlled intermediate positions (${start} → ${controlledXs.join(' ')} → ${end})`, + ).toBe(true); +} + +async function exerciseVisibleSwitches(scope: Locator, label: string) { + const page = scope.page(); + // Handles, not positions: flipping a channel can move its row within the list. + const switches = await scope.locator('[role="switch"]').elementHandles(); + let exercised = 0; + for (const control of switches as ElementHandle[]) { + if (!(await control.isVisible())) continue; + const unavailable = await control.evaluate( + (element) => + element.hasAttribute('disabled') || + element.hasAttribute('data-disabled') || + element.getAttribute('aria-disabled') === 'true' || + // Collapsed groups keep their rows laid out but inert. + element.closest('[inert]') !== null, + ); + if (unavailable) continue; + expectAnimated(await flip(page, control)); + expectAnimated(await flip(page, control)); + exercised++; + } + test.info().annotations.push({ type: 'switches', description: `${label}: ${exercised}` }); + return exercised; +} + +async function openSettings(page: Page) { + await page.getByRole('button', { name: '设置', exact: true }).click(); + const dialog = page.getByRole('dialog', { name: '设置', exact: true }); + await expect(dialog).toHaveCSS('opacity', '1'); + return dialog; +} + +async function openSection(dialog: Locator, name: string) { + await dialog + .getByRole('navigation', { name: '设置分类' }) + .getByRole('button', { name, exact: true }) + .click(); +} + +test('every settings switch slides between on and off', async ({ page }) => { + test.setTimeout(180_000); + const dialog = await openSettings(page); + const sections = await dialog + .getByRole('navigation', { name: '设置分类' }) + .getByRole('button') + .allTextContents(); + expect(sections.length).toBeGreaterThan(4); + let total = 0; + for (const section of sections.map((name) => name.trim())) { + await openSection(dialog, section); + // Open every collapsible group so its switches are reachable. + const headers = dialog.locator('[data-ol-toggle-group] > button[aria-expanded]'); + for (let index = 0; index < (await headers.count()); index++) { + const header = headers.nth(index); + if ((await header.getAttribute('aria-expanded')) !== 'false') continue; + await header.click(); + await expect(header).toHaveAttribute('aria-expanded', 'true'); + } + if (section === '实验与扩展') { + const entries = dialog.locator('[data-ol-advanced-entry]'); + const visibleEntries = () => + entries.evaluateAll((items) => + items + .filter((item) => item.getClientRects().length > 0) + .map((item) => item.getAttribute('data-ol-advanced-entry')!), + ); + const visit = async (id: string, inside?: () => Promise) => { + await dialog.locator(`[data-ol-advanced-entry="${id}"]`).click(); + await expect(dialog.locator('.ol-settings-back')).toBeVisible(); + // Pages visited earlier stay mounted but hidden; only the open page is visible. + total += await exerciseVisibleSwitches(dialog, `advanced:${id}`); + await inside?.(); + await dialog.locator('.ol-settings-back').click(); + await expect(entries.first()).toBeVisible(); + }; + for (const id of await visibleEntries()) { + await visit(id, async () => { + if (id !== 'testingFeatures') return; + // Testing pages are only listed while their switch is on. + const enable = dialog.getByRole('switch', { name: '启用正在测试中的功能' }); + await enable.click(); + await expect(enable).toHaveAttribute('aria-checked', 'true'); + await expect(entries.first()).toBeVisible(); + for (const testingId of await visibleEntries()) await visit(testingId); + await enable.click(); + await expect(enable).toHaveAttribute('aria-checked', 'false'); + }); + } + continue; + } + total += await exerciseVisibleSwitches(dialog, section); + } + expect(total).toBeGreaterThan(15); +}); + +test('channel enable switches slide in every services list', async ({ page }) => { + const dialog = await openSettings(page); + await openSection(dialog, 'AI 服务与模型'); + let total = 0; + for (const view of ['语言模型', '语音识别']) { + await dialog + .locator('.ol-service-views') + .getByRole('button', { name: new RegExp(`^${view}`) }) + .click(); + const list = dialog.locator('.ol-reorder-list'); + await expect(list.locator('[role="switch"]').first()).toBeVisible(); + total += await exerciseVisibleSwitches(list, view); + } + expect(total).toBeGreaterThanOrEqual(2); +}); + +test('channel sorting waits for a slow knob transition to finish', async ({ page }) => { + const dialog = await openSettings(page); + await openSection(dialog, 'AI 服务与模型'); + await page.addStyleTag({ + content: '.ol-switch-thumb { transition-duration: 700ms !important; }', + }); + const first = dialog.locator('.ol-reorder-list [role="switch"][aria-checked="true"]').first(); + await expect(first).toBeVisible(); + const name = (await first.getAttribute('aria-label'))!; + const control = dialog.getByRole('switch', { name, exact: true }); + await control.evaluate((element) => { + const knob = element.querySelector('.ol-switch-thumb')!; + element.setAttribute('data-test-slide', 'pending'); + for (const type of ['transitionend', 'transitioncancel']) { + knob.addEventListener(type, (event) => { + if ((event as TransitionEvent).propertyName === 'transform') { + element.setAttribute('data-test-slide', type); + } + }); + } + }); + await control.click(); + await expect(control).toHaveAttribute('aria-checked', 'false'); + await expect(control).toHaveAttribute('data-test-slide', 'transitionend'); +}); + +test('the Selection Ask history switch slides', async ({ page }) => { + await page.getByRole('button', { name: '工具', exact: true }).click(); + await page.getByRole('button', { name: '问任何问题', exact: true }).click(); + const main = page.locator('main'); + await expect(main.getByRole('switch').first()).toBeVisible(); + expect(await exerciseVisibleSwitches(main, 'selectionAsk')).toBeGreaterThan(0); +}); + +test('stacked switches ripple their neighbours in collapsible groups and channel lists', async ({ + page, +}) => { + const dialog = await openSettings(page); + const neighbourMoves = async (group: Locator) => { + const switches = group.locator('[role="switch"]'); + await expect(switches.nth(1)).toBeVisible(); + await switches.nth(0).click(); + return switches.nth(1).evaluate((element) => element.getAnimations().length); + }; + const startup = dialog.getByRole('button', { name: '启动', exact: true }); + if ((await startup.getAttribute('aria-expanded')) === 'false') await startup.click(); + // The collapsible's own root is its group: switches ripple only within that list. + const startupGroup = startup.locator('xpath=..'); + await expect(startupGroup).toHaveAttribute('data-ol-toggle-group', ''); + expect(await neighbourMoves(startupGroup)).toBeGreaterThan(0); + await openSection(dialog, 'AI 服务与模型'); + const channels = dialog.locator('.ol-reorder-list[data-ol-toggle-group]'); + expect(await neighbourMoves(channels)).toBeGreaterThan(0); +}); diff --git a/openless-all/app/e2e/visual-refinements.spec.ts b/openless-all/app/e2e/visual-refinements.spec.ts index 66e7e2eec..cf3d00041 100644 --- a/openless-all/app/e2e/visual-refinements.spec.ts +++ b/openless-all/app/e2e/visual-refinements.spec.ts @@ -1,28 +1,76 @@ -import { test, expect } from '@playwright/test'; +import { test, expect, type Locator } from '@playwright/test'; -// Playwright selects reviewed references per browser and runner OS: system -// font rasterization is intentionally not shared between macOS and Ubuntu. +async function expectReadableLayout(dialog: Locator) { + const scroll = dialog.locator('.ol-settings-scroll'); + expect( + await scroll.evaluate((element) => element.scrollWidth - element.clientWidth), + ).toBeLessThanOrEqual(1); + const heading = dialog.getByRole('heading', { level: 2 }).first(); + await expect(heading).toBeVisible(); + expect( + await heading.evaluate((element) => element.scrollWidth - element.clientWidth), + ).toBeLessThanOrEqual(1); +} for (const theme of ['dark', 'light'] as const) { - test(`settings visual baseline · ${theme}`, async ({ page }) => { + test(`settings color and layout contracts · ${theme}`, async ({ page }) => { await page.emulateMedia({ colorScheme: theme, reducedMotion: 'reduce' }); await page.goto('/'); await page.getByRole('button', { name: '设置', exact: true }).click(); const dialog = page.getByRole('dialog', { name: '设置', exact: true }); - await page.getByRole('button', { name: '快捷键', exact: true }).click(); - await expect(page.locator('.ol-shortcut-row').first()).toBeVisible(); - // Collect both independent screens on failure; soft assertions still fail CI. - await expect.soft(dialog).toHaveScreenshot(`shortcuts-${theme}.png`, { - animations: 'disabled', - maxDiffPixels: 100, - threshold: 0.1, - }); - await page.getByRole('button', { name: '外观与语言', exact: true }).click(); - await expect(page.locator('.ol-typography')).toBeVisible(); - await expect.soft(dialog).toHaveScreenshot(`typography-${theme}.png`, { - animations: 'disabled', - maxDiffPixels: 100, - threshold: 0.1, - }); + const navigation = dialog.getByRole('navigation', { name: '设置分类' }); + await expect(page.locator('html')).toHaveCSS('zoom', '1.1'); + await expect(page.locator('html')).toHaveCSS('color-scheme', theme); + + for (const section of ['快捷键', '外观与语言']) { + const button = navigation.getByRole('button', { name: section, exact: true }); + await button.click(); + await expect(button).toHaveAttribute('aria-current', 'page'); + await expect(button).toHaveCSS('cursor', 'pointer'); + await expect(button).toHaveCSS( + 'color', + theme === 'dark' ? 'rgb(255, 255, 255)' : 'rgb(0, 0, 0)', + ); + const heading = dialog.getByRole('heading', { name: section, exact: true }); + await expect(heading).toBeVisible(); + await expectReadableLayout(dialog); + const navigationBounds = (await navigation.boundingBox())!; + const headingBounds = (await heading.boundingBox())!; + expect(headingBounds.x).toBeGreaterThan(navigationBounds.x + navigationBounds.width); + + if (section === '快捷键') { + const rows = dialog.locator('.ol-shortcut-row'); + await expect(rows.first()).toBeVisible(); + expect(await rows.count()).toBeGreaterThanOrEqual(9); + await expect(dialog.getByText('问任何问题', { exact: true })).toBeVisible(); + const bounds = await rows.evaluateAll((elements) => + elements.map((element) => { + const rect = element.getBoundingClientRect(); + return { top: rect.top, bottom: rect.bottom, height: rect.height }; + }), + ); + for (let index = 0; index < bounds.length; index++) { + expect(bounds[index].height).toBeGreaterThanOrEqual(40); + if (index) expect(bounds[index].top).toBeGreaterThanOrEqual(bounds[index - 1].bottom - 1); + } + } else { + const controls = ['字体系列', '界面大小', '阅读宽度'].map((name) => + dialog.getByRole('combobox', { name, exact: true }), + ); + await expect(controls[1]).toContainText('110%'); + const bounds = []; + for (const control of controls) { + await expect(control).toBeVisible(); + bounds.push((await control.boundingBox())!); + } + for (let index = 0; index < bounds.length; index++) { + expect(Math.abs(bounds[index].x - bounds[0].x)).toBeLessThanOrEqual(1); + expect(bounds[index].height).toBeGreaterThanOrEqual(28); + expect(bounds[index].width).toBeGreaterThanOrEqual(200); + if (index) + expect(bounds[index].y).toBeGreaterThan(bounds[index - 1].y + bounds[index - 1].height); + } + } + } }); } diff --git a/openless-all/app/e2e/visual-refinements.spec.ts-snapshots/shortcuts-dark-chromium-darwin.png b/openless-all/app/e2e/visual-refinements.spec.ts-snapshots/shortcuts-dark-chromium-darwin.png deleted file mode 100644 index fbba61f910d3ef0fbb0c6ca068da7cddb27a32c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 90221 zcmeFZWmMH`+b^o32qFT~ARr)J(hVZr-KlgpOji`y)&8qw4uHR|D_8#7U0m0N0`gU}Zm7JOy+5hkB zo_qTl%D)#kY8&IfuVk^Yk^}yIzxUUnguvgI0<5ng(cf1(!$&UEfA5U)T#EbmM(FF; zL;v0=psxcV{r65vnE(G*{(odG^_-nypUIMBXJsjBXnbg3Qc{YhrKPQ_<%Qor9aF5a9aUQfs>*MQ*yX zE==I|t(S$A=W;P4HWusOU#Z3JYna}AbZAvwQPKLnurN54?PI<5O6N%9($doK@UXNx z3o9!t@k()9iKN7jBTg!+d?-{Uo&vu$7^;yahA!cH)M0qp(tde_%6q-ZUpi2#+tt>J z&ty7*rrsqF;99PaJ#{ZW_Y$N*jQt@B*nSu9jO=RAziyJMQc z_4ddQu1DLA8HrbJ<=3w#-&Y5d>ZAH+z;<Wp60k8%-@CbT-SVQ^9AelBRKf( zeCFV=++>{2e5MMU!>)a?1*YEdfE4-higS|*3vZ}ZnjFm4Ba9;AvK$>kZPxoKBsMlS zy4nS>ad6T-r`|3Ex3zwro#ir_D5$jEU|EY=bSVxB%8!n&%FfQNs;UYJNzTp9EiHv_ zqS3CiBm8(+WuuFL(5KaSU8vRAusR5FQSO@5u?Bm@Ku=$)#!Ns)w!!arPQ_YYT57(~ zbdoFIWjc931OMax-rd^T12+sR9Lh6wJy-A9+Shd`VOcbuudGz8Wq!8J9P40fo5GlL zRHol2tKQ^(SC@+Qu|SRaN_KQv5)%{C^^-^+2Rr-O)~I^jA8?RvwJJ8d;88n6u^Gh@ z1EewdtfyE$m$BuTPVN&DrUeGjUN)MH<9yIFCP`rB#bMBc!@0T9)@XL8S@-ud_qbfT zVPQFDxK!45qu1-U`g?$&v++#EzWup5IU9?MV|j}8xU5Cs^YL?ZXg1$fVQ8yLN~|u} z=rf$*Fq_b6)?qFE`SlCxbP~P1%xa+_E-gJdI(jhQ7~1@BH9Pxm_D5)Fv+ahGm{^$& z3T`fBx!sr?Q&$~sJc3jbb3@m;BQT{Snq1r1$SClHnW-YVYG@##T8I=J-QIzLw(o4^ zk_is}J8(nfGQqg4qG28j6AT|eR#aD8E;MBvFLOGW1^;lRR$%fqbhc$@XBW#sUZ}Co zkj)UnvtqPUtN65w4UN|FDucIo|;-8gh4YgGV(bKhjp?* zH6c6f=T8*8JH4ckkT)hKCf3&0FJAbtuuK?HiRm7 z!yYGy$#Pyo<{eYW0<+0wAmVR*^1nweDj_PWGA>Tl-Q8lQ3h(6DhEDrjSaE$Y=?NKG z3?l9X{4pUU{PuS6Rp0>>ZYb8u(NWkKN84LA+x_tU2i}LCpW(*FJt`VbYnNq|_yGZ( z&?ifz>6gnL3;DZkGnUO{?u9;7%Cr;<%zE8$yZDrUCMK%7$3e|WPE6D@H}@7BpD6U0 z$d%{inHf{2LqkIkCqoM+V^E*(p?T0ya9v6t6jSZTgPlcov98TBD7&z1y)7J*>GuHyB3DLGb930cc!Xd63N!TOrBID8X zxkJ8FgrE=$6{=Tfn~dkltvH`;PZVk55}4Bq_oc;Mm z?hmW(lSSN#iHRNYQlr@emh%l-}Xpm0ov zGj_n++V)LX?l?gd;E_CJWMsa%hQQgtY;p{uLyoQ_(DXjWW>2MvrTT?CjhyGkv%BGgZ!DXFN`UD3CAdxnRfHtT-9$FW?z zJX!%O*<`bp2N`W|7YHLr3Rg<5M0_{ZET0nsG(dm#G!GBq`o+a=u0te``SLtehz%j>qiy}h+n znJMi3V^g?$$>nj^hi9~S%)N?&!gqnay}2)=*@%XNiD;&b-4!n9y8^>- z=63e>hi>-m{`60uvLX*=9uFaxsEL12_@9jsC+jxHC0FJ>3DH=ddlJG z&fvUXX{x-k{1x`iJ6|c!u`#{1!V2@5`-_FipnNxMEhUJ>c%Gt|*mf}PWZ$1AfI%Qa z>jO8iM>=CrSx`3nhlcw4`vngDLqcA?Mhj&^HW-Ls+u6CPhQSwPJKEb2KrvR&`=7mH&V8? zyQ&YtQOTZY1S#lLXn%oMvap$1g{P;d-RPe`mGU`7pwY}Vdtfdf`6BML7iV~Jof-tj zF>z_1kXKOnkiKxZq#I55AR87VzSn**6KE=r&g*_Fa=VwPW1H*NoO zJ6|Dp`@rLkAVvShc~NpgLU4TTdxFkxRnmxRVMvHS#Q%eTN_+dI&BU+dK5_UVZkKcC zjU>mW%jJ_}I=eXcDTA(UVOiaw@j@HYGN*1DBX(DN3!>~O+rD0>!d$Hg# zS!J&7=62kr70^LD$5$Z&T26$;lvjwA*sC}qi-HdA?f1m{PN{O zUvF=#^Xwcqa+k~(4C$<~-!jTPzu&HHnobtk?M<)z@^o{%dBbJD9UG%uS*ZSic2MWS zYSkTv5?iER-4qgXn^09-%ify`4Wl}L7}-Hdb~)V)SOtfmHG)i4Dx`;?OfT=`M8OvmNXN5K>=6Zyhnn@1}a{R3* zegSf#GN-FV;$pqglET6u7ZzbL zF_>yR&Zi<=XKHGHIqvYu$ixITuX}Hy`s75h_IQTyLSmxX+UoB1_I$cvAD|g&=`*Q( z#AE6C$`?_vWuQXK)gIgCh6PHe@Dwq~*C{c!#uQr)Xx4klPB>Uw3zEP`QDzz)En0zg zVXS9~LfH?>77_suGFsa=X0xeGrxPW^q2yM{Er^YAF+hk~3JRMC2V@OQ=2XtGFCyl7%@P)c5YXQ}P*V&27LBvW*`HhaPKWUtQN6b2?m&)CuNLccFrqXBnD z@EfK!?5PS=L&$&rdC#lZ*pFYh!fhoa%mD3*APv4b-@EC+w2e~7=cPRuV7J>mEYjqR z-0<`BOW}09Uu@wQ83qLju!rD~5T!rA3seu%ybad-tNmVM-_AKMSkBcI0-loMe%%9_ z6B?Bh;2H!}O1EWZf5ImU)zex!f{sIJwivx04?OfXtndv157?uNK003FpP+71vR&>U ztq6Cx(9qDlM8ZcwKifQ9^3KhrXmq(iKt!A`H@s1|loY~x^SZ&@!ot%49^M)QL+R4p z)be4{c!=C2(2zQ)qS9XWmC~O&yQ!*-4Af)uN|W)@`_UZfDvP-y`<-*)kZxT}8)lm_ zrZQHA{PocWr@phD2acZ(E1e6-_b64e#k5yg)UbB5dm)=OsPOpQ&hUSsjb- zkfcn`EdYO+Un-V1hxr{3VAs~xwzsxGP5pAQj~7ZH40oJgT7>;k2TqI!ilp6is|Sa# z$GXN}Nkda;FT2Gxp`20ZI0piK!T$8myW!}UdFGVtgV+$XwlKpnZfm_ zGM}ldseup7P`SIk1>F%Wq4Uvl2LSRpIlK!`cc8drWI2GCnfIbOeQW~!J{X4?IXPch zm`oUo6&jGdURd3ky7QcQl}5b^0|SFrrNrobH*{m@p$fF|(o*Xol@h>*y}l+oXliOw ze9UMTGO=3ndKiuF*m%YQO6yc&;=2ZAl<5~v9to^G$@p8g1ENz*$;S^1PwL5WenRyQ$dTbfr9L zgk%ECo;T7w-JjQY1VDcnspxGqFvu1a4fykieY4-n))o;CZWE|2?|G-2&d2jT&VsP8 zHouUJ9Cm{`27MJ+%#GhY-{|tfxh++GFUfH}nL+<;HYUxrYy;cP^;xsS!F(maOPr4T zv24~Oh3Z+a^~p^Bl=-~pb?CUvNx_g#xvyd?SFcVUIm;Joyu_X_0=P+|Ob>g$!fTn@ z7c4y>s86lc-kIMdST>zpc$jSel@OhA1lGQPhgjEfO`e3qoEqM ztI@eSdvMnc#RqnGccl~Aj_xi_Iuhy~_Jn%qS(UlW>O)IQ13p>4<>znnLGUn|sY1-I zHlJy7Jm9hBxz8h$N^Eey;}{ELHJ`p57ADx6Z&Vf+7gtxWHy$OG!_C|Y!Q<3f?vG2)2w&UoK37L#AeJ!I7XPzOyRIEOTGM#L;qD} zrm8R$j}rw4$Khh1+w}uG2Zsqo>Scdl=wF$((HWh0nuUR}*RgwOYs+|ud9f-vxhXo@ zpiqr@W8lX5c$ESOC}2@czJ7hXeYW6!vj=)D10!QrC-3dy9i!6Pp61@~H1Ak8+x3c| zAOzB;+hg$$DT#@*!lC%00~(r|K(WZToBeG4<;zbG8r9CSLOrU!R>MHI9a^#E8%vvhYSW@NLV<7(X1m-KekrCuL{)6=LbukFgHOL zv}zSHPKwZvK}*e*V`n8LyVuNMd?%|Iqx*_){bMFuJsMF|TF3)gdfeGSS*oW#mhsqXSCTN|6E zYZEOAi2{hoIqQO}p`jtG%XuPz2%uLg=PnPY@xK%nekm_6&&bG#imEFqNuy9Wto2VM zRhAlPZB@Ih-rC+S(5$})S2rY78jIP)E(l}5)}~DMc_&g{3v}Js#003g>mym>VEdDn z)jo@oD0}&P#vU#C5io)7=dj1oe0RRHk>YVwK{J?q7f@a82#$X9&Az(vdLVkUL;_2t zdbI^uSw4(-#tr#ZBF}qsP~hk)iQ8nJu4x<*DGvEMW-t+b78U94?GolHHY`s3i+Aq@ zqlmZ=0#Sx!ts*Rl1dU90fNYTa;Gtowhx=R&?WjE<-1L*Iw6Zd0r70i%Yz*6xS$upv z$&h4D@4CL7Q|_>Jm%lu?eD)C_y2~KF^XGgF$de(NxEE-l+*}# z2hFJ1A(gGgrS5&rB7WfQ_3F72l}1xw)B_3lF5Gy&1>bv&r$gy1M1t z<*$TfWa^0y4i4iJ6Bs$ep}*4wcP=k$($k5o-#8$-6(%7GT^0v?+>(_Quweo!@DFjV_KI)bWv#c6Zm~EauY$ zTs6`rsTmpG5-wNAFMyEs;|CL1HY^krV7$%qUl0&+!}}K_V7L;`?+#~7W(cEndoB;`OcvMF)&`AskA#FseYJcRz5S9p@rm3CI-PnOy~uHpT%<<#r;UtDwnWCddbs4lqlO;D&zgR!oz zw_I~>F1DPToLpfkGA(TwlC?&kH z9>=S)4dheOvrHd|OLWTq%%+kQ^d|#JsJQ}^(!DhV-O-Oj@{1k|E_V#D(`%k{l&^28? zKdN-QkwQUPBA+CNkdcv{@30;MvboZQq}@mvx`vOh_#5HdWU1*SevWiXYhq_`0tp$J z?&xObM`kyhRF`rC8kA&2L_~lRLpmYbA2(WkY^OM`1xl1zEwy$=viy>hpSCjMGl+Ew z31#o^??YuX+yKWMAJ-QWBE7po`b^4ezug{;tNb%gHbT4cx@YML1ny%0#TRo(K&daN zCW~urCnwMR$R4kcY*s69hM=dXr@Z$np#sj^V@F+~1p4~=Md}x;kd?*78$!YsxwStt z_1AfdeeLa2S>hJ}R>Q*1V;p=&beOH_SwkA~4*~kq_$2G6QyOaO$n}j4Owc4gK~k( z<(%m&{xzByt;=dRU#TIV-R@Lc^?bbRS}%!0c}E!~5s?ES508{FA<$u1iI&rMxy+_S zBE3-GzGbnvl@#L(w;27e7BEQS;f=Ju=qMpEw%l=o@aomD z>HDgRvN9nFW+tY$mMoU@&JXu<5R@aXL|zZIFk#1+2ngZ|gE7>qAGpUitB_YW6x4y> zKzz4sFC2v>s7tMwB?cRK1ri1$qX}Wi%`O+`o-lqyDSqE)yG%XjKzqXDg0OAxf!@Qw z#Pli0*V~&BA5yG!%(!%ScQ;*OTx<+vW}JQ62C00v5`MVN)yPKE*BQ>-x`3gW%LD8!Fi#5@Rj){I1MTW=pIp7YGk^^tvO?eCW+4&8mg#>;JUfekFz-LysrVu!~ zKEqA(%4?v^bdK}_mo=Mfbbg+Pmsi{AjY&f22FryAnAm#zowWlGDJOH0ALNZJW>f8x)v(D+39Ob%#rvZVX%z^6LwQ@SopDN7ods)zxQs?=R7d`+$`9v*)J{N*@rY6(=H+k}3^{q%yC& zySpAz$UIaB258WH^!dlu0awY*$Vf^`@>XLth_2%W9RjVAf6Z)# z76+WeZ+@edrqU9r+D}65#-P>!inqVXFynz7!lCuQc%-Gycl5w-7Z(;5mX`Kd{PiVA z3h(B8hOXlmm)kY9b$5PxI+-d8iHrbgCNUZdF0)DC`O;Dvki~@<1R(QGZnjs|Sa^7~ zj+U88Nt$wUWfIx*S>mB?Hx5B*6`~Oae0+Rzv%tRXOyYbBw1NQEj^T2Pg(e>YBqZsz zK>EClOW8kRfY8S???C&xfDqi%R>jTT_;8sw>Nulm{P^SqIl*V-9gi!r z;swAgTD3N%Kr1uKb~T`TW_7XOC=(@U*M9r$TLL7OOzIuqz2!_*Qe~w%u+Ns-ZkCsq z#fq>M^^bJS_)wIxe!JgZ%9gH&P8X+=uRPq}a2%}~2GrG=0Uzf1mG!#sl!e}EhG;}~ z23oN7&J5$!-$`lAm-Ym8>0(+|M;P!ST<AAR6A_0wHiRYqz{;YL8u;GeWE*&5tY>K8P=I;v8RIf0i zAs6e~7)r5rEDjGtPDxHSFfJ?Z!$mT06;7N|NgLz6;uSd zNJIn~wcYW20xyg}KOCHRpg@HLTv0U#6YzG7j8M|hFq4pgFh$eR(UFhO3!osvz`nja zn`DNHAPg1rc?DBM zjN!a<9cphM>*+BbN^VX<4RNjqzNp<)?fU~bwZWF%0+-A z@%71GhXe!!1_TU`jgeP&;-aHF9WDFhDK^U9(W(k|xi8xbR6pC7l#l?ub1;oxx|6Hf zk&c{v^Nm;al$(y3S)iQ5=g+$UHVh_3q$tsxGo;e#&ecWn`~G0FS(UM|Sq8Y{=m$0y z))Jx4XV>>2{sZ)(zqFun5G#2LF-xurLPgh&U*gd5Ym69sz9nUE%f0%xW6iTUC ze-2ze;SnKw%m5q|99fM9Oj+$ZD7qcE;`TcZUaoK!j0(vwu09&PY=>!(by8A}AzY!_ zj|wd;)KI`whGt}B$U!g(?OBaSUMIZ=+z6Faq677Qkq;`fj3<|`WUiQ3 ze4cUHLZk#PnbodoQM7Mp2sP9N6Yb@%Afz1Nz)f*Cge)x~{Z$X03m>b5B&mE%Hpn{2 zIwUh0tGT)+rYvadYOAWK0EX2$J9|7;+P3^I^S!AluHG(y-D37?-^U9IcGLKU@6zlj zvgH&D)e1o<2A8EE$|g5IUtLZvyjM;{Rb<6KCV}NHv<$1`8$Wdf=?#A62P!&Bhi^H1zeTE4G?Wnvl=*KDq<1J*lpJhSP~n3!_ct57Jr zZVWPlVLt?OXlAVsGpg&flN6Y7k(iSc6F;+o=QUY$C)j({)KrPQ$ZC1d->|j18lHHo z41W!(BW09fZWwUycT6W~c_GNYaKTBKXu9ROyDaN^dQb=Q)Lw4aODM?81d%M$sI!D% z(W^DUMxE-sxKc5F192HEP{m~@z;@}2=2e{V{xw@+T)w)B7Wo_4$zOFder}tanH6i+ z6IC9a7Q`ne+MR9^+9Cf7DmFSio?V}5Gf=%WHMzsXS*p$cRDt+Wpsp_+Ax~|s6EKRO zs+xAax%wmzfF_5_`4~`S%*=M{91pT`DT=AS4t4}#;;>q<*sQ8I-H67Z%*ry`N|lYw-gb?r#WmX1_OkG1IA4><0a8%** z9h|RC(qHmK5ytP>N-&viI~c<}E-aACxLO~;fj#1qNMyq!*?>pQUS!8y;03iB5Svch zsGmnfU009V=5Vw4qrCM#ul@84v3=Bn3ga#2vbCC;n1ch$vWAjUwwR)lv~+Q5D)O0- z@tdyzT8V3DnB^L-ib+TgB(tDJr?S=IrYScZfBakq^nmvSiPTbSu9|u!hOY&ESGAAp z#NevQx6^SnwsV`wEr9l?&{R{A+MO>YHAp@c$XZ!Z5k*kUfEI@G3>3e>pdfG-6$h=9 zeAS8+76rL6c90MdWdER|jYRp8M2MJnGJ0 zN(ybZE3=>B7hLwQ_<)n}3cgl5S@-5KybG240?F>(C-M1@M0Wf?YGQ}8Fuow02MW#h z7B&!GjEsz439QM;gr!78Bt=EVg&`N)gph-k28?R$!gYfS7dvihhLe=E6C?nEL6rBJ zN8pqRNR{FUjWjsGg#$6LAuNl$56LJ0a>EaG8&Ix<*jOSiaOJ6yxyeq;^$h#yh9Z)a zP4xBiLC=eiC;FTFLTM!Jbr}Q^A^31x4ULLVr$dXHdS*XDuyp?=GdG!Kiw=Kqq$MR0 zM=&a)HN?Domw4Fp_Obo@`)j>q;O6#bzy%*D6_BV$C**vbm3SmWex;M6OV(b8%)Z0+u%p`ucC3&TxHNlMCF zP(<`-&6gO0m|aIlN9^y330iV;a(n)%ti*R$scS%Hz67?n{{k%RHAvAdm;L+e71$N6 zAoy%nzq$xKAZOc^i;Ku$1whuX;bd@z(V)ThWPRYcSU_7_TmGaN&(^_V4EzC2znMmi z0U2jAH#YVppx|B7i38jSQYtF(Ff!K!Sj25n zDqwaP2(%Mhs{u$L9us10yk%l?tQP{`&&0scZt~NL9;AJ~MCEI7a&Ww_Na5V@+lps) z1DD8h{d3-@Y}lu)x5>BOa6%6&3s}BnJ>Dm)NpMH@Q9t;h{T@7pmh58XF^a_g~tt_p6#! zn@$eK{@Syct4rqIQC3ixDpbc5^lpCtWHL{YUt-W|rLzzi6+Et&3J7jz=k&k;`j)b~Izm)x3B1C8wE#UdciBb3XQ2TB=##o%zsgnS<)o!~R#i!T z{`^_yH+SZ;Qek{o2g&N{>gLu~+G+6i{@qQ>hza8B)AI6iAQk*fZ)+n695;weMJdcO zfZ6~?F=TBA&LI}Kc@}Qm7Fa8ly&$Z+>=BwQma>eZT)@( za^^_*T;#Ug-O<2@DzB_`zhyfHY9@f5`}-Dfecg2;C5rjZ;CtXY;J;9hbhx{tBh*n> zQ`2aG)T%LCQu|ZVmRSh2uXJ~dpg}uU@(T;7^A(PM3FzseJ+n<xy&Gq&B#*EU!LdhOs>-$@u&S2d12I^$}y+xf+!zW04tv*3KJmUmh5PyhvhHr6n zG^yC1sVg9%|EsY6lv%G3hM*aFxrvAc&wEM|yUa4|epm%L7e_@2_7KO(ZV5^OKeOpr zf{}5QR+B@s(U}`yJ{lUt7hn1X1g8fF&({akV};xYyCLr*a&fV+-~vnQoliIO$_&uL zvSeF;m{S5IhSirg3(W*X_7Y1iw3-M0iB*&0=S#5R{RVjcs*(JvA{Qmc02Gm4T+LA~{)W zZ<-m!P8=_Y3LvksF*FkGBQC>Tt&??0M#l2U8PFVcxG53DHfVxmWTiz!fUJR*T?#u^ z0d|C%Txtqvf}vj@Qg-*V#A8m5?{QLRKuVLHK+xh&HjTtbr>8kUj2c{yPb8`mgI?*~KSr1+8~w{h zR0k--bYWn;IqXeBM0>>&nLsx-TDEKV0zy+Y&hB5T?Y;%46fP(u6?#cEL3RWl> z(m0lkY#$vNk=0aArg(EF`L8oX$@usfM#?QX8BTyWhR5wuj$;0V|4UYZ?H%Q#wI5Ln<5&-EY{ZtB7|DSF^(QXTz0mQloY5j zgg{t$gNRsOUCjwleXlRTFSx80DmK|NI3R~~dHH;c$!x4b_O-G_Dis<0cm1#5FK`E)F{@NKPDI!n6G#O6rH!&*!p^U9|l2cxF=WM5M{R`0SXU-RL3A@8H&#h zVxY-MNr=ZM9YHafredOH<+hP@-PE5M=xR0XkQMTk&URIK*Vt86J@R$MCu=&rKd&HQ z-jc+@agi~8M9zS(^)HPr<&Z)Og-NI|hS-A$gDVrOPXiu^v_M&*9Vcfp7l)!VV5qMvv}JuWc|+6R^w31*lTq z7iMRZ7OFaB_r605OJFv2zHvykn`KLlEObRQ{8?4S61WORb&RM(&Vt44LE!K+Kf$-i zc`)K5vmgW!aw#CAq{LbJ)7skF(vtk2A+ODabb~KnGz~Jg$4z~G??+2hXDW=%O-*kA zrr@c^e${t(eTLCnrrTvv0sM~S#zq<&OC25LvLd@mG7u61sYjqJXf!%&QoeU_av~+m z(K9eee;2%cmc;3~EIKSQ*wi$>x4SFzQYf`hF&`GAt8BS@suu_V$Q{G$pt7h$)z_;J z#5YZ~13MjP6Pt9uXuo_`SKk=RWt1}#M#LukGc^TAVx9TbxG7a+OeMh2Pu;)(1B1dI zQvUGK(Xp7*v3DQkKOO0wWRsqrg+*`(p-xS&?A5**m?#o^@h}To!}_XTPUeS4*ynMv z-FnjZjf3Xc#MSk4ZkG*k;2xs^{Q}~qrlv<_w67fZcwm*O z@PBCLegDqjb%Yz6NW}{S!@qi7QlbNj`uyw74+DeIDI!q-Zi9@K)Iq<*Iv@njpEcj7 zzinTAhl@*sj53T%!NQ_;Wa;^sqR#{qf0<$caP;=VY9|1R!r40w0sY|}99WK5z+lgl zkdRneS$X`%3JEDGP~jiz+S==(7cZ^=4|t!)1`%G{*g%L12jd3wCjfFc9=&>XY-eW& zek9$-cLM}1X=v{I_|Qew)n6V^rOCC{bJNi&zb8s()v~a7^EfdW(2Jg2URK7$?Bt`K zCj!(vRn<5!>zJ0-k}rpX@-r37L!ER5`~*=rl`=$1#GjG1`mH}@h>s8Yyz+lA{!XgK zQf*BQ8|C)T%F4n|3MhwKpb`BW6A(C!CqFQn0RoPWxj7l~9U}x27*#nrIsZla0UI?6 ziYAmq(&-86=)}aR+}v&<&5~<=jtKLNkd2yJCsLBfNjbO&cnganXJ_Z-iridy{OnNa zN<%uiW_QgrY7pZ9qbjUSOs)=$W<_G?p*Hs1%ngPM;%(7`9+1c4Y;2?DM_P#<~(9l7Wqr8j(2F4Qpf$;p?;gQj)s)BJYT59SBhrPP|d~qQm*tZn>+;*Gf z?g?>mwY9Y(LGR-+Ffqkh+ge*A!owpcjlX=Ehst`pTzCNiYyH53f{?IuOmc-&2_!{8 z7zl)RLH0E!LA~>E5!4%cdTRh)?02q{*{s##4;FO@@bG}Gkx^V+ob8L<0iyQ7K`u5N z&O*MfGOS$C+uLUX&aAnZ=f2;o)y_aKNZp;}ICgc=;MDJ}C*z z5xSo5ZUGNE+H5qHFC#H=77)`7wSS9%|LN_*4WJxvQD3C9#>L0ujDUF(*xuUiQu6uz z8Aq80DlV>Pyddj^W=W*R>wK!B_IrF>@QQR_QHzYS2QCXF=Kg|ZbI=e#lk(5*by5%0 z-W0Fb?_0k(cxo$+;v(tR`e7U z*qp^6Q9e1@W&x}`S{@$0Faq6hrFsV%iK!_SFk*!elp6Zv#(Sg=D_mBS*Jc$WBI2Kv zGyoLv-|~-RwcqD^mfD0Z=Wm5YL_YFpl1ap#Zw|M;L{i|z2bK%yPL~bhfOhNu%BMqa zgfllUoUSy*!Nvxp3n)tz>Bd3dzHxdH**d!@N2w8+m>3(2vL126AF0&E#l$$S^)l<} zDp;G29r9VZU4Cqxo_@t!18l{gjg5sd%25D#=&DJ|;yBpY6v(z+tV=o}YV-5M$iAa8 z9?e#?vg)3zzbMVCsksDfD1X4O=LlQ>y{N>upP`$+m*aPYuNS7@>+1rbr+2awy*5|EOjO*a7W3qYN>s1b+bkClE| z6NG}>ZX zZ)kA!c<6%)f}uQ^I2Jm(YCi94C_3P+IQ9leNEdJLrswN1-@Se74E){iPG)062cN~n zC`am(=Cn7)K*m;gpt~-%NHO2whXys}5Ckp|uO>M@J`k_15$+JsP}G>#khI+&IzN&y zrN@P^-?=@V%IcSJimErAl!EH8nyEZmpm1Qu)&Ckh^0>g-IH z6cg*+8Z|_Gz1rm|EGU>38GH?6L8J|MLOQAIdO!QBikllZb;zr76)zzJA$A-eqgesx zi;HHELWu(wV?DrR1YB^!pF5e}@-#(%@tKmA0D+F@FXj~I`Kdz=OjOu=yFq!Al6o_u z=|4O5s?0ixqmrHwt^@K7%w`G9;gUEqb@l>>`uSt=c6L_NTU`PAUNW!8bW6){PY*Uh z8l^dyQ)_E$OL6?WtN+)S@n_JUdwTR^P{yYTa%2O!ISN<96HVsu8+odm6tDXC>6QF!hlf=GK@c-l@(i_ z35OE>tT;J2k);LUOeih%bW236B{b|frNzcoH$w+1qikZ`J<_Zv>K$RgM*@&H#G(h>wnh01Fu}M6OQTlt>Q!A*Z0w=N z17-a`t;3g4C*P7y>#F~4>B#12@}h%nwoPg=4$ZAXPfU{E3`q?nuPi9MsuSqU6x=0sr ziI<3Y!=9lg@oid z*7ox|y*8J(+L6B<4ihvK3ou8d-sz(wcpMxY5KMaW=FJqXJAmz(*~fWv0K&B87|F^m zh2W`oB!B>y0(_5G!|`qz2n77=W1zPVGNOpSeft(J0kpOi@!{5)T2 zid1Fy5Y5KWn=S-C2--A?^fvt z0R}Sq*`$xOm)Aa#E~xrgyqL5a0`%Bvlk@X$qV%>H6v#t?TZcqQ@WP7EJ+m66sSPy9 zUcF<&0U33S1j3IgTuwMaU}Eb0gjPW$^xR!vCdlDrXW;5cxJv<;M*F2 z23(eJcTlQJCUfsIHC2<$U7y75f{%^fp#_HJ*P>DpC*B8RkhWe>0&g=4W>U7sVmO^5 zu&1RZZGK+yU;#;~={730W>!H~wzReuo5k}1h%_Mg^ZZIbYwe{OnD)`}`}q(>H3h{7 zbhLGH5_Gz0QBhIQE=UNNM;KbG*h+$zFRhr5$d8(Nu>}MyiCpp1zi~khKb{8TU|~JR zi0J9HYCR(&cG~=whU(E!P!#b2;G>h$yc4}t(AcIRcrg#EB$1X@JqC3pJrh%b)*Nm# zuqwnE!6^LBMB&{cA6swthy*o0vXwB1K~Gj+KP1Gxm+C8i7nPj$&TiP|;hx{Zf);K& zHk5|)0KICwNYk`}k4s2INM`~}lKv^X0&VAKg=}h7Wo1;maXtDheM z#{@>V@1^tJG$P2TWE#oKkAkUZaO~kyfV|w@^OYH^!_VKp3&`{;TwJ$=>+d(yo_Ze&qYCe!sn-+;DJh z9R2;PDln225fZ!nD!~8VrS~NCvlA9Jc21TxL=cooETkDyXB7XRBgmt2J<6&*w!SFk z85z3YZKw=wFwhit3|VDp?Z`1%GyTGVG-E?ip^yt%$+oepH+nSi@2hT;ZB)>%sOAhfsU;ytVdJ&hL>d4; zgfG_6(!zHKdK6gl9zBLzpofA`!)7x=$~kCAb#>S0=TbdA@DhW7oJss|yXzIg!$9Bn z*!Xy3)1B?j&2GJSfj$eTIC9{^Q5p*;+;xSrZpWM@R6$kpIYv_ZgH;$Fmv2bf8?_-`#uxlRGJO zfR^ZXy;)+HjQt3*{2?S8ma~@|z(>tYPMCKoJ5~G!s0F#L-yl;rXjQnmq~al{n?Aqb2L09FDJ zu-Tt7)kI?*of0t2(S9JOynk@uu`@x#$q8nzW^^jSxZJ?tAUs?RIx6bTR!$0-G2a2n z{c?kW@E#`j>n-5|RsAC{SPHz3CNP=zOtHe_PEPTkGK8+}BxLir<2gY=L3(AF>lEOxBgoMiLD7(%tRx{LUZP-kF87Q@yllW!K~W9Uj+P zIr@FkKrTE!-5UKzoKfzo6-IWr4D~YUv>H_ONhybVSrHL~0rjAg0;61#NgT`{K0F^C z&%bH!=y2SFMdD60uCS z>ztIPn_&0{983_>pRO`@JY0PG-^0vLNzIjzkN`HHYfnqS)Ydi#h#Et@5B=csGc!vz zu!D!Sbaz7m&7-XP>I+As6bo=Z_?W3VIgb$*<<-jXEt}z<>WU!zmHZ^ySw#zRu20x0~~u>z!h;|3%eVKt-Lu;a)`qLAnG4 z1SBLyN?IhPL68zqK#>*@7+UF&5|Hi&C8S&F9#XoyWC*3V=kpX?O|6Dna=Uh~ysqvHJm}>AahlGJ;D>@CGg!i3(TRvmwY6y`tSv9QpB=-O z*dB^r<0;z$EP{iL!iGyX6WBDcb|osgKSxARiv&L4;))eI2#T;}%4mf@`Fu4!)TXdg zF3bq@p?Si)4xgTM^zgpzOG%mSK&Zoa16+x1&6);1x-jnod7M(rgJPQnM$C(Y?HQt^ zG*~I7rl#J+dKfDWXqp23y8pJj{T@<2J}aQXrS%*i8%zBmWHE{YZiN12oiO4E_Mi4* zXtJQ|Wm(C?!o~&%W!=%<3K?;G+i&2?IDx1KI1M`;Om>&XVDO>jl;UAx97#&E`WTR+5F;g0ST@cj@SfrC$|Y4UG-S)vb=+qAmtmsq@87w zIICuXvw)ujTl~!Q8dYJLSw|b2vhUyFNkFILGQ0rKYfn#)Pd3<@K;oXogBzQiY_L7; z21En(^#a0ww($KMIdn1;`ZW$cc^dg(iw^>&3|Ij)7$X3YS_+3{{#Urx7307&*$an2QaQW1 z`3BGxY{n-hD63$Ab$xhSzz%e8Zj`zg`-4arY|D#S)WAUsjy?B-sRq4iCos0kM{~5v z!LIsWgbP9cMj>639Y{x-1Bl?0M3a;;T@D~(VpNRFAaqO?=Q@0T0M7}vFybA!hDosV zUY&zs!GxvMdd3}Goq$J(BJJqz{!z!W(a|nT()km*t*I#yw#|=-y)@6e%KgLe_RVpd;q!(c#>-1d(gS@3AjV>TthFD)-?-`tN#wTx@DF_K_n~} z+k>&mI1+fxpWE2GCBYS0GA!in-d~J@tpI*7t$F~>5NNsB{ zyU-Q^m?4*oGd%TQ3!9s+yNhdT{2!eUg|@rdI5^6S9*m6eYkgldS+Yx#&(o_>f=2>a zL4GhnvfmuNFRJezZUXlkXmDVhn+AF(IEOdKO2lA0MxvbduaY2bB>J*kLlJ_pifWCx zO8pQ6R+n(SMSuS6dVYG89o+ER(h~mg_iFo z2+RQZaz9m2fM?QL^kkD>SGVR1`-H`4(SJ^~k+5o%?Oi@@fkBTLpp5z9CQ^$=CbN62 z^lnK9$Hm5qkbl;LN?S&T|L*J;Kfi1s2`$f7E9O>{6P5GYt6An*nxL}=20o(k;7c$jIWyYNP)!Jaj^S|r6R12tm5KzVI~Kg><>vI zCoq-2jxhtGPG=pRsv95wReyB)&c(9Sbdn~iYPBi@Oa{K&Q7dBZcL?Yl#W*?P-XLIP z%z`zf#G52oRPHW`!DN&yNK#75YVxq=-!rE$9;;rRq~AjyWPgY7d5Ab{dP6l6pP0Dy z`}Z7tg^&NR8d8cil)(HOMn~|DSHgWdGIMdd)O9}K)c?=9weS22!FZOb!~4HkfHMIm z5^n!sf5hRe_-!jVb3x7G?+A^){qIS=gkM8LU_DC`J<~J&NhQQ5=1ffcj|!*X+-D9N zSSaw|`P}V}eKxOn&$uP$r7aAp0M6ih6V7WW0096rGB98UddvBn$ouy@{{3#%S?T}E z%=15Q`ufe1NjV9KO7BnpDo*lnb07Tq_6Ky52y1}Ft`Ev_-98@45ida zR)YyCJ~=tGwbK%|cTh%Ykn-^Hh4)@V@SvuRUM2s}qJ@#0TLOV)0cxd+A(O|K8k}eH<0itYaEFS2T$fPMZU_jtKTX)_ z5`tl6YMQxA_K~V7E3-|PrS>OkUvw+c^sY(HX`3u;iVPo(^JzFlp#+f>6o>lEGYr>n zDlAaOck=7GqO<*}`I?or%w13PEEBdA^tA^{iGqJO-vB*G#Qn4#Mz33 zBlZ?qT|nMAKW_-75*zPhEWofFfCW@ud?)LP?2n1o-rjoa8F65U^>%a+aNY!Sfa5(Z z8-jb@u=h=AXdN7sPXG*36e#!MDFo)EYpXjL$T7@eR|6J8^zwX$>|p+k(FL#T_G<$^ zDJhS|!+GGZiL#B`ko+wLpBAL)2AGO@3k1XwDN&kkC5Y&umTbFO=nI7M}m~I`Oe>VihuKbwS+F zDSZojzxzEPrf$a4pa2))@#zsalnu(d@nvOOAFg^qv6O)@9RkynD@ae*+R0w87Ou^B zJYWRk#BCy?Z?@KOI_#KT8gOdI;K;$Hs)i%LMYi3|v?4q(^Dk6hAfnwrH~?MrwuCDa z7(NBX#E>%=wT~JsC;oPHbRbOfEOwgk#9C^o2q?}ND+8DWczEuKijoehs)j>LN==;v z^2lRgI24(lN@4CI)o|cxFVJ(@94}*6#;4yL{BA%~N4)q{E&KU5=S$V*KA={>+!K_O z^6i_~OL9_DPcx|W2Z1dY&Z;t#uTxeHNAdb_7y420tzIZA2_sf2Z6dBap(6z!p!hsx zpaE*3o!t4wQg-jHnOR_w&CWb}Efaz4_0&gqXQizQPA9J!H^M~%9jJyG8!m3BaY&y} zJb2PjULW>XRj*_9!(~5FV&Z3eM6B!|$OQk>hJO4Eg)eKZqs7^A`fw z%}6tR*k@&KOYfUvJZ`7mudhc^>mU;Wo+7LXb8_0C(v_fy>=@c9J=hYu(xDjEpv4H% zYivA^4^!Y~y+{#na@ZUlsIohlovoRlN8kcA=j=rX`Q%i7MiwIzV{3XBfCt>8mhmY0 zbQ0d#+qae6YcEL?thRtzf_h-iB`W6GNQsH{PF8B_92|VG-$R`jmzSINrO>)R@E9rB z8o>5GPzI9Y`ROxv%UbYSZckQiff+A*i&no((0-jh4Da@Xd&0sB;0PQX+?et3AH7m| z*WnfsSc>6fA~yLwS;YVfHJzJDcQ7zyc$$*Yjurc+KE%SQnJY{xBBBSaqT=XicvrN)Z%*8(T!JWpT+C~^k$C@Ao*OKCkx z9BXcVe|q>7>^@z+y-$Yw!Sl5A==x1gPU|7={#$GFvp?Nn^6=Q5nYrC#<68iZ4%h;T+WkkZ?j@0cAH7)FdwPpFe*>u?dScGa1unIGXmBgf6&I?Bk|nB!`Cwj9gp8 z_E8jT;I^{T_`;#*?ZTuOmlSzVxgQa$LL{9fMLGrikbPTvWAGn}|NZjZKTb?P-DFYi z?XRy(neylJW>I)*_+958s(0|jx|<|JsohlQILb_}a-R8ME6ddkcwc8Q6y_*)!R;t| z8bJyWyhA91pjC@0dDV10*VOisrVowoS0E@%zCN1P?E%2n;SN1?fkN+IaysLO4FF}Q z-gNNBSFFO3YJ1jVz5VPI+)xu~08}U|)9_9JPenewQa+j*!9PAa3foTfc#tmspuwDO z#Voj_Zi-!)f5pl)-Ndu~(;Z7=F@2g13-KhUTKj$z@46O=8{*UKOLbOLEZ1#^iu=2~ zP+;Qmn)*THBje{ta6XADZ%bdDu3P!_EglL-a~n))5RC>9WgA8p1q4%i5Y6PnH3Oxg zI8%6NC=$G@{nkG2AE8M(eFYX&S$%45>qq_@_x-Wj*_m^vzyNN& z{UPsRpgmAu4+}yiKQafu^?SrlHS(dcFoqA#d0_udkw)FFofLLjc z_h0qDGl1G=UJ3v{j7Vkvr7@Ttb5yq7^E5$?``*)H2D&emL*Rsg0ahe`f1ZY}DaF%e z0Pb8^t9)Yi!G~Lhy_Q)RjUiM-`uNG&oh3JKhguH9ho$A^-&E5X-=qmWzT@~9eODhk zk#IC*l8Dz?bAf5fo!nf|U?qI{5*U4>tOuw+{%y(7rruN*8W0+fkMG(z<>FGE=Uq>c zBRQHwLjn@CAsx`Pe%Ft>vhNRzp|^a%?PLe-4HZ=)9ylq9^Mq;oVFSuWt)rx5RjBWl zaRh)a@EtWj3p_wx7R-r)A$-gk2kXOl1UvIm9$#_93>SdLliqd1egUliQqrR1l{OMU zJb(cybRdEbo05yK-iOc1sNAs#ohEvJu)0B+W_Mj4s3uMq=OUQNFwz10$v1jpIr4B*fmAE$5u;pWDM?m{1}lVUv>!Tc)`%c@UFE8PEXK0S3koXeh1eyp#L>#T|L z28;FwrdrcM()K3iRP4aL_b9J3m>Mh{?U|@@wX%BgE9>Y8jt3PMCeH}a&>R&X9J*+i zzO7GrKMG~#S@E0hv3fUb{pa3)p;cR;HNriY-RYh!PJUzqHhK*xar^f!=_1GSaCLys zRfY8nOOEIKBTH|5E@92W->k#5=q)KS_4T}}L=nrdMU}ovene!juUa8FhgZAHlI5F;e~g?UFN`HQ78Ar}51oCMl_j`pT14EJV~g~^J)#rEc=r;;}~o7)Ef z+U(%aez6WEL4SX^|0`g)wbL?;gm#wH)zyLJF7jMOlq4Iy;|Bi(Pb%PVxZEIMjlrWZQS{2QK_En2b@>#V*>VPNYQ>$2!&9 zyAlTYL_{T^&kf36GP>qCRqI60%G%Y~h*fB+qZ49}r7;%)oLKYjCp^s|{=hu2U*~x&GXQK=%v0vW1vg3xX9M9@%84g> zI!lpPNf6XfGTQ%HkAm(s%_9|@hG61rn;{6C2Gf`j;vEtO9x$LzTY-&)+ z@N<}76tDXi1%L2E_^wI#;rb(6n*#>H0TmqSGdfsmDnI9Qw;Gvv^6k;(ej6&B6yg98 zFd$;`t71tH5feA5&{hO3yi65bUw)psn1}kYv#Ow|sEQDSE6VZf$(?~31(zF7(YTFGZ z)vWDl9Af^VhKrYxUqOG9S-UcCy0@B*kNlze(X*=4`}>a{6Z4Yb4pnLOK;6Bbhzor= zH`o!dcB~|s0S43q$1?2wJUth|>TySaRKVcq+Mm_QpYw3AJ=@G+m=>7FzfxhPNA!%# zlU1K$pFfr1m;%N3!>iE%-)tN{S1^zcGdp4jUR?q5mpAXhYX8aZQjq7VWWb;nej&xL zD&r1M0GFlUVQ*)Gq!Tn0YEGMukPZK&tNHDi2rLITF+Eh)`ECh>B8k z@p5v~&~{Evy7r~aG1JRSa9t8aY8$mX%ww$u1uU-)(>FyN0^EMHVV6F&Usep}fV3)I#(}J7Ns()DMER$#^f)*8sxqFZy zk*h0da|mPA1~NOn%KNQScAJ>wbohYTR_CDLKLmi4pPf zC#$O7qZX%!9m~tlq4o?32_bgD@7ovxyYA4B9Y?@>+5S$bRlZJQZ|ts~*PqW&fJFqo z`_Crvvpa5Tp0$oC0X*uJQBkL{GCSlhqZv>4K*D}{MlI_4__9P&LQ*BYjuX^zmVT(n zZcpxRd`(q=crM@YmHsO*`90TpbsjUlpMA3@{cRH(R&+%~IEIS+szb$Y%`7&_A1FGF6B7pP*e&<+BuQH(m!zV-q)@>)~7Q zY4e)9t5V+}&jkNXMPPJZBUV2St$GeXv5$@trEZuH=Y8{PNsLVz0ePK`RkHlwM$ zh3Tk2-7m1~(FHH2HY_Z7c$Y3D=Y3SD)eSN)3^zw_=0s8pIY=^h0fZh!T~tva6Gg&> zS4Z;mr=zMF=_1KUN&C8W!x?oJiOE(cIVB~q*ynogw#yJ>3)su)KW&xCt>jkTkp4N% zp?_MJayz3A?7#E&Ef$tr!$XVFUW8TJw4j6-ab_d<+UjNmg2E>7W!8D zkU$w8e-s8?on<8LbUK6CnxU)ICz-ZD#0c17l#)e{eqxmDsMEKBUihUQJV$N}3?`3x zYurwH5uy?jP~lUD=(V`qd`f+$a##~aZTn5f9?FK0_;%zWedC?lpL~|bXvkMn)i@>J z7lk}vShu65fiS_n{a~>*cmwECFbO9fQ5oa#fZDp1^$n7zoklK$9lo<*)RM~x*J{mdeVj%B9S zb&Mtxpk*>ZmyFWcZuDD+Z@j9%bY1V{B%#4^F;h!RBaoyzd!9&aJ8t|k2d8XvJS-gN zSN?8Ms(Ha-d`HAt3n56%o%tf8pdf?|DvUouY;3oWFgmdAlZ~mVyhy?14=)B?np}aR zo>EU=pD{qnnak->LxnT=K7%F(5||nP=eza440Ee)zx-Xq&*B8qdFJ5?@*$0NwK*6o(580h%_HailwCQ{=ZOd}Vx-BVuYV3>3BL^r}J^F#YgWI9be)aak9-jA6TXJ0viF5?0|3>pF3E6SMD7noa}l#PS_bf9Ql>_{K5 z{{}nVq^#OGZ9NJ3nITeilaH%3k7fI~cn14^A>{(@v$PZWvk0J7Yw~xUUkTah81NK25nmP2bFlWvQsy2r6x98_W!U7^0^qj|=n-_mirNr|m zdz<8TX5TV>al}%S<1J6NCgphLv)Ap0NM5&wfQgCR1h251IgCzfNZ)3Ov4 zNB0hH8Vr};b8`W)%xGyNS2UooYr z*zKel0LUZ>t5#E09l8`?H69-S$;Y}-t~y)pp)3-E5xq)+pR4v!0ZeyK&+d7^^riyg zXG8?kqJXyNu)VSy%Gm+UA)$HKfYueby;@K3UHlIK(|AHq6s76efJu`~0hBNhRet&M z1wo=>Cyn@`R$Ny{|GmJL;nWoTaByD)9Q@c>*p0^16V6$O(HNGs_4|E)OVk$_(>xM< zhGMLBD%l(f2NBM@B^;zqwXZ_2x++g;=}w3<)jHA)#E6IU{?^6J$~X6|A8TNdFu7_Y zd!(%8i%|o!*rkTeFOTjjgi`y|R8`UUivVLY7RTv|&qLQKnP$R8rthsIIjVy_JrZFu zDRA;PITlUPgN(Sd$qjxSQrGFogap)>xJpj}iE?!;@O-;N^bsN_CALE2eVQkDCWEr!7(`y#a{x6ry0 zCMm=leN-RTOA%TwzySal-`jx9H;Nh*t4D}xHNI)N) zIiL1xr}5c~8V7VShL!E9nvEYH>o7Ivced!%%>f|lov1E)OV|5aIuAQ_`Ba_DHqd?o z{YXFoLs6!(kD0>48sd?4>yKKujPggs@;7Fl{d%oMS3coWn1nrTYYhsUbKD%wvh}P> zd1R^UimTDt`&rcO28`Yxx%?%jwr}!P1Ub#lZxZELQesXX2a-Z}APNw4^`n2Nz|ZT1 z94p26@-SRIQt&^3DoDyH1VONy?5^|SFAG_Zn$00fyqHzedzR`pLf5&$$4~6XOxNts zCRi5xCQ*E4VPw2P1j>+nP0luh;2`-y=qS_L*&=dhs_b<0ZUVUqsJK6A`U6SgRoVdc z>S|*XUQ@#)h>5=olDa-Iy2#h7ec_{F$us0O?;eWpV1SK@)ZF~?h<98c!l}ErO8V0U z&&4w)IQnv*$r1$XS^L;v<2b<^q`1O5@htfDZ5eGck=ch|3$0Ow3CX_J!^|1NCuYq1 zEOYXFEJ~bzdOlP#P$va`@T*{cc#jceO)a;4YY#TjJ`=nQ`&o2%nvYqQ?#kW$_;_7V zFXknr=E44%`Z25c0~L-N^LwOo&ugbOI&fYs3D_bjoUl_tq6!>AvT$955@LnEA@xBJ zRTxd|w=Blr@pW|~goSc+QtA@hgwEtiTruQ%K9}e#E|MMkV1Bnz=!G)@n5dyyOWJU~3dO8Z6szzCg|6uaCAK693qLon5N|>En+rKaD;cka zW=bc<%pZYKyi3JIo%2#&Uat9D_;rd|m7}Ja8I1bnku0>4pHSESbs82vuWIB*I%Gws z4mfnaH8tIRyCsLsiKBn_AH~n=FpI%bthlGXr<_Y7>a#?bT4v+FbWwc~cMJwKjdc>k zoZZ=f&7FnRP2Axuv7h{O)XiM~``;HFRsPvI)BV4>X>$y|CPYR?=B)Dn$%Y`8S}dBh?+q=9j+Ss# zoruWwG%|onMli^`gE(!Q_rZh1<@iE3*SsKpP|QOu!hCj{g5tmZxgg>`nlEji``}-@DE8_D9WjZ!KbH01(-L1+E3n&>9D*YQyRMjM5b2pD!=J0X%vPE}jSE?IbU+ zkmclFO3Y!!kA;c&*+B5`;y#K+RJi8R81ig!>dY^+%xwCwF*E<4>@2G{W}BO<{-)qG zj1wIm;C{&Ew&(CtT>PWlf}w!TH8HdK(&mb4O?zwP5_Utq`vz`fd49>>LQamId-OMU zc7k2Xp>I(JVGXW5+t*Z&z}MCt!&L?+8;F$pLAx?hZV9R&lcXf-AhL@DFn-(sk1$xp z4d;6kA1^M#0&N!O81+h0T3Wi~&9|_8kl(l+{MP&Tz>f;A3N0WC&cH7nu7iOW2x90pgx^~Mlb~ERwpfbwx(@IzN&wJVp zLHZia5){M#n*~hrl<^p^KRo@r`>v$8oY241(>x38ZBM`pOUeWQJurqG4L~N7(|@k3)wDW%Juyx0l;PXzPtI- zTFAN=Bf4Pv$;}G8lV6UWzth_pg_*!%1gcPl#igYgJg1jNubnoBv?uQjG^`X4x@*xg zHh(F$xfvAw?e|CtHcLl?_4r4De2+7t1{Zr^0;iYQO#F_0)(XlV&EX>Vty53WUMd|U z!Ofpd&5OkBii*uHr-#q;$5SnX=-ZGy<}bt;`IPRm$R~@|F)Am)&SD2FBBB?rA-j4~ zQa)rHhYQo*-rlgJ1T6++guq5g&cFaUG_?QI3w7x<(1vFVAe441?(F{wBho;dm>A4! z)_c|QH-~mvJuD#f6j8a$WgEz0HLv|o-PWXRH*3jGH~%~uA8T!G2^u`tEYQ~0@*e~d zFC4MTx>(^ZZ!h%O1_9$A5Z#pnR)ho*IxM4-A#G*qg%D( z6Gj@|(gqba9!vF^#|DLFB%$W~XxGzhN9*0PlaoEn%sMM=tmm>~V@;zuU~2y;CNlC< zJbY&Q-;Ku>+QNZ5ak@XK{J;cu8!hOtvb>BkQ+OmGKtf6i59xpBL0nD@%HoyP-#-Zl z5{->y9C{jHaudJ^Nx}*}WTgZkjPh-fug<)M51UE?0#vmQ>0=dq*Csw52$q*^{VEQQ z6MWNNU24rxkmt6s?5CXYR5?1jYF*@c+gCpNqH zXktu*b!fRvG zM_-@qj~IBJ{Q23S6~>gycTiy{PbX#-6gbT9A3fAua#R&<)jH_iYKgbv2mv+67t%Li zEBvO*6O6cHztf51BBX1{u1K%DA%5meCoqGJt6OQzU^Zl}OzkDr-P2vfK4Yf;)))0j z0D2G1fxixXRaHkClT(c}hP=h5Yq1fnw+h$StSpRC!wCnC)ROOhJYZ?4n5Hm#%^>!4 zy1Dsw1L&s`Khx1LvGMUa^u*c6$jZthRub1hHt~g2z~%4hH(h1icUr}U!+=Brw>jWC z{{8I0Ag_R^r@S*>V&0}albkAScNB-?7n=MzH@`v1G9f6Usm*SMi6z9`jl(b{@u8LR z6T|O*`FjHz4RQ+>LPFy*(k&U8nJbISSy`DItBaOXWnuyhWtLr8?Gv)QZ;8?$T@&Uk zoL%iG>51n7MXTf^8o`v2OmqHcYR??E#pZSE%(~tLM}Is2R+OT0mxW(QNC*%N3P2f| ztAH&7tYuSf)9IUe2^1IGT&BAK>Z%UB!x^B|UDPZ9K(5!nw(`|76|T7>huONhg^Mo< z4d?rA5@;fT{WT?OQ_o-j(@!=d-PVl7+1%H6WoapQyO&xp#c|t;Dm<*^2#-c;Ugpk& zTl^xEFK+Cwo%gTIFfwKj?dCoo%%*rlAtPMvB$QKBG&?X%Np00DyM6Ve;~9tE)^zUK zFTIoLMA7~qkCBbtx9m-M^ef*-A($Vj#xD1s$t9q6cPDF)lqVr?={YGOVKwxF3Pbst znsEY#%|+v7OC+X@V4}X%$xF2utdIkEH&5f+_vHh{h*sP}&8`(MWP?P27DCmn#!+;` zk&B*tBlKGhSx>y(M(>o%&s2tZjlEqSZm#};&!MEgGsnlfUD{yy&EpyT^$UKzX?M}b zj|Tu=Y09sx;jvOVs0g00(R}_qOWbPS2ST#JWmc$a*V%9V8EDx8x1)Ldo4c5 z`nj5J454OYFZZM0ALa?Q55Xv7x3Eg4#|LQKO`o-2HV^ zdD%T*c-i5|etU9yV3LiSHDB6(+nSU^d`!E#tEJ=WhCz`rgY9U&5oJ0x;_=4?cE{SYhpBWlEw)k4YQMq!blBM)<&clsxtLsCii}z^FHU zGa)h24(@veV6YIAVFv`<)Ynf^(~HyB($UHL=e^&@s*6OOo<%2*PKLk|7j^)}OCgfO?^>1;f8mxs&=%BoclL(j2u$c`vfdK3;!r`GDkUXcQBL@?>myla(F22j zf1{;N``owu)7y&$t^{uW}&`aFD@W5E_hN~VS zU~9LBYW)}0bB?owg_J@+5?BkUmL|QXivCjw3m637S$lh=oDyX8|GDbx);fj89jv5n z#i{A9Yuu`hw&ng$44XFMt)PrdNl+;!BaN$`Y`+^0M^vCwA5oXW0IqzqgsDX{Nr9)E!z{G z)4tllBosC0=Rf_Hf?^jB>FIebl@4NJpJa9=fv90=scyhr+Xw?Z>R`$L7xNpqf(zP* z3k@J$0o4Qf76?>5^M*(MGqBQxl$GC*E5|Yg89JM~71tcL#@U4%ASA9HJRczbHmcSx zc?04dDlWtQ5;F1!DGe2l!$A7}zNiOdKeNFs`;H?Rtlh$@)?FV5s3yO0d&)z8Ie2~h zjF+o$=QJ=;gF8X>*)#KjjGd!B_jv_y8#p@hH@{JUiGtEsKDZV{TyN8|zXiNNz1s;o zHfdFLHJzTHpI>zKIftGgtdfixy`Oe+Z*6V4y1C&Sz!c>wf3ZDCG$Fq*=-|fn$s|5Y z=?)Fkx9y-0l%JA=JNoV0n9lB>UKoa1wutljAS7s`TTI~$1A#esEp@8Pod6IFo+Tg) zz}Eia63Ql0Y=YE3h4v0szm|*bOs_|wWOqGYvshzHk)8PdTK?W5+{z%-Du&Cd7Xnbu zjtxKu3J91diU|0(nFTagd6}7IUtenB!5;7jg08k_Jo*N9tu?R1y#{8RFYk%CYGCvY zgh(|6qqlK};n+-DhRO?u6KnUgKm3-KThK>9v`os&^Rt89)esA75VE!H28L2zYKiks zFQrjQp@75-3fcps0G#hcw{O2SG6K$08E1V=Pz^4%Fc0KGNe5FLpBS)Jy#zC_I&NwC z_wN)!4y9VUNnA!0wiZBL+u;xr(glt1QeTMH1gy^=HgQ9Uha}_4L|Y9wE9K&giZBlA zoc2f;SFG!gloA9Sf0NlQyZ$XruYpG~$97;cQ^T!>p{c7(>G22r(utEsYp7wUFRcFTNeVIeZ(DN&0Qh&b#{4{u%` zXDs~k@*8Ps^O2E@wY7JaXk}Tw6&L}1^lOA4nk=xZa+bJdj>lpFHdyi=n3st8NtU2SF|&t5}efA5z3;$K|y|yVe$1V8&5p{ zHY>QrAYXIo4;V{m$l;OKjaz_Z0&{cL#20n%=3oKOy*3TbC>ZRB8TpZ5*kkw)4wPpp zC4L%~vs9r)c6PRgysG~81UR|b$-Osk-Rf*d47{#^*fcelCDYs+ml&Za(nd3Jaj%KK(^_7rt-h0H@ME}NRGJ(LoZg>IMyFY*20nJ*osW`RG6mUCfr(w85 zve=|OBK;jUX6wMuX|D(m4~HnIf&z|#ykFl=G#CW11N+;-!;vA(BrNQ@KD1`w!7dgC zff1RoYwGIi0#Z{dZBRe}70+AQT%kLpe_ytRB(iX?bRW3_#SK5BAi37K{$Ei&!DgnHECmV(4Vy7shd#5ZKc`0#que?nh?;_M?^*% z&uM_E1>9CHI{M$#h4wxJomPaOii(PrbpzZbp02l;B0l3lT4;v+xxcHcE8qhhwmHt| zet@nV$V$2m?ujb6%(M^`1u1pGa6!K21I_z9XTw+gRVSe1E`W&*`L+lox?qR{KM6JW zGP_N0IK51{b#&m5%!G%qrhk!nLo+Jof3tueUjHu0kKU;y}$G6LYxuAPOlO9}ylNq5z&a`riJL5lTJ_Envi5$oLY1Dm^ow z6tD%CD6IrtnV;NDOeTjY0@mk|ZZ9nXlyEyKIS4dRP!YqE{b#HPj@N;K0r=t0 z3>O;Up}$(=S@>K;ZK?sXrq~Cs24Gj}O_l}`?68M`d5GJ7e;YVIF>l`N=31MhS%Km^H?X6~B zqSI42*^_j&v_>y&K8Lej5ORh1_0{pg3fv(=E`PgQf;_rZ-@IA=2R=B&%*Ix2xAGU% z^6(V~;#cbXJGT+pMX17QNjPTUnFM!a)?zs*b36rs^{5KU)Qn5v7~I2(kha;?74;@b z*oj3*sB2b?RzI3gEGS1_j8k5I^8#fkN~h!ot&Mqc5%tfA#2J;Co(cJ zCM;~U)HDKK74xGC4elKP_MxqEy`@k5uH2Pfzy- zfD-_>X-KVz<+wT^Q*9C~#cggs>5#%t>f*jW0+u*%@R|eLiRPlBpI*1jjQ8bZ4{>*A zkUOtgiTy&K!P#`CRRwDD)itqRrpTM{U$~144y)8 zE`VC+*DpRWz$S@Z2x)3+&J8ynj04qf7g>1kvH?R+lT$F5d0ZuXQfS_vCI!TT2N2DW z1-BSx;Gi}bS|2%VYAJY}?l8g8U+sRzLZ}Y+0kJ$Wfq~DH0xCEh z(ogMe;SIbH23VX4jpP&v`Nh3%bSDVF-X6^B-Q8bJJQ|>3yNOfB6lv7fIjF$%ru+8( zA9!+}#u))_5mUrzH?p>N(q^GG%7g(qI&ZgiYjd=?L^*kSKyjbUV!RZxirkkBn)a-A zl8pcrax_`%M8uT~#z+6Gb|x#U-?9{Na2@tF*TFozUCG9#I0rwFY{UnUl5#Jx;?D&G&+RaPc*gvbpSOe7TX zF=8I)@T8w}M>eza@XBCR3D@0hkAH}?;q7UdOtQ|>$q zPm2o8J!isixU6_L`7{f^Jmk=+^}K9ok=~<6e{o>|sjz!3KT1IMNOd_VnrY3f_Zq?XYusg!OV54)Gwd(VS54!LahFP6w zqzv4EJ^pQrerQ^5+`2tlZdn6O4OA`2zP?o`qZvlT46i@jbKfB%KZ}EWrWl9U=M^?d!{ z&7+-D>>=P9-i?OS-F&h0(Yu-Z7lqnJt)D6&?GBV(>JUNG@@rT%rL{ShI~&vjP`)Qa zXEXwgntvtPbg_E~tHbjpWpSem%*tYg~dNx8Ad70n| zzcuV7GEuvrteDK6TKfI_OJpS5DJ77v?AnG&BJ0k6eKfj~r9a@lj#}sDp?8Ea<_VsBY^HQd`)SpunqM z3Q)D290dICYJRU_#R9&R6^L-leU=R-Zmiu`)x#}k0iRrJjXOR&PRFkO{>`Ch5C=t- zzkW=1_KF{kyNbGc2Bc3E7Bclh4-EfPxg0_|;j;5hPdlgJL!X&Zu>zn1nZ9VOLix*| z*X->j8|J}N7x^l3TdHLVuAD|zzq;{SCu|mE;|$WHpqu59FdVglLPF`R=rcnR5e9k~ zt-!1R=FNR2P>Au;(!T19?C8XSoORbf>l$m9&T>ryx4Jhy6mab?y}5d|0!&Gn@wm8u zVbQ>%jF2vYe=cxhTpb-58G*tB2*n<^Kxf+9`^DhL^6u*+dxLQOzO9VfOAq|tE!cCu zxkTZGz~7dxKKyMiIgd*$<1R7448 z>Qf4XznLs-Y?7)f&z{+heSe*r>LG-1S?zl@>ZjJ$=QIWn_E*=WJ@fEnRyJW5gu1w= zWnaqGY7II%>eOQo_#xo+O3KJI^c^qGT}`ADLJ|L-yx-GY0t==xr@i{;rWRIK=RlUC zOZmG#Jki{Y=>*rd^OM815@A&Km3!^Z<_4IrRQWRq3CgG1qL)*T~3jCW-cLdhqn}XQ*Rsrl6gO`cW z=Ry$DT7P=BErO4S2h54gWp&k_adB}7ZZR=Vc18F49H1;jMQIq$M??y}oBfd_;zA|( zJ_kl(w6v+v21pi>^I06ior0=Y6)+wjxO@&>pu1qR5Ax^moY&fb65Yl5`PPW?0VLZp z-$?spVdVAxJz76GZ!6#w0?i-r@!8t^q#U|k<9#fgL`O+E0on@O52u1pMgkt$0C7Jo z3_s)fPF8Mi?5^(qVh0iM-=7I^lUvI|1c91n5dUJakqoNfF;nF3DKN?Q%TvZ**b?j$ z^(3D7czKD4V#rUQ3~L(vvkp@42P8d%;>qDq7%nF-7Z(vr^6ae25E-<%*>)=&>^eMP zK(*J`KOfGI=C?Y1cE~Sm8MD)wkl+)Dg_Lavq38K-7iZ?3n23nIE>2b$oTUOQ=KR_Q zlrLz%9ysk9gB1AWU^{vYa-#x3cMJ#7c(r{Aj~(C$a?}kfXPI8dM=&Y>9xuc00KKJ~ zfydb&hzEoOI-m#v|E>JK_kvOs0?-z=^mu{(P6WvlP>V|~3%DJBdR)jJ}O zTPkwS?w&wZWd79!yNsd5(@mV47h(oLNQRS?T3&w7^BTX64s=5~uB2>;hY4FSK}6B_ zVds7T1C2>&7$_jOqrRp9^4bCFPv*a^&CPf97P90-woE~ zW4l+rn```V6|Jmv5l>E6w{3Frv}U`WXnS~IpfO7|uC*Ilb?9_vfTTe{R!lA=_NF@q z{zwCmqyRzr5KI!x9FRyj2EEe_9EvZKlgeUe{-bP4fcEMcA2)-9%=7czAUpv9f&0m$ zpF{|lfa*iau2Tu_P7$8`I+qHj1~!g65PmP@|tpD|Cb$TWF#+O%yaMF?J5A_G*8s%KnB^? z7S$W%d4}+Y26`sj=m#jK}kuOos}i(LI7{e zy)DQ)9&T>F$HIc;^c`yb_5tJz$vU74V0J@;p5wzK2!?HuYp&gz`y2FocyXgv)XnE>q&Z9nSJcsSX&!3S-+d` zE-1_;AD= z50!(W6VqiXw7AVGZ++;ON&M<7fO^C)%2e(1#iJ>A+)mQ3bDr;q@rvIeU4A;fn3BtM ztrI*wq)00gKMo?|bW8bJq6{_p&R|RhqSEVnIEK+?0?L$<^pKJ8=3rdOA)7AE9 zRLH|p==$m#E+X)LfLidCWoHm1?}A2JjX@X)SHSyN0i3|)`fEQFkQrcoj)~QVI*^ov z1pdCs36xO5^$A~J#()4DC#NOBkutcjG;o!JshUZBMqZidf5yVRgki(%7!3pWcsbq) z`F44B_QQ6_+8X)mf+E;zz=i?bVZ{iLo04Q+GD)LSi=tAcp}1Oy|CE+2Exe+wa_dDc zgc7^zLPwb~WDE5`T%684%v0HN_I{s6;qMZQu}}~$$lR(&sFo4oCkMjR!k`i*v=j^f7BoY)hK8RJ&g~!zZazAU zrcAE5L}!zK0gx@5eR6TdsL5uPTn->`(#XQ1qd6m%7?|2NHYiioeEpeguOD)J^r(j! zF$yVCu9YN(ntCiR53_c81cM5rYb)mSC^LBT0|hKxS^}3qq~)(3uo)d4oo&lGtuOlt zK8sI*fe=LR^fwQsR{{mRf$NUX`?{qcKYqZX{IVq&D>*Th*Vc+@YirBz{uCU1dCz-!^7hON>_24 zvT3+0)7|ThJCO6_*z;uOY?-c3?DdAzB9Q+kV{n`C zdW+vv8=KTe?94Y*F0+oGJedrmO^1rg4{T#V=*09Gxq6j<+Sz;_EEDRYw4ik(XpbuV z1@Qlg9MzIcc`^Xh(`owohzPu#=;&B#5BD0F2NNjh=s?i!GHzuAp1{lHjU)*iSQrLq zSlAIh(YI!}U`5(F_K2Mwo$8>FtuRd~;J-O72~m=&6BuANVFc^}F-6&BpanZWKRJ3$ zy$ET@cCP)k?q_kk3PXPIYYt0M08e3$Fg1SNVZekF+;IF6RyOc#LN=zCvS_S`L7!k}CZ@kiK(r?O(HxeQgD!F`-4#DuR3m*{IM;`iAJ!SIg4E^h;pwr|~jFw~Zv zRpDq)oB(?Ev`Wl6od`yDm~LiGPPer13ZGhMtAVsvN?93?#;c{pEa#_8vh#7&rnd7%0-IfFe>#D5VI}bqo+eLb|~~6cMEnDW#-4 zloSP|kyKhry1Nc{9cI4w-amfNeJ=mZj3aQ)dEa+`_Fil4wRjC07yu_?TYvZNA8^w3 z%T>i{;Y35UM?k=Zr}kH`u0%+B$QZW(&qsd_Tom3@wDFY~z`^DaM-uEPPP#fF>jSom zZ|FpIzL2y#IXR0>ag9*|u~)8#2}z%dklEfNAVRE&{zBTbs5?B@@^R4^zE{17g4t`f zQtmCzLe=+7%xh6zAHwm$;%7hM2eRh4d~H8@DT_=(VnjcB+bP4)OIB>BPHizA`1#Wd z>sfyR0DvBMcXxj|%3>2)9Kacjq}@nZX$Vo|gyIneJt5%AK9vi^Nomo^Kg$!j%0kUfcdr zX0x+fjy>r?{ih~)U{C-l7m;_77rph$KQ^CkI61VYhnJLLYi=nvEhFQ{?rlu=ixb@Y z(@&M}zWX~q-Td0M!BD}C_wK~Mpq2{eTO=fgkVdav~8@RyYwD(n7jgn8sDZ0z6Tb;uS$XpF~OzQJ}29Mpl5q&)3v1eD| ziBmVEo~<9OAEoEwLKHF6nZ6VcNjP3eNC4Y+OY&Cc zXg(Z|D(>juIdkT^UgF+qKd;{2h}hWjkdPwkAnYepxg4TepmE^Bh*5uRi@(m=9)EFg zv9IP8-~3{xU#WZP=?POjZ%x@F+R*f zvIl*TL3)ys@_9H=8-#Y;>BX%$AnLwnRjbxlkJR|b3K94E>(fUB4*soqh>%zBvMiHd z$$dy99369vmTzssbL0pimzd+g z^Tg8gO1al<|FMtp`TBKlKAm5fiuLjHqdNEqj#YUuKE%z;&dxr~MKXUbQzLongr^zk z>;J;JbefHw;>YcK_fX+)ndKU{zj-QjU*DbbX|JKjufGm_NP_@#E8{%%%$GcMdCB!

v3ALMAo(D^H4a}5Y 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 diff --git a/openless-all/app/e2e/visual-refinements.spec.ts-snapshots/shortcuts-dark-chromium-linux.png b/openless-all/app/e2e/visual-refinements.spec.ts-snapshots/shortcuts-dark-chromium-linux.png deleted file mode 100644 index 5f326a6fbfe715d5c912e4621431ab39164f87ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 95300 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 ONQlZl$$PBr`TqbiEa(XU diff --git a/openless-all/app/e2e/visual-refinements.spec.ts-snapshots/shortcuts-dark-webkit-linux.png b/openless-all/app/e2e/visual-refinements.spec.ts-snapshots/shortcuts-dark-webkit-linux.png deleted file mode 100644 index fac36a3f1563fbac4b5d9dadb07a1a676330b33e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 103695 zcmeFZ^;?x|)HS*g2^B?@P7_d(PAL@yky5(5yE{~r4k?#(gGdXAG)OEO0qK&?MR$I4 zZTEiPbN+yHUFV07Yj5{nxL7>Teb0N&F~=D5@qZ;PcKIUZMFawIS^UK_Sp))y7=geR z!N-N~j8;X&!+)^sWW}B$@;a#(;l+8or{ePX@a2xL?}tF#K!`tkBJUixGUntgukaJK zv37?;oc@A1zR8>SkDuQ6J13j2lyyrM2ZzYPhNRHEdq-iwVb38jKS1_bSW5Fdza)Id zDl(I&Pi62Qe!yRJXgxxG4!e2bN>20rny#&N-n~(~F2OzNT3@{ zwYmAzvUKdDo7nT`M09jwl9B{QT?zGuc4%K;Upx+@&LoWr$4Dg7X6bhpodpLyz0cqv z{WDQf+r#Z>(`Cu%P5QkF;h4%w0a>|T&*G}7DP1Pgw$SmTPJaINVKc8(31nxEa^a@f za^T-^Z|>{Ge;yXAEGv6!Yu>9lM`caHZQQV^yTpvlhmh{2wsw-5#ki{($6VLhM>0+4 z(~EmjDN?cAmL&(Hb~Q$OtMLSMLMvj+xaZIR%8;VEcK!P3Que;L%i5wnAUAkEn)B9gw3-z`Rd#1$zsxo>q? z&fBP~QyUgV!`&FENJ?_vym_;88t%y5!^1zslHg6ZvAxOO`egmg+^Kcdf4`I;C*T$j zTXx^Y-_-QyI!%5>IgD8pZPr)}7tcj0Y36-j)eDuHDMZniN9Jl)HBm6);^4@ZT52F1 zS4U@aICOrB5YV{hZ#nmU&0iR+KyLkb;*Hy$c$U27Jo;n9e6XN9_w>J&i^60E0$gl= zfB&?!v|o7|{HmpvvjRr!(Fk(ZBw=xJ|ISUgTEkBFnwM%(SZQOHcsKa?KJZMqx21P} zd42oB<;w=MtqRn9whgoDu7`xnoJ~zlkA%IpI}|2-Sb%s$ z!WY|)H&`bcAzg{WYXrm<_KQE^_rH*mO4SrZ`TacHS>7tGse1Y11%9@o$MciJov+0z z6ps{JTU+Ofx;{M$9VxXUtj&_kY-#45XA<^2KCk7zkzSNoR_3B_xO(gGa~uEqxV`W@lGeSKkC z|7>hfe}g_d5jC|We1N#5dFyCdk!j9ImYmWRT7lXRm-sA8H16F>p)H*le@F75`pd4n zyZbF)!c29ASVS-t>SKgm!tpUxO&anXgz~Tbjp-kI<2RWN>gwtw;}5y5s&+!!{C>8+ ze$)2JLt0fe#*X+;`nz}M7Q0g`BvhU~`(byRB(QOc{cc&0hSSbuUd17AC?Pd(^E;d~ zM_NMa1$;Iwmsyq^m7@OHVP9HG!rD6Tmi8E~-dS~dc@gBjE;w+MR#sN91^;}V8CaI3 zW5K2NP%v_v^~Vhko-f62Tpe=@Pt>Xnp;5~g6t)~aFCZv*@8QEn!y=tRWybsWXMTQI zGbK1i#Bf(dy?_7gyLpz&K@R*35iRZ8F-w#->nmB=pW$}{St*0hle zSnn(6yjn&kE-hr;A{e{1l+B{(7N42PQ1270zdEXNk@)#c)51^@10p&a?({u>n^gsx z+jV=PDe-h$xbxeE>$JAG0cHbvsY>|?3g;RvM!vI|{x(LamYBB4$w*RNl9F0+j3-{s

V;dMOzH#BB4Nyw13)gEq$_1)bJ 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 =5J8d1ins;In^Z6O=H_-2U61q}_2 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 diff --git a/openless-all/app/e2e/visual-refinements.spec.ts-snapshots/shortcuts-light-chromium-darwin.png b/openless-all/app/e2e/visual-refinements.spec.ts-snapshots/shortcuts-light-chromium-darwin.png deleted file mode 100644 index 82c1227f203f90029fc63dbaf5b0171414555204..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 90119 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 D5|R|Q diff --git a/openless-all/app/e2e/visual-refinements.spec.ts-snapshots/shortcuts-light-chromium-linux.png b/openless-all/app/e2e/visual-refinements.spec.ts-snapshots/shortcuts-light-chromium-linux.png deleted file mode 100644 index df0f5593291330045902f926a2c0ff539dffeb21..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 94914 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%0D&y39LoRY_Gw1>zRX8AHs}pxNtWvw+@Pww8 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 C*7Fzu diff --git a/openless-all/app/e2e/visual-refinements.spec.ts-snapshots/shortcuts-light-webkit-darwin.png b/openless-all/app/e2e/visual-refinements.spec.ts-snapshots/shortcuts-light-webkit-darwin.png deleted file mode 100644 index efa97f044357a2ab61f1b1599bc96abbb3ce8ebf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 117814 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 diff --git a/openless-all/app/e2e/visual-refinements.spec.ts-snapshots/typography-dark-chromium-darwin.png b/openless-all/app/e2e/visual-refinements.spec.ts-snapshots/typography-dark-chromium-darwin.png deleted file mode 100644 index 68ff8eea7600a3a3aabae07a4d051fd32bb98040..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 63875 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 diff --git a/openless-all/app/e2e/visual-refinements.spec.ts-snapshots/typography-dark-webkit-darwin.png b/openless-all/app/e2e/visual-refinements.spec.ts-snapshots/typography-dark-webkit-darwin.png deleted file mode 100644 index 8254548d2d70728d9b5eea6f09e00668b40e1884..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 86660 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%0DCp8t*p1C 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 R_rZVHu1H@_5xw{5{{a|>AgTZW diff --git a/openless-all/app/e2e/visual-refinements.spec.ts-snapshots/typography-dark-webkit-linux.png b/openless-all/app/e2e/visual-refinements.spec.ts-snapshots/typography-dark-webkit-linux.png deleted file mode 100644 index cd30d1c72e9d97f297ea40ef17267ddbda338dc5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 72986 zcmeFZcRbbq|37Smipbs+LiWn$DA6E9A=!lNmAy(vX2>2#sf03yPXF@%eo8spEB?*pFc#Jotb4a_K5|Q09dmW= zdwhDfwea1POg-rJ>+!21QN%s(#?O&n@45Z3?$tZJ0X;q6oQj-@;@pckAz#kFdKH|0 z<(2bW7RFl~m!H3+xN8@aIKeEBA9%0+oPw6SOxIS*ftM`W332U0TIF^%nvR9#LrQR~ z-Dl;*D;F=W*6i8@|9$N@?mwOI`|qdVV;@d63ex{x$m{?A5C8ufkdpqtum)xKl0|k*)GI_6LW;2HwSkR=%dDY~OT>>!<7|oh6mLz5U*ha|pO?Uh&vn zmcM`hBG%eS$;?(uOI$Yc61}M4i{bE#J+XH_zeWMIn&}rpy|dDp#eYzqXp>Rc;@m zs#``!b+Lqmh3yuPvmfVdE@qI-Y;2&UHY%Gor&zJi6B1@T&e8m|ywaD|tNraXjCRMO zz(xfrEAQhYOBEWxrza_F_4|(XP~oRWpPDlt%7Oxd`!D$aK2MD(UI@#r98KOa-;}Q$wjMjgjf#qD(qxuo$dwIKWc~K^ zhzg4?T#<#96_$OrHHx+JaCt@g?AU44;SN1M2~+C=lHYLU_ctO&$x&~W81@Hlhf9d4 z=;-e45>A^Uq`S(PD687UA@o~S!ZZC+d3t^S$h|rrff|V6`+(WhA>VP zdX^yNs`ADrWP5L9V{>mL=J`Z5uj{xw2TFQ}Xu`K9iIAG?0tpF+v^0a?moJ=HWaQ*k zhplaG&(P~*So=puJMhom9m?K!+%`StA4dK?mYwNx4`->UX=oO6_d|n&4acQ7@@@Aw z2}Y55xuTWBhr9IW;XNfKll%!tjEfK9DbJU39p=Wx#y;3x?zgkpFC4QqZ;4=(Extkb zAfB6oRUldKZ1h3GCPy5fUVR89cUyZqPP)|qpZ<>2?{7~BxJ#wI4@F=V@k#>?Yfkn| z(FGBVQl&x9j@nVE$lVpOcgqa_ROcu}68v(<$y%S<8$Dkg=dv4Hkef@o8QsO>_ETSe ztQ2VT3|fnFY31HOIlOc*8$%LmGxEMcZ*`(3^4+_S#v>HhB+GFgB#F$8*oEr*USa<% z8$=xIbfyf?HyDxY(JR){`T$Lx@jl@D!=9aoZga+v1^*Dr?BxKjhjL~mB$O4cm1k9 zN&Vz|{_p1wz8}lg`|+NzYx>}qhbGH?Sqo0-gJn)yJv}``<-0*Fk%;|C)&ymCM@L6{ zafZP)7r0Y*@7?1Q-NdyR+!Tdhf`X!;RO%x3;ll?9$y6F5{KBH5C*Liw&5CG~c|Wu| zwa100J1y8UNILtOBTonl3XXEi%}n$?mY5aN%!LwZL>7Hy4`$`z%x;fdBqExf3S!35 zb>iqs*m`+1I1`CbtZ=azDlo}xk+2#5ZUpPE?|TAAFT?9#8%sIun7B8yhCuFCy?fpY zRhm`Fh;LcY^?;m)+kU)He-u9ZsaZ>zkJFJV6Tpc0Olj7P)Q3 zubVv1euTF0JUd|(pdk`ZRe@D*>+Jkw(xSp-LxhjJfa0L=6lBuI4?=_|f8GZ!chElpC8J znuN;#c!nKLFIN2s&Gt`ubj%?dWICVh4v7?P{;<)cl`IM~G>KDhIpm*<;=m zTWL8Q{<+RWg*ZMrNxWfY7G={Ce$@K{xpaDT=Q16gqMMsIiL?M+MtAES=1#0y%i^97 z3f!L`Bv1DqT_@u2G!vd_eqh>_5_wO#abr0GwJKJz@?yFt#bysb@nnCi;jTmC{xr`U3iNz!|N(+KP0 z9YO=fc0HMQ1kIOE>agMs9SW)sbj(6o$+EC8d74O;Za&8S7 z9sz;p>qKUs{ep^NhxT`_ttb?~LV&Tt@$s?S^qZc5jDK5=FU83bNxdzq#Z(CTo1Un( zc1xN}#U`3$vic}czbtK)$v6o~VbvHMcJ#nTY=aBX9wrE^(7BZ|gbadQqZF6{lOGQI- zyT%9IlRsqx1unj}R!D!KK)b_vV>~ET%2oZ-{Tt;kR+fC?=x$g#>~G$z-k&Zq_%r0S zRY6D*uE;u8{=(#7d#>q6fe!AMrzOOmd#hWpGYjV2HUcyh6pd0F%JTu#`jeT+?{qoG zK6v=}+vA=Z7tWu*!od;GdMCnu#3r0Z$W#EzeCBhFf%c!!dV@nlcf?)C%6FYt2VYK3 z8k%*b)N$ukHhXSVk(By;KHZM5DR7)~gvG-etZ=PqInYAMYxkwRZtB!1wVS9`|CX(r zslw>7w~Afc6iQu&9)F4TIw+{fq(wA6f4E@Le)|mv6MC4MjBL8wXS@t<)C zRl1c4^}VWypKUP?;taXcnNa_Ekhq^IsxAXL? zvL0oTF?(%d113>M%BC{=3@QWYx_Y(l+_`g5IH)4!9M(t6*x1#jcd^e_6V4ACC+~+f2WHnfRCE)izuS(L zGe|f#o^;MGEZou8XPRl2d9u7feQ>SvV18viyFyFfJ>Z&BwNYEN!lSR+QP3H3r20J3 zV_EtOKF3=;W~j6V0BZ{HWPmtC`g62q$`;Zx)6@On9tb+k2TAV@YGXym=;atu5w>wKiiy;CB-X*lt%;e9aAltQT#v)1DRUX&iaV^FxDH$c5r~9s> zKKuv{zS|z3S4+UGT+{Wm+TCYYuE3ziGeO*eg}-{g{!%Iui9|V}WLorG$MF0b9?H46 z5Eq%FTzs7<7hsuLg@ua-XZUN5eVIl8Vw;+oZEyIVrGk(i#x6k{qRE|OE}N4#S4T=F7}E|84oJy0sDVYFpYKX-P(`E~w?w4E zeFX&kYRLMtUWLoL&}Ps5yLatT0SVF3>edxuVMLVI+54Q(uWR+AR za&-8GgrZMRHXKSS(Br2V!tycGJpaXtrn*LN@S8VVi`-&j@h!~guY;))J153L2m@3` zWW+V;QA$qza_6i;7nRHyXd8~uF`2yokfL#JT)THy+`u$_A9+@(T;;KQ{{<3=&3Ege z&yN=Vve9k;lSKHebL|SG^cBdY8&=(g&**>W>NU+oMgmUGnw^`&&Si;(&!th}LX@MG zH~D8t!+Cu)c6F5}I$D~VC+kU(D2Hkq=W=w@cJZxl6bflO=3zhIvGmi4)of;ALDj;7 z2C$3K@b|WB`YpzS!uFGDz$9+v>3ahPmhwIvZRq(F3dNp5JRezFIs*p*IPIJ8u{+kQ zvREuE?cG(LCmBV>doO^2{k@sTQx8{@W3QgOlSCDF9<5iyIl#~j+pF7=`KKVwy zed{-5eU*!AcfNO%uyzjWF@0prP@KA+T z+!wkwXI!uV2QM71nt;b-SsR&XgH;rNvCL8Kyi})Uz-w>L`Kn8_v*N#=E48*Y#(dEaJgHkeN!ol8$P{lr0=&fUEX z4yqEDkFdJdRA_71D$h_TQM=rk7M`Vofm6TicQ9!K6vDXSVv~@HFjaiw zN)o@mzCPm-AVkTPmC|SwdnwnA66>Mmeo^7xlBqVUfn1ZlRf%gqmVSTZ_CEaM!cTSW zZ&wsbRMsuEf7#f08v{Ak$E2S3e574KAx)aYT*owAu)R(XG8>y18_Yt}eNF;JEPlOR zT)fzkxI;=6itxw3G}n=+VLe(JA^F01f2-viw65~Jou$ko>0Ix%x8|Wu$_Lw&G}3O` zQD~2~w+lJ_U!R2L>UrAFwi=1rjo${o0hbZPncO?1;oTM=tcULY&NKMgosqjM(P1`F zj`OtSRL<-8UgU(yCH#z*jVZ+p($J>u&^#SIof@40V@*ve74t16?+MO<+wqCVGtB%L zc?-}jb4GXVd--unMXf;gBhj#)DNb0)0=o%W;JX&xAMkQCzfDh^`MjYOHnShlOAQVW z-_^m>nni!~IXSF6S~ul-^hNIGP3(+2h%|R?kl+ zS?0L!#4$*_`6+}}*V>lg3cOf;I_l%8aq%L9^IMtj4PThFw!9?ctwZ-w&=E`dFB@lp^C9H}|t91JJvv zsp;liJmJ_*itNcBVJ7bP)ThPQ#KjZ19&_R5TMeuucfA5$PJdELqYUx!(b9Z(x}4L* zqr3m9WefOuyyiC@w_UA$yJigQz)t=)TSjB``|AZYYsxSG>TKUW2<$tFGprkR3^;8X z@(_@Cpls|)Muw`rpGGZE1V)JcjA9Lv{=rBbB!yKqJY1Ypxku@W!ou7cI9cm!dDS{< z)*}YJd7AIFX;@T}MA}S_76fS0ea}1-Z>+Fd_I*(S9ZuYH59EYDrtR-Ou-7;n7nIh& zCS|?2;4S<%!R>wUkKBSk&!6X(jlgw4f%>quvtx4jXX(4mNJMX@s?(pvhmlS|nA=b# zRNX-Icg>jFS2hd9|mYzCpcL@8M3>DgiTKn3#?-s9D*kMJ=h*J4Ag~kg2#sBjebmIN!HsILh;45*Cv_r-Pc?kt{}#a|6qsx5sgF@@n1+1qTmL*nDTQ z``0AhTwMt)^rQ0upj`oJV3CpvGDmuMRZUpCoH)5{RE_Usd2mUp-AL43a9wt$PL&*+ z+o=LY5c4`7KhDmP=6_O1<6l?%@m|bbRn>~A*fhc$wxh2%Hw6MO(JKNgINNX8Ns)4m z03H$E!sM9(5XvLfX=_>m{}SDz#u;>pnZ7I})?Fnf0CKD%mVLo+!UUf8Al*(6YCKal z^7LhNE{C3W_*&hge{0Ye5GIqmDbX3)m%qrYlTP!i_ENu{r6nEg#Cs5F z`@TMDs5%?5i;q7{1Ps^p@gDhTLrJO%M_%=zPVbrCx`IlT0*ONIhwYf=><2zAC1vG$kgz)Zum01wShhWl;7oCO z9FL!UX<_z#B_Bjw;IYfa!unItZPRf0`*V4>((qR}QYx9anZ0isre=S=$30%N%eBl3 zAf(=&^e2f1+Gst2Aw!@PCgTzigWg9Ji8vJpf&P=y7Mbq-TUxlm{~08tlQZUL{M#H=v#sXbaGV&(6=2 zk&&rSqq^;ytVMe(-G$M6Z801GkX!_oj}mCPA_>E}<^%#W1(azP@Ml)q5L{ zf5v^2`N0ZM9As^*KO4SCt)u*Wd#vRFyWk;fzCzXHPDMGteiP)7H9Hqq2>XMi?wT_> zBK!t^do%*sZ&~G&K?ZO9tJn%{uxKj{((Ws`#GY%ui|+*i=ssR`w;6E(OmN_pYE`2d z01^}6or#-wQIJP{F2`h#Q_23fDSuU|XSgyXAgXe^B#*|Mvi+PxWg zprpjg%9={R?Dg(Rk=fhSR1H%p1Om|>bU*rR0 zxz5RHZ-?0Fn2>PaK8N+}r=p<%4frJI(t(~;9&ZzZ&47hZM5DXxdYO!@{RB;70t^lQ z5U7fRg$3v7DfXi;YA=D1#iIla1!{poSK-(d4Jm`&a*_QO*MC`n(uK4u)n`5dErJ={ zcNG;SiGvzeWDcjNn?k`^izY#&+`Lu)1nmPSiR|dB+ItpYq2OPoIDK zcP2fSK3tq(V@q*DYyg#Q?dT{yRieaP-zbC#T*s31odt4nhv{<|A*wTJ1DNSY@Codv zys!Y2ub=8xc|5>6KK=>^8dfx4o97&U+*Ogj$0v`9%xnPtfrLx$>&p!a3*f*wP)))V zGwyH}S#(qXS?mtlp5rE^cI~J-TXuoJ0jdufJ-revx1iu|@V}I|IfAjJK42%5$nO5k zOr*J+^_|?qa_Zraif{l3rb6Z1tFWaB0#p2}Lq-04dga}v z4#EIAA8&7O`~3D?9N5se{&5~kCb)@2v_hjZ`*)bDHVVdytw@ef^yIaGOx$#Fp@OTp zyX-ntcukyvc(`N(^IX4v39OfyUor1Wskba9qoA0zwGv7MQq^K85S^ArT$;TGG#}p| z+t=53d)pC8%w%hnyn<{{ogt^tFK!|~D*n@GU>EiE^|V5!30f5|aW@EbDMMiG;o#$3 zW>}RGss6r!WjNP9w=SFU;lpBI7Cl@%C_Ct4d3pJRN&h7*kYLoYK=_bStBUKkI36-M zyLE)#;C&1&r*LrX!0S&pQ6Mqny`OP5;E}Shf5zt4;^W^=nfn>9o~JL5-Ya}&fO{GC z43|W@9%>8cc4ZJVlag)jio_-S0cSi`Md{h`uGZE`knlZIdULc8)hB!ODrsRE1~o^E z19q5GW7v_v0dA4`?sDupS6|QdL#uz0P6-uetFQRi$${G55?R4@4v-W+uGdbdmYh+* zha9qRHY3DL3kL^J1QK;0hp@*a^67cxgKJ`Jyxd)2!tujyV&36f{qpA=8T2S&M}lDS z;E~f~Ieap54H7{4p-m)y-@hw0wzR~=xwPp?95_AB)eV5CM)3FVkAP0p)%g>&wzr>~ z%=7gg&+*1cUPo(USTtg`EW&2WxRY6#r(pe*?jg1s&&Bbd;RiL;1zuVi9Vn9&2#Ls* zYl(2hej6XZz_hN@YADc?sp<R!3WA6+lIwWTe*5LH*Z0qCdmH(-on1}@V@K=SaLEcn&k-6{fR7pXR=RGN-qtaA72}Ke_XckIW|w;0ytAFKm%TAhf>FP*Ke@$sQ|Njg|8vPAE2rDMB^GwbFZ+oP9-U za##6n7xVh*i7 zncb(~Tv#^&U&RzuIe^WfkiW(%^1&HVzbT?pceM|wa$dq&WeB{$ods%47*jg`)!8wBR zYNC=FvXF_Krj-^73}B=ztQ;!OtJhB;zq{vR1Mc0GroOT~9GD{8C1SEhN;Vl#<+SA@Z=oMK97kPq&Nmqc`u?xil5Vd6Ld>H1JvX9+NF#X6sv-- zPiEW5_YV%hQNsmd)o3W7UhReFvN1lF%am(yCK|_klvH5SQef0@NH(FWqC$L$e!LlE zg5WpLXP%dIVOFyzm);fB5bdAfidmDfmZex-~|mO6Z%>BMcN&+^W~ae zDtE3(xD z{-tu{moF9&UQ>$Waoi};J|2U});9MnY~1(fxDX4t1~3^IaKn_n{r2pIa+fs>mtK5` zI-vL&pLf^Pl;Tb#lMx17gHmtRWVvB3nr}Cu5B5Z~Qas=G@27dBOiaxnjj#v`MuEd; zSfD+6b0NIaKj#_;hoI{^2i#f{0XHq0`T2RbbIn>>BByjj`0`meEB*v%r@htdAp2le zf?g~apmzW4EJf9;gML0;aTH|m5``B`!W3gXo3^cRM?ouylpxPblkc_`b-(mb)^YYS zXbsz6)G9S0QHb;wP5$_iyP*&l2ZvVLjfOp@Eko~qh}HWmz`TG{FU%zWQ*NUWLYQ`2 zx@k`j##UwJ2i%NXurz>cq5<>FI8*(CG*#{6HRs7%eYBS!zW>6W0 zV4l9KNy&mI&kv0xSNj_|H~cCqb=j5o2_eWO9RW$wNN{N93VOC7$`cbEtvj1NUToPv z|0!O7lV=WJ#Ispd;XC7%Ic6ROKRTcdFliT)ha-@?x zsX!KHxNuvY>%CowigF6FIQ@R{}T}A z3hsTE_2VeGJ=pm}?SMe<1DS*bg3_Z$c<8tN^u-P{9-v(HfS#mftReL zvpGYjm0pY&H^|f9C{G2k#;6#-l)L-uZ#nd@2~hKke9vSH3k#*Yavo+-Vc@Q{C^;F~ z{hKdw5eV*~q1^kWMh#4cM|;d~LZuXQG;Od(TQF=ntl^;_64_K`w=phbJ@O;q&mZSk zuU^SyvpG3Ay@^EJ^g4cnJR!bF8?FeSr>Q;m=XK8f3TkXF3cBSJ83F;{Q|Y{mDx4m5 z306NZiVvdog%A-)+4K;3+fhCa|@?y~O%%(Ouqpf7lO; z8*2A7@URyI?*UVDAX6Hr8VZ_DdGPS#rd|>#I-Po9xESwNT9_iPN@l~!i$sB`r4`wr zrfDr}%H`7&Px$#cl%|;i1T<^7&lobwo$^n9J__*ziO8r5K2|9UbjgL>9XQklFIGsv z=$@@Yf6fO6%&zJ~9@-SvHhbb41Z(PP?Yh(h{KEs39TK>fdAd_c3VOMocj8ATd_2h^ z*{1};2FT?N79u^xR;~cbFqSVMwP#%^Prh6B4}078XZHt(a2aH;U;~#4?Mn4jdw)w| z-1kfm0+m`o&J9800F7v_c(VnSTI~SDl}G0f9+(7<8$Y{TE(sfyJ71`9-S`NPgK6?; zhm3Byqdi6mpJSSa!0=hH?|5`Xkif1Q&5E!=^er07H?oNu5TOb4I+$AkHkaHKnnzTj zqFgEGQEqkjk4?##imqK7R+f(!A`o1Ypmogbx!~NOqDS{{=4cz zF>QB&z9Eky!gyN7Tqhb9kf>`Q!-J30UF}W4V(%v4^Ql1;>THBw-PJ8^v5N-a~CkP^JRNAnn66 z{M`Ys_(AfIeT9vGP|WR9bk;3^F|o0+Z9&XklT$%0h3-4}(9ChP0!Q%i@r8Vjdsm0& zbaX%HmT^L*iRfLr0zMMhepo8)?=Cc(mPa3oSp886_X7akF$r#;xVU6b*&2c( zG1#-}Rmuk_Kp2qLmp9?3SMg(Kt3?NJ-3XeoAoib3nj-DJW$3|VkZq0Hae*5H?EN)*(XS46aQJX5WRSnV zjTAb}NJcO?bfzYxrplk4;wB<|bERm`4cxk_I1`)K1_fc%NgFbo`M|l+fIHh>Cxuem-1r+qRG4v#p#@@CSqgP$7EgBWxG-& zI=?<)E=Qs)i#;Bl%+1dWJ!|(Zb6#QrivJ1fB`}3BXfX3AWayY}rquuwgyq>F59)t> ztedTsrvSIa;#WGUlz_YD$fwm1xcN&yavLHyUqE*R>S6-2l7z49 z%TQ_!i;*8E{Ds4iaDvxyH4Tj7*mgN)u}sGZJ$uE;x&Lh5uYy!DqoC39``L|uT;Nwg zAE8Hs+JzPbF?gaHcYl9|c3`aq;vgUgL$qWdBhsqadMF91T160Fa_78y=MXjJ z-YL*;0ddA&;Rm@Fq9St@8*x2Aq#z|S?SvfYEiz|zSsQk6C$5Ty!aDrJ1{I00-J#JO zt@5<1KC*otweW6_@i;~He#PDP;;)+AYr|u0XmAszWOJX1K6RTe?oSC3%5 zGy@m>W=_XXYY?r(H0!<9p(fCdW&UZiGcA$oYHD&NwpDlUii7oiN196t06a9?_mG5m z9S|_%T%Y~;CrH2?S8Cf^qcYq#s$8*Ygy%1y7qD^hV^UHYhl{niOy%VpzC0BRganFO zmO7goyq{y_-_82$H}E<#puD#^)V85uo;TH9i|+hYAg_lzxSLJ)38 zN{TKhHKlG_ED{n=YIb?w{IjXBt(HET=`^qb`2zIMpHtscs<>-x%tsuAzMsP4%chud z0d5JbCD>96(@ksu@_bLo|1CMUZ=Yh>x;?}Q1K28jx_8sl<*t4hO#;;!pq^|#ADQBqLYuaDB!LcpcZ&Rgog&mpFlg{uH6 zNb)xxYQB^TS~Tl+h4a)c9MPxePEUVN9BTf9C*VJ9v(*VgAc_M7<541~V=N^5;eP@^ zIQ?Dn-^P@_tS0L2Nx;+TbbL9=Kr@J z<|hvEZ3A7_)(scB#-Q@W4(95XIX=qM5C8VG#C?@n){E1?x9T0h2nOPymV)iMpD~Gv zH+6J83Qhoer>JDMR9CDo--W>Xo6t~J=~2a4uGqmMbAAjVo|$cn0YcRM5L_Ox7NS>I4P5#cq31z*ZE6KS1Ts1z7HSjRYG0oevBTWX>B&)4Vq(+w+(cO< zv^PKY2e#(hv#xFJj$>%V>6R;m)$GMD@*&LePWMU{qz^mV+OF~OMZj!;MwQ16V15vQ zAxO6w@q$pGGDKWoto-KP^9i~{-wtLR5NZj0|CbQz5`5MUA)0|4YJUh~_I_sOLn2<6 zOr+hiwB&**B`}-cLL`TCi}Ak$9jv>iMMyzF!qixVI*kRK@2 zC)T3$pqYV-ihY@Edf4EzGOaSZMik1jXy}W66&=8JX1`Es{^;anCD_h4k&&Qc0;vL# zN&o~LnB_q=GH6t}DOI|Wq;7t}B?$@h1V z9GGYoSnNcYxQ$9C_xGdy8C6cse3N1wcpz-Usd|3FB z$Ot|^W+EcZZCY?1bq1+z6*4L+d@#|KLcD%QFpd=2j6_1rwiNAswC0FUw1}E*(~t=? zd&)zFgYy*|s?N?YI&S84^Avm4_EJ(q3&JGfD|#AMXKXpjcd z!9XHC$;gh=fvmwy`oN^9GN^=A^Gtsf=GtQyN6@xl^}#3Of?RYRIDB`NmGvMOX#_(P zU2uA%QdTd{Q1R)WlY{HE`0Kq4_~-1Bk|9A%bOHU#s$hG7uMg24AbU!{S}_Lz&?MIE z!pPXp<>to5w+RWi_4U(^e8BX93j!&pyIx+>5K4WINgpw!q09tmplQqE;YH-^-GnCs z{nFplpvpr~#MX;GuV!7MWO}LBJUH^~4JHb6u#@*l2|!08q&v#;v@#TLfFHp_B@D9I ztA5L88{^*KA2HhFrGuLEcp1(2U!^NaOJ?G9fy{nqa!I~POPBG8a;jvipb66_fW#@{ z4)qJwEB&GG??kSH`bfpEU;h%909zpW0bsTQu+~Lw4qw9d2>Tq1%N|;2MujH4FvA3flR}EDcXP&=FzPrF?gYsDZU=K(r6+sMAT;K}#ry>x!9t#<=Sm=yu= z)7XIudv<`zSyy<31t$?wma(vIJyo8rkam`XVuKaW_lb;wfv8l|T-KHEC1e|R+PU*^ zH_uLyR&}wEY5+X?>{t3r@N~;_xWg66f#p71>anX@KbQ)-Q?a10Te)wAegWsX@%X^N z?R5eK89`a97%Y6ojUF4A$cWyuB&71X>5sn)p2=mHw2Ew)!i?7BXpumwt>OFg4VV>x z1Rh+e6jSuN44gG2_$na7#zBV2V$S@(tFhJgfP^AdW#HHN3QRm0NPwo!f(2E2 z5=ebks|zH0CS>Xx^{YIro>Z-YVza8R!=j9-o zBLRt10G|K2f-u`;9kl?dSpcQ;#fU3cYON-!y$cw`?cYMSeQIGLXv}s2%H-sTT@6eh znP5q8HEKi2huNGK3lSjqAb%N7H*T$tmW7IqyY(_stq&Cq$cRXZ?qR{l`*;r`oZWn7*6e*X=)9ipD`W4Itoy>Gn2tW)#h)5qbKHIFSH<$Q0v`$i@vcr|9{ zh!v69b52mcifN#K#c}<}$yatmYWSCytO@ktJ=E6L7RKFaSf4K-2$}FI zdXuXswX>Y_c>nZ>@%ay02}cO9tf$|qoIu@;4-;==QBsNIq3UT|dH_tNw7RFl?J z)1>eH{@Mx2Uy%u~9h)Q@9xB2INtG=r5<8`ib6gO2$b3?SZj0j$4j_yl6-;q*{thvm zwMPRd$6g!zwk5M&smTcm7P$sBJ_9Z=gUe<&E`7b;Zn35Azbt?v1es%E$Z_%iz}~;5 zSbM-uPA_IV-5$%0{(AF2yp(1aDWet^62c;0%0Wog0np((gnm#=&Se!95LT7Xdc5+$ zr{%#GyOamE3(VKy@LS6{HpR4yLBsKYI*tA59=YwiAjOI+WPu}31F2;=&xSs zf-r%6sCGkAQc}J8_~)Zs-KYs)L@P`cSoF-wjC+^JLP+ex-KhG#%Uxzl`o<>@)+QD_#DU>O3mv%7FX0-p`#0ZEPPLxp$_ z+oqiGj`)xZOCqPH4vLSbeo|CjyHUdoHWu%m#s|=VRlu9iABs+p@#KSH8(YBGj^P4>?V70AKFIo@fNS9L#*=ZSXtpU{?`vo$(VuXq?%%=bFDe@p(X z*;L4=Sf|(es7GloU+3HPSGBhS^cyW7V1f&G(<4Lp9oUoC-Ji5pZqm2jZh98r^)A=+Iwmk z!WS?Mh(ctiofsL+R#g+Kw6f=qHxja z^tg<|h(*rW80W%;t?Rjrvd0{l$-O52nN%d-fUGc%E-yLa!lE($S~X&HFODkoL~^`ZS4&u`KclIJ&DCDuFa z19^-ANPC;Mk=4Q^+}gkcc2+>;-s;c(MrK=094D00OiWDdot*(iA3F50Zg(8=pSr@u zYzO~HzB9>=jFj{qFd6`o`4f3+@8RruCr>BBlsqYT)NmF-Xf8H@)%^AR_umIS!$!-< z3yO;3hc<0F^s#I!7ilxR2@mgtN6nJ;_Ly2(QG%_-{_-e`1#$Ad*T=W@Z5He}ttzaui7hYQ7Nyg-}J06ZC zEw-vrfKK=2X$cd!K=Zo;1{u$L*`Yvojej<3Xr_R>s}L&7q48N6>-YqHT@z9jyUTVk zCP3=>G^Xu!f6|}EiT{`~(>H=)`K`m4Z{2T`#Jbifgm5|%<#TyuCVec%?^R3v$;cvMf5t5 zsmA>1due&O%&sTl;o;%-?!Zs@8iz|Qkw~n`7Ur6TZzaoQw6uxY5bayD==}_%L2De) zkN{rB^E@fEpJ~1XfbDi$^s_(Se?RIh?QZQ#oV-|Gq`_(_V3Hp z3x%)#06UH}rys%&Y_990k!N^++sbTI`G!UsM&-n_9Sy#s@wvmz&24ISHh5@t^NS_9 zJJ&UK_RIA2cf7oKGF1Y|=#M5OhYnnzfC^guRt9$%xh%5qU0g~^*lAvbT{)o<0Qb_w z87n4j4jus{Z@3>md zr0(ZcMbw;KT#SdmFY)Ld;=$FdgXZes?CiznO&?Bj#uX6}0lER}*cv1i{6j;3dWS!( zbaQ~ffQB9_o}an8x*F|O4PXUyF5H+lFN2xCUwsoCEPYW`BsN=P!A4qI+Tz!w9u|nh zx8RFxv_WB&M~`KyG7FjS)tME2D%UEtCmr|9y9yK3*K_H^6?v%cL`Q$ca`W`;h1@;p zUIo@eLY`9Kz$hzQXZsKkGu*YecU4Ivdf=K0p$GHf?^)M#LA}Q(K2E4PBL;?c)7ASF zxOL@`EiR-tI{mOuG^%3Ykvt&}z{j^PE+H{BJ^iX_+rnp%eOn|XGLjXBg9Zm_;2T7G zjw_Ne+bcbmW|2;Fc@p&!x5n{c`xzG4jdy;3eHr<2<6(y4*w#2;9_S%ix#n%r0WiKZ zIWyA$7zcZQB@fY-CPM(#h85fwKo)P`y=$y}$^6Mf_Uctq2!1)X6hOmqaM+^Y)p-Ya zI7Zl<&vCv(0j|TrQYI2+qCOcl1RkHbazchO9R@L=O3g-`z&Lt5ylHoi7C&I-HV!0F zwFzXE+z-o2OD9+8<=pmRqT~F+azCN=w|lgDajhmMLbL_iDfTWd*F5)hbt~OoCL|=o z|AF~*qd^>WoOI#M6o`NyL(u|>Or6;)FkcSjSJ~LuINLKVE$z818T@#oAgqu6+FbbGUz;@IP17;e6&MF7u z0d%KHiXI>9*BWA`)QyWjpYABl*0chAVrNeRdcwkzJF{_yV{5yvTkXYk_XO7vbFkeH zkIhA=kB&CfpoAsOS5b0nj_(e^ibCu`mze1|9FU{22pz46#bu~rWhM!3O3Q08@hQpsl(%}+25;^tgaBvL(hTzB^S+hU=;T3OY03y&; z$wPJ!&oR|vn+OKonk+=@_g0s}_!QV0w7IF2deN8-_}E}VLgD}F z)gmkd7{fJI6?9>~yv*YUJ3cV;61&Ec91E%_@ zoG1iWH5JC~APOFxy;d?|+iX^`6I}xDS!7suYk45=tacYFVY2|;rTruGslKckTD_1~ zjj8&8BKQqKuoIT5m=TC5^IG@_U=u3CgyZ@U9~}0MMDKMeH3l(T9u<|Y$}=Ag*j$@4 zrA0`HFTrdeK%ypV71=+gFfk0UF%~Xd9KXS-+SC;c3`+#k$GG9??haOr0BE~xTDiJ_ zWParvv2M?I{sd&M4FkBK(-|FX=Y7#Brel=+o&mueKp^2%yt0Oyli$&I;5uC1clf{I}|M}XYvY-|w zPS8s(sj8|fvkQyaj;7mBvFv#QfSQMy1DbHf(Xp{INcDN6naRnO;55LZIUYF5R3CC3 zIGceP1_DHafDsN{QwS}=VD!)<#4bz(R-{)d51ky{qd&s_VE>Q^*{AxkEA_o1Q!aUl?xmZt-Tuw*2iC16~v4 zr#q(_g0AaVia!Ml%ZitUW&00Yb>Iy`89y((XM@1Q{m=K~xhqQV$!&Ec3QSK=bE%67`+EuEzGMNq6;7gBnq38 zQMn{tl@I(__PW_xGz#I1{eRK+9nf6=|G%PWh>CAEC6SU@MrKJ=qNpfBh>S>fb}HGk zkX2csj1)gcJtEnAb06=<_xJzbbM8I&+;gvUzTflxHanK0^cK@uDNvxL9&9%2cS%XHrW_8uyMBm8 zd476w@|i)+W8yp@S)K3Q1_$o%Eo5P1(>?j!o8ij+52~OO$k9HeUa9(Vin!wYw9tTG z&uoE2`(V@&>t{Dwg{OyGg3(2gRaOO2v#kdEOEG=`7RhQH8O$ZiaOj6#hjT8g%Non( zA~*y9yX`~KmOI4Rc_Mb5wszl`9(f)KA1t_$69AuAzc|Bn+$w z5PA%|ZBEV< z5c98w`;Gu@5o}+`jB5lQFj(w$oD}Qem7^d52irC zAUemPM&cS9y9ampHQX=C(^14He7vvnHoKcHS}1JrMBA|fcq;_T@)2`41vKy5nqi+a zTt&>-+K8<&iV3&NC8Kb@2EZJcu@|@?{;Tij&)+cX@KKt&efe~BV^v9sP?=9LsHazE z?UyI}DrHxf7uMF250+7uq2T}q9bn*s)Rw^H3)+dq&Mhm8e=DL_PT60x6#3~>;iX)g z8nUJXxA<^;?dIsC2fm5@vvc<4hS9zvx0TuOiVGd z9F=06(?_U|M^k|2MeNZAjVuoH8-%rda&f5XYoQAt?x4(Uhr#$zyQ!MXBtC4?RECCJ zj*gBuZ>FD3>kyx{0b^cPUms}EtFoFSa{W_Wa1jTKZi_mt6VgV7j zAj}5b(fIhewY0Q+7=(5ztWFgi_uSz)S*atnp#MQ{;Wlyk;B{_ft5;S-D5Iv=xy*;8D6iiKdTC>d&A0aXO zEk7^sM`I!%4%Rs37%8LZe&(Gv_W_Fwn0`IGnU1%5dax16b%kT!dR@dCp7GqVS3%*y0HDKH*%sE;@d&m0oT7#`$%dW(pvIsVA4CYx zr8`I6rO1QU+9HGuslW=acx?OCAxsY2>ALkCJa@oy$9FYVmxB|YT3s3g zJh5L_ceO=i0=&Cs{^Q%B<}l7GDjvc+Rkj{GYOt@rD%4-fX%SW9r39s@pmI9{a0UU( z(wD%_9lG%?WM(MXFr2vO@i;)P_N}dH680VhUl1RDQ|Cd{ZqJ;SY(UO@U{&{$@Igt3 zkPUWS-Dj%I*ZaD|vUTAUY{nwp~MYKTwly<4TRt}+-v0-Rmk?`s_Zop9`pclwzrv7~vWJvym`0X4rY z^f;;qotCpvC!8bvU@%H3;@1`y2G-6MILhH_JC2>OlKEkZ({^EhLqmS@foqSDFzWkE&KtoQ(hg#C_+#2GD-XvCJ1w-GzE`O|Kn{RZ z&t`&u=sPFWky{xHG@>k#Q}OQSOlCH&l&0I-SJ|KNpNl>T@}>(pf<5>LMW(iD+fuj3 z2*de@A2JDN#pk3cVQ}wzaXn^tDs@oTcXq}UI4yl$%Zb9aSQ@iE`}XE;+)>CNOFZHG z^SE5QJ`NwmaNI$9TOdBt1Us{axXQjNHCOamH1uH)0bC(j)q0;s7Bf(~H`(5PeotYy zMEORr(1=D+K&BSAS}G5qj#%dvTYz@@Ge0ljWmhI#0y$(+EfEyq4(2u%*RHNnX3_Ch zCl60zBVr%+oQ{_3TlkcrHz3~O?dj=s=ivj1B|P9#T&*gaxi|tML|o*38JifyZI}U7 z!wlV$O^-&DgJ+l$-Rv`*t^h^v;UaH@1Ra;M5>~p(3+SUi~HuwJcp@8Y^A2{A+n4^jAipe;|;KoY?&rlKHQHlIJ#Px@~7SUPgBs7Er2#V19<0 z&2>J87?JcN+7>bwsw)A%9#e+Cy{5WAE=B#+gd(aIjh6Uuk z#gVU}e0+T1lRuy=L5mtSI{?XuGSpOGAtaQ%{#u;}a8B3oaHMf0(3`HIp$a^X zB(0UL#!a__(LKJh9H@hYHVPNjw(Z-C6V7x(t0;==#C{p6RQTD?fLVM1o(NZ%sCX{k zyEbxjQlhKrP71cwMoAw~AXKaNN&vP4#lL0fQHa|ND_GoETa|>EZraab-~GGHy;Xdn z=ODWPXLUlqZ>!Xr<2n+2^1A_T9+#7o?EfgYs?pOEWH@7nPYWOJ%Gw1o0f7wkXAp;~ zpbou3O=HgT>DI`%3m+dHJfr@V!9g2u=W0*sNg|Ht{k<*m^ojOU)ce#@nT0iW;J4x( z7eX&(4IjAUo{O7a0tkk{rcIurM~+O6WJid>Rf@Z=4?99;GKQl>YUohVSv`{g;frLN^x9^dP#|}VzRB(1ja@pz%1q!z9(#zv|L$ zn*yv#sDcitIY<3;#x*4BvKn)(2H~L4BtRCik+S*}ss}Gaubl@!`Y<%AMAAE%L~dpJ z5-gTU9m=Q8$tc`HQR=zYvc#%&Nv;`{t?+?}XLw^IE7&AVM1gk-n7n(T@t7uQ-!BGnr z7fXK4wT)T14QUG@Sp4znDw0IR%nKGc?I-)XUDlS|M%!~O`W5LL6YF#u;x<9F@OY2B zAF!6Y^ce`E>H5X8^L9Y3OpfqWyIs?dUA4=r^oDx>`S08Bt)et z=iQHBl5phv5*$3P@naAxsotey4^oLb@&?Qq7i@>{1=&nO{)>`Uz9Y}x?)$^dK1?F4 zuDfNWt`0Wr#Sc#o63mzB9Pv_UWCdJS9UYxk=EqBB@hz_kM<^)1e&x8JhClcSrr3sz zUJq!aA46%NhungQ8c|Vo>{?QA>LQkl(?*=i(Z|tK+V%SW1UTF9QbP^DQjKE+&xn-- zoaTFAa{%{wS67`KXIoxSE-n6obU(xzj!#Tvx95gGkl;;CHB)~%NIe=If@RRtrE@aF zYQl_XC&fGKE&b3bBD=^#S(>F7uLS7nTAA0w$RpNXz&U7GStr5{(Ah73uZ@Zc2q+me zj^I*e1#~mAMB9OEc{&CrmMS`J z$I82#XjESxrl;gC;6rR^IAj?JXlOY6=tDb>dgAgi_}v%XqQ;^V{MyL4PwF|f)b(N@ z1EBlK2o+rX#g`)7>gl`C&FBe7oK#TQ#mRXe%_>AbN{F-*dTSiWHRKGyc);@)^c!gC z{tG?U-a^}0Qe3=_i;D|4YsTf5wh{uD`wCCFJyZDh8~l}EdQE`S7Vwc{n}QPXCBPe5 zxHAz5h<3)nikn>-?vdk;j;1FTv!o>ps#K~xW&CVpg#VA#6LjkSy_>p zxBqwl4h9y-pFL~~OxVC2yLR!%p5AW1AMDi!D3sSl{X>A%lRRe$usUd6Pj4^SQoHVZ zyC6V25xOU6H=qo@yluyIpFO;Lcb@3h@YQfKQ3BAszN`rFpmT*CPOYjmX4TavJo!!1Yhnk#?EvT3x>8}>R<>kTcl`_AUnJ4kH z>%%qc3a|wr5J*m)j34W-FO2;+kTtz!TJ0QOD$vlE_=NrgVn^@&Ci@rr|No5V|L2?j z&)-Pn{su4fPx_TXdt>j@5kE5V6-W`V+fBFl4xgY=gFZR+YG2^Y0{S>y+hIMAv$I72 z7TPuspoEY4`8Xm%9AKMW*X55P+_E^8S?7PBsKm=8HqlViPJOScz}~}i7ss#pzvzSt zvKQA=&tsq`=J^+fQtNzKB^iS&LwX(u2k!w_HRe~>R}&G6+q7fC8G3ev)+)$15mn5u zuezO6!OT2rsga6d{DEjo9{+6W1pDRUsPCll@*HCUGo5z2sQz@zW@j) zV$cJlM!?VOxID3ogqgY8^xJDs)LiQV#BI%#q9u&RVlTeT-Up!R>C>m+kih4kzy|Te zb&c%@o0a6NIa+%a#RRU!k-y512Aww@lC2*%D)R_z-2AZ|sY46sYg%%qxE_m`uPTtr zQ6R53V7{Em95Vg=L~0CfGJ$ZP_3QPoHpHDIIWAwpuOs8K%Uvii;jZ3F>$0L<*}(z)7S&0u%?Hc+R9pDEX9xmE5WW&lR7;(*;o zbGs*BJ1`br{ljfuZeRH1Wcy=$_r!z+3E`Ir zt}I2@;?}p#5~Vp@kt~1*k)&zpl8SE(2@^;wNW(dYTc)<)V%uZcUyWbH9Sm9gQFWf3 z=&O!J2)|s1RGN^38joQPtT=%(Lm-x_tVY` z#7-r?IASGdWdwil$TIShphWJ*_%KBkJp5O@;t=6WlXyQb;}*49{k zI!Y_J_{}@omQw!}?DQGUsFRgJ3q)AX-~dz1vd#VEZ1leOU6` z?JI1Oj6wTlOq-Gq1I2(!gLv;em$XnjCqbv7si_$zakuz{+fVV?y@} z<<ISB&BQS8;%0zt=gT@Y!Z3?-a95sy zKuFZ-NC@nqL6Qzsuqw#_71Qa$>I4Bjvd2k;IJAkcK%epBO7;a&xw#YoD-h>qgdW*D zRBOLHp#)V3!Q?_1* zzpJk=ME8F0K?Iuj5I8-8;BhKMA%3p>owW(^F&?=1;uFLzf4&y#?0ejFAqobdL<*A} z5=lqP{gV!-QlyNcA|;pd{a5&HP^F6CZ*m+LZY3K+AOu7_f!OS= z+5T9(f{ycvwk(8(p}4pmoyA^mZmd&M)Yk;zrXAs(>ppY z-%!3)gk2qUP{RiPRA|5!KP<8wy3UUf_$La1>Q?jSSk0VQsHK5_x-}VpM|=)szT_!Qn`J;l5s)3CPI{KcvNJ6Q zl-k*5Lp;vL`t8{D&pK7gjViZB02W0J7xITRj;HL6<>g&<0o7-=r(A zs!jlkH~E4kdJM!0`~Lku{cb>`1+b_MFhxN*aE8+BhcKyQD*gLMm#}};2KJ96CQ#R@ zAVA{p<-9}h1l_KG_jH{fm-9YC7!h~yiNZg5nRF!wp6?2ORq!C#u)mLq99B;K(^`(( zXe{nM5OTRCIn0+DCH3K+w2j2KJHHy5zMQzdb?gj^fG$d#xE{Q!kq;KL-BjdSe7&^D z{oVs%(^>7#Mbpd{eiAihW}Uho=eE2Zvp>9kRWgACe!nZOi3MoZQHR}_w||s*jLfT` zkRLe4#5IHqDOFjjDvng>jB!g2vX<1;j3h0sIDhL) z{u-uo=6?5&9?yFH^6Q6IT%KQ7)arLkb5V$PyS^)s(LQ*7{2I;oR}7Vd8&at%*ZQV~ z$5n*)L}^<*GjJxOQmPHP?XoXtzi@3=_V34G_;41WLheUsOo=HX(rXf>n9GoKA!R3= z)o~7UsW|!SQV&JcApavGAV3cVK?smQRK(W^yE3Y*K9qd4`={9vf-+S?EuFv!X>G!9 zHPbw8Gg0UP49S6h(rXA}3cQR5u41xuonl9zL1)kmJRSosLiO>HQ#kfc;@gh56Arkr z*_+;GgK=bLiF&R!#)7q@+Gg_k`EH^O0zYHBI2kXfBO?u|#L|FbxCG!Y&E%Vc0s?Mm z<<`jnAHuvDD!{9|z*t=S7{a-07YV>=qIN^uN+@a}uRWhMc?4eSxfgp(zR;;>_M1S` zU|%7O;_fO6huJ#50`&j@X2V}I_FNfTe81&Vn1nq$bm;F)a${Up*>G0agk0_+Lz5tv6ahpI|i00lWu$+xAYoV={d37Ho7WwEOwn% zRj%C3CFwxz2?uOIMrxT1y`+iCn$53#gS=nnlcx6D~m@Tng&y^vF9j z`1!dKSK3|t=eO3wMh#Gh&fdaj0*(`XA=S|B>5b)0P4~D}Ia^v`S3@`d9>9rup4~~W z3~jsa4M^uXhESBZH@kZzO+YP4qY8}d&tF-Zi?d$=(btE6@(eqnCS){fnIwaAV%ATH z42pj|wn%v4onHd5hA?J}D{4S~$SZI?lfjI9<5EVC2{^O+?(Xg@;b`lj$Wny4Q4t`Z zKm^N&hX?40Ttgt9d9#=Q0Rj`UpO!_~bR(d?H+)GV5iDP!C*E_yhh0jln3cA3bhhO= zz9VwdA+5mrOlf+Ynm!3BU8z;}SVMe-x8!eA|07&5khvme_#WLaj zu^FPdTpphHDb)FOG6O@xWF~mJ1|F^M67&`ip%k?2PH<~DBmYWIrIFTw_qT4R4U^ZfRB@ z!stA29edhv*?6VuX7@^~HIKBS8xEYDDtoiP7qGb;PP?~~Xs%Ozg%p3}?dqKQoc3?k zm_#-p2ZhH(W0<58|KZU=CeWYX@eHALK>a}viGhW!ZAEMAff`vkMb14ZV!PK|ZoF@A zj{+;jk8n8HV7I_26N~%Jhw<>^A3s8R!HxtVlWhBr9lB!>Q?o*mx=&=PJ!8gw3{92AcrQ#=OO(O64eS1}vZ&%$V5=rMFh z^2H1Sa7!O3p9I;3**w!fn>;rE^HIodyuxw(s0m`wW!{yk6)IAR z>*?we8cgT{va(l3vR4Rv|A@6Q{{INEi3!ivw>RR*h~eVpz4ky1x)&|S3ArVo^RN|w zMMN?1DjV)%fT=3U=UdLd*|2`TvCu^tZ})w6%J|^o;nCBSB)BB50?S>%W)^ zPpr&|L(?J&L4rZs+f76)GM?lvu}CXROTE!H7g8}GPOVuZBSN#g#O9fivbJ*N_S~pR zOyJuat+x0qB48Qvm9PP_UBDLk0>wn2RUWOw zj@2pWH^YSmhnLa;OoNP$xWBdYv}Gh%f>+niO*;D%cReVn2Y!C#?d`s3EL#ls!Nkk6 z^RyTLb`_7b5)W!3I*SBRn6%yf2O(O*6oZ1NILpBI;8|WP9Qgjd43hpQh%4oezEmJ# ze=#vLQwV+^H`M+KU#kR&MI5nz@m+P>IgE z4$rmz0RxWu#}91%*s0q*em4&>zxD}S-l)TO;Ig{5I2~^1U`PbMBITHveW9z@D|)j_ z1g5o`>hMg=LHW)j2zV8_T2)Z_;{Y1~zMpQ?m`#G<^SME-_m2a%DLXp8ztS33(@!h3 zgiP{Mc*fAml{PlIqy7=F=;6St-Jt$vHqg~olyHVgWxaKP%)~bA09VdZ; zH8q5>O8@NZ;02sV$+GAvc{Y!&Qix)#pbq2OX5bMKMrTG5M15~zZued+wUYXJff^Zt zD#RE7D7HNIT}X~wSrqAXtQu|+BA6)b4f6Ts7ZMup9=%+3;MB%BN`GXU2E}z5ytSDF zdPo2l5UBs0GG~@71vF4fN(!)35bAg=x!JX57Q}VDsawTa$%DN|0?kl;p1lzIc*x;7 zMBg$&f(A<(=2a+&59gw3^?J7sf=PMroi&K*-RDTeCkmu|&@5rO~HHtZ_ z`SNm;_^8o>IfSB5PKVYK1@>4$>-*uB7|1}j5hWWqgNez>Q`T>*GI^G(w`=BSN?1u7 z?s-8wF4Uge%@VzVtlQ8}%8ICtfq*-nL&Ifsdo2G1Mn#C>RTV6pU_}Le8CVlh*t;^v zgo`S)pYpwihdBv>IAJw$D$<7*%5ynHqPOn4qLgF*ESWx_R-Wo;Ne|F!B$d0bK#@gQTc&>m4tK5{K*(1S zDkG%J2;BJQbEq@p)WeTJC&y$a1^c1Xh4C$d`x^@2ZNMUzuwl$hJ69!FS69)KTm1aY z4NwuoH}av9+%LTnV)Hc=v@V1q@8JM#K`s?)JE%k?{eCXbo;{h=pS7Cna|X5uUMzAdgd+# z6>XiScZH7dcKg{6vQ58pH0#)K`vxT-0|8?ooRmOhrzP#+@TGk^2lNW^C z+!KK-OD<=ohJYG6!p2n`CJ<|c7(oCy`XIuRzS)CGUzyVw@u-Z0_`)Bp>{n@jX0gYx zav*MY+hY-Bsgn-4qK%|9;DkUCbi1OUkue2nVd!J;6Q(Sn(s=Sp6Fp_{?1?lb=PSK2 zKHT6a48)62@XU|L5Hc=Md4L%{e)@_lcXdS?3H0?q?-Je)z;J{_!f*jS1FyL={`e74 zW}F6g7%nnqiH#~CU`rhmBiCHFEH{~SB8#F`zFw#3x?rYI-;uO_%lB3>S4uB+yU3^M z3BIFoKJmvL(H8T%Imz>br8$%%+)_)6i@z1>?!+7}^g@V8*gh*OuVo)kDtX%~J6qaj zSafZvQ<;)=S%9zrLWvs~7RJn&it$splt6w#nsO$?Tn9@S6l{VYf#N>Bq}G-(wfAA(v>c}fi01hCC66`zC-qVjrn)cwSIiaCAo z_C&%3c0Q&Q*U5L_{uUnHJ-T ztFS!60lgD>p4hpG0HAAcI5Ad+R0acRQ(-x8nF|FbvB}p~*?y_{R_0o9*`AqmkUmh$ z(pEm>v2l`;gTkx1mwCS5|G9(oI3E*LN0;%T<5#3=a-_2)Z~i^B8VDEMflM*`g$cCQ z==HDQEDIB}JOYhF7kF+@NVuRH-9{gFxJ=3mt$YGjbEE{rM`$r1hkCnvaMM+V3gbFF#Ur_2Zyfc%=QM%6%4}aKY!W|8R|wYuePFy?Nx&Hhd+EY zZ~8MXaX%L6IPJn!LPiI%C&G>}d5;|03c*vMyk()JGKpl!4H+n9t+i;!MA zlDWRdfQImVw&i51`kYJGaTE757Yw%>dU<(zq&1>WTDwS1doN!NEB_NVxYKuWaFljr zoeVAq1Q(2(8`tw`u=6<7XbAk7u$qAlhw{;nuTb;j(wGQXc|KfT-w{Iv^@afklsyJQ z5~%A4-@@XI39MR(ZK_jg6Jk7rD_pFJ=R;f^$0~Rrp-Vj@;h1FC~qS4Fr@(QU>^S|$;Wda1W z{SGxOatDpyz#IvjWoS)rtROaa|02JiOLn}+wvFqLjh#t8v_0dgt5pD}oQ#*3)x-TP z=N=!5_dEoK*YRlbhO%Q18pKspH*Ok?Xm?tB@FI0nz^>h!>js$pV6PV{yz`OQS$ugblD}noZi{uj9rZg+EVO^ z$Q$qxVV850fTb6*pF9uUC^6Rvwlcmi^`wEk{o3&pTF8_|E}aM!vuJ>^ zvq#BM1pVRIvbHzijFS)nsU{MYXw`WNgdn}NlwP9dT7=vciQ3}BW9Q;WHd5ZFG^6K7 zjA5z1MMcd4aT?+1c%!B^35{<|y$5f}<&xPj`(9gF^?qwV&^O+H>9}^mRHw-=R5`Fv z2%)P-M%&ID7xd1~rWS5}neA$D7*JfO;m%dK*k9A`KOcZLuHD9DNcwwsx6-j=x(U8( z=0W1Nyr#kgIb193T^3|4*Xi;wB0}RaMXm&omt?)4*US4o{oTRc1KdZLZH6l^zSxw( zQLdFJV?(AKQhTyv*lhh`!i%u{+a=}ShfX>=aYSZzpQNwe>1X=5c7aXApuF|>+w&m& zbv(1?)UR??kL<1n&gyWt&A(FLLHiPYO@Y=l*ZeuK0ggpPyf zKZO12X~B6~yWigh|F#eNU%U4H^Oyc-mj8ci4-`5IMosW@p?;-G9||AYxsU^Dj{x-M zzQ!ai8hm^tpeyfrco^O`qq#H)8r?&Pu&`}O@>Xy2p(?18oMT2lY28`L zU#AfMHF=ZYaCSX@4S{oNxB|#gljHJ>h6ZT|vtt0fM>iqmcMw(s4-e#+6%9iIh!Wmr zVAROWKQP#w#)lx?Y-U`hawu(JzY@i}lUrL|G5Yp;6A~;CeM{+zh=Q9Vm)C=i=AFZp z+F?JylB(_B0}_$6NLN7h`Pr*bk9~j$wIQ<6_)NK(ZC8K4P1QS)O_h}wk>7>rPg6(? zNU(K%nvD1I^Na8mwt0U2D!RO4iKGQv{E?P-)(42A9@r`Z^J}5j&opj21;nBXDg!ue zrwGp82ar3mHt`zyHC(X9{Qja&QQS&v((HT(!cu}GMV_8H5Rmn8FGz7ug#sB6Y|kx( z*8RO?cpCl;CQAB&MORJN*$rmZR;?Ev-x#23__$OIHE`B|)m+yVZWw*W+8^eu(g)jN zo3H?NNxt=V1TH5im5r)I~eH|YYSaw32>5oDK zLV20uI~zdSD-&E6k{tBGnZrYOuzgG%lZ4Ak@Cx_)TeWqd&9goHMbE$KncYMW1jsqB5x-5O zc;eeZ-FhnvFm((}C_4}%d?3v#9vBcjAK|F)5Zbu`n8JYO8M_1c0KR+k33p~>HN;nq z|A_Thi9KNrrrUmTFcCAxDFDqR%D9mtIS6Ji(OUylaj5sIBgMSK!k7Rbi=gBtO!PLn zzF7W&eA>2`{A)46T*|nl=n!6}gsHjqs|&ZWE@IFUU9&5|o%iZS>zZrGNTsLeCW%$M zgFss_mh#v!D);~xFs!of<5M9I)iwt$&RGVcT z@}LHmF%}u%Rw$j8of}`l*J`+rAdpcwtc?j}NXALPr)%`3cVvVZngJc^CK6~mxL{mE zEIA_2=usO}i`tF6Y1SOwLRo!AMJ4F81|aSE{)n_SyK6UdcGA)Lm)#l~5dGH@tiSk_ z#}<=(jYymqzSChaSPeRSRA+nk@8939N4z^6u|iN!7`DPud;M#A{gn+~Mwjw$|HC3) z0PeR?4gm7R%*;BKEb+PFh5cYnFx?5kwV}{3xWj^pv9b>Ky}nw6^#L$gJxs7 zop}nEC%r9)!6KtO_tB`8#IPz%1C2@pk!61j(>=F&ub%0jx zV%R4?KfkP-E)+`w;fm;TzO@+e$Gs>3bRcr|>Qjc~e6+7KXo31R2SW zy{FP0=6FeXHQyFNCIf);AH2eVC)dyMzF=$2t_SwN6Bl$^8a1SvhWPn$PlZAp0C`D9 z>qz$gbqXzazyXg>Rh_W1`Z& z54d>0O*9>6nk8`pmq7V~KEtXGfi=(7(xiZM>va~4X{K&vIpRa7bsdRu-a_Y>@OMNV zzRZLex~?o0Cc*_o=&c!q62x0=fr!fx+NtYMW#Qx1L)0}1@Z^7>OoW*Lnrs-R)_Bot zlp9;O2RQ~KoIy9^Y@xHHqtlvZ2GJFu@RTz(^~p^0@JO`0r-z!6n6`p z5Mc|nUh~5kbYol%!!0Y3Zau`5wx|E?{CW4?9!IHSgfK8jekgt-f7&~XAfl8|zT!;C zfjR>W)yX+#uwKxl`J-qcM%>)Gfj$XXOXlmYE=A{X?^xk!UWA zL$6S84VRRVQNwX&D*1N<*mxMN#jNlTCn=m&-atSnakL*%BkxecVU5T}Jc7{Kh}J|z zygewn`UE#ZZP92N)E4xZc}GD_j&ho>?SM;^3EoOlDxc>3CK41YPq8CG1$tpJ1w=^t zpJ=0R&M7<#%ya)qx9a7Lv2;L95) zB{V=tLxg39h#rE_%mDW$m4u{Zl2-l^9DDtU@^&0ArXazFq64;o_6W0;YCkPa&dqUY z7eLlG-}C)@&CF2qmDC7DPP6ES;laVmEqsUK5ORXf^D!{{o}r-^SH@zZAA*2 zX`w@fzd&I8OX2cpD>qa{^+u`e%h}kw~Hp#G6DIZ-dqW-+d_5jzYQ(N@S@cI=ou zpq8f9jSma~@*?PU$aJz>xwQ*OiA98MYQdVNlAw6$_RMW}_%!`c7F~M|nzI@qh%)+p z)>4Zl)bbF``3J6S@@xiMbKL0nL(LS941M(UR3)PR0ikX|UnP&OC)cG}D3q^V5 z{_+>RGQ{ou>uXi~x6=C8L-^mtZ2Vsq?0@gn*=D^sKqBEpc5|xMuUO};$6n9n zTm~P5YBPhIQ>8tF@+zhrn?%@O{nl3F!38e$q>{=7x3KW7Nzm7r&Anp{T%(1cI#-#h znzf@;UaRa;WLVSQztJuF$+@=?oYn|Q<_GPt>QQwGr&sSN|MW(IilN;y_4*S;A0Z5AGwpSrQt*f4!2Jv+?_j)fBI_m0Z=}^X^F*e)_SWT~>eJ$C^*>k^hpT%c}Ih zPGA{yGiMLtG&djn_nq`TrDI}>XxbYWwAW47Mp~LARbK8|*)%NFYvpYJX0FVPEMF!V_XV)s&x22 zy;RLrbWr~H+{w1oR@-;m!J$6ABa@PKhLtncbG!TE)j(=YrNXA@Mm!+h)s$2ULT6 zHL`MFUwU~l^yYZNx5FuuR#BI~-VknUYlmacuzIO+9lf|kLY2+1TxMdN7$!cF73pTQ zz2Xe6R|snQI1!vEW;seaq9LMJ|LU+~mN5&7TaKlGsSY2f;sSroQbpm^PK=sc>OA(| zJ2dsv+?&*-#oS9g)nS}z3et&P`6%%bHDi%G%Qr;e921GUJ33%6v5u4-+Kc)wwa#`$2-oeg(LKn#?2rzhs< znpZ@dw`2@xkemwLS8iD+(S6IQd?}V*#Gdo%)$K{6`IX%_`EM(@m}b3JTmOs6rP))i z{JlD-Gd%Y?gR=BF8rM8~Qu}y46UV&#iK(jc0Jr?exr0{f5f4oGQBD~NpC$pxmE_5JTY15eV{2EeD; z`mMN7g6XGLUt9g5XNV&zTk!DN<(ctwmk+zRZT1h@-Iu+muQJMe?gVvzBH3<|*XHd$ zA|C!+5-d_$f1~zua{9qCw77F^~IF1AM zq?RGx2S+@UN@EB7Hx2`k(`((H0XoM4D=-YR$rHD-4%6&x1EbM0(lUy^HStw-E zp-WOu$x4bCvinrf0}_Va!m&kJmhrJt+S$j*yy=VKc4iK*_6 z<@%b{Yof?WHs;G%jeR*dWlXmt_(cfM#k)@=a_oC1ev;50)Ob*#Lt#PC%AGJ#k?CV^F=x&wsX?d{1%p$CAy1- zdq2OpcrVeoIj%E6;PrLQn5*Wq2CcREnt6^74?Mj}ER5Z|1Kmo>8wQ$q6MfSS))Vt!RyX31nVvQGK&Ee|qCuYeq$UO^-ow)v$e4 z2H;aTDzabxdnES7d_?IRC>TG#TA@R=dYj%=R^CrYclrFsko{Ce$urtFr;mT!Inbp| zJ!N@wqkqW3@TW2sb0SNTh1o5pcjYyE6UivVw%yuSvs%?`YGuD-6;-iu>y||4cCLjV zz43WM&YKIQItZw_v1BU>CY#}f@)nng$RzAK)7jUua+#IY^)!j}(ng%DqoeTi#s5@& zr*8qt;`4C@26BJL&TBJ0s&7nGUfI>3pYvfAbWI;ODJ@H++KO;h{}Aqz1I^?Kmk?w1 z`|Cq~5Y8F@LgqLNcSEDrSDO~xC$}-t)#3CIo7Xs16xLqn-<)e*3fas7wUXy&Qz`MT z-wiE9J1lN8Zhlej`c$u>N!rkF_N->gkCTUjsb=gamY#|gB zHlYqjti~czGgdN}Ah!uMJ{()ApU{!1END6UemXy?P<^_^m{+SHD7hVVHZ_-j&A8pa zS1H4_>gr-;yyDxFnfor~?dxu4pQ!3D(QtAQO`{%NW0dOXzzvyjJmbBOy$j=jbKy-j z%flw~5-i^i8BRMiJ}B58oa%6-@UvHxLt$@oNd<1zxa-}d=U-~N$sc%V*!$=PuTyK5 z>9MAd|1@0jPfHUKSruLW&WX7zwahIoS(el`xhp$u{{@i(XU?OrU(G; zm0?#)duu}bsB3M6UWruh4~w(@7r5-eay~M(%$*rb;dKohAY==(i?WHddHi zj6d(GJI!)vhpQHu$JB7Je`A829`?miO-Ir%efn)YW+WjzTAy=XP1;Ou*w8aHBD-)a z-qXkDRu0sp;kn~Ne$3)XXu2NflBR}G&{`=m%X#s%+%^;bPlakCJ1`*fico~2?Ti1c zTdlWg@?;g|rx4eL5HqIKmq*XPR9 z@m|UKSm7O-tC`tiYTA-jweU?}P{?wW{r#R)u~xGgN;$L@(_&l1tot>SO}@cW`{!%U zd-twgp8^A!mM0(0R|GE_&Xpk6&B0`H1;L5-oysS(!fMomgBzQgO$7rTJsRV`ckcc< z=}9>=H;Vwc)194Ue@^(o7dEK8I%w@Bf7V8gW-cM{eUOS~-MwFCed3!skka-_xnH-s);y$@P>DsGny-O2ale4o4hIOo%5@9vN2QN$2 z5U|jA<0WwbML$2=v&&lN#^Pp}Yd7QKW@PoCrvzXL)d zKDQQfY35p9vEnfhe7ZQ!tBOl29bW(i?}c z2AsMo@2reIhPtdbH|IknN*#y;?7Ke)k~>d{8@mkp8MEkuFrHCN6`tIdeu?I!S8g=% z6F{DVPIv3ltkYP7GZOU(UU+)Y<-RQvZ+GnVQjI-v&`<-ekNL@}wVXDSU+Gb1;^rzr z592sYlK=5=xyBFE8#^yAmFwNR>w|)CxI`QPAbtw5=NCr7uVS&K_~GR&!%7@*SVDTkJ2bX=QUSzR72@W1$Y?ia5%&xK>Yy zQuk!(ZtA!|Q9=oeqRv=H z+NC_ZO6^gr0A#(`j4b|qG{r!9A}IJJV$oG)KK}d=;jc@;SOhT+<^*&JGg!zs#uuRN zU?hogeDweb6b8Ea9g6NidYl+ysBc!x{n=xa>FPa}-9uz&^=KWu~&r}cE1?8Jx zgERJOWN>i>(b|$l9PW0br0MPLMQETZ+H>`HR){5-sC`){a*4+bldSn|hV35lEPQU! z%AM^6*#a9DyhdaI4SnbZBEjw4n&{bEuxLyHq_<2*;ZoqdEmCDZCtD8;?30?RZUmZj z7pA4|kr5&V2P$D6XMJ%gC0?`1am)kBO|I!b7iC6r)9AQn6(ieF0aBJ^gJ z&{k;nUxG8KaK&a{drZ{dwKL3?=pt-FI&p5(+_RnA7w914?}D9z^vO~8`$?(UP};#F zi;<5fLJP2q?B?1nn5CUbU5A=gv+k&2lmf;n5(~M&@#t~+wJ9=F1P+(gM&%-ebpxPC zxW2+`O(rIiTzKPO=r1=S3#AGIil{Vb=Zo?Cuz^)T$w@%Sv#sU;OQ-xz{va9lXRnJr zeW0%nZ2=}B_(Ag*4PacnwY{w^Ovq4Jdd-nUyHi^B?UN_F2-7EcC1kf~W3JMhs&)Ha ztfwwL=yaO1e%y>Pkn7foai4qk`gCq$A|3FfSY*wGDV~57yaw4X>z-p!2xj{tRTc3! z*N@4Tm@Rbl^wJ>2ofeCx2gyf3q&&dfCk$EsIWX<%iAW5}%IJ1~1eQ%KPi;k-wMz03 zjs_@|5Bktg_+`F?>;Vy4fdE?xt3H&Qc71`jjLh~F-0XgTBU_vxdO(7Z;H)m|^>6OE zN5|MTI9Lpw(O{xH!%~1lHA=g z!us||`_f^&%{`*?hS02{Ng_mQu%qrf`-B7*1AUN`42-J3?|{CeiNqUwjYAS)$HB=f z{hqa$a(Jp)6e3+>EDoWvtIYy4_Y9~YBu~Qdmp;)g+l=roZcopXqRd7fUfiuo0}$Ky zIP&(wQFAHFG-ryzit`6_ zw9^#tsGhfI%m?H5rXu_|Ow1dQrf5sDp1eN+ z`Su~S;SIZZz2^~&MtT>Gw55G*8{j1Qcw!y>i04b)|i&F z(G@yR(B$kA5_h1i!~`$JM5Qal{(_bG#g*L0&>`b#|FmlQ9nr!*xr=xvgR?jiRMK_U zL79E4)fskWbsn>%ZzUxqh&LQF9>o@@huYW~;p7)nHNTtkT}b8t;bsV7DDMiMyxj59 z!*B*8VKlPp4R$^K5v#XVrz&t(zQ2BG+qM92c=~rRgx?yk!n^=vNr~bw=cc^-gJ`lI zy6@^LBY%-@_ay%mQ7`4@28?u8n+gX?4% z@yCyVy1HlQvbfyT{?mirWVJk=Tz$N8I!b7K_*U3Wnn2f+N#l(c>4o~_4; z(AVof(D>q#rPT7xoyyWHlqX`{uxR7#$1sTY2OM#@Q<3Q8fRpHvK_UKS*;DFi)wJi9 zIHzjDn%y5yX`ncS;F(B>7L*jgnAka-{)pOPyVjWC3vuEd9E&8#n!+678%aog$2dm3 zNH2761E~WrFx?_|14|&Wwmemh@H%_s*0Mq_^$!Uc7$7B};^V+>fr;!zp|_ry7?~3m zMo$7JV}82vyHTy-n}lVzcR4xj0Ou+(9A*bbKnM$iBl%&Fci-SxH6)I-wk{RbT1!KczIs(6!r7)Zya3PsK8< zxoKVv&x7ak>um~~Do^+^KkS~+b{Mh7ce{(?RJ&k#dbHgmF79}T!#aa!%!aEv=IvY7|NJFJRaFM5?QRtdfa3zwAp9vjTyks<}V9EM-Cj>5i zmo7}SDDw(wa)-KtVDKTM4#16$s0hDyvx=%JZ-`oPlf%z{Gu1C|Fr&hF-8k~wjD z&Kncy!XXPVN$UtzH^Ha%C&s8`ZD%_&%|rwf;p}+gxUiYX0KKraaLqXyH8L144D%9Y z=C}TNURPJ;{kzs1_O%bdPX&kQBWDUyX?|$gP37Qt05i^uDxl2xjiB{UeMmUqs1%0u zj_hXY@G=y1kV;b_;1*KnNR4PGM@RfNafr`X9R9btZmYymka9lh4)`}BCBdD7`YFzH zMDh->`I`ua+y6{Td~4B5F6mJ45u1_7x}G1+9eb{tNJUhT)#iI@ZUB-nJbK>*6HpESBdd z)_&Y%`ggTxR8E81&LkrzA!eixL~RGW1IyYYEa01XI?}fp(_6mYR0``9l(G;FeVtcxJ_>41ki{d=^(I`(>^E(h+^{saCWEeN zV*KU+9$c*e^k0Wfq)s5+gpf#s$0fO$dUkqxTBkBdnL*s9`ihgy-^QJt!D5MGeFqtI z2$=Z8gvqTo0$1O!fAQrwF|`d-{32H{d>l!4#`h~k!WD7eQQ(ZhDMCDX3!0^c;HVingEz6ogp{b`#zVa4et)UOedc-f5pc|jQ(Hg*F_^qbh4eFK zxb6C0+6H|L)+U8!KI2D>=BWjlF6KDD4fgv1WKKXt?uROLYNpx2Eu`r_5@-{k#)8D> z6@$DE=pyc`+!3Bf2Lv-WZ=b zf1ab$rO==E$`LXb*3YEdSXtd-v~93J25)t0E8CNUGbn0pt!OE@Ue8VhUKBWWV*HNn zfY3k9n9f~)z0}~eQYI+Y_fKU#aF=hyU3XkQ@x|FZ2)1J7{d>SD6N$Pve||oR)1?Lj zWJqxFzz5}@H~xMLk-O{)jWLmue*MP<1c`@RQem6~kpm+mV+NraF^+C5Pv{QjPGM0C zp#>0J7W;RX#mOg7ctJUfoSaG|bM`+<+)alhAIK>bu-pU>W%>K_A;_;k%JzP|eLgM- z)ZgJymQB=(kA2EE*A5*i)d6FJcd`{c#tC)xeE~c6v0`q$(^5eRS|EgS53nGSQ%UUx zx_%^Vm0!CMhq?((I#g6N4EDZ~4mP=wM_6b>=wMaaOuG-`dJ-iL2pl>zlU(EKN_3F- zF}CX!RC$I=xE>oW{L0fOs>~1VAEyu2K}Se1-f&N{gHBIM#oKpEMIWm!e3l{^DxbTrY!(?U0i88uc6Zk;mk;6lH z2BBPu1?z3(rvZm78Zgv%g6IE^!Fli@|E9K*JsuSgnhi{~&Ouidy|yxTnv$G`=;mPk z0ogwXe!V-je09jEe5W_l!sG^G=R#$uI5&F5^MQiBQZH0xP##~y#7&5x8A04(DC4nX zc~x!bYZ;DM(T^2~uY)=rvHR#ZYcWQH@N`dMe{^I;lWy2d#6m;MuXz0U-OToiicrWL z#^-zA0ANI}dU)Q_=z2JMl!-`8mAHL4qrPJgLAdxosC)BpEZg>N^e)Yllr*9c2?-Gy zE0R)*G7rg=WQdSiqauVPb0s_yGH2ExGnqrkoVm>N{q3jcdEfW<+rG8dw!Uv$f2_~8 z_0&_`_jO;_d7j5{?8m%A3>&}z70q&sM7$5mCO-%5l#O>)A7(n3N2XX&3}j`iQ)>xK%1WQT%lFp7!*GJF>B zDlO6qzx>#Xh6a|asDg(CyonLw;jX_bA-Bm7QJF&Yg?OOw$bN|_am4=yS@at)U10H; z=rkt;9Y|$*n{#QBLAXdS>S^__5{LhNmT%zyn~FWudJtw-Qg81mvJoOS>{YPPH`rvg zG@{G^40OnJw5@As$g1?D^FPUs^rC4J8wzd7fAfresJ?SaOAT$aayY_tcYA<15B)5Z zaYoj1ETg>s&z_yu)ZBxt2;44V+FiuJGK1(UVY;>ttP;e7&sa2whsWsXRN%uQyq-=j zxL6->J&l5bIWngbFg*_68nhR-95Y`-?5?W1c-wA9-M@b5P&=!m+fD%}-!=6qU5Pmd2?iCpcc5PY&C z7dLpW!MCy3Pk{kB>&W*!5KT2dSfCBQObQ$yXi)Va&Z!w3X>a#x8O~qoCwXFaH9#1s zK8Sx4(pxtmql734t)vGEeF~DuYDb1p9P(!AqB@vZ8fM=wmu61wH*3v3{ru1Pcs@AG z!^4DjM|g88@jnnaM{@|$fC2%2oySJt8k29BERq)s5Ezo~JKmDoPupjxi&~k*R}Ks3 zwJinT(ck1Ir9Z=2n%}-*!)VXO*MMmtLJn&aIaW9|Itm@dRE*|KmBS3*WBp7z*4BN<*)dol6tAunTdxNi zm>WVH#_V349HIKayb(NJb24IKE;va~IO}>{8pm!A+_mRs-9)|7&!ZS-2Vb%>Fa<(WgAsE7D|{I15ql zYu#NHD>#$JwHveCK92VZge0uqG)UM1(Ci_Xa0k+kBfjHD##n^}z9s5nL=*+~m|IXE zek7Esol{k^v75oHDlQg!SN~>%^A;90^P;D^6>UcWZh}6HTq%;!ZzLQEq1L6%ddPwsPK(SkWdhH^Rv`Ww2e1tX*xnuQf87m+>m_5G{bZ8?A zSk(YR5{dK|ry7k#cgZ#(^ToS3b*nKRG~n_luvxqDuT$-QOGlQ^I|8AZasJOxwEaYw z5u|&FSkLqGr6};=fHXM@GjgQPyrA2)>nngwB~SPW^I|@O>_Gj{2YW$!9CVmCe-ex^ zZI=blBLlzyWl>GPc6S3CFjGE3V#Tg_SXQe98L7(G`xbWs8#1$@-LAL&h1<%S)%6ydxB{{AyL30Phh3G$KNN@~T=k1?NR zPpdunH84NL0MC)^S_`1mezZS9sc#~5ki;RT!!T1_8-V_zE@0)SQBgv!Y% zk663LD9PgS7lMTU8bb_l>>alFNkK2c1?%GuAtEF3#f7dqZMUh8}fSK+`8;X;cug_~~!>K)?*DMcSb4fBIILmp9=E%@(?w+kkZfV|#Pr!8))O z!>QC=!WI++=JiO%D>6IqlhS4N&Gkh}0iZ z=Z89(?*dmEQyY+FqbS{oc}N79xOlM&{fZ}dSFYazPV4-Higmx(apb1pt-pf3FNpYJ zZ~@Ej4Nr(r2zSO1z$i6yK#+FS1vwB4-Ie2-6frc)=%sFYbJZv5nFNpyk3pZ^17R5l z404eTiet#*D`2u>Q<_>vc^^L9hDm}Pno>GWsrQ~f-ApzfJh+LJ9TNzM%Lr;!;vq-S z4jgm_Q^VqzR10yJ6zq-Gz+Ugu{i#P!o^*YC#VQ{r_JCAP<24G&_7i6ye85KIQLGC> z4-B8%u1#XM4>bw3Ebh+T*3;@oGz_dOxamAs;1VN4YbSSGJ8#|i-vVv4BxsfdZ@uaE*`{p}l*r1x3<1x=Mk zIIjQ>GQiCtYQxyG#N91}huoNbjmdL-@S%b?%uh?=hK*5kgtziOID`Uj zpnj7>FZrn?uX@=ODN56dJ~++8^az4AT)NN_C>1M&S0+8G3?hKqv_@bGUiD1hP$ zOm}{`mPF#b#so>4k(?=sQxT9a??8qn{qgPt*f^wC)P&K{(4g(P6RYqO;BEZ&`jlso z)ETK?-Q9A~+LD`flj50v%+10muo+LS2SgXo3i_hzD_GD1GFJp11fz z87%S!Br8Uv*-;> z{3cWxcu69_auHLgJ)`J5Ff|J`26oR%*XS^NU*np^d1sZkmwd1R6#*`2)K7ldnwnuR z_ze03VnJzGKKm4__G0cl>-_A1dEjqjWNTnMD-#KuOtk8Xi!^R8tUy`6bpz`WKBMS%N69oyi zqPr`@-veX-7=Ux$wsme{N)qLK#oNm!$d|0rz^sSIIM~~{&E6;3N-yJ3^_B?gPTDqO zsG4gx#%@39=m{(HZLXCPb59UZFwuT3S}nw{7DASFaQ<&ks{RH<5Ecl&tZtHs)vJG^ z5PPMQmkaPC8LK+XVORu)LT4bD!@TRga1Dx#7qc5Bs1rHD;Qv|lygUHDVx2vPuWUzJ zA=D5^mfW=z;WH{zP(tvZLoD4XHf;*Yb{V+m#?5IP(cXuBPPf?Hpa43w42R~?Z#VB1 zN1MWNw(lyoB=4UvG0fJKH$>_H8@8X2pe|mq(VZ zcekiBdG*MB?_ZBt&Wu!xzB(YIet_lC_ouJ_dg*%UxRm={#gn{i+3w$`#Q2q!&BU}76m+jtf$NJ3DGKsm6F;S!9BBvye0=ou7@M@&LtT`X`Lb8z_EVvE@3oU$t z^Dp4E9IM*N3Q_Z|bbRh4{Y1T(X@ZSx|#g-$eVb+zwK^6(f zQ$6v|I8Z<^D__klzZ|u}*r)ZCqNg^s+P3AuhvXiV_>d^1>}hCD>D#_b=my4eF_X?e z;*dN>FyJ`=#@PjK0MuxvgVf~6G3d=)2dh+Bs6u3ly;8JSis>8!6q|rl7~yFJLuet5 zN%crb=sWO<(G3ek+!(7>QoyA0^B7@66ggz*8~h?xCdrQGPPOg`5;8q=`t(h*uQ0V? z>(;F&a{eacvTWHtj&-*FbUzWT1=y`Ts&2v6V$9Vt> zOw~B5SLy;{^rpzOZUWZV2}U>=KkCoiOjBEu>xX>(0Zc* z6MnHURTYPvNUDrV_Ms!El*?3vi~2}v1EP7#rv!01%qSf5TuORE5SjMkDj z{f~V|y4AiEm^EOov#%&GFEfOTa&nL356MWIZM}2nqbhgco9O6FpaA5$uH6SbaC+Za z1%-k($<6mZ{zSOz5`r@q{3kfX#mnm=NnOtP2^~U+Vgc`oG$F(4zk3}qaa{l!KoSyO z-@Yj>y*dr7l~I@pOKtVWzrL}cM;9sO+Qr=2elAoH?x<&E=g#uxNbBo&oy(9#T!dZV zjAZ612=fy}E#IKG0@7aZK<23kI%ekZJwxc3S=uw>qdO$4^1p93MZ;W=-}oK_U9luO zK&q<3YHG^-0;xNLaEbIxR=RD!7w1fnq#J|43xHd9qCfmvRfhox2rKd-n#AGDgNiY? z-2uIs$3;bbgKc@?uo>wVHaomyhp@%dnoR4Mm>5_^Y{M*>y%LMldiYVPOSP{wN6_uL zg6;MZWyqMO2K1XRjtTmrA0d(otRWD241r$(Gy8OAW63;04#NHXiDrUU#Ho$g>OsBg z($Zh7$a6oJFZ=@|6ez#cQm)Z)a&i)0E|WHV>(O87{r&jBk$-UkN=!KP{r&bmil6-;z}$nW47(btl-9pY$R)Z`%&j81g} zjYBqHy~BU4Sx<#rKfk_kCsjHAk5?q>Q^(3rEH$0^EereujD_7J_ZAZ!E|Ki1qfqFP%R4QiKkiont zS#*n@zJi)?r)y)fWXJR$6NTWk<{@}xLL^o>Hd@N_XKG3hMbnDat1*8s*{(0raK_Gn zoS;izN8d=%6rkMw^X(+<#h7Yw6b@m)Hmv~k;Bi2ohz>%~0o&+eZ6@}uljNam@CoY&S=6P#6S-+ z;0cYaM@acM7BSsyh*9Ez_s==-DgV0E$JBbe^BfX`GOmOa7Hk2XDFpdFP;!$j@zy|n zC>UGVTHPssO4=UWr$_g2lPjFZ@+%Z1<5>3XyMuZ1yLH-Fu-%FG)%Ogm)yV#U?3Eb5 zxe9l5yijp!6wXETzKWq%4(wF5u(*&LR%zx2PK6>qE_jsp@S)7i8a*sADe@ak$kF%( zlZ=ChM_i}j-yP-R*yUlPH}bDc4=9<@^loq&xpfa_=Ou`Ys1@JUtm4W*|6G_XOHi{e zy;FURbMHNDn#nFBAl%u9fBqCU4)9b2j`86!R`3mFAd)p?7pmwu6(D2U6TUD%|AD$V zheg$1ust{txV)HTIMP%k=b%rC6ZIuvJ|fhIPni;)V3d5Z_;(UymcBC7)^T5eA#&G5 zgN9Q2Fe{Pgqt645nGQiZ(L&TcyaU!q3`m$ekz^uobdA$EnvC@{vn%wPP%xG%D_3a= zzL9i*;QESp!!hAb|L61d)Wx{G$IqT!B9u^MqKrdmQA3jQID4|m1lWrgDxwYy^?AJI z71qUPWJ#1gCKB4E{t|c%*77;Md zCj5$<9beW04LNIlK~{h|P&M2U@%_1YvM>$zo1KpM$dA$O)?i@A+cc< zs~g6(%IdO6-MW>cch4`+q{XOFa{Ws=^JP8<@J;~6j?5_XzB(%09Z zJ@#HTv4g~vz`(v*2^@~>=jUDVQTc$&{fA<%_!EopmaVPP;=Dp*_RRKH`&b@8--bkH zEn@i$O9!+hVaMs;=kgL@T8A+bLdfY};rZ$t7{KV1Lt^&YAv!u%jL+CkLGEc0vXx0Y zs5Bs1b_*DRzG&)*2nl6a?DN6Mqu#7dl9DckzrOr{2L2%exYm?9um^q6LC%{}XDU0P zg!hLae)QvNzuWVFIE3xTuZ2Y^{7abg=*M5n*VCUo;ob?9GTSa39q2XKzW-8$2WVfv zQ>_29lsCQYnFGe7!)-brNMR><7rG!Ip$;pjTZeok5IH*bA8;nec2zx;yXz4yNkM=o zzmxCk3gy^xKJiTb;=_1k*!Q1nYHB#|mz@Jq4Hy`#MFk4k55ca_mEw|L0qFVgu5;WP zHbYWyn3w}XLua1XvWWt^_%Mu%hx78-aiD#@o?4x|AW9BLJf%d8Wd*M#G|KfqAB_9q zYnhXljSe&6!6H`dxWW7O?|*>0*Ah*2^pwBCPb~k+;oqaB<#MM#EY99(xGEG3xbY^$ z*;w$Ka;b}==qx2P9fe^WIKzjX=N+VF7(an7f`e)^W+%UqV}6g^z~$2VeDIWygZK_g z1(}EIMdw2S2IczlC52R8wY8U=7wu>mJi3D#z-?i{2gR{SgIIFkD9kPhC}!6$jd!Xy zNzMg8gZjtnbUR?1a_e*F|2frsG|pikPz*|2Wp0fdCnYVelgB4GrL0_kxnUdkwN>{% z@-0t%Pnu;uKEp|KrEzlq)-=oq)89ry-|!!)^5VHC@&8p-ExzuC64=tV0)gWb{|p%D zxSrne?$rKOES8tkJGL)Pd&g<>AuNgveER$AblATenSeOO2+8qZUv~d_FKOvf`F~%^ zqeoqV|AkOkEU?rI{QIYTjsB~exAMOVz5n;#s1Xf5%&6}J->0=z2DS-bnwxjS%0LCO z>huF1`|shYRM*s;J_ie-^sG!a-02LOrH^!TAAl0~ZRbQh3ZXJPo^ejc8JIs?e4ix|INNV)dNIgYdA#8M%s7LPXNy3o*$g3pI{>^(I6 zE_bywTN}n`?c1jdI0mQs@>S$gSXgY=#J$43>sTHZCIPN093tWlqi6G|E~p?-AQ~fD zZrj^uEe#jXxQFVFj*e3wZNjHdw*Vvmfa)q^BmS^?*RF>jU(&hb^%RAdZXP|qxw+0E ztut_pBQ;pYMpOVmhaRP;C&Zq`hxHM?Po9O(iJtE6bN2RcmkPnt*RLOBV$vqp4k(h8 z^~jget37ILY)t;rjCJQuRXr>`g$ou$@Do}^c(s0+=Nso}P34a1CuaI#Aio*4S} zO37=?s66N+YOX-xn~J$3rm2RyiTXWr*-tjC4-9%&dALOzQ#7Y{5QfL#_r~*$T=P3TDecOK-hiy4yU3 zXWVEh!}8G}MHr}=z&e&&AP0!PD9>VPf)-qY-u>6;RRh_v*@M}$Sv?sTlM{t&fbmFz zl*zn~O_o+0uVphPIf}vGChB_K++P|~?RyFla!#V_LAr;BgInMUWe0y>jPtD>U~&O< z1yp~2#$!hezP-Fd!UvkNXolB6R%x#^JG5qW(V5?8i8M(%#mAL_NA`&?* zwm|eEc=@u;b(j!Pc)&X^78E{QELTe2FVy29;m)&<(E#mg;s9s|WQ6{VxMgoqFaREYMj8+!IR`w^Ad~e@hicv(tjog2O zZ17TNehl_lq7$Z2(|r7R9A>|PN)GrC7@;MBcbhfhJ@G{bj<)NiR8=3xGMTr|?+5uC zWA`Sfs9;R}LbHbTLUuj+^cH9sQ3yMqbVDh>8k1KeRYT7rN-F$Z*ZJo`K_yV2NW(J* zqtBBfa$tx?)B(rm=wmr`6S)Hnt5Q;f4)L5cn(@FAP2z8G$|6x=?ue-sjewwn*@7^!4YrU4fUF zudlCrT~JF~d3o7`^^ft8*$ZdDsw4t5^yB6;Qw48)e}qcj*S}lLy5`yu-DD9rf0)|9 zww{GGdKm$sQRrfIla2v&6+7;IECS&NhS=M{Vh4XdJ16I~oE)e~`&2ec$(UUNd;@=H zsmTMKT#}#bj_M+kwNEs({RD3aBgw)LfUVj;twbt0Gn{3<=T6sip5Q&fN%J$kOxpG_ zD+2==7A4+W;MH-PpMzVlI25+3ke7Wi{&H*p4Aw%H8L6x9LR0E0pfL0Z(snznWl8@F z2`%u9_vUR9vdz%=aAF)Ovdveg>Do+~yxrY9kgr^A%~l{h(bcr4E~4Mgx-2TcyE>vN!o13sn{ zdh1BCm6eq(PilxN@hsM7WBvTeTXHcUzn*qZgLHvoiKp;Zb!=mX6$k24eMo%14++8a z{1XyH6dh5gJm>6Yx_gi^YNc!Y?5<1cvl5&C{kb;YNs@ea+mWz0Z}h#(CMG9yhi8x} ze!g1#rKN?ZK>{>9)a9b77%)voPhW(54yH&K8?p)MF$Tn7%t5KRISAWJFsC0(weBuW zt`wS;&HJ!9qYe)4=IXa*M)%7$N1kmo**iNst35T1<0?iuZWpQ{LG&;%-*6@RbiJTf zy}%h*4M3HRBYNq84$YkH0kf$RLJ6<&@msLVeF}^x+0JS>nP5=TW-C`>X6I-T>-Ux!3`L6{dmJh4~H$9t8<28OdzjA^3rq6v<(l zFhNi*Ej_>Od)`F72FT*~K76nu{&6VOb~4%jI?lp!>RVKK@Pi3e7TXX^@i{;SAp5v@ zF5gHWeAFDzNaxst#}u5kAYZ`qOh>c{)gByFJ+QSe=h75d^~Kh@BHjvfZJ@^x4h5%j=TWmg zAh5vr`**XsXlj%{y*m~Rary(nq7*Q3_SpH=$h5Jhb-zA24ZZ-H5j2pWLHM^GT=Xx- zai6*1Kh)_m^QR}+^o2k#{2=sDRS08-UiNj@Hf#_whd4odq{p5Io$LHNCt>DS0I#D4 zz(vA3sgHiVMOt+hlVwl^^x*8IARIh+@j?LI_rOvN9vYi&^XJ}q%7cLy`ZwMSaq8AU zHBMPt@&k1+!kDrLi#L|?2TPNK-=zMaUxy3bDbf_ct!7!bh;=DYDc*3TZA$L!S=%R+ zY!R=XNGH zz9U?%ew+ul*6AYzgS|-G*Vl(n|ENL7{4@FzFuG2Ncn-VoD~ESLX~+r!IiB5n0CFyu zqKh8UeZE#dD1&{Wkf80fgYW7NbRgg{s-UX6W4F*e#{Gs@zi&?_9Tl9DU74*-IM<6y zNq;&92j72=Z9se(;@ z81;B{b@gM=&%rlB1UaaZ>*mKH*h0`*Y3ZbGfXD_VgD3r7H6 z(hicPeZXdEB_F!07+j1*)uf|5&~e+$@5C%O)i^caNKX+~wWri^dfGHS>$YdQ{c;ni zv#(@4l)dO4LurGFa(Vj?9rAjxo*E>SbEDA`J>UNCBD41JhkO?8%#!YFGt_E1J1lwY z*IumtS2sI*DLamuiQz}Dv}6k6;pEO3a{BnxFfJt6?n$zh!z@I8NoqEoE7}0L^Onon zoU`bI%S+JMU)L_TB>n1Ydr6T!u**`s8j@K6$x2aO3}3sQhwCtKIt;fYy6PdOK7)a_ zSlMK@3iBp^)x{dc4;(NwR2R1FvIrA0===6+LD1V}qD}>}hvJxWm~`Xu3rp}~a28Y( zqNfg21PW|VZnW!!*f|rXW^46%U%D7bcT5g7#VN0=XrmcNTNU6!=Z;t7dB^9=Ym>T5 zq2%#H9w6!|hB^2ANb}lDc_m@cevn)i>M|soqp2%gh4g(~B7i7gMWfhKJj}=Ec%JhD zTx6*m8CR?3&aZyXYuhSz1I;vGSp#3)|4yNsmG7){ud0epR8KyjGHeFW=vlNCDr@h8 ztL;dZXEIelaSxF|_w9Ev#~9y^CmVJPJ^B9qyQ9{Kx;%T0b;F&k>O$1`X9Gf_H4(K# zaQac>lwAY-SaJC57E*KItH_h{+c`C`KVU@v z8M0Xsw@nM%Bs5L;O*@Rloj{y{A7#E|CZN1aJrA}ARe=J8V*5`Kt2fA$>+y5r-ti6v zR+WOqN_ptMA*dxB3;F}`4A$PAHs|JIT+q#y!+&16F?}*iCo^8bID@`^RgObmDLfrz zZ{1ovW#!%l*q_8`%M|mb@%5k+_zu{?oc_abUIPVZvem3(&fz~J=qpuDs1DSdjyf{_ z1LYJm>mAp2#KC|Z=plIM7a-r4oy)Mg86vv9cUm*Y-WqB+uuo#YgNLxOZKO(e09?ZZ zh&SgP=S3*3E>v;Q4F^&->FUDuw36@GA9v_el5I!Avmtnbx1Z9RM>_Ehe1T;tCR0KJ zMvJK$lL>id27T3$gbH$_@pVf`cfDW0;fr184HMr0h}1+o_s1!$T87d(*hB4j zPg=JAktlG9$2D=`g$za!X#p{51_(S2G2LTN@w2D}lwFT>%#CInJyC|}$Ve*?!A4tb+eS-ygA+2-UV%G2JARrV z@o4P$vC6LiC3YEDLEOj@F@<#O=%w|9RNmK|&WvF@5TMlcecx@KU5rJ5du}1WjM^W& z5=qMzCg*8gVvLP(aVRjm8g$Z=P}pGn7AHRI(!iM)MbK}rlfrl*g!=n>h3XJzDl7MF zY=Eft0ov(|_)rArsL^+ce)A7C;N%W>hK+dIhOE7 zKW4fNag4QsrE)nsrsHkL>1GO{@osN7!2CE5p9Fz(JfYg}B6o+UH08}tE~Q_=b9!3uzMMMXuR!)IoSEkSUGVDkWi!#K)E z$Wc?7VsTaU$IjU?+~mW5FniQBJ)IZb2!dP;54ZRGN_R0BB$u?RZpl zxy4=QU!H~?_Cfz~*kj(dG)Ng@>w2Jp!8+jI35fDb zX{j5(!7w{==#&(Cm4N-YhqgOTR=wUgn;P|K{mk_ARdO>o&~e_faoKwpPGAH%ta z`Yo5PZ^`KL&C{Kpt4^Favw8RK&LtWQ{%{gh%~khK9RTWZx}7j^SQLx0bDT165x@5S zzsWMmY8kisSXx_i2@B@GA>oe|_V zNw0Im0?XhrX5`H9|9=2+8@jsvsa2Z*{$(&Z^oH8l<@Ny5DnoGwjrY}DlVA05T!_2n zQ+6!rNoeDDb8mLy~z9+TX^0E46SVzqGW|M$P?3q^b&K zvkD(;o;`CWDfa9Kzo%DXnW4o*Ja;w7n-@X=LJz!pT84XlqWYc z+D&W;z$Web^neXF_$xSglgRcoyLK1KeBEd3L5cZ5Op2Wq2O}LX#cp;OClw!3E z7{N18Vl(!_u{#89brFd?>f-IfN>~FCnm2mJoP`T$c*b}3!rViElpXf{Y81@hI)R)K zEap`Z1-P^yDZ$uuY?SpR) zQjP@W0dA00&-_F$I1^syLo+R?3xYF99snhl!(vUX`f|5N(dGXcR)t z_-(OeW%B$2JYdD#0WgX>Y%Nkg!t{UiB;>qebwO;{c4p?v-|egv1bqq6k@s_PZFL1l z3gX|M7n{(E;3J(t9ha7`fG1~ue+~p}2k=cAI$eyApds!s`uh66^J!=)Pknt)*xP5; zIJs@yeFAA4r+Uf(^egK5f)X)j0q)T5K-nKZ-VXnw+@n;3$Mi2jZiu)PW6_lA;6d04 z+%rLVqle{&dPqQ!{{)LvKr2uCcTIUpY^H0gYMc;8g{|4RQ5TO}YEs<;sPmP&x8dvN ze56;PCDz^U#{3#9764#lRV(s+Qp&?k>gV5Lkob?J+0{}f^XNx0Tn@||TeNLQ7Co^P zJkZVt8U5xHOE_KkqLVYDHI*aK3DoYp-WXM5jcU^!nhK;4YCw+{a7@Qhnj6QQ|l$EKV(3F zzcbkPEg^d}NKd+>DOK`M30DH$cH7~oJXW9G7vnYegQy!2ol7e|zBwUxc3n%>)JqH) z+XFZQtfJS@41)zVnonbmQXU}sYLNE~aWe>@4>ll#sNN78iN;@s9Hqa(MP4aP#*7b8 z{Rh@dkXo&FK~o(}q#qIj>W z_~l3xdWT=Be@BkSAlwfO#Aptr96cZbheME@P|gg&)=ZnYU1W?sZ(#KtZZ$gQ6WRJawkB?>^P)40485yCxB(k z({K#an*rEzggYKA9Il}5c66T)#w=KOKzN`Q+ZL`V-~yt7j2JMOaFgxuyeDoW(FpCG ztNh(xXR;?tiU#}yq{6h=#ZZqhtRxa;PU6u zW2<5Gf)l3%z|nV{{Rj)f&hye?6{ZdGJYzlGrYWbu%iM{Hy=dxOEq$Ih8*uQldrHbB z?c42F{vx9eQ6ge>@Id%{6d`1EAwtkvJ%hBL(NDn1s99(2$Gp>y5>T+!bC z7*Q`_9}1aj8?}Fu5vhPL{5W(eFibl(v`QQkIH0taMHdjv`;7htOuA=;(O$4n96@(+ zu>kIFPTt@K(#}i(cns5N1F7O1*y`{vpr$)ySAr8J2L=?xhJtvh!lu+2ogdm=ZEs-+ zQX8v6E1AcF;!r?ZR#w1%TonPW=a&+;XhpcUt*-w+v6?tS#d97$>GPqtAKfp2J6J^EQ90qb0y#FUF}~ z*0$^31}VpRWn~5+H2{y3L5`v<&b4u<;%Pl)e4=T*8sX_G1|TB*Zi5d~G(`PJ7jhoa zv)@}*;-3|4+cvb(wQ+Ej{>TTW%|E@%d$LbmgNX5k5RWg~GBr`<14tBHa5xu~^UR4s z)KG573UMsV16vdC_>dU<=(IL6J0DGyYQDaQs*}38&JTetjj0U<6bzXnQQJ2pWKh^F zRo!l^Je{m!a8A$~@ql0e2zMpPX(or7D@%Eg8hyN5iIP+jCU(}DM&J>{6=yS&7|=L7 z!Pi6u)pO}2Mm8iS-UQ(eUNmuDCRBdL7W$|a((V=u;sZ`f3E~HtQ5^q z%(7s?`s2+{XSXCChOb|5;?q4bskjW-$V!Z^0_G(3QXumkU45?LnsBM#| zMBemO0m>pK;S^RbT|di%g8vpEfkkR+eZ9PL#R^Qx9QRJpJF;smh4mJ0HuAVDm;$RB zS3fYheI^~A3|j!YTY*Ah862bfN85|3JmVR8;zi|AV0ZY&2Gg-Gw_CS$ne%jeVX&p7 zk49*LuUFNzlEleZfX4U()$m5 zSR{t&&5ymkS&yVV1G~hhS?ckYNMYMUo4#p#;Ew!5N%;U|;7*GfD>wHZm@uOv>e4CF z=ikb}a9;Vjf0?{TY$?K~kLV*CRPl5-?{G!X=VUt`P>R~K{Se#Ju&`67PCc}7Verue z5ADA}0ElDO)@pbkOE;p&c%4DVa;U4b)1xk^8=vIMgCz=3E;4BNO?qZ!*|;+J#DeLM zJZHbSI8FimL7Rok+T_E8qafP;A1V`-UHv5akbi&uf6Zh9j>0FFeFQ8P^L{}mCy#HC zJOx|E0Z|)6kGMO7iWzHb*R3mQ5XXM@a&wb)J`1_y-(NRHtaN|8k$$`dz}lT-)=Z?k z4tu>-NltS%nAatzsX4e&%QoNj4&sBDnAmO1A|Yuc1?@YiRDVP8WcB+BJ!l8;0;q~_ z(eN5Oal&0R-fGctdBiCh%H}LM;~}mFlXpfh+v0@60gq8BD-a|TtRgM&lenKN zp)Xhk#`2-~)BoJ2uKEi9WtPrSU9yv*~%`zm*0}G19b7GGsjfc5m_^o%CnS9Z*S4YX{597-``kp znWQY_>w`8}bznQb#1T$fV+bWU?<$fjB|JV}(XV^!kLjjv;m+#C@COjFxFU(eytH9r zpf0u$Bl+ABOtrPcfP$}ZEf02SpZ>EI=2B;#9XS4Yi!O+QmLW#z%~qOR!on|*m{>Mw z*&^RR4QeI@3$OFrs{@WsPN8=TxiDfAi581;?AYngn7oc;?`B=5pC4~cf{qK0>jJ=o z1b!Wz_+e@F;Ne3IC0D{vE>lHW20J5th)>}1vT8Lg6Iksh|IM{qvvS7)OwU_I%k&AI zXfkA8pPvu(26RqQ))M|EX26<3s8Eh$c!$u99U%OaH(bkuS=M_9g<(1j%$pr$eZjRd zZHCd|tWw>>`KThu5WkV!X5!>v@#})kdkiwW!q3ldVP&;CDf$YySDyR^B^Ta2l7xXJ zls>M=vA$t_f#ierbOySv(Cg^UMxp~mrrXIjyD>Yz7})i=G=Q29BGf)0G9d8-VD@*+ zQOU?aae*cUE66}=QI=D_6ojIS%&+%#!?9bx^6{~?G>L48d=@DCNiQiHGKo#^BKjXG>G4q;KE;V1>vd+uZh9+7(d{=WPGmElXWGY#cMrl?(?M zI2G@cN<$(Xwh;(qczX!hq9Fy_6ETZi7klAjTbpEMLmPO(S+*m9miWzn+=j&Mqivg$ z2Ml4SekeVD_l~>F@F=XtV7qC@#um~GM#(%i+3LJq?x%)^)gA?wCo4mO(J9`#dp9IL zk`TFA-S`40mycGJ;tB=sQ-^PM+z+-lFAmRhd%SGfvLC3$fQ5fu;yEte>mU4}Hp3VUPemWQgS51(O=lcmDE7UuS1&im}gmQ)g!x*aN53oH_(mi_JXx z%f|JC`{8#MHjs>h8GZ;-q_747CkbhxSl;RkI~?~T*)^?v{G?n)D%D8{SBHq%(b88} z{lzPHI;tWH52(aDdQI|ztBzkkV&K7Z0UZg@xt>P2m;v#>4OWB*T4A)3ngMjIrfgy0B zwQ4`%8xd#HVCH3kYK(dR{{8+fS+-hZcIZv3$n!KuZvG@u5(*Pq^QuyI$(h{6MD<}5~EHaU%AtE@6 zVdJ2t(){+fW?2U9>KFHIcFhHLm0{vYoxKa0sou*APGCx0s8H>Us7JvkT-f>ymVaWC zkA?6I@})9FMLbGnZ5qir3a_AuykHgv%x7)o7w_=cB|Mj%>5 zW+m1%%a{M9mb?mgH_NOItQvmIqD1v_TWOfbZY#4(7?jY!OklcnFT_iYn;}ZUyR2LO zUvDm|gfsompWYWo%{MVS3kSm$89mQa(OMz9k6Z&sBnNZ28P={@E9NsXieIPn2YEj3*mZ|r$))bXG6X?J5!sg8uE5DSMlsNwt^V2s< zJLq}Zwd*mQ&p&W&xq3aaE|O*Mhpy+U!_N(j1J_?ydDInetd-%q$z9I^R3P@#M%UHPHfLj2X6CVN+b)+b z%(v-XJ$dqEy>^xfG-qvTrk$R1QMt|+vznvSQlX<;7#796U&{N@dsltuClXxBo#&kP zw`3*wq0C~J({`Guqu##U(JUw=)C0p$)47aSul7MssPEfVusymLztWpsfTf-d?JVX9 zF9RsXf4w$C&bOy03cN@mfB$VeC7pkWYE$1OSAhI7)_OBMJ!_^Xytn#nbKZ2s+qVZH zAvol?370_mbs!RN$~(7lzsZY3TJ#L}(VRIi@;$M4lDwF%Snp$B zj{nKe+DcC@-u2T88S;-W4R zgE6#DItfb1YD!Ap9ywB*@H+ZGFiG24yo1mIt&7| z!ra~6xizO@?Fmb@NSq>e9ghpG>eVFYy_f&gu%8}_~mvDV<9$8eSw$~i6P=+UUMyuW4uZ_I^lSx2F|&Qv%9-se^_Z%nPbJ> zVp+-~VEy*Rhs?JzF~%N0H*WM8?Flxw`7Ir*jYL({o;(ND&N#1gS0h&y;4CzVORcYH z$aB7sH59%u7~g0R5L)y7gD|p~VnlRB6_qJwtxljU<)0pycU7O|J%_S%tiz+mj}3Ko z3D^N+EhEmnlCxE`HHZv0@^*H1S>YIN?*pb#_m`~-sy%`wB_&NVFwRn_;7Z6&Dsv*v zb|mcDDZ&8T9-0WK~SO@wRE zWae*hQFQRV-X@9Z0k!N83sc_`bn^B%4Bk8|6O0d~X;oeaMrFx59S| z_jmfT(X6@=gkiBpn7+$(tAd7B?0~<&zsN}Tm@gaheoT>YO8&e_G^N?Rt4PU@4I#>D zIL}4VOLFl;T4koqP>@MN&Y{l_LkZJXoO$6_A;Ut zs|ysH^I+Re-LT`m+@XxFYS;}Vi}e2$k^FJh0Eb-eSZIx+va))s-17lY07?~{EoFSW zYQh(9ofmHZvIjl<(iRuB^c~DrWqcVE_09Yc2Rjbx1snbP#@g2KvZy~!DY_rGD^=s; z?Bt6VY@idF_YY8$HAczVB5^~xab1DOq0IL!l?mDW9OPHAZ!cr+Lf}K09P!P=iG@sd z5J5JXX*iuVF);y1HetY&hm+b6_X>Vf0{qv$*~G-hpFzm8>h|C2%hug(0KTxA$WY2i zil`Z&QRD0Cli9n?KC~+~+cX(R@3F|ggXa$=#HrmA<=HI2D|e^o>`G{f_h^YuW14S`K~4rgmcBh_8OlxufMV(as!g z^F4HOzDO3t3K?zZ6$`yUb$Fm%!f#yt25pI$mNbBd(ed$%;yLX>Qz|i+N_=EDnQ8=n zheM3xWO8^p%ywEo`jLD2PC{Ajf}`Z8_EGd0`O{l$G)OQL=?$^6YBFwdOs%VTIoXt+Iudmm% zX^dnPUqzP8byNS91(l9H0x&Ok$ub4lT@I>gTa6v9@X!2r>8^QOC`Oj`-bSr24{xq4cPP^-f@Mkv{QOW6#YJs9tsh79V1BrfyJh>O9zw&sDerzgQ z)|c7kr;XDZ4TA~STh8~KP+vG)w?!rmo4Dw*vD2{{tsSak=0M4H={ zg)bi2FUvGjUKTRr?KmF6d^YA%+K(|LxRI%;6XNAB*jDeckYYcVDS7T(xv{aDWiHu` zxE!@r8@?X_Kb|TaBYbEwNU6HOl4QQ7C)# z<)n{a8ce2gc#BV}Hc!T-FW!R2+5hX;hc{B|lxN1m!^@y@Z-(ZeN79!KX#sYGde02T z;l8_(SP*U5Y?`OmpS;bE6aH-rV>p-DqC;)e4{~ueJJ~d7QD@Irh}&K|FK(@mt2@ho zv!ey`w0qmy(|Z?g!DhA>+6=9J9)zEXnAkBJBXaHO8ZpOjVwQH_kBqZmk5awntcQO@ z4#^ypfm7N6n4ngKFOElV*z>_asO6TFO=EX*U%hE4nlcAn7RSN`^oyQq;!K?>)maRR z4x6=#&zWqp>Aj72wZc5~^aah!m;K${N7;(48?=IDJmSmB0*87J@+K4&`9wp-4kP@5 zHl32uNM0uq)P%PEpbltgWR-ESK!8Ef1ud6*%wrJDlBCWgB@i>4&~-E z$*|ivf@klvYU8eu=g%Wm=!K3P>0+i%%Qjc8XW%YcnBujILa#|Fz^>)(+mf_js$YiE zsY2%2iHGG7d;{>xhx6vU6RK-dKA46#HC4=XGE-l$Wq`Z2E_^p`D@8d~5iSgEb0?QK z?8VWIIXQo_M%Jvvz1?44er_a}72lJ8{mP6vn{FT+@$pr!f0u>)e&NN-HRN}C_5w?3rSs}G1XwnZz9AjWb>D)u=Ak=IlWbN6DRsOFptv~*!|8c$@C zL)w6tP_mv^Ucq-TskEXI-ag4-6|fb*;OmWi`}S?iAH-p6^n@~Cq4lz55{VN==8)J> zEVJFSa(mvi{}CY}L(n+YaCBCq=)I9UQ#gv$gqp{ChLej6*@l}zi*6%yXkohhSga^bQ1&OJQoaVb7c>~S1otn-w28|9Qyl*lx>@pgJhf@u!T|zOoU(Tl4w84gp-mj~JqyAZC2YhG8sIW zSlIhKD~V6;tEZ@B-r__8W?C=E`O5h%J`J^LifoaHI2Gy#t~2-8G#=g_>smfzo}?$F z060)4K!3+p(Co)|wzJB6DuR#l2Ak*F`Rcb=I~=m2riTT5udW_VGvY`~YhHW~iJC;P zX`0%u-P>W~@7J7Wo+L*FE&Y>dg>{p$5%-jG|LCYCA9-En<;Ur6%hHM+-X9%edHwvc zzAuCCKTr0-lNqu5tJr8!gvi_=b53V69YCR023FYdWtKS|`tb90ZGC-@k!03ERLqr- z2-MWpK7%U(SzV@c;uEzsh&+EF@;F{0-02|a3!K6zF7{&&5_Mz1m1byeAl6=LCVBeJ4Y;I|q4z^#p`O_gG?ExiF+HpTqj zyM=Dt&T4G6#Ehow&I!D%E48e8ihem;Aiy!WL++OweZcD|K`SwB(QGs_{^QG=lur!@ z{m(RB^-$=UY<3BUdyDAWb5ge<}8+ws-uS#i@n!7iyk^pIIxz+bBTI)?i^Q*Lf% zI%hW!m(Fv`E7Z0%wdJfj`FQ>bwaG>!^-9rLZRM=2lw`e0rgh@ zD_2#~P-3G;ah&3RUq%QXJ!(C^=Iq4{t_JFi)GOpI7%O=y$@l&*oZsZz|5s1{ZH(eb z9Q)2hDqc5fI1_z76k#+Nxt|x)TIHaxUu9xqW6z#E>D1rP5S5ym8X>!!a%Cj~%eOn% zO-z!9Go7$>O~9MC1Fu6lC|Ki|J-4cHNolF#G5J(sl1+tryQq*^L3M~TjK}t zj(ZO*&p)WFq!j${VWt-ojWQQ1NhDT%zxZ$n{{0G3Q9=_F6ZjPGlo@#5D)d$$+UBpm zgHRl+YGB~MJuyEIPor? zs3?R(mh}K-K%xZ5A`+y96$qDd2?3&V1c^ipD0kA&!*r*e>0jWC{3>i^(2%bfWd-WuhN040Kdxp(uL(*{YirVJ8I;JTXZfRg zAvrlYxPIi-2mo^VOJ57R&tnI5C!1$l@U|mJh{xWesM^3cVsPL6n5J$Ku1%KDsEVRB zBU1%K5mQ5D((bc7+vcOxTblX=%0Ky509xQ`U1yHDg%T~Jrt%@ ze&`VkM?*qF>W&26ORuBLwrouQYRlXOi{S$9{@<$(9+B zoXe_1kKNR+(=rPremIi=J#_xn6$h?~-Bf!ECS_@nby>=OS839zw}8K;Y}>aLP!U_mB!G;ann1is+s& zABqQW4q;18#Z*Sx`IEVGgIMyuZtwNT{q;LX zrqDKx*@~rEgEA__%Of%_l%WI!H>$W(t&Hx`_B&AKuD-sL!|>tbD*I-HpCpb~p=fO-BpkdK?bou7Sc@ zKsU?>$LP~cZM;()RXrq?p4GgB@*%AG_T{c1RCJNs-~>S)L^}GB<)z+Pf&5KK_by3M zdm+1MhWXmMgAV#Bsj1E$1$WJW>m63oqRnCZoPwv5;T_Rskrt+TaC%mX+jD8{)i`9D*(Xi!ELUFP zYR8rmz0OMOFR-i?bk*?Gv^4f_tL`Yy&DC{8?4dvRxjw(; zT971yaLCnBUrYI&p1d*s66?)an}++o8%e&;@-OC4Y%2)*Lqb<#5f9eZM!r7%*u{9% z`!qPZG`-pqG{-Odnyb5eY1=a2xCdk1XNe}%4mXtOtCrenLzD8KV?LxnDK+!(Pv?XW z6*3jMBJSnts|Md#tH=c-m+0Z}sseQ4aMC<*!$WEkHFKcgFj~FE%%j|iK3q#Ye-skc z5V3OZ(!JH_za?PTTUtYaX~0dGf}PqM#`6rHL7}{&lkIREdymMtnDDmU!lJPFWvre$ zht-uID4|+4lRu7)jfJA#R}52oWzrNy8!o6hd2287NClCVjrOA*PuU$vV(%@Np%3qK{cnSs`9) zKim<-7S+)`(LtD3kgi1BsfV&Fno^Z0zQ`DlEK#mGGvM0}num~)0H2?V`q-L%+h=wX z*%levy-0Shc~!X&$e|wKG7+q>4=17u2?+_*y1F{FgFJ|Cv)6&POeQ>iIpl4=+f6xV z@!c_TIzZ-oB{4zX{J$ zZo&y2|MILdqyd=Q8{9!StrnCW85}_$k^Vk`mgC9BFXIA5KD!vyV?jW0aBxKJO3&ac zPPF134*Hx^B_q`8x7;z=V*N9xe&$ZTrdDHIYX&0r3FwryS!udR$@R|f}+xw;Z~zX>{+*GoSKjJ?1bm=?wi6}Hub&qxe< z%2#KG$>Z1+%N&kj^C9|yxSxb;n09D0(NDcNE&H!-@woA8y;T>{d!e73S;Fxq8U)!3 z2yB}(#w#}FqeVd9Lc4KaS+U*B>w6}fu(33T6uRU>A+sTbV&P=@RnQ!QwCvUmBUb~Z>ZCN&6*?`rN z*W9r!w1-DBuy|GYZVf(Z7LeMC6)UoHa|5RuG-P`r>6$p53KLelopwfk_BQr3(GtLu z&to0kiq$orGZIiivI%GQ^am97AxXsq3@?fw!vj;Dnk7BQA8ng+*bVu-#A=LR>z86| zY#a^-)sL;@l(08-lnt$ZJE9om4@hC?itxH(EHHF<^$BsA(o zoW*~UQdU}M>U^D*1vYnvO=V$rk=cqCwA{BwHAj7sEHn*|L>HFX3L7nmqKd&JC(6&y zXC!q_Mz^>z`(yP&YbO+!g2Z9ju7PLw_$5Hx-#`ur0I!a>PIvW*w3wYuSvIn#eiX_u zEth;G6bhLd899aWY@q{S9NgBz5YKM&7J@R0l^ucPJ*d4hrE^Y}Vg0}-^K7~Xjf`~hd z!#;z{dbkqWLNYF^S-R2El1{F`|M}O|t5+ZL?#jOP!GHuvc!SXkv2N5g}rnnBt`W9Wwc2x^>*Tc1VDLP#a)Kz)e*nF>~H~wm9 zn4f!33}1wX=62ynjsE8o8rr;|9p>MU>1cHSm$4$Be-^!2e~#*^R?5rqW>>A0kxo}Nas`6?(V z+`c~~@cy@EZ5Td52sSqM=0w$areaphcLX=L?)pg4q@(qG3qeaui#uO|UgvOu-sYD( z^#^Oi?WbR6n`G7|Yc6_HBve!)QK-dW(%K5)%`7Y{%Bt z*6#hekwYGH%qf4d=Ab|pHX|bvC5r$zH@7>FMX{_0vh>*XI=+9pe%skJ<7jsgyJ0Xr zo!X&qU_jSJSYEy-kWvEg?p^BbiBj|I*V!t_>WOM+$0G@;815s-=`!D;EPU#fcH1LGhB_P1Ei4kl!|(k$el?MS zfp_oRxl{bYb+3D}YW{Yrn9ZrcYgyT!XU1yN)!mpPA|4!KC(025{Q5%g-p!;CT@ag% zup?~+P72rO=H5R}QbFZPr%#TJo$jqFP4XD?@bR6^OUP_2uMXzERa0AEA1x~{XVvdP zDk`!uGxI)q@`Qn*<7d2QY;4Z=@4PtJw@w9(Yxnvx6?vXM4bAxcPzaNP^M}R{Di)Rk z$Aj1xFJ9Pgl=f#S`L8Ee_4oC4w72hV*$wD>PF|q#Nv{4h?8HYYT z9_LTW5jbMI!E1N0A(X2=o=#6gqyPSWcyzQN`cQy{g~i@#)XDL2Sw&4avrhDs_)@Np z>xJ9c81K1^2?Vi|lc1pBT}2&kYXeimlagJIq{MgoYh0xcdx1SXv-5kNC-tL4Loda| zR{Lo;-P{--i=M8JGP3pB?7r=X2jy2o@RQ z;o%+2goh{!*~IjvHo9FwFZ(VLvQ=U_`D4ASOLKwZg~esMJ|q~gv`@3t^FpD%3-z zT5URcM@;NG!jOiRc6oW3)z}~@Bje$lU#W-=cZ^nH5fOb={LIDn6T;YxDw}mIn` z#lQC#7Z;sP1BrC+Hxp;USw`Ualg2KY$A|pxe-*;GO z!>Dbbk|9^BC}vXV|0j0ZpYYzj(svEwo*IMWHLet+T-GbBSe>wU^K{_>0o`dbHIh>OjQwU?>f*!Y4#0pQBBRfVt^pwW*ezKUUvbCM#wYB{oF2|}v1VFS67B&4J=TAXxr?vD=OL>Csarb|_D zXg4M|`HyF)3G=OKDl11^nEp1ISQGaZ^711kAt^MS3_Xf_Zs#dLbVf_YYe(Insjt7R z(^~yDNK$`)AX~NXAIWdnMBI>hL^U+xR-1qSzIEfqOG(M(Fm{u%t>s>Uo1I40DHmN` zt_6r1WM^#E`1nQSo0I)@)oj(0)RKSjQ6bY(lYA#D{f3Z)Y;0^&)A;%M&yM#Ps{$D{ zs@H}K!ZNN&NJ#vt?`|4*&U7ja2d@k%PV`UB}=|tlWoCmq-@7o)dY9% z?$5Ul$|ZUFQV6`=$`>BN8=+XBx?HJ2)G`YcoqH3tKQbH~9E{S!!iXFZ)C4Ay@K#f&7%D|lpIM2is(<8s@Uf}fB>~5~3@u=QA6HAZ? zGm$J4{dSN2Lsz^7W|#O7-tS=&yVU`kH3e(yBIYIzV}lCYP4d*cksPLte}ii2{H&?S zfLKJN;aR0+rcbI&oSu=Is{rYvN*X_6|2FGgi`u2{TvWk=4 zoVPr31Bwa?Iw!lkyQHi?%xq#6&IxySc23XG#clI_!^4Nf{Ko{G4nOGXA{ZE?kD^JG zm4_ku-4a;w`O<|umZLFQH+n+9S7>Y~CU9$$buFU8*7S}V6~+!3&%WP%E+i89{^Hz} zBjyOTyt_TCx3)g|OhC-~W+$X%QBhGrrce1|YHDg9K7{Az=VxTx-1YCuweO5Y$9wuM zBsBD{Lk84Jdipa*?4H9Ov3FA?)AM`BDE$fhR^yREbE~zrr6KDkKjR{U{&JgjOzR${ z9O)SDF-;a07FSnS?@|VatTdUp4jY@LE|-qzVNwng5*{1gGop{@?W(G(a$J$Bh=&h9 zk{1JoqElGcD>w`^bSd>)uAEQvFaGx>V(qLp+?^< z*q`)Rr;V|c;exdNm408osK}nZQuD|C{fZ60eih{BL+Ty)K0K69nd@HH?hpi}Mv=JX zH8PBF#5*)JH8T@y^tHS^37bKB7aB#}fl+;(`}ueF7`E03td5L~jJ3DO-d+|+5X9&A zHBn(yzD&=$lD6&>5=y^{di(7092C^;?k+Oo6A;kT(<8XfJ7TVvm2t7?N~S#iN3TQ8?x;sWP*CmlYiTJdk9@K5 z^2v^Z$s$7v)frkmoli6hb_aywFJC6l5~~Sde1n{V)wqd?L$_>8K|sJ~yCGZo4Nz$cu>1Y=3`$xWbmhQB!BRhZ3dedbC4XlyOeSy6h?}e2s75yZ&L7vzghF z*>aCas#@0TY=?slzB9`yhf-~BweKlORz|uD!eUJ~vb`|7^7uBEeTW#F{K%S+bsOUq z-+Z%N$}uiC@Nk%V{KkaZSFD02zZm`A)cJ6xdTMe;HBMD!<*&}KUcCxvkH*5Pbo}+f z&@hJEy4rd*bS(et*H0o{ii2R7V(5tv6e6C?m~<1rj%luboQy!gmoWE%(Oj{4Nh7d|6aU6!DQ8LO1A8g z*Re*`PH0F-LL^r`PsAxUL4U^fLVHEIwV{}3W0$|5AE6RUuAl%VZ$;Voc**7ziQqq!WGZsWYtS9W1~U8CBmzj0yo z^KxitrN819%3u(9nq@!;+{dRW-HffPg#oHNFGevtsRSbXZte zLtiVdiHPo0Td)}poKE2OEoiqCSuQf1d$wfVZTOM#h{b)2pmF9?L}8J&Gh(GLQ%87DT0&wMFc=Bjt;2dO3`04j zqRHsM#@006W6@i~WtLEf`KZZxxTI3U0Cxkv9! zplADAz~h>jXaD@O6+z2`J)RvUZnLJ>zSVhmae;|}4!?Sp@zjM{GT%~db?HMKul)>E z%Oo*>okN{P=EdrXA6k6QT1!JXQPIj20>^olx5#;HoEF+@&Ux+<5RefO$!HW)#E3}V zsIaJA&X-6sGBq*Tn4hOax)KVbU-Rc4-uc6*wwmIn3e2W=pw`p9<#wH{E_!VaWcsfb zP>-x5knDh~Yg9R884gPCt*VYy9Q?bJowjIb@@N&1p-e1qah()3HMMLD!Af#z2RpTa zyjf+ns6&A+2(- z#v>rOLvUup&t)rM;JuAfVp2lCAkO6ERj`<-2n&nmvE6uclwx7Io0w$Zi%UyG)7sh! zib7NbTTfq~W@pqM%1KdPp04osP+m}5o8&ON^M+o>ecGy#@bEWStRJt`VX6X?42q-vb!(`zV0vtSBAL*|6o)Y`M^OKJh~; ziXBUOzGaHpMv zv=^U_J7c$VwtxSgBBPR5%s%`*JY6s5M3c4S>dw#MO*S;l~991vM@>3j@*N;lj1Pj^erUG;cnvj_HrWkxvmQ zrn#%Yzd2rU;(@IM7+R22=g{?`f;8dxdsR-$)@S9Tft0($X{dvJ$SH*MDzCJn2pP}F z^>G9o^J6n_b#82QUc9h)N<%}l*zs0cQnD~VQ^06w>htIK1O)T2VeR2eisIrsup?Qo z>G4#Am6h!qyiGaAW1nedc4eLR&NtN8Kc1-Ej^MQy951)#cRn6V4`9Q1ax6tk+&?GU zBgSYqvL8ynYCf_br{5Bs;ZL#4&^c6YEpZffh^3D0yc$aC+_a>z9Kn+2g-d2L+bDJ0 ze-SF%yTd^Q%W33Ry_Y`;yAidOpOu!@Lj{K7skSXDlwP%fJ^*(|cN>=m@A)+aU_6F~ zhP78Z;{^0_s|kanq8{6AzvBAvu4y(RlGcl5?W#i*> z9%c@^i6=Uk-CAL0x;;~-TD+DhptgKldgHupd;6w|iESC1n5ZbW=if|++GFDbbC;P_f$!%5QispKYTw_%+#Oj#H#J6`V@dF5;kh57r z-G`K|<&uiX;q9e5zdcj!=eJ+yVL3L=w`APg+tzkVRh5+6Gf%U2M%0%?MVU>LQ8l*` zg}OyaNy+`d{P0=sBVz-V!O6+Ey4}UjkD{V%9@3a@0{72KG`D9csbqFqI)bQVNcbF( zltjt(djkw(BDevHLY9lZ(x#pQViyD1qvf`n zuXEL_+|Vv|lo%d9Y-XtI_}wmLs5DY(j|~WUr08Tnt^n{^S$WQ#`_GJqzVu8-6lpi@ zcf|0x>NT{jkCvoKMRi=(-k*#T>gq0Ir2$42_PbAk-&x{)uq>s8P$GEyHq6re>(%|1 z5Fct@h1(}eIi8-4@DFRN^YSQ36%}qJmB4@hfdpl~yh@SLLeF_d-_((l67v?@;2VX2 zilk(4MR_P@XCzxl=KR=i4D9N0jmRoeTEn^D50O-QhfEbRaU1nsw-fKu?XoE9*rnRW zhJ=(k9=M1<7Ep0okkt(hoEcZhln9eXk#butE%l^yq$a?#nT(y%XGE+U)PapA>9gglVQwh zU#8S`F4uWV=_vz4YTCj2W>w2r{j2n@-!(Nfxn90wpys$YM;x8ZDFi3CM02ILN!v^g zd3H&8=<|t+x>ji6@Fa!*!|+mJ1&WxqOEtt|L4^J0#3!{AF+QimWMvlBV)Io(g6gN; zBZQ2xo#VpZA_U8$C7T7thK96v0%}4kXm|@KD63ElzA~E=e8UCme7x#(YMf!Dgm`#^ z`8qxs3RHPAUO1#x)~lGWUQL*84A65RG+4G&E1ZsYf@yk(c6U#JqZtnR^)yXa>ka46 zZ)|L!G=g9if7B|zde!_Z*#vU%a%+7Kz(7jYZ_`qUB`7P->mzKQ0_}ST1Fy92rGECq zO-)U0{PnBSX?c021$!4D7XhzQwDrX~`aXXT0Fp|x>FBbuqv3+e;e`yfHo`2fTy(!^Jc#VZmEF1@7*3x1~yBLPBEVG^Q38H|JRQx)QYG z1YB*b-=<_{CMG0Q8-%P5WRuR%&zIIJq)F51DQZ+-8yVg0cxOB@#?H&@?%ov5#RBO% zQIpP2@)0j@rF6{5yLXfB95}NY*biDvFUAbp6S%*8{hBgIM@d;^KI_S(Eqc+FPsUw1 zS!NmL(@JvP3)iR>W4y zs#;j&@9(d(va+rYmfT}E`jMP`tv=4iuKBJW1J}tB#uLhvP<0_ABf3$L3M3^Ya+Q0Z z(S5UxNdsIwTIzff8xe7HH1&qm!^Q2{GzJFR*0H#6->jJO;&!H=?=k7L%q1r$t5-QF ztEikV6|phtWY+CzJLGy_f3fjy@+9P!P|=B)=>H?=M!ml^_;@OTh3Lj zWvL_G-P=>OpCTfZkzJ{q**Q5TXUCyX9|4}y^1XTc_H3>h4*)!VW+UjO;4d?scKSh1NE9F?p$;->XevPQQ>+tyfvb>(k*x$+jvpXhE0@VdIXx(lP{%9SgCXgobV-HB9sPg*)UGT&C% za1lxL26*IZ)PU@L_URM$pJ%CwFt`&-d_JBDRJ}B7B)zv35*(bIni@hLpO`4=-_SsbvO7D@-d`VuCGh_84EP!VmlM?T zb`={4OLB^e8E;2RQ4$a=Wo2bXKvynH3Kf--nOk6BV)};^KLe;i-Kx~C-@bpBG&g55 zEIyStkSY5^|pzB{eIuWwR-jSYQuiS;pkS8jY;SYLntQeJ#~e4yz=Mn*<{ z{s5P>zM#-hb%$_wclY%4FPhLW3D3>dIN0!O6A&RyEYUPl3tGK-+yC%zJ18mXQ`gJe z{$ZJ!nYy}9+b&#lujTQG*7W}R^$Y0DHI0#C<4)8vo``Vu`q4pko_la`@DRbmB9U6D zS%eD>3CW7!B=Iq3%kSUMPG!P>!~_P)dw6(^DLi`kP+9|dnGU8pJ-2STGGJMgvKvKl zS$bDjZv@j6to9wL4xAmc9rk4ief;5cRxR1+2xrPbiFQVp{d50*W@@Uq_M=CM#|N8`g_9B!XMX&+p{*@MGBwBQp{|2? z$jl5^<8$XrNSKEF{Lfkhzq7owbjL?@F$^AnkTmKRufBaF<>=`vWMEUT+9@v1>GWI- z4leYku%8}oZLN@s3RSbSv8<5rSzTG-b=-Ha0~PH0M9o2p%Sv}|Z-SV(VQ>pB8Mm}D zNaCTm*I7-*o;`hPGFe?eM##q24+3&iv0hua={tEZW7pFqJuR({;=;rddsRuFlO13=dK;pnS#C$#M0ZxawP|h>CKCG#j=1n}%HaJ#T=gI-mG; zJ-oSsI=CHg-E*RdM252&BFG-cGr1e$-a1uDlQyo6ZSYy_$s*zP}NU2{s;ze&%v&^U}s1Jefxs8UpyF2+1N)6itJ@us~k~;$w zQQw!5oh@?3zi$7B)~EOHlW8NOZ;C`pMX8mhSNBX++-LI8)VDur(9;+Ny{2-~N zB?rwG7Z(>N-p%c!U8O>$u`H#WvG}_>5OMlRg4meXy^O|6RpjL4(&I3D#f0M)PmfrZ zr6Aeq>FE{7`92!!h&d?@099Thv`u?7NmOcKWG&ZC7Ln7Y`oL;UvpMhx@VrX7)kmLJ z=9Pq5?Di-QEC!L3^9U9qto?6fJe68Pw5b-~zTFC=Q~u#{HjpB* zXh~C52;!sdQdhC zLyEWVh@9s&9=V3q`R-k1!QCZIoGPAU408g<5m)Y8zl?pVQ*PBfhYJ6~!B$#2NWc{r z$X-2cO@_PFyzTL^@mQ%dz}m4#=$NQf#!K~eC=Df_Bw8us=J&0%qDJ#FN1xl>=-d)x zVf~)xa+W!!Hu3elOdP+h?LmCzPNw2&x%FzBFLXSCz}-Tyg=taG|Bn`6yD>IBknM>7 z)v%vAvHTH%FE$p|+PZ2%Jt#UfmKG9n40oLnc6aG?sKnWju{w4-Rrgz-1+&ml@H?-( z5YaC_ePfSrm~pjjOFFtkN}@HKZB_M#5ok$DN68L5UbiWR*>$uX@ag6vBO>HIWh5kc zY}Txdj836%1md@RO*Pj#6~V+XQ=udBc`C&|O^Sy259G!B&MTq8_&LLbL}5Re@{^M} zA3hAY`(QmbIr#}$a=i3DQcK#zWWt+ZGSJM%hH#LOce9+?^rNwYwe5I$NHB~4eJW+46?H(AdTCIPFbi{K026rnNrOeycvKu=ftd zzR^B}3`oT9uXly5w?&wKTK?HoW+`^5=Lp$rXh{ufM0lA#^uP-l*5)H@8J!0POe#MJP-=N~` z85^^@IDd>R<*{6N6e3Tv`@z5yOAp|lS`W3??Y{XC($xp|ImdPYWf zlGkjtvsj}qX>+XpsZd~$0`(IGg!Uno1=KeAPZN<-Yc_AGZLC^ z;-xCs2Tc%FQ4tVOV!7alWGpmqxtq*<#nW3p!*b?#Pv5CD8ZK#*3DL`GSB#}SA}pQM zkK-TDC>Aj2>w;pUw>Ym_yw$@=mOPciPKBQ~S?#Rhp!Wd}M3VOiU;d9!V&sz?4?5f% z436J+5qTOPEcbrGo(s01r(5a1;|&4t=ujOC*;7?j*WC1DweG;c-g1SQ;$*S$`Uj7UIbzTCX@DNzCBs|APjiQiJfbc~GPo)9u{I-C+~t{t}DKR*)#RcZ^W#n6zQ_kGI+ z$+WAQZ{GY0q2>7IivtlxBQ0RJ6|PE3Y1|Swrr>zOj^z60Bf;r(_<70%VkuxcOpm6I z=>pH{n_HbyM3AaNYD;sowe`3#Q>k*nQ`APa3y!WvVw)%hk)sMTW%<;UY)e0~zOdLt z7GQl%b;C$elzv8<3?KEmIc@T7ul&^z+ClyITxsXz0@WAeJQ^gDI&ZKV@red=C&k4G zhq&4h7lcETG+KukM;xXT%%|9a!=8W!ta}2m*?B?o{D{*pNIl?pk10HZ)t-Ojvkflg z3NX~LvM+h&?OfcusO>XJ`4OGo;qp z`HbHc*Qo2~BPOPZ>U#?ddw)+6X&uW?4hnuJUc0T*oE+Q`+Ab}KR^a}?Y4Hw@CZ1>>O2kjRHbC|0FgRN;Gb>A8I4yE6Th-Rc*qFLRmSC`bUH$n_ zB7`RM1+EUgjZ904*)(0t&tN-1e^f&k+esIxQasc=?NN*G^_!zMRRjeCu{+(4@#VR4^~|i-2(`BmP0BqUG z8-#y>F=EHnG`z5|FsOHqR>`Et_M6|-((*ERfS6Bvv4)1nm+__;%+qGc)p&SLaz`DS zTU+I`D@sd0yEExn)RJ(L@k~9v)!NAz|A`11W#ZD(x|SA$IWZlvRec3|9Nd^sSUq?k z(0|6=1nHxM>i`!CMFDBq{XcQY=*_Amua?Vt2 zO|R1exRe&JdR*NCS0AacU0vxXO&3008^-pYac|zO{X~VjBj=rT`ymU94^|oiA&yN* zmnKNfqx$AxBgS@<|GCEpGO~$RTMr*5Aj>t14D!6Zs6<{PXu|Bd3;jDQW}7zhrLJ=Vu5CVjTqtL5p10HV;X^w3H;#HzvM!w)NtgiS0GZS6hW0@? zPvMo(}*g`|CNVi+qXlD#Ow)2CH_rKH4kcKIlBVy#dgPds;Sx;_onNOpgu z=Qorm%YJ=NS0A<j4}#3xfNYZI6_M@JQz!O+3kZ;&N<*g41qw&Nj+K#re85ML zP%`jcIcR2PM!XsW*SXGc(8Q$M-PQ|{Q@S#{J5fKItI8m!2Ih*OuBw=2DK4%v>(fVU zY$0_upFTP3EKH^nKvUUZIN!rP?!Er0BO_5Um=>-Kjh~4CZD&v`eWypo8#OXoLcz+$ z_Bwm!Ev{58=L1cjPeK*2#aMpbeSMYIs}nv%tNJC^ao2XMvWk|q3-k0}PO4&cPL9$# zq`BkOnJW7=zOslWkJ1IR8necM`E2%W?u5Ij6yh#_c?@mS3L z`t?pG3I@f`CMtAIPlUbhrf>b;FEP|> z^2~y2LO`G+u3%*6vR&tMbtQ^p6Rd2UR!eC61LDEkEzug@{Od712L%*FqxG>Ol4X8` z6wl&imPM}V@n_Ac{{H-@<1 zL^eGt9`_wU?Jchmh-1~KTPHo60EtbXqm0q*^XJm!C#FJHhf{qSmT~;f5geUg`GvTH z%@#Y**#)t4z^?F^lM~3xhE@6u=xFeexoTyX#uzw1anH00LkCJ)XO~I)GlI^FjUAa; z3K-NY#ZA3jh)@J~M@p1(E0^ziO-arQikv`$CO-Zj9GnS*G7X%10Y*2Q6R42f8$Ua| z#c+;Umx!bqT>lu94tpQ))>9Y*P=ceFURi80|1R@cLE3c%ENFR9InqAO{IW4>8_s+i zgO{XH+Gl;OQqYVtSdUr+J7z5#Y>TE7cWYzyd!K&x5|hOO?U7)f0%5N33~!dld?vb- zbCX}Dp+Te&!CnD+)ofdY4{|9f=5*rRbiDjzR_x+ZR{Z|vS1jXriD@SodBC#zyWbkG zKQ2xB%m%T!yBK@riiW`eD`*^}XF=&w4J*OHNN$7YGBr*|;!)T*I7F2PruwM;(ZZvw z^H<%$gaQ_GPsn8BcP!vI=vN?{iMYEXrw4P|+gIt|JoA~Rcs;ezbGpBN0wE;7qo-Gh z5c4qoC{n?s`CJ1BhYhQfHP)SSRHo)d!VLQv*0tO#x`#~iTQpTZv3wOI_m-Fl5)gS= zt5_HqT(uh9gQ*%0ar~1VPN~|DXkT*{To+#AkO-)@T*O7qYnk3|WM*Mm9_o(W*_~;~ zTAIS`k6R9t&yBs=Fs0M_8ZbC8`SV|23(U=LqUgz(-=pa`woEf>H~?m28>4>q{xsG${$6M%B2*>$3GVp^;}JOCPb;`!d4WXeZ41Yz9TRt_V7?Rr{@g`C8dr| z3bU=-KtynG9fL%`8)<33o%hRHC|w#w64JqB^lM1s)Saa7YbE1J1_w$o@J0=b1ly&&@tPew1isRoGf~H++JhV6Lo!I}e!E9mM`+ z8QY_J@?~)p=3qWhAVmFAIul?~obFBQ1iXuI zCdvbE^U%;?B%9%l^;^z#sKBn_K9q)0OJi_V#+-?!<&&9b|Dy$H$}U`&Fb`uc1Ba4` z+HrMW+L&c-k7YN170EP0|D^j>b$#+2j2ldoW`VRQ;z>e|8adN4EIX?Hxh9EMnKJ; zfq?;hh;&mY6IQ>_1b_V!rnLJ7nNzm?Pt(>-qr=~0@%#5^@QF)FS<}$y=5 z2_MS8L3DRkHpP?y!^s9S9m6l(^_P2$S zevTlB{cF>@=avaJ*Vx$D=06XKc8UeR0;_rosAz7PkLl?Z!9V@KzhZmK?s4Cn`_}XR zgnFj`1{}7s(vfxy2t?!CjCg}?4y=Ql*DwEnHw_UTz0tqlhjys_@c%p_k$$ZI^U>qS z;Q2k@nU?^M8o1DHHYeUfR2~u4)z<^5|Mu-$ixV3-HCb4ChlawPS7v9m-@Su|Mqo$? z+$|+%{*NEBYNvWqj-rm#PoIkVg8D^F9Kp;H92+Ygcau#}NN71vw>=US9v+^am{`Z~ zxAlP5uR!3{44rv8wWYDb4C5*XU9hA&?ytQqv)Iei7K>ud%QzJe3RC=Y0#IzefeS?G_S7O zt72ke2^=C?E`Z)yblc)N1XcA8r@7eJ_O_<$3*-LV2ef`=MNd8Pj+~qv4ihz^Z!Kc} zrp(ZWl;++i5o9`Q zQUyMHFw(LOnv2OY+|)Tv{b$pAtl zH`me8k@`Igl=#(E3EEtRG~9|<@M~tWDA0s^mqYXE()7!O@1K#Fm7e}`-q5?KZ!%Mn z)}#o0XQ;b6Q_!qc0UxHavK&=Nd{JRxsa7GqjEsy)0QfI@7d|AZ-EOeR*@^!5U$d3I z3_mg+EOL_gXwc%`ijS+=pMw9TP^DPPQKaG_C1px(ZYRAU?b<{Y&#u?@?#cJuT!rap z$IdVn!Tk3KUBn=;J1?yvmX=`feYYG2LM1rA`1mw#h<0tl9ocV9z0lN*_wc}&*8;PI zcbC1rJ+fFzLL#Y9vOyI=2kPxdzAI7cpj(hV)BGvKkEMd#fxGVO?oKdZam=?hGur|y zVfu?ZVOLo&jIgr6TBMsRc^Nq{_MxMrBj!tzl9g4V-Gp0vmS83=qFo!**bHVi8o86h z!?7|;uYr2?D!SjJqfss0pz5ab-C1)5>;8H+bm97=mwP`P;4Bta# z#KkiK6m4&BBNNsKvZK1Pkjp6#5Oz<&vE%9pp!JWKt}b z?&4)=anFIZxFNS4;YUh!#~%Ix?%wUR$MANQk2 z?t+|E;sO6nsJR(rwA8WmOT!YWFGvKdWNaAd^t&D1!7m=3qv>ldnw^=UE%TFc@Xyy zPAUbB^DxQ;mZ-Z9`a5$O^s2>&6TXo(Ud;5WLWI9wyD7uGRbXJ?IScA3@?}#;i?=RBm5~pLR8(OIi&h|k-be#wIaF_(X^w1HBaXB7r%#Rcu4c)9S?FbIW$I8LabVM!HZskf2^!F2} z36WE*8-vqV8f4*8bM4Hxo#9MEAA}%wz*9^!-W=S}+k08LDsJ)c@I+NHM2hrV)H>h5 z#!mVnQ6xzmI`|(b6v%v*yt*NG&Jefch}^J3#HW@!KDM zQao+anvGkVAtF4lRFkW!Kw12uRbNq#-hjesw#2NzQZE6hUA~4!3XlhPT z*fG-nc^o%`L~lJicBoh=r{&d?%XvC+@yZnjN7__qQQju!odfq6oU`mU2QYAef$MEV z05ryoW}$inzs&HIlsg*A)5ibM-qr?FSEX~{-+j?tC=tf6w>o(H#*O%YqC!IY3-x

Fe77WZtp*H=qw?ki*Wgv~vqK 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

/, - 'typeless translation should occupy its own layout row between the rail and capsule', + capsuleLayoutTs, + /value === 'typeless'\) return 'classic'/, + 'legacy Typeless preferences and events must resolve to the OpenLess default', ); assertMatch( capsuleStylesCss, diff --git a/openless-all/app/src-tauri/Cargo.lock b/openless-all/app/src-tauri/Cargo.lock index d6c9d307d..22db6f636 100644 --- a/openless-all/app/src-tauri/Cargo.lock +++ b/openless-all/app/src-tauri/Cargo.lock @@ -437,29 +437,6 @@ version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53" -[[package]] -name = "aws-lc-rs" -version = "1.18.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "faac5829c2b74c28f830747e7818ccfb684261b5f48a1118b1e2a13d36dfab13" -dependencies = [ - "aws-lc-sys", - "zeroize", -] - -[[package]] -name = "aws-lc-sys" -version = "0.46.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1622d8446a2d4b2ce0c7eefc73dd43a99779028d5ee5c2dd8073a658ba8a2bc" -dependencies = [ - "cc", - "cmake", - "dunce", - "fs_extra", - "pkg-config", -] - [[package]] name = "axum" version = "0.7.9" @@ -988,15 +965,6 @@ dependencies = [ "error-code", ] -[[package]] -name = "cmake" -version = "0.1.58" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0f78a02292a74a88ac736019ab962ece0bc380e3f977bf72e376c5d78ff0678" -dependencies = [ - "cc", -] - [[package]] name = "cmov" version = "0.5.4" @@ -2172,12 +2140,6 @@ dependencies = [ "zip 2.6.1", ] -[[package]] -name = "fs_extra" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c" - [[package]] name = "fst" version = "0.4.7" @@ -3893,16 +3855,6 @@ dependencies = [ "num-traits", ] -[[package]] -name = "num-complex" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" -dependencies = [ - "num-traits", - "serde", -] - [[package]] name = "num-bigint-dig" version = "0.8.6" @@ -3919,6 +3871,16 @@ dependencies = [ "zeroize", ] +[[package]] +name = "num-complex" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" +dependencies = [ + "num-traits", + "serde", +] + [[package]] name = "num-conv" version = "0.2.2" @@ -4412,7 +4374,7 @@ dependencies = [ [[package]] name = "openless" -version = "2.0.2-Beta.1+build.20261017" +version = "2.0.2-Beta.1+build.20261021-nativechrome" dependencies = [ "anyhow", "arboard", @@ -4531,7 +4493,7 @@ dependencies = [ "once_cell", "parking_lot", "regex", - "reqwest 0.13.5", + "reqwest 0.12.28", "serde", "serde_json", "sha1 0.11.0", @@ -5147,7 +5109,6 @@ version = "0.11.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0e750cca55fe4f0439a15d0bb529da9651e79993e8e72c61a899a36d462befbe" dependencies = [ - "aws-lc-rs", "bytes", "getrandom 0.4.3", "lru-slab", @@ -5436,16 +5397,13 @@ dependencies = [ "hyper-util", "js-sys", "log", - "mime_guess", "percent-encoding", "pin-project-lite", - "quinn", "rustls", "rustls-pki-types", "rustls-platform-verifier", "serde", "serde_json", - "serde_urlencoded", "sync_wrapper", "tokio", "tokio-rustls", @@ -5615,7 +5573,6 @@ version = "0.23.46" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "48e13bd8c0e9365c43cfa5c9e8f9ad49d3c8444926c9aac819e0e4dc503c8fdf" dependencies = [ - "aws-lc-rs", "log", "once_cell", "ring", @@ -5680,7 +5637,6 @@ version = "0.103.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f3c3cf1d8b1e7d4927e2d154c3fcb02979afb9939629c62cd9048d4f07b60ac2" dependencies = [ - "aws-lc-rs", "ring", "rustls-pki-types", "untrusted", diff --git a/openless-all/app/src-tauri/Cargo.toml b/openless-all/app/src-tauri/Cargo.toml index b631ed04c..515debe27 100644 --- a/openless-all/app/src-tauri/Cargo.toml +++ b/openless-all/app/src-tauri/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "openless" -version = "2.0.2-Beta.1+build.20261017" +version = "2.0.2-Beta.1+build.20261021-nativechrome" license = "AGPL-3.0-only" description = "OpenLess — local voice input that types where your cursor is" authors = ["OpenLess"] @@ -61,6 +61,7 @@ tokio = { version = "1", features = ["full"] } tokio-tungstenite = { version = "0.24", features = ["rustls-tls-webpki-roots"] } futures-util = "0.3" reqwest = { version = "0.12", default-features = false, features = ["json", "multipart", "rustls-tls", "stream", "system-proxy"] } +rustls = { version = "^0.23", default-features = false, features = ["ring", "std", "tls12", "logging"] } zip = "2" thiserror = "1" anyhow = "1" @@ -97,7 +98,6 @@ x509-parser = { version = "0.16", features = ["verify"] } time = "0.3" tempfile = "3" local-ip-address = "^0.6" -rustls = { version = "^0.23", default-features = false, features = ["ring", "std", "tls12", "logging"] } tokio-rustls = { version = "^0.26", default-features = false, features = ["ring", "tls12", "logging"] } axum = { version = "^0.7", default-features = false, features = ["ws", "http1", "tokio", "query"] } hyper = { version = "^1", features = ["server", "http1"] } diff --git a/openless-all/app/src-tauri/backend-tests/Cargo.lock b/openless-all/app/src-tauri/backend-tests/Cargo.lock index 8b9df454f..13773b023 100644 --- a/openless-all/app/src-tauri/backend-tests/Cargo.lock +++ b/openless-all/app/src-tauri/backend-tests/Cargo.lock @@ -145,29 +145,6 @@ version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53" -[[package]] -name = "aws-lc-rs" -version = "1.18.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "faac5829c2b74c28f830747e7818ccfb684261b5f48a1118b1e2a13d36dfab13" -dependencies = [ - "aws-lc-sys", - "zeroize", -] - -[[package]] -name = "aws-lc-sys" -version = "0.46.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1622d8446a2d4b2ce0c7eefc73dd43a99779028d5ee5c2dd8073a658ba8a2bc" -dependencies = [ - "cc", - "cmake", - "dunce", - "fs_extra", - "pkg-config", -] - [[package]] name = "base16ct" version = "0.2.0" @@ -399,15 +376,6 @@ dependencies = [ "libloading", ] -[[package]] -name = "cmake" -version = "0.1.58" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0f78a02292a74a88ac736019ab962ece0bc380e3f977bf72e376c5d78ff0678" -dependencies = [ - "cc", -] - [[package]] name = "cmov" version = "0.5.4" @@ -455,16 +423,6 @@ dependencies = [ "libc", ] -[[package]] -name = "core-foundation" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" -dependencies = [ - "core-foundation-sys", - "libc", -] - [[package]] name = "core-foundation-sys" version = "0.8.7" @@ -501,7 +459,7 @@ dependencies = [ "core-foundation-sys", "coreaudio-rs", "dasp_sample", - "jni 0.21.1", + "jni", "js-sys", "libc", "mach2", @@ -589,12 +547,6 @@ dependencies = [ "cmov", ] -[[package]] -name = "dasp_sample" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c87e182de0887fd5361989c677c4e8f5000cd9491d6d563161a8f3a5519fc7f" - [[package]] name = "curve25519-dalek" version = "4.1.3" @@ -622,6 +574,12 @@ dependencies = [ "syn 2.0.119", ] +[[package]] +name = "dasp_sample" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c87e182de0887fd5361989c677c4e8f5000cd9491d6d563161a8f3a5519fc7f" + [[package]] name = "data-encoding" version = "2.11.1" @@ -701,12 +659,6 @@ dependencies = [ "syn 3.0.9", ] -[[package]] -name = "dunce" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" - [[package]] name = "easyfft" version = "0.4.2" @@ -720,12 +672,6 @@ dependencies = [ "rustfft", ] -[[package]] -name = "either" -version = "1.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e9c71c2167ca323c882b99918929403426e2373ea17242ff5653e0d5e1058be" - [[package]] name = "ecdsa" version = "0.16.9" @@ -764,6 +710,12 @@ dependencies = [ "zeroize", ] +[[package]] +name = "either" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e9c71c2167ca323c882b99918929403426e2373ea17242ff5653e0d5e1058be" + [[package]] name = "elliptic-curve" version = "0.13.8" @@ -886,12 +838,6 @@ dependencies = [ "percent-encoding", ] -[[package]] -name = "fs_extra" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c" - [[package]] name = "fst" version = "0.4.7" @@ -1142,6 +1088,7 @@ dependencies = [ "tokio", "tokio-rustls", "tower-service", + "webpki-roots 1.0.9", ] [[package]] @@ -1354,36 +1301,6 @@ dependencies = [ "windows-sys 0.45.0", ] -[[package]] -name = "jni" -version = "0.22.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5efd9a482cf3a427f00d6b35f14332adc7902ce91efb778580e180ff90fa3498" -dependencies = [ - "cfg-if", - "combine", - "jni-macros", - "jni-sys 0.4.1", - "log", - "simd_cesu8", - "thiserror 2.0.21", - "walkdir", - "windows-link", -] - -[[package]] -name = "jni-macros" -version = "0.22.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a00109accc170f0bdb141fed3e393c565b6f5e072365c3bd58f5b062591560a3" -dependencies = [ - "proc-macro2", - "quote", - "rustc_version", - "simd_cesu8", - "syn 2.0.119", -] - [[package]] name = "jni-sys" version = "0.3.1" @@ -1698,16 +1615,6 @@ dependencies = [ "num-traits", ] -[[package]] -name = "num-complex" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" -dependencies = [ - "num-traits", - "serde", -] - [[package]] name = "num-bigint-dig" version = "0.8.6" @@ -1724,6 +1631,16 @@ dependencies = [ "zeroize", ] +[[package]] +name = "num-complex" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" +dependencies = [ + "num-traits", + "serde", +] + [[package]] name = "num-conv" version = "0.2.2" @@ -1823,7 +1740,7 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8b61bebd49e5d43f5f8cc7ee2891c16e0f41ec7954d36bcb6c14c5e0de867fb" dependencies = [ - "jni 0.21.1", + "jni", "ndk", "ndk-context", "num-derive", @@ -1921,12 +1838,6 @@ dependencies = [ "zip", ] -[[package]] -name = "openssl-probe" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c87def4c32ab89d880effc9e097653c8da5d6ef28e6b539d313baaacfbafcbe" - [[package]] name = "p256" version = "0.13.2" @@ -2148,39 +2059,39 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "494b4379484fc92217cc7d9e3a532375b1d01a61889ec8333025dc3b0377af56" [[package]] -name = "primal-check" -version = "0.3.4" +name = "ppv-lite86" +version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc0d895b311e3af9902528fbb8f928688abbd95872819320517cc24ca6b2bd08" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" dependencies = [ - "num-integer", + "zerocopy", ] [[package]] -name = "proc-macro-crate" -version = "3.5.0" +name = "primal-check" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" +checksum = "dc0d895b311e3af9902528fbb8f928688abbd95872819320517cc24ca6b2bd08" dependencies = [ - "toml_edit", + "num-integer", ] [[package]] -name = "ppv-lite86" -version = "0.2.21" +name = "primeorder" +version = "0.13.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" +checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6" dependencies = [ - "zerocopy", + "elliptic-curve", ] [[package]] -name = "primeorder" -version = "0.13.6" +name = "proc-macro-crate" +version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6" +checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" dependencies = [ - "elliptic-curve", + "toml_edit", ] [[package]] @@ -2238,7 +2149,6 @@ version = "0.11.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0e750cca55fe4f0439a15d0bb529da9651e79993e8e72c61a899a36d462befbe" dependencies = [ - "aws-lc-rs", "bytes", "getrandom 0.4.3", "lru-slab", @@ -2421,11 +2331,11 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.13.5" +version = "0.12.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16a1cfa75cc186dd73d5818e510e042e40927bccc9c236b061cea97e1eb08029" +checksum = "eddd3ca559203180a307f12d114c268abf583f59b03cb906fd0b3ff8646c1147" dependencies = [ - "base64 0.23.1", + "base64 0.22.1", "bytes", "futures-core", "futures-util", @@ -2443,7 +2353,6 @@ dependencies = [ "quinn", "rustls", "rustls-pki-types", - "rustls-platform-verifier", "serde", "serde_json", "serde_urlencoded", @@ -2459,6 +2368,7 @@ dependencies = [ "wasm-bindgen-futures", "wasm-streams", "web-sys", + "webpki-roots 1.0.9", ] [[package]] @@ -2592,7 +2502,6 @@ version = "0.23.46" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "48e13bd8c0e9365c43cfa5c9e8f9ad49d3c8444926c9aac819e0e4dc503c8fdf" dependencies = [ - "aws-lc-rs", "once_cell", "ring", "rustls-pki-types", @@ -2601,18 +2510,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "rustls-native-certs" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a073f5dc7469f984c52ad2752b63b0807745133b6de880b7b64c1ac4c48aec4" -dependencies = [ - "openssl-probe", - "rustls-pki-types", - "schannel", - "security-framework", -] - [[package]] name = "rustls-pki-types" version = "1.15.1" @@ -2623,40 +2520,12 @@ dependencies = [ "zeroize", ] -[[package]] -name = "rustls-platform-verifier" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1167586491e2b18b8bfbb293e8180ec17c201c4f076d7cb3070ca964e7598f98" -dependencies = [ - "core-foundation 0.10.1", - "core-foundation-sys", - "jni 0.22.4", - "log", - "once_cell", - "rustls", - "rustls-native-certs", - "rustls-platform-verifier-android", - "rustls-webpki", - "security-framework", - "security-framework-sys", - "webpki-root-certs", - "windows-sys 0.61.2", -] - -[[package]] -name = "rustls-platform-verifier-android" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eec689c0bc40ff2458a5977b6619cb718087084a18e02a131c599b62d05e1a5f" - [[package]] name = "rustls-webpki" version = "0.103.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f3c3cf1d8b1e7d4927e2d154c3fcb02979afb9939629c62cd9048d4f07b60ac2" dependencies = [ - "aws-lc-rs", "ring", "rustls-pki-types", "untrusted", @@ -2683,15 +2552,6 @@ dependencies = [ "winapi-util", ] -[[package]] -name = "schannel" -version = "0.1.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cb23c424d8ee841bb4d813677ca237e2a610067d594fec130f87d6093495ab5" -dependencies = [ - "windows-sys 0.61.2", -] - [[package]] name = "scopeguard" version = "1.2.0" @@ -2712,29 +2572,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "security-framework" -version = "3.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7f4bc775c73d9a02cde8bf7b2ec4c9d12743edf609006c7facc23998404cd1d" -dependencies = [ - "bitflags 2.13.2", - "core-foundation 0.10.1", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ce2691df843ecc5d231c0b14ece2acc3efb62c0a398c7e1d875f3983ce020e3" -dependencies = [ - "core-foundation-sys", - "libc", -] - [[package]] name = "semver" version = "1.0.28" @@ -2857,16 +2694,6 @@ version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3a219298ac11a56ea9a6d2120044824d6f01aeb034955e7af7bc16858527deea" -[[package]] -name = "simd_cesu8" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11031e251abf8611c80f460e19dbdeb54a66db918e49c65a7065b46ac7aec520" -dependencies = [ - "rustc_version", - "simdutf8", -] - [[package]] name = "simdutf8" version = "0.1.5" @@ -2995,7 +2822,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a13f3d0daba03132c0aa9767f98351b3488edc2c100cda2d2ec2b04f3d8d3c8b" dependencies = [ "bitflags 2.13.2", - "core-foundation 0.9.4", + "core-foundation", "system-configuration-sys", ] @@ -3482,9 +3309,9 @@ dependencies = [ [[package]] name = "wasm-streams" -version = "0.5.0" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d1ec4f6517c9e11ae630e200b2b65d193279042e28edd4a2cda233e46670bbb" +checksum = "15053d8d85c7eccdbefef60f06769760a563c7f0a9d6902a13d35c7800b0ad65" dependencies = [ "futures-util", "js-sys", @@ -3513,15 +3340,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "webpki-root-certs" -version = "1.0.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b96554aa2acc8ccdb7e1c9a58a7a68dd5d13bccc69cd124cb09406db612a1c9b" -dependencies = [ - "rustls-pki-types", -] - [[package]] name = "webpki-roots" version = "0.26.11" diff --git a/openless-all/app/src-tauri/backend-tests/tests/mouse_dictation.rs b/openless-all/app/src-tauri/backend-tests/tests/mouse_dictation.rs index c316910c6..338143c57 100644 --- a/openless-all/app/src-tauri/backend-tests/tests/mouse_dictation.rs +++ b/openless-all/app/src-tauri/backend-tests/tests/mouse_dictation.rs @@ -12,6 +12,10 @@ mod shortcut_binding { #[path = "../../src/mobile_stubs/combo_hotkey.rs"] mod combo_hotkey; +#[allow(dead_code)] +#[path = "../../src/recording_companion.rs"] +mod recording_companion; + #[allow(dead_code)] #[path = "../../src/mouse_dictation.rs"] mod mouse_dictation; diff --git a/openless-all/app/src-tauri/backend-tests/tests/tls_crypto.rs b/openless-all/app/src-tauri/backend-tests/tests/tls_crypto.rs new file mode 100644 index 000000000..f58fa4043 --- /dev/null +++ b/openless-all/app/src-tauri/backend-tests/tests/tls_crypto.rs @@ -0,0 +1,3 @@ +//! Exercise the production TLS startup without loading Tauri's native runtimes. +#[path = "../../src/tls_crypto.rs"] +mod tls_crypto; diff --git a/openless-all/app/src-tauri/capabilities/macos-native-theme.json b/openless-all/app/src-tauri/capabilities/macos-native-theme.json new file mode 100644 index 000000000..6284026e8 --- /dev/null +++ b/openless-all/app/src-tauri/capabilities/macos-native-theme.json @@ -0,0 +1,8 @@ +{ + "$schema": "../gen/schemas/desktop-schema.json", + "identifier": "macos-native-theme", + "description": "Let the main window synchronize native appearance with the user's theme preference", + "platforms": ["macOS"], + "windows": ["main"], + "permissions": ["core:app:allow-set-app-theme"] +} diff --git a/openless-all/app/src-tauri/src/android/native_bridge.rs b/openless-all/app/src-tauri/src/android/native_bridge.rs index 83eb45647..268185d36 100644 --- a/openless-all/app/src-tauri/src/android/native_bridge.rs +++ b/openless-all/app/src-tauri/src/android/native_bridge.rs @@ -22,6 +22,18 @@ static OVERLAY_VISIBLE: std::sync::atomic::AtomicBool = std::sync::atomic::Atomi #[cfg(target_os = "android")] static APP_HANDLE: OnceLock = OnceLock::new(); +// A panic from a synchronously polled future must not cross an extern JNI +// boundary. Return an ordinary error so each caller keeps its wire envelope. +fn catch_jni_panic( + operation: &str, + action: impl FnOnce() -> Result, +) -> Result { + std::panic::catch_unwind(std::panic::AssertUnwindSafe(action)).unwrap_or_else(|_| { + log::error!("[android-native] {operation} panicked"); + Err(format!("{operation} failed unexpectedly")) + }) +} + #[derive(serde::Serialize)] #[serde(rename_all = "camelCase")] struct AndroidBackendSnapshotResponse { @@ -89,7 +101,7 @@ fn export_provider_settings_json(include_credentials: bool) -> String { fn import_provider_settings_json(json: &str, selection: bool, credentials: bool) -> String { let mut applied = Vec::new(); let mut errors = serde_json::Map::new(); - let result = (|| -> Result<(), String> { + let result = catch_jni_panic("import provider settings", || { let root: serde_json::Value = serde_json::from_str(json).map_err(|_| "invalid settings file")?; let version = root["openlessSettingsExportVersion"] @@ -174,7 +186,7 @@ fn import_provider_settings_json(json: &str, selection: bool, credentials: bool) } } Ok(()) - })(); + }); if let Err(error) = result { for (selected, key) in [ (selection, "providerSelection"), @@ -197,7 +209,7 @@ fn export_local_migration_bundle_json( include_credentials: bool, password: &str, ) -> String { - let result = (|| -> Result { + let result = catch_jni_panic("export migration bundle", || { let backend = CORE_BACKEND.get().ok_or("backend unavailable")?; let mode = match mode { "share_redacted" => openless_core::local_migration_bundle::BundleMode::ShareRedacted, @@ -233,7 +245,7 @@ fn export_local_migration_bundle_json( "inspection": artifact.inspection, "bundleBase64": base64::engine::general_purpose::STANDARD.encode(&artifact.bytes), })) - })(); + }); match result { Ok(payload) => serde_json::json!({"ok": true, "payload": payload}).to_string(), Err(error) => local_bundle_error(error), @@ -258,7 +270,7 @@ fn inspect_local_migration_bundle_json(bundle_base64: &str) -> String { } fn preview_local_migration_bundle_json(bundle_base64: &str, password: &str, mode: &str) -> String { - let result = (|| -> Result { + let result = catch_jni_panic("preview migration bundle", || { let backend = CORE_BACKEND.get().ok_or("backend unavailable")?; let bytes = base64::engine::general_purpose::STANDARD .decode(bundle_base64) @@ -281,7 +293,7 @@ fn preview_local_migration_bundle_json(bundle_base64: &str, password: &str, mode ) .map_err(|error| error.message)?; serde_json::to_value(preview).map_err(|_| "invalid bundle preview".into()) - })(); + }); match result { Ok(payload) => serde_json::json!({"ok": true, "payload": payload}).to_string(), Err(error) => local_bundle_error(error), @@ -296,7 +308,7 @@ fn import_local_migration_bundle_json( expected_generation: &str, android_revision: &str, ) -> String { - let result = (|| -> Result { + let result = catch_jni_panic("import migration bundle", || { let backend = CORE_BACKEND.get().ok_or("backend unavailable")?; let bytes = base64::engine::general_purpose::STANDARD .decode(bundle_base64) @@ -344,7 +356,7 @@ fn import_local_migration_bundle_json( tauri::async_runtime::block_on(backend.refresh_and_publish_credentials()) .map_err(|error| error.message)?; serde_json::to_value(inspection).map_err(|_| "invalid bundle inspection".into()) - })(); + }); match result { Ok(payload) => serde_json::json!({"ok": true, "payload": payload}).to_string(), Err(error) => local_bundle_error(error), @@ -1252,7 +1264,7 @@ mod jni_exports { let Ok(mut env) = JniEnv::from_raw(env) else { return std::ptr::null_mut(); }; - let result = (|| -> Result { + let result = catch_jni_panic("public dictionary", || { let base = env .get_string(&JString::from_raw(base)) .map(String::from) @@ -1276,7 +1288,7 @@ mod jni_exports { _ => return Err("unsupported dictionary action".into()), }; serde_json::to_value(status).map_err(|_| "encode dictionary status".into()) - })(); + }); crate::android::jni::android::export_jstring( &mut env, &match result { @@ -1295,10 +1307,15 @@ mod jni_exports { let Ok(mut env) = JniEnv::from_raw(env) else { return std::ptr::null_mut(); }; - let input = env.get_string(&JString::from_raw(pinyin)).map(String::from); - let result = input - .map(|query| tauri::async_runtime::block_on(openless_core::ime_cloud::query(&query))) - .unwrap_or_default(); + let result = catch_jni_panic("cloud pinyin", || { + let input = env.get_string(&JString::from_raw(pinyin)).map(String::from); + Ok(input + .map(|query| { + tauri::async_runtime::block_on(openless_core::ime_cloud::query(&query)) + }) + .unwrap_or_default()) + }) + .unwrap_or_default(); crate::android::jni::android::export_jstring( &mut env, &serde_json::json!(result).to_string(), @@ -1502,15 +1519,18 @@ mod jni_exports { env: *mut JNIEnv, _class: JClass, ) -> jstring { - let route = match CORE_BACKEND.get() { - Some(backend) => match tauri::async_runtime::block_on(backend.asr_route()) { - openless_core::AsrRoute::Local => "local", - openless_core::AsrRoute::LocalRaw => "localRaw", - openless_core::AsrRoute::Cloud => "cloud", - openless_core::AsrRoute::Unavailable => "unavailable", - }, - None => "unavailable", - }; + let route = catch_jni_panic("ASR route", || { + Ok(match CORE_BACKEND.get() { + Some(backend) => match tauri::async_runtime::block_on(backend.asr_route()) { + openless_core::AsrRoute::Local => "local", + openless_core::AsrRoute::LocalRaw => "localRaw", + openless_core::AsrRoute::Cloud => "cloud", + openless_core::AsrRoute::Unavailable => "unavailable", + }, + None => "unavailable", + }) + }) + .unwrap_or("unavailable"); match JniEnv::from_raw(env) { Ok(mut env) => crate::android::jni::android::export_jstring(&mut env, route), Err(_) => std::ptr::null_mut(), @@ -1834,6 +1854,19 @@ mod tests { InMemoryCredentialStore, InsertOutcome, TokioTaskSpawner, }; + #[test] + fn jni_panic_guard_returns_an_error_for_a_panicking_future() { + let result: Result<(), String> = catch_jni_panic("test operation", || { + tauri::async_runtime::block_on(async { panic!("simulated TLS panic") }) + }); + assert_eq!(result.unwrap_err(), "test operation failed unexpectedly"); + assert_eq!(catch_jni_panic("test operation", || Ok(42)), Ok(42)); + assert_eq!( + catch_jni_panic::<()>("test operation", || Err("network error".into())), + Err("network error".into()) + ); + } + #[test] fn android_snapshot_envelope_always_carries_contract_version() { let value: serde_json::Value = diff --git a/openless-all/app/src-tauri/src/commands/dictation.rs b/openless-all/app/src-tauri/src/commands/dictation.rs index 5e8cc54ef..2d224ba44 100644 --- a/openless-all/app/src-tauri/src/commands/dictation.rs +++ b/openless-all/app/src-tauri/src/commands/dictation.rs @@ -119,3 +119,56 @@ pub async fn repolish( .await .map_err(|error| error.to_string()) } + +#[cfg(not(mobile))] +#[tauri::command] +pub async fn get_dictation_translation_target( + core: CoreState<'_>, +) -> Result, String> { + Ok(core.dictation_translation_target()) +} + +#[cfg(not(mobile))] +#[tauri::command] +pub async fn select_dictation_translation_target( + core: CoreState<'_>, + session_id: openless_core::SessionId, + target_language: String, +) -> Result { + core.select_dictation_translation_target(session_id, target_language) + .map_err(|error| error.to_string()) +} + +#[cfg(not(mobile))] +#[tauri::command] +pub async fn set_capsule_language_menu( + window: Window, + coord: CoordinatorState<'_>, + session_id: openless_core::SessionId, + open: bool, +) -> Result<(), String> { + let label = window.label().to_string(); + if label != "capsule" && !label.starts_with("capsule-mirror-") { + return Err("capsule_window_required".into()); + } + let core = coord.backend(); + let capsule = coord + .tauri_host() + .capsule_window() + .ok_or("capsule_window_unavailable")?; + let (send, receive) = tokio::sync::oneshot::channel(); + capsule.run_on_main_thread(move |capsule| { + if open + && !core + .dictation_translation_target() + .is_some_and(|active| active.mutable && active.session_id == session_id) + { + let _ = send.send(Err("recording_translation_required".into())); + return; + } + let _ = send.send(capsule.set_translation_menu_open(label, session_id, open)); + })?; + receive + .await + .map_err(|_| "capsule_menu_cancelled".to_string())? +} diff --git a/openless-all/app/src-tauri/src/commands/mod.rs b/openless-all/app/src-tauri/src/commands/mod.rs index b0ba7db77..2b0840ed2 100644 --- a/openless-all/app/src-tauri/src/commands/mod.rs +++ b/openless-all/app/src-tauri/src/commands/mod.rs @@ -15,7 +15,6 @@ use tauri::State; // Submodules access the shared Host state, DTOs, and dependency types via use super::*. pub(crate) use serde::Serialize; -pub(crate) use serde_json::Value; pub(crate) use tauri::{AppHandle, Emitter, Window}; #[cfg(not(mobile))] diff --git a/openless-all/app/src-tauri/src/commands/qa.rs b/openless-all/app/src-tauri/src/commands/qa.rs index a125dc35f..b4e081e8d 100644 --- a/openless-all/app/src-tauri/src/commands/qa.rs +++ b/openless-all/app/src-tauri/src/commands/qa.rs @@ -2,29 +2,33 @@ use super::*; #[tauri::command] pub fn get_qa_hotkey_label(core: CoreState<'_>) -> String { - core.get_preferences() - .qa_hotkey - .as_ref() - .map(|binding| binding.display_label()) - .unwrap_or_default() + let prefs = core.get_preferences(); + if prefs.qa_companion_key.is_empty() { + return String::new(); + } + format!( + "{} + {}", + prefs.dictation_hotkey.display_label(), + prefs.qa_companion_key + ) } -/// Sets the QA hotkey and hot-updates the monitor. -/// `None`-form fields are not supported here — when the frontend passes -/// `binding == null`, it calls the "disable" form below (writing -/// prefs.qa_hotkey = None). +/// Sets the auxiliary key for recording-key + Ask. Null disables this chord; +/// the retired independent follow-up shortcut is never registered. #[tauri::command] pub fn set_qa_hotkey( coord: CoordinatorState<'_>, binding: Option, ) -> Result<(), String> { - if let Some(binding) = binding.as_ref() { - crate::shortcut_binding::validate_binding(binding).map_err(|e| e.to_string())?; - crate::shortcut_binding::reject_side_specific_non_dictation(binding)?; - reject_bare_shift_dictation_shortcut(binding)?; + if binding + .as_ref() + .is_some_and(|binding| !binding.modifiers.is_empty()) + { + return Err("只需设置提问附加键,录音主键会自动跟随当前选择".into()); } let mut prefs = coord.backend().get_preferences(); - prefs.qa_hotkey = binding; + prefs.qa_hotkey = None; + prefs.qa_companion_key = binding.map(|binding| binding.primary).unwrap_or_default(); reject_hotkey_collisions(&prefs)?; super::settings::persist_strict_settings(&coord, prefs) } diff --git a/openless-all/app/src-tauri/src/coordinator.rs b/openless-all/app/src-tauri/src/coordinator.rs index 40cc1ede4..9c2928a0e 100644 --- a/openless-all/app/src-tauri/src/coordinator.rs +++ b/openless-all/app/src-tauri/src/coordinator.rs @@ -713,6 +713,10 @@ impl Coordinator { Arc::clone(&app), Arc::clone(&qa_context), ); + let voice_surface_host = host.clone(); + qa_context.bind_voice_surface_owner(Arc::new(move |active| { + voice_surface_host.set_qa_voice_active(active) + })); let hotkey_runtime_target = (&backend.get_preferences()).into(); let inner = Arc::new(Inner { host, @@ -849,6 +853,10 @@ impl Coordinator { Arc::clone(&app), Arc::clone(&qa_context), ); + let voice_surface_host = host.clone(); + qa_context.bind_voice_surface_owner(Arc::new(move |active| { + voice_surface_host.set_qa_voice_active(active) + })); let hotkey_runtime_target = (&backend.get_preferences()).into(); let inner = Arc::new(Inner { host, @@ -1210,11 +1218,7 @@ impl Coordinator { /// `start_hotkey_listener`: a daemon thread retries registration every 3s /// on failure (the user may have changed the combo). pub fn start_qa_hotkey_listener(&self) { - let inner = Arc::clone(&self.inner); - std::thread::Builder::new() - .name("openless-qa-hotkey-supervisor".into()) - .spawn(move || qa_hotkey_supervisor_loop(inner)) - .ok(); + qa::install_recording_companion(&self.inner); } /// Starts the "quick Agent" dual-hotkey supervisor, parallel to the QA @@ -1660,6 +1664,9 @@ impl Coordinator { let previous = &change.previous; let next = &change.next; *self.inner.hotkey_runtime_target.lock() = next.clone(); + if previous.dictation != next.dictation || previous.qa_companion_key != next.qa_companion_key { + crate::recording_companion::configure(next.dictation.clone(), next.qa_companion_key.clone()); + } if previous.translation != next.translation { self.try_update_translation_hotkey_binding()?; @@ -1817,14 +1824,7 @@ impl Coordinator { .backend .services() .qa - .show() - .await - .map_err(|error| error.message)?; - self.inner - .backend - .services() - .qa - .toggle_recording() + .start_question() .await .map_err(|error| error.message) } @@ -1896,6 +1896,7 @@ impl Coordinator { } pub fn set_shortcut_recording_active(&self, active: bool) { + crate::recording_companion::suspend(active); self.inner .shortcut_recording_active .store(active, Ordering::SeqCst); diff --git a/openless-all/app/src-tauri/src/coordinator/dictation_core.rs b/openless-all/app/src-tauri/src/coordinator/dictation_core.rs index fb37d3e9e..f5b080ae3 100644 --- a/openless-all/app/src-tauri/src/coordinator/dictation_core.rs +++ b/openless-all/app/src-tauri/src/coordinator/dictation_core.rs @@ -1,6 +1,6 @@ use std::sync::Arc; -use super::{qa::handle_qa_option_edge, Inner}; +use super::Inner; #[derive(Debug, Clone, serde::Serialize)] #[serde(rename_all = "camelCase")] @@ -59,11 +59,13 @@ pub(super) async fn handle_pressed_edge( pressed_at: std::time::Instant, press_id: u64, ) { - if inner.qa_context.is_panel_visible() - && inner.backend.snapshot().dictation.phase == openless_core::DictationPhase::Idle - { - handle_qa_option_edge(inner).await; - return; + if crate::recording_companion::claimed() || inner.qa_context.is_panel_visible() { + // Result/recording windows never hijack the recording key into the old + // second-stage follow-up flow. Only the explicit companion chord asks. + if let Ok(qa) = inner.backend.services().qa.snapshot().await { + if crate::recording_companion::claimed() || matches!(qa.phase, + openless_core::QaPhase::Recording | openless_core::QaPhase::Thinking | openless_core::QaPhase::AwaitingApproval) { return; } + } } match dispatch( inner, @@ -84,10 +86,10 @@ pub(super) async fn handle_released_edge( released_at: std::time::Instant, press_id: u64, ) { - if inner.qa_context.is_panel_visible() - && inner.backend.snapshot().dictation.phase == openless_core::DictationPhase::Idle - { - return; + if inner.qa_context.is_panel_visible() { + if let Ok(qa) = inner.backend.services().qa.snapshot().await { + if matches!(qa.phase, openless_core::QaPhase::Recording | openless_core::QaPhase::Thinking | openless_core::QaPhase::AwaitingApproval) { return; } + } } match dispatch( inner, diff --git a/openless-all/app/src-tauri/src/coordinator/qa.rs b/openless-all/app/src-tauri/src/coordinator/qa.rs index 36f62c0b6..665f1f726 100644 --- a/openless-all/app/src-tauri/src/coordinator/qa.rs +++ b/openless-all/app/src-tauri/src/coordinator/qa.rs @@ -1,27 +1,50 @@ +use super::Inner; use std::sync::Arc; -use super::Inner; +pub(super) fn install_recording_companion(inner: &Arc) { + let target = inner.hotkey_runtime_target.lock().clone(); + crate::recording_companion::configure(target.dictation, target.qa_companion_key); + let weak = Arc::downgrade(inner); + crate::recording_companion::install(Arc::new(move || { + let Some(inner) = weak.upgrade() else { + return; + }; + if inner + .shortcut_recording_active + .load(std::sync::atomic::Ordering::SeqCst) + { + return; + } + let task = Arc::clone(&inner); + let _ = inner.host.spawn(async move { + handle_qa_hotkey_pressed(&task).await; + }); + })); +} +/// One chord owns the complete question: start → record → finish. Processing +/// never queues another question and a completed result is replaced by a fresh turn. pub(super) async fn handle_qa_hotkey_pressed(inner: &Arc) { - let visible = inner.qa_context.is_panel_visible(); - log::info!("[coord] QA hotkey edge (panel_visible={visible})"); - let result = if visible { - inner.backend.services().qa.dismiss().await - } else { - inner.backend.services().qa.show().await + let Ok(_handoff) = inner.overlay_qa_handoff.try_lock() else { + return; }; - if let Err(error) = result { - log::warn!("[coord] QA panel toggle failed: {error}"); - } -} - -pub(super) async fn handle_qa_option_edge(inner: &Arc) { - if !inner.qa_context.is_panel_visible() { + let qa = &inner.backend.services().qa; + let Ok(snapshot) = qa.snapshot().await else { return; - } - if let Err(error) = inner.backend.services().qa.toggle_recording().await { - if error.code != openless_core::BackendErrorCode::Busy { - log::warn!("[coord] QA recording toggle failed: {error}"); + }; + let result = match (snapshot.phase, snapshot.session_id) { + (openless_core::QaPhase::Recording, Some(session_id)) => { + qa.stop_recording(session_id).await } + (openless_core::QaPhase::Thinking | openless_core::QaPhase::AwaitingApproval, _) => return, + _ => { + inner + .backend + .start_voice_question_from_recording_key() + .await + } + }; + if let Err(error) = result { + log::warn!("[ask] question hotkey failed: {error}"); } } diff --git a/openless-all/app/src-tauri/src/coordinator/restore_runtime.rs b/openless-all/app/src-tauri/src/coordinator/restore_runtime.rs index 05f0c10a5..88fbeeb42 100644 --- a/openless-all/app/src-tauri/src/coordinator/restore_runtime.rs +++ b/openless-all/app/src-tauri/src/coordinator/restore_runtime.rs @@ -163,6 +163,7 @@ fn reconcile_hotkeys( target: openless_core::HotkeyRuntimeTarget, ) -> Result<(), BackendError> { *coord.inner.hotkey_runtime_target.lock() = target.clone(); + crate::recording_companion::configure(target.dictation.clone(), target.qa_companion_key.clone()); let trigger = crate::shortcut_binding::legacy_modifier_trigger(&target.dictation); let binding = crate::types::HotkeyBinding { trigger: trigger.unwrap_or(crate::types::HotkeyTrigger::Custom), diff --git a/openless-all/app/src-tauri/src/core_adapters.rs b/openless-all/app/src-tauri/src/core_adapters.rs index 22c8f12eb..b395a9efd 100644 --- a/openless-all/app/src-tauri/src/core_adapters.rs +++ b/openless-all/app/src-tauri/src/core_adapters.rs @@ -3823,6 +3823,7 @@ impl AudioRecorder for TauriAudioRecorder { } fn map_recorder_error(error: RecorderError) -> BackendError { + log::error!("[recorder] capture failed: {error}"); let code = match error { RecorderError::PermissionDenied => BackendErrorCode::PermissionDenied, RecorderError::NoInputDevice | RecorderError::EngineFailed(_) => BackendErrorCode::Platform, @@ -4113,6 +4114,9 @@ impl CoreTextInserter for TauriTextInserter { ) .await?; previous_input_source = previous; + // Keep ABC asserted for every batch: reactivating the target + // can make macOS re-apply the document's CJK input source. + crate::unicode_keystroke::set_streaming_ascii_guard(Some(app_handle.clone())); Some(worker) } else { None @@ -4841,6 +4845,8 @@ impl TauriTextInsertionSession { async fn restore_platform_state(&self) -> Result<(), BackendError> { #[cfg(target_os = "macos")] { + // Drop the guard first or it would fight the restore below. + crate::unicode_keystroke::set_streaming_ascii_guard::(None); let previous_input_source = self.previous_input_source.lock().take(); crate::unicode_keystroke::restore_input_source(&self.app, previous_input_source) .await @@ -5369,10 +5375,12 @@ impl HostActions for TauriHostActions { HostAction::ShowSelectionPreview => crate::show_selection_polish_preview(&app), HostAction::HideSelectionPreview => crate::hide_selection_polish_preview(&app), HostAction::ShowQa => { + self.qa_context.set_voice_surface_active(true); self.qa_context.prepare_show(); crate::show_qa_window(&app, "idle"); } HostAction::HideQa => { + self.qa_context.set_voice_surface_active(false); self.qa_context.clear(); crate::hide_qa_window(&app); } diff --git a/openless-all/app/src-tauri/src/desktop_resources.rs b/openless-all/app/src-tauri/src/desktop_resources.rs index 17353e1fc..f7e04edee 100644 --- a/openless-all/app/src-tauri/src/desktop_resources.rs +++ b/openless-all/app/src-tauri/src/desktop_resources.rs @@ -43,19 +43,10 @@ pub(crate) type MainWindowLifecycle = parking_lot::Mutex; #[cfg(not(mobile))] pub(crate) fn initialize_main(window: &tauri::WebviewWindow) { - #[cfg(target_os = "macos")] - { - use window_vibrancy::{apply_vibrancy, NSVisualEffectMaterial, NSVisualEffectState}; - let _ = window.set_decorations(true); - if let Err(error) = apply_vibrancy( - window, - NSVisualEffectMaterial::HudWindow, - Some(NSVisualEffectState::Active), - Some(20.0), - ) { - log::warn!("[main] vibrancy failed: {error}"); - } - } + // macOS deliberately applies no NSVisualEffectView: the React shell paints an opaque + // surface over the whole content view, so a behind-window blur would be invisible yet + // keep compositing every frame. Decorations and the Overlay title bar come from + // tauri.conf.json, which also covers windows recreated by `ensure_main`. #[cfg(target_os = "windows")] { if let Err(error) = window_vibrancy::apply_mica(window, None) { @@ -63,7 +54,7 @@ pub(crate) fn initialize_main(window: &tauri::WebviewWindow bool { + CAPSULE_MENU_OPEN.load(std::sync::atomic::Ordering::SeqCst) +} + #[derive(Clone, Copy, Debug, PartialEq, Eq)] pub enum HotkeyEvent { Pressed { @@ -756,6 +766,7 @@ mod platform { match event_type { TAP_DISABLED_BY_TIMEOUT | TAP_DISABLED_BY_USER_INPUT => { + crate::recording_companion::reset_held(); if let Some(tap) = *ctx.handles.tap.lock().unwrap() { unsafe { CGEventTapEnable(tap, true) }; } @@ -763,9 +774,15 @@ mod platform { } FLAGS_CHANGED => handle_flags_changed(ctx, event), KEY_DOWN => { - handle_key_down(ctx, event); let keycode = unsafe { CGEventGetIntegerValueField(event, KEYBOARD_EVENT_KEYCODE) }; - crate::side_aware_combo::platform::dispatch_keycode(keycode, false, 0, true); + if keycode == ESC_KEYCODE && super::capsule_menu_open() { return event; } + if !ctx.shared.recording_active.load(Ordering::SeqCst) + && crate::side_aware_combo::platform::dispatch_keycode(keycode, false, 0, true) { + crate::side_aware_combo::handle_companion_key_down(); + note_companion_key_down(ctx); + return std::ptr::null_mut(); + } + handle_key_down(ctx, event); // While a session is active, consume Esc exclusively: returning null deletes the // event (active tap) so the host app never sees it, avoiding double effect between // "cancel session" and the host's Esc semantics. See esc_exclusive docs. @@ -775,7 +792,9 @@ mod platform { } KEY_UP => { let keycode = unsafe { CGEventGetIntegerValueField(event, KEYBOARD_EVENT_KEYCODE) }; - crate::side_aware_combo::platform::dispatch_keycode(keycode, false, 0, false); + if crate::side_aware_combo::platform::dispatch_keycode(keycode, false, 0, false) { + return std::ptr::null_mut(); + } } // Fn+brightness / volume / keyboard backlight and similar do not produce KEY_DOWN but // systemDefined. While the Fn trigger is held, treat these as function-layer combos — @@ -1681,6 +1700,7 @@ mod platform { return false; } let pressed = matches!(message, WM_KEYDOWN | WM_SYSKEYDOWN); + if vk_code == VK_ESCAPE && super::capsule_menu_open() { return false; } if vk_code == VK_ESCAPE && (message == WM_KEYDOWN || message == WM_SYSKEYDOWN) { crate::side_aware_combo::handle_companion_key_down(); note_companion_key_down(ctx); @@ -1691,7 +1711,13 @@ mod platform { return esc_exclusive(); } - crate::side_aware_combo::platform::dispatch_vk(vk_code, pressed); + if crate::side_aware_combo::platform::dispatch_vk(vk_code, pressed) { + if pressed { + crate::side_aware_combo::handle_companion_key_down(); + note_companion_key_down(ctx); + } + return true; + } if pressed && !is_modifier_vk(vk_code) { crate::side_aware_combo::handle_companion_key_down(); diff --git a/openless-all/app/src-tauri/src/lib.rs b/openless-all/app/src-tauri/src/lib.rs index ec0911225..e0cf76be2 100644 --- a/openless-all/app/src-tauri/src/lib.rs +++ b/openless-all/app/src-tauri/src/lib.rs @@ -23,6 +23,7 @@ compile_error!( 打包用 openless-all/app/scripts/package-linux-egui.sh(deb/rpm/manual zip)。" ); +mod recording_companion; mod android; mod asr; mod audio_mute; @@ -108,6 +109,7 @@ mod side_aware_combo; #[path = "mobile_stubs/side_aware_combo.rs"] mod side_aware_combo; mod tauri_events; +mod tls_crypto; mod types; #[cfg(not(mobile))] mod unicode_keystroke; @@ -202,6 +204,7 @@ pub(crate) fn set_backend_preferences_for_test( #[cfg_attr(mobile, tauri::mobile_entry_point)] pub fn run() { + tls_crypto::install_tls_crypto_provider(); // Explicit acceptance in a debug bundle bypasses UI, microphone and the // system credential vault, but exercises the actual shared/native engines. // This entry point does not exist in production release builds. @@ -255,6 +258,9 @@ macro_rules! app_invoke_handler_desktop { get_capsule_auxiliary_snapshot, native_capsule_status, commands::get_capsule_snapshot, + commands::get_dictation_translation_target, + commands::select_dictation_translation_target, + commands::set_capsule_language_menu, commands::get_settings, commands::get_settings_snapshot, commands::update_setting_fields, @@ -910,13 +916,24 @@ fn run_desktop() { // — saving 3 resident webviews. Positioning and the QA drag fix are applied in // the creation/show paths. - // Main-window frosted material: NSVisualEffectView on macOS, Mica on Windows. - // Without this layer, transparent: true makes the window see-through to - // nothing instead of frosted glass. + // Main-window material: Mica on Windows. macOS deliberately applies no + // NSVisualEffectView: the React shell (WindowChrome, --ol-window-bg) paints a fully + // opaque surface over the whole content view, so a HudWindow/Active effect view would + // be invisible yet keep a live behind-window blur compositing on every frame. The + // native title bar style (Overlay + traffic lights) comes from tauri.conf.json at + // window creation; do not call set_decorations here (tao no-ops it when unchanged). // // decorations is decided per-platform at runtime: macOS keeps true for the // system traffic lights; Windows disables native chrome so the React // WinTitleBar takes over. + // Set the native appearance before showing any window, including + // low-memory launches where the main WebView does not exist yet. + #[cfg(target_os = "macos")] + app.set_theme(match coordinator.backend().get_preferences().theme_mode { + types::ThemeMode::System => None, + types::ThemeMode::Light => Some(tauri::Theme::Light), + types::ThemeMode::Dark => Some(tauri::Theme::Dark), + }); if let Some(main) = app.get_webview_window("main") { desktop_resources::initialize_main(&main); // Silent-start switch: prefs.start_minimized = true → don't pop the main @@ -2174,12 +2191,14 @@ fn wait_for_app_activation(app: &AppHandle) { #[cfg(not(target_os = "macos"))] fn wait_for_app_activation(_app: &AppHandle) {} -/// QA starts as a small composer and grows downwards after a question. +/// QA records in a compact bottom-anchored capsule, then reveals a wide result card. const QA_WINDOW_WIDTH: f64 = 480.0; const QA_WINDOW_HEIGHT: f64 = 80.0; -const QA_WINDOW_EXPANDED_HEIGHT: f64 = 560.0; +const QA_WINDOW_EXPANDED_WIDTH: f64 = 760.0; +const QA_WINDOW_EXPANDED_HEIGHT: f64 = 416.0; /// Gap between the capsule and the QA window; matches the design spec. -const QA_WINDOW_GAP_TO_CAPSULE: f64 = 8.0; +const QA_WINDOW_BOTTOM_INSET: f64 = 8.0; +const QA_RESULT_BOTTOM_LIFT: f64 = 40.0; /// Bottom margin reserved for the macOS Dock (same source as the capsule). #[derive(Clone, Copy, Debug, PartialEq)] @@ -2707,12 +2726,11 @@ fn position_qa_window(window: &tauri::WebviewWindow) -> ta let Some((frame, scale)) = chat_window_work_area(window, true)? else { return Ok(()); }; - let capsule_height = capsule_height_for_qa(); let (x, y) = bottom_center_position( frame, QA_WINDOW_WIDTH, - QA_WINDOW_EXPANDED_HEIGHT, - capsule_height + QA_WINDOW_GAP_TO_CAPSULE, + QA_WINDOW_HEIGHT, + QA_WINDOW_BOTTOM_INSET, ); window.set_position(tauri::PhysicalPosition::new( (x * scale).round() as i32, @@ -2725,6 +2743,14 @@ fn position_qa_window(window: &tauri::WebviewWindow) -> ta Ok(()) } +// Preserve a dragged window's centre and baseline; repeated result events must not drift. +fn qa_resize_origin(x: f64, y: f64, old_width: f64, old_height: f64, + width: f64, height: f64, was_expanded: bool, expanded: bool) -> (f64, f64) { + let lift = if expanded { QA_RESULT_BOTTOM_LIFT } else { 0.0 } + - if was_expanded { QA_RESULT_BOTTOM_LIFT } else { 0.0 }; + (x + (old_width - width) / 2.0, y + old_height - height - lift) +} + /// Called on the native main thread by the restricted QA command. The compact /// state has a genuinely small native frame, so hidden content cannot eat clicks. pub(crate) fn set_qa_window_expanded( @@ -2744,23 +2770,31 @@ pub(crate) fn set_qa_window_expanded( .inner_position() .map_err(|_| "qa_geometry_unavailable")? .to_logical::(scale); - let mut width = QA_WINDOW_WIDTH; + let current_size = window.inner_size() + .map_err(|_| "qa_geometry_unavailable")?.to_logical::(scale); + let was_expanded = current_size.height > QA_WINDOW_HEIGHT + 1.0; + let mut width = if expanded { QA_WINDOW_EXPANDED_WIDTH } else { QA_WINDOW_WIDTH }; let mut height = if expanded { QA_WINDOW_EXPANDED_HEIGHT } else { QA_WINDOW_HEIGHT }; - let (mut x, mut y) = (position.x, position.y); if let Some((frame, _)) = area { width = width.min((frame.width - 32.0).max(240.0)); height = height.min((frame.height - 64.0).max(QA_WINDOW_HEIGHT)); + } + let (mut x, mut y) = qa_resize_origin( + position.x, position.y, current_size.width, current_size.height, + width, height, was_expanded, expanded, + ); + if let Some((frame, _)) = area { x = x.clamp( frame.x + 16.0, (frame.x + frame.width - width - 16.0).max(frame.x + 16.0), ); y = y.clamp( frame.y + 32.0, - (frame.y + frame.height - height - 16.0).max(frame.y + 32.0), + (frame.y + frame.height - height - QA_WINDOW_BOTTOM_INSET).max(frame.y + 32.0), ); } window @@ -3780,14 +3814,11 @@ fn capsule_visual_height(_translation_active: bool) -> f64 { 140.0 } -fn capsule_height_for_qa() -> f64 { - capsule_visual_height(false) -} #[cfg(test)] mod tests { use super::{ - bottom_center_position, capsule_height_for_qa, capsule_visual_height, + bottom_center_position, capsule_visual_height, capsule_window_bounds, capsule_window_bounds_for_style, capsule_window_bounds_for_style_with_transcript, capsule_window_bounds_for_style_with_transcript_and_translation, clamp_to_monitor, @@ -4066,8 +4097,11 @@ mod tests { } #[test] - fn qa_anchor_uses_normal_capsule_height_source() { - assert_eq!(capsule_height_for_qa(), 140.0); + fn qa_resize_preserves_centre_baseline_and_user_position() { + let expanded = super::qa_resize_origin(-700.0, 700.0, 480.0, 80.0, 760.0, 416.0, false, true); + assert_eq!(expanded, (-840.0, 324.0)); + assert_eq!(super::qa_resize_origin(expanded.0, expanded.1, 760.0, 416.0, 760.0, 416.0, true, true), expanded); + assert_eq!(super::qa_resize_origin(expanded.0, expanded.1, 760.0, 416.0, 480.0, 80.0, true, false), (-700.0, 700.0)); } #[test] diff --git a/openless-all/app/src-tauri/src/mouse_dictation.rs b/openless-all/app/src-tauri/src/mouse_dictation.rs index 3b1294d6d..57fd204bc 100644 --- a/openless-all/app/src-tauri/src/mouse_dictation.rs +++ b/openless-all/app/src-tauri/src/mouse_dictation.rs @@ -232,6 +232,7 @@ fn match_modifier_states(required: &[String], down: [bool; 4]) -> bool { /// Dispatch a Mouse4 / Mouse5 edge into the active monitor (if any). pub fn handle_button(primary: &str, pressed: bool) { + crate::recording_companion::event(primary, pressed); let Some(normalized) = normalize_mouse_primary(primary) else { return; }; diff --git a/openless-all/app/src-tauri/src/native_capsule.rs b/openless-all/app/src-tauri/src/native_capsule.rs index 0212c709c..2f7e60c6d 100644 --- a/openless-all/app/src-tauri/src/native_capsule.rs +++ b/openless-all/app/src-tauri/src/native_capsule.rs @@ -1,6 +1,6 @@ //! Adapter from the existing coherent capsule snapshot to a disposable egui UI. use crate::capsule_mirrors::{self, MonitorRect}; -use crate::types::{CapsuleDisplayMode, CapsulePayload, CapsuleState, CapsuleStyle}; +use crate::types::{CapsuleDisplayMode, CapsulePayload, CapsuleState, CapsuleStyle, ThemeMode}; use openless_capsule::{ supervisor::CapsuleSupervisor, Action, CapsuleLabels, CapsulePopupState, Frame, }; @@ -29,7 +29,17 @@ pub(crate) struct NativeCapsule { latest: parking_lot::Mutex, position_pending: AtomicBool, layout_epoch: AtomicU64, + /// Bumped by every presentation and stop; a pending exit only reaps the + /// helpers if nothing was shown after it started. + exit_epoch: AtomicU64, + /// (native target name, UI locale) -> localized target name. + translation_name: parking_lot::Mutex>, } + +/// `DEFAULT_CAPSULE_EXIT_MS` (180) plus a frame: the default capsule's exit +/// motion plays on the helper before the host reaps it. +const EXIT_MS: u64 = 200; + impl NativeCapsule { pub(crate) fn new(app: tauri::AppHandle) -> Result { let executable = std::env::current_exe().map_err(|error| error.to_string())?; @@ -108,20 +118,19 @@ impl NativeCapsule { latest: parking_lot::Mutex::new(Presentation::default()), position_pending: AtomicBool::new(false), layout_epoch: AtomicU64::new(0), + exit_epoch: AtomicU64::new(0), + translation_name: parking_lot::Mutex::new(None), }) } pub(crate) fn set_locale(&self, locale: String) { *self.locale.lock() = locale; } + /// The text also feeds the "transcribing" label, so it is sent even when + /// the transcript rail is turned off (`Frame::show_transcript`). pub(crate) fn update_transcript(&self, session_id: &str, text: String) { - let coordinator = self.app.state::>(); - let enabled = coordinator - .backend() - .get_preferences() - .capsule_transcript_enabled; let mut latest = self.latest.lock(); if let Some(frame) = latest.frame.as_mut() { - if frame.update_transcript(session_id, if enabled { text } else { String::new() }) { + if frame.update_transcript(session_id, text) { self.send_frames(&latest); } } @@ -133,12 +142,72 @@ impl NativeCapsule { .find_map(CapsuleSupervisor::last_error) } pub(crate) fn stop(&self) { - *self.latest.lock() = Presentation::default(); + let mut latest = self.latest.lock(); + self.stop_locked(&mut latest); + } + fn stop_locked(&self, latest: &mut Presentation) { + *latest = Presentation::default(); + self.exit_epoch.fetch_add(1, Ordering::SeqCst); self.layout_epoch.fetch_add(1, Ordering::Relaxed); for supervisor in self.supervisors.lock().iter() { supervisor.stop(); } } + /// Replays the last frame as its exit and reaps the helpers once the + /// motion is over. The spectral style dismisses immediately. + fn leave(self: &Arc, sequence: u64) { + let mut latest = self.latest.lock(); + let exiting = latest.frame.as_ref().is_some_and(|frame| frame.leaving); + let animated = latest + .frame + .as_ref() + .is_some_and(|frame| frame.state.style != "siri") + && !latest.bounds.is_empty(); + if exiting { + return; + } + if !animated { + self.stop_locked(&mut latest); + return; + } + latest.frame = latest.frame.take().map(|frame| frame.into_leaving(sequence)); + self.send_frames(&latest); + let epoch = self.exit_epoch.fetch_add(1, Ordering::SeqCst) + 1; + drop(latest); + let native = Arc::clone(self); + tauri::async_runtime::spawn(async move { + tokio::time::sleep(std::time::Duration::from_millis(EXIT_MS)).await; + let mut latest = native.latest.lock(); + if native.exit_epoch.load(Ordering::SeqCst) == epoch { + native.stop_locked(&mut latest); + } + }); + } + /// The session's target language, named in the UI language as the + /// WebView badge does with `Intl.DisplayNames`. + fn translation_target(&self, saved: &str) -> String { + let coordinator = self.app.state::>(); + let target = coordinator + .backend() + .dictation_translation_target() + .map(|target| target.target_language) + .filter(|target| !target.trim().is_empty()) + .unwrap_or_else(|| saved.to_owned()); + let native = + openless_core::language_catalog::native_language_name(&target).unwrap_or(target); + let locale = self.locale.lock().clone(); + let mut cache = self.translation_name.lock(); + if let Some((cached, cached_locale, name)) = cache.as_ref() { + if *cached == native && *cached_locale == locale { + return name.clone(); + } + } + let name = openless_core::language_catalog::language_code(&native) + .and_then(|code| localized_language_name(&code, &locale)) + .unwrap_or_else(|| native.clone()); + *cache = Some((native, locale, name.clone())); + name + } pub(crate) fn present( self: &Arc, payload: &CapsulePayload, @@ -174,11 +243,10 @@ impl NativeCapsule { CapsuleStyle::Classic => "classic", CapsuleStyle::Typeless => "typeless", }; - let transcript = if preferences.capsule_transcript_enabled - && matches!( - payload.state, - CapsuleState::Recording | CapsuleState::Transcribing | CapsuleState::Polishing - ) { + let transcript = if matches!( + payload.state, + CapsuleState::Recording | CapsuleState::Transcribing | CapsuleState::Polishing + ) { transcript } else { String::new() @@ -192,21 +260,37 @@ impl NativeCapsule { audio_level: (!payload.warming).then_some(payload.level), translation_active: payload.translation, style: style.into(), + warming: payload.warming && payload.state == CapsuleState::Recording, + operating: payload.operating, + inserted_chars: payload.inserted_chars, + selection_polish: payload.selection_polish, + translation_target: payload + .translation + .then(|| self.translation_target(&preferences.translation_target_language)), }, transcript, + show_transcript: preferences.capsule_transcript_enabled, transcript_font_size: preferences.capsule_transcript_font_size as f32, labels: CapsuleLabels::for_locale(&self.locale.lock()), + theme: match preferences.theme_mode { + ThemeMode::System => openless_capsule::ThemeMode::System, + ThemeMode::Light => openless_capsule::ThemeMode::Light, + ThemeMode::Dark => openless_capsule::ThemeMode::Dark, + }, + leaving: false, bounds: None, interactive, }; if !frame.visible() { - self.stop(); + self.leave(sequence); return; } let mode = crate::tauri_coordinator_host::normalized_display_mode( preferences.capsule_display_mode, ); let mut latest = self.latest.lock(); + // A new presentation reverses a running exit on the same helpers. + self.exit_epoch.fetch_add(1, Ordering::SeqCst); let was_idle = latest.frame.is_none(); let needs_position = latest.mode != mode || latest.frame.as_ref().is_none_or(|previous| { @@ -351,6 +435,34 @@ impl NativeCapsule { } } +/// `[[NSLocale localeWithLocaleIdentifier:locale] localizedStringForLocaleIdentifier:code]`, +/// the same CLDR "standard" name `Intl.DisplayNames` gives the WebView. +#[cfg(target_os = "macos")] +fn localized_language_name(code: &str, locale: &str) -> Option { + use objc2::{msg_send, runtime::AnyClass, runtime::AnyObject}; + use objc2_foundation::NSString; + let class = AnyClass::get("NSLocale")?; + let (identifier, code) = (NSString::from_str(locale), NSString::from_str(code)); + objc2::rc::autoreleasepool(|_| unsafe { + // SAFETY: both selectors take an NSString and return autoreleased + // objects that are copied out before the pool drains. + let ns_locale: *mut AnyObject = msg_send![class, localeWithLocaleIdentifier: &*identifier]; + if ns_locale.is_null() { + return None; + } + let name: *mut NSString = msg_send![ns_locale, localizedStringForLocaleIdentifier: &*code]; + name.as_ref() + .map(|name| name.to_string()) + .filter(|name| !name.is_empty()) + }) +} + +/// Windows has no per-call display locale; the native name is shown instead. +#[cfg(not(target_os = "macos"))] +fn localized_language_name(_code: &str, _locale: &str) -> Option { + None +} + #[tauri::command] pub(crate) fn native_capsule_set_locale(app: tauri::AppHandle, locale: String) { if !matches!( diff --git a/openless-all/app/src-tauri/src/qa_adapter.rs b/openless-all/app/src-tauri/src/qa_adapter.rs index 41aaa09c8..61abf0b00 100644 --- a/openless-all/app/src-tauri/src/qa_adapter.rs +++ b/openless-all/app/src-tauri/src/qa_adapter.rs @@ -33,6 +33,7 @@ pub(crate) struct TauriQaHostContext { external_focus_target: Mutex>, front_app: Mutex>, panel_visible: AtomicBool, + voice_surface_owner: Mutex>>, selection_voice_target_binder: Mutex>, } @@ -45,6 +46,15 @@ fn retain_external_focus_target( } impl TauriQaHostContext { + pub(crate) fn bind_voice_surface_owner(&self, owner: Arc) { + *self.voice_surface_owner.lock() = Some(owner); + } + + pub(crate) fn set_voice_surface_active(&self, active: bool) { + let owner = self.voice_surface_owner.lock().clone(); + if let Some(owner) = owner { owner(active); } + } + pub(crate) fn is_panel_visible(&self) -> bool { self.panel_visible.load(Ordering::Acquire) } @@ -114,9 +124,9 @@ impl TauriQaHostContext { } let _ = crate::coordinator::restore_focus_target_if_possible(*self.focus_target.lock()); let (selection, selection_target) = crate::selection::resolve_selection_workspace_capture(); - if let Some(app) = app.lock().clone() { - crate::refocus_qa_window(&app); - } + // Voice Ask keeps the original app focused throughout capture/recording. + // The result window is non-activating; there is no composer to focus. + let _ = app; let selection_text = selection.as_ref().map(|selection| selection.text.clone()); let front_app = selection .and_then(|selection| selection.source_app) diff --git a/openless-all/app/src-tauri/src/recorder.rs b/openless-all/app/src-tauri/src/recorder.rs index eb826ea61..40cf087d1 100644 --- a/openless-all/app/src-tauri/src/recorder.rs +++ b/openless-all/app/src-tauri/src/recorder.rs @@ -31,8 +31,12 @@ const TARGET_SAMPLE_RATE: u32 = 16_000; const LOG_EVERY_N_CALLBACKS: usize = 50; /// RMS -> UI level gain, matching Swift's `min(1.0, rms * 4)`. const LEVEL_RMS_GAIN: f32 = 4.0; -/// Maximum number of native callback blocks waiting for the processing worker. -const AUDIO_PROCESSING_QUEUE_CAPACITY: usize = 64; +/// Bound capture backlog by duration and memory, independently of callback size. +const AUDIO_PROCESSING_MAX_QUEUED_US: u64 = 3_000_000; +const AUDIO_PROCESSING_MAX_QUEUED_BYTES: usize = 8 * 1024 * 1024; +const AUDIO_PROCESSING_QUEUE_CAPACITY: usize = 4096; +/// Shed optional enhancement before a temporary backlog can stop capture. +const AUDIO_PROCESSING_SHED_ENHANCEMENT_US: u64 = 500_000; static NEXT_CAPTURE_ID: AtomicU64 = AtomicU64::new(1); /// Max queued PCM chunks for the archive writer thread. When full, new archive chunks are /// dropped instead of blocking the realtime callback; ASR still receives the full PCM, and @@ -1992,7 +1996,7 @@ fn run_audio_thread( /// Try the selected microphone's native format before other advertised formats/devices. fn build_input_stream( microphone_device_name: Option, - frame_tx: SyncSender, + frame_tx: AudioProcessingSender, state: Arc, stop_flag: Arc, runtime_error_tx: Sender, @@ -2045,7 +2049,7 @@ fn try_input_candidates( fn start_device_stream( device: &cpal::Device, - frame_tx: &SyncSender, + frame_tx: &AudioProcessingSender, state: &Arc, stop_flag: &Arc, runtime_error_tx: &Sender, @@ -2105,7 +2109,7 @@ fn native_input_alternatives( fn start_native_config( device: &cpal::Device, supported: cpal::SupportedStreamConfig, - frame_tx: &SyncSender, + frame_tx: &AudioProcessingSender, state: &Arc, stop_flag: &Arc, runtime_error_tx: &Sender, @@ -2226,7 +2230,7 @@ fn build_stream_for_format( device: &cpal::Device, config: &StreamConfig, sample_format: SampleFormat, - frame_tx: SyncSender, + frame_tx: AudioProcessingSender, state: Arc, stop_flag: Arc, input_sr: u32, @@ -2271,13 +2275,21 @@ fn build_stream_for_format( })) { Ok(()) => {} Err(TrySendError::Disconnected(_)) => { + if state.accepting_audio.swap(false, Ordering::AcqRel) { + let _ = runtime_error_for_callback.send( + RecorderError::EngineFailed("audio processing worker disconnected".into()), + ); + } stop_flag.store(true, Ordering::Release); } Err(TrySendError::Full(_)) => { if state.accepting_audio.swap(false, Ordering::AcqRel) { let _ = runtime_error_for_callback.send( RecorderError::EngineFailed( - "audio processing queue overflow".into(), + format!("audio processing backlog exceeded limit: queued_us={} queued_bytes={} callback_samples={} sample_rate={} channels={}", + frame_tx.backlog.micros.load(Ordering::Acquire), + frame_tx.backlog.bytes.load(Ordering::Acquire), + data.len(), input_sr, channels), ), ); } @@ -2329,9 +2341,110 @@ enum AudioProcessingMessage { Shutdown, } +#[derive(Default)] +struct AudioProcessingBacklog { + micros: AtomicU64, + bytes: AtomicUsize, +} + +struct AudioProcessingReservation { + backlog: Arc, + micros: u64, + bytes: usize, +} + +impl Drop for AudioProcessingReservation { + fn drop(&mut self) { + self.backlog.micros.fetch_sub(self.micros, Ordering::AcqRel); + self.backlog.bytes.fetch_sub(self.bytes, Ordering::AcqRel); + } +} + +struct QueuedAudioProcessingMessage { + message: AudioProcessingMessage, + _reservation: Option, +} + +#[derive(Clone)] +struct AudioProcessingSender { + sender: SyncSender, + backlog: Arc, +} + +impl AudioProcessingSender { + fn reserve( + &self, + message: AudioProcessingMessage, + ) -> Result { + let reservation = if let AudioProcessingMessage::Frame(frame) = &message { + let rate = u64::from(frame.input_sample_rate) * frame.channels as u64; + if rate == 0 { + return Err(message); + } + let micros = (frame.samples.len() as u64 * 1_000_000).div_ceil(rate); + let bytes = frame.samples.len() * std::mem::size_of::(); + if self + .backlog + .bytes + .try_update(Ordering::AcqRel, Ordering::Acquire, |used| { + used.checked_add(bytes) + .filter(|next| *next <= AUDIO_PROCESSING_MAX_QUEUED_BYTES) + }) + .is_err() + { + return Err(message); + } + if self + .backlog + .micros + .try_update(Ordering::AcqRel, Ordering::Acquire, |used| { + used.checked_add(micros) + .filter(|next| *next <= AUDIO_PROCESSING_MAX_QUEUED_US) + }) + .is_err() + { + self.backlog.bytes.fetch_sub(bytes, Ordering::AcqRel); + return Err(message); + } + Some(AudioProcessingReservation { + backlog: Arc::clone(&self.backlog), + micros, + bytes, + }) + } else { + None + }; + Ok(QueuedAudioProcessingMessage { + message, + _reservation: reservation, + }) + } + + fn try_send( + &self, + message: AudioProcessingMessage, + ) -> Result<(), TrySendError> { + let queued = self.reserve(message).map_err(TrySendError::Full)?; + self.sender.try_send(queued).map_err(|error| match error { + TrySendError::Full(queued) => TrySendError::Full(queued.message), + TrySendError::Disconnected(queued) => TrySendError::Disconnected(queued.message), + }) + } + + fn send( + &self, + message: AudioProcessingMessage, + ) -> Result<(), std::sync::mpsc::SendError> { + let queued = self.reserve(message).map_err(std::sync::mpsc::SendError)?; + self.sender + .send(queued) + .map_err(|error| std::sync::mpsc::SendError(error.0.message)) + } +} + struct AudioProcessingWorker { join_handle: Option>, - shutdown: SyncSender, + shutdown: AudioProcessingSender, } impl AudioProcessingWorker { @@ -2341,52 +2454,61 @@ impl AudioProcessingWorker { level_handler: Arc, archiver: Option>, state: Arc, - ) -> Result<(Self, SyncSender), RecorderError> { + ) -> Result<(Self, AudioProcessingSender), RecorderError> { let (sender, receiver) = - sync_channel::(AUDIO_PROCESSING_QUEUE_CAPACITY); + sync_channel::(AUDIO_PROCESSING_QUEUE_CAPACITY); + let backlog = Arc::new(AudioProcessingBacklog::default()); + let sender = AudioProcessingSender { + sender, + backlog: Arc::clone(&backlog), + }; let join_handle = thread::Builder::new() .name("openless-audio-processor".into()) .spawn(move || { let mut processor = openless_core::AudioProcessor::new(processing); - while let Ok(message) = receiver.recv() { + let mut enhancement_enabled = processing.enhancement_enabled; + let deliver = |chunk: openless_core::audio::NormalizedPcmChunk| { + state.note_first_pcm(true); + consumer.consume_pcm_chunk(&chunk.pcm_i16_le); + if let Some(archiver) = &archiver { + archiver.append(&chunk.pcm_i16_le); + } + level_handler(chunk.level); + update_peak(&state.peak_output_rms_milli, chunk.level); + }; + while let Ok(queued) = receiver.recv() { + // Keep the reservation until downstream delivery completes. + let QueuedAudioProcessingMessage { message, _reservation } = queued; match message { AudioProcessingMessage::Frame(frame) => { + let queued_us = backlog.micros.load(Ordering::Acquire); + if enhancement_enabled && queued_us >= AUDIO_PROCESSING_SHED_ENHANCEMENT_US { + log::warn!("[recorder] disabling enhancement for this capture: processing backlog {} ms", queued_us / 1_000); + if let Some(tail) = processor.disable_enhancement() { + deliver(tail); + } + enhancement_enabled = false; + } if let Some(chunk) = processor.process( &frame.samples, frame.channels, frame.input_sample_rate, ) { - state.note_first_pcm(true); - consumer.consume_pcm_chunk(&chunk.pcm_i16_le); - if let Some(archiver) = &archiver { - archiver.append(&chunk.pcm_i16_le); - } - level_handler(chunk.level); - update_peak(&state.peak_output_rms_milli, chunk.level); + deliver(chunk); } } AudioProcessingMessage::Flush(done) => { if let Some(chunk) = processor.finish() { - state.note_first_pcm(true); - consumer.consume_pcm_chunk(&chunk.pcm_i16_le); - if let Some(archiver) = &archiver { - archiver.append(&chunk.pcm_i16_le); - } - level_handler(chunk.level); - update_peak(&state.peak_output_rms_milli, chunk.level); + deliver(chunk); } - processor.reset(); + // A warm microphone reuses this worker across recording segments. + processor = openless_core::AudioProcessor::new(processing); + enhancement_enabled = processing.enhancement_enabled; let _ = done.send(()); } AudioProcessingMessage::Shutdown => { if let Some(chunk) = processor.finish() { - state.note_first_pcm(true); - consumer.consume_pcm_chunk(&chunk.pcm_i16_le); - if let Some(archiver) = &archiver { - archiver.append(&chunk.pcm_i16_le); - } - level_handler(chunk.level); - update_peak(&state.peak_output_rms_milli, chunk.level); + deliver(chunk); } break; } @@ -2425,7 +2547,7 @@ struct StreamState { created_at: std::time::Instant, first_raw_pcm_us: AtomicU64, first_output_pcm_us: AtomicU64, - processor_sender: Mutex>>, + processor_sender: Mutex>, /// Fractional position left unconsumed by the previous callback; linear-interpolation /// resampling spans buffers. resample_phase: Mutex, @@ -2791,6 +2913,138 @@ mod tests { } } + #[test] + fn audio_processing_budget_is_duration_based_and_released_on_disconnect() { + for samples in [48, 480, 4800] { + let (tx, rx) = sync_channel(AUDIO_PROCESSING_QUEUE_CAPACITY); + let sender = AudioProcessingSender { + sender: tx, + backlog: Arc::new(AudioProcessingBacklog::default()), + }; + let frame = || { + AudioProcessingMessage::Frame(RawAudioFrame { + samples: vec![0.25; samples], + channels: 1, + input_sample_rate: 48_000, + }) + }; + let frames = 3 * 48_000 / samples; + for _ in 0..frames { + assert!(sender.try_send(frame()).is_ok()); + } + assert!(matches!( + sender.try_send(frame()), + Err(TrySendError::Full(_)) + )); + assert_eq!(sender.backlog.micros.load(Ordering::Acquire), 3_000_000); + assert_eq!(sender.backlog.bytes.load(Ordering::Acquire), 3 * 48_000 * 4); + drop(rx); + assert_eq!(sender.backlog.micros.load(Ordering::Acquire), 0); + assert_eq!(sender.backlog.bytes.load(Ordering::Acquire), 0); + assert!(matches!( + sender.try_send(frame()), + Err(TrySendError::Disconnected(_)) + )); + assert_eq!(sender.backlog.micros.load(Ordering::Acquire), 0); + assert_eq!(sender.backlog.bytes.load(Ordering::Acquire), 0); + } + } + + #[test] + fn audio_processing_budget_also_bounds_large_multichannel_frames() { + let (tx, _rx) = sync_channel(AUDIO_PROCESSING_QUEUE_CAPACITY); + let sender = AudioProcessingSender { + sender: tx, + backlog: Arc::new(AudioProcessingBacklog::default()), + }; + let frame = AudioProcessingMessage::Frame(RawAudioFrame { + samples: vec![0.0; 48_000 * 64], + channels: 64, + input_sample_rate: 48_000, + }); + assert!(matches!(sender.try_send(frame), Err(TrySendError::Full(_)))); + assert_eq!(sender.backlog.micros.load(Ordering::Acquire), 0); + assert_eq!(sender.backlog.bytes.load(Ordering::Acquire), 0); + } + + #[test] + fn audio_processing_backlog_sheds_enhancement_without_losing_pcm() { + let consumer = Arc::new(RecordingConsumer::default()); + let (entered_tx, entered_rx) = channel(); + let (resume_tx, resume_rx) = channel(); + let resume_rx = Mutex::new(resume_rx); + let block_next_level = Arc::new(AtomicBool::new(false)); + let block_for_level = Arc::clone(&block_next_level); + let level_handler = Arc::new(move |_| { + if block_for_level.swap(false, Ordering::AcqRel) { + entered_tx.send(()).unwrap(); + resume_rx + .lock() + .recv_timeout(std::time::Duration::from_secs(5)) + .unwrap(); + } + }); + let (worker, sender) = AudioProcessingWorker::start( + openless_core::AudioProcessingConfig { + enhancement_enabled: true, + ..Default::default() + }, + Arc::clone(&consumer) as Arc, + level_handler, + None, + Arc::new(StreamState::new()), + ) + .unwrap(); + for _ in 0..2 { + block_next_level.store(true, Ordering::Release); + sender + .send(AudioProcessingMessage::Frame(RawAudioFrame { + samples: vec![0.25; 997], + channels: 1, + input_sample_rate: TARGET_SAMPLE_RATE, + })) + .unwrap(); + entered_rx + .recv_timeout(std::time::Duration::from_secs(5)) + .unwrap(); + // One second of short callbacks exceeds the old 64-message limit. + for _ in 0..100 { + assert!(sender + .try_send(AudioProcessingMessage::Frame(RawAudioFrame { + samples: vec![0.5; 160], + channels: 1, + input_sample_rate: TARGET_SAMPLE_RATE, + })) + .is_ok()); + } + resume_tx.send(()).unwrap(); + let (done_tx, done_rx) = channel(); + sender.send(AudioProcessingMessage::Flush(done_tx)).unwrap(); + done_rx + .recv_timeout(std::time::Duration::from_secs(5)) + .unwrap(); + } + worker.finish(); + let delivered: Vec = consumer + .chunks + .lock() + .unwrap() + .iter() + .flatten() + .copied() + .collect(); + let segment_samples = 997 + 160 * 100; + assert_eq!(delivered.len(), segment_samples * 2 * 2); + let decoded = decode_i16_le(&delivered); + assert_eq!(&decoded[..segment_samples], &decoded[segment_samples..]); + assert!(decoded[..997].iter().any(|sample| *sample != 8191)); + assert!(decoded[997..segment_samples] + .iter() + .all(|sample| *sample == 16383)); + assert_eq!(sender.backlog.micros.load(Ordering::Acquire), 0); + assert_eq!(sender.backlog.bytes.load(Ordering::Acquire), 0); + } + #[test] fn audio_processing_worker_drains_accepted_frames_before_join() { let consumer = Arc::new(RecordingConsumer::default()); diff --git a/openless-all/app/src-tauri/src/recording_companion.rs b/openless-all/app/src-tauri/src/recording_companion.rs new file mode 100644 index 000000000..4b4599c76 --- /dev/null +++ b/openless-all/app/src-tauri/src/recording_companion.rs @@ -0,0 +1,195 @@ +//! A recording shortcut plus one auxiliary key. Uses the existing physical-key +//! tap, preserving left/right keys, Fn and custom multi-key recording bindings. +use crate::types::ShortcutBinding; +use std::collections::HashSet; +use std::sync::{Arc, Mutex, OnceLock}; + +type Action = Arc; +#[derive(Default)] +struct Route { + state: ChordState, + action: Option, + suspended: bool, +} +#[derive(Default)] +struct ChordState { + recording: Option, + auxiliary: String, + held: HashSet, + consumed: bool, +} +static ROUTE: OnceLock> = OnceLock::new(); +fn route() -> &'static Mutex { + ROUTE.get_or_init(|| Mutex::new(Route::default())) +} +fn key(value: &str) -> String { + match value.to_ascii_lowercase().as_str() { + "rightoption" | "rightalt" | "alt-right" => "altright".into(), + "leftoption" | "leftalt" | "alt-left" => "altleft".into(), + "rightcontrol" | "ctrl-right" => "ctrlright".into(), + "leftcontrol" | "ctrl-left" => "ctrlleft".into(), + "rightcommand" | "rightsuper" | "cmd-right" | "super-right" => "cmdright".into(), + "leftcommand" | "leftsuper" | "cmd-left" | "super-left" => "cmdleft".into(), + "rightshift" | "shift-right" => "shiftright".into(), + "leftshift" | "shift-left" => "shiftleft".into(), + "super" | "command" => "cmd".into(), + "control" => "ctrl".into(), + "option" => "alt".into(), + " " => "space".into(), + other => other.into(), + } +} +fn matches(required: &str, physical: &str) -> bool { + required == physical + || matches!(required, "cmd" | "ctrl" | "alt" | "shift") && physical.starts_with(required) +} +impl ChordState { + fn event(&mut self, physical: &str, pressed: bool) -> (bool, bool) { + let physical = key(physical); + let auxiliary = key(&self.auxiliary); + let was_down = self.held.contains(&physical); + if pressed { + self.held.insert(physical.clone()); + } else { + self.held.remove(&physical); + } + if physical == auxiliary && !pressed { + let consume = std::mem::take(&mut self.consumed); + return (consume, false); + } + if physical != auxiliary || !pressed { + return (false, false); + } + if self.consumed { + return (true, false); + } + if was_down || auxiliary.is_empty() { + return (false, false); + } + let Some(binding) = &self.recording else { + return (false, false); + }; + let mut required: Vec = binding.modifiers.iter().map(|value| key(value)).collect(); + if !binding.primary.eq_ignore_ascii_case("ModifierChord") { + required.push(key(&binding.primary)); + } + if required.is_empty() + || required + .iter() + .any(|value| value.is_empty() || *value == auxiliary) + { + return (false, false); + } + let complete = required + .iter() + .all(|required| self.held.iter().any(|held| matches(required, held))) + && self.held.iter().all(|held| { + held == &auxiliary || required.iter().any(|required| matches(required, held)) + }); + if complete { + self.consumed = true; + } + (complete, complete) + } +} +pub(crate) fn configure(recording: ShortcutBinding, auxiliary: String) { + let mut route = route().lock().unwrap(); + route.state = ChordState { + recording: Some(recording), + auxiliary, + ..Default::default() + }; +} +pub(crate) fn install(action: Action) { + route().lock().unwrap().action = Some(action); +} +pub(crate) fn suspend(suspended: bool) { + let mut route = route().lock().unwrap(); + route.suspended = suspended; + route.state.held.clear(); + route.state.consumed = false; +} +pub(crate) fn reset_held() { + let mut route = route().lock().unwrap(); + route.state.held.clear(); + route.state.consumed = false; +} +pub(crate) fn claimed() -> bool { + route().lock().unwrap().state.consumed +} +/// Returns true only for a claimed auxiliary key, including its autorepeat and release. +pub(crate) fn event(physical: &str, pressed: bool) -> bool { + let (consume, action) = { + let mut route = route().lock().unwrap(); + if route.suspended { + return false; + } + let (consume, fire) = route.state.event(physical, pressed); + (consume, if fire { route.action.clone() } else { None }) + }; + if let Some(action) = action { + action(); + } + consume +} + +#[cfg(test)] +mod tests { + use super::*; + fn state(primary: &str, modifiers: &[&str]) -> ChordState { + ChordState { + recording: Some(ShortcutBinding { + primary: primary.into(), + modifiers: modifiers.iter().map(|v| v.to_string()).collect(), + }), + auxiliary: "Space".into(), + ..Default::default() + } + } + #[test] + fn side_specific_recording_is_the_only_anchor_and_repeats_are_suppressed() { + let mut s = state("RightAlt", &[]); + s.event("LeftAlt", true); + assert_eq!(s.event("Space", true), (false, false)); + s.event("Space", false); + s.event("LeftAlt", false); + s.event("RightAlt", true); + assert_eq!(s.event("Space", true), (true, true)); + assert_eq!(s.event("Space", true), (true, false)); + s.event("RightAlt", false); + assert_eq!(s.event("Space", false), (true, false)); + assert_eq!(s.event("Space", true), (false, false)); + } + #[test] + fn fn_and_custom_recording_chords_keep_the_entire_base() { + let mut s = state("Fn", &[]); + s.event("Fn", true); + assert_eq!(s.event("Space", true), (true, true)); + let mut s = state("D", &["cmd", "shift"]); + s.event("LeftCommand", true); + s.event("LeftShift", true); + assert_eq!(s.event("Space", true), (false, false)); + s.event("Space", false); + s.event("D", true); + assert_eq!(s.event("Space", true), (true, true)); + } + #[test] + fn mouse_recording_anchors_and_updated_auxiliary_keys_work() { + let mut s = state("Mouse4", &[]); + s.auxiliary = "Q".into(); + s.event("Mouse4", true); + assert_eq!(s.event("Space", true), (false, false)); + s.event("Space", false); + assert_eq!(s.event("Q", true), (true, true)); + } + #[test] + fn extra_modifiers_and_auxiliary_pressed_before_base_do_not_trigger() { + let mut s = state("RightControl", &[]); + s.event("Space", true); + s.event("RightControl", true); + assert_eq!(s.event("Space", true), (false, false)); + s.event("Space", false); + s.event("LeftShift", true); + assert_eq!(s.event("Space", true), (false, false)); + } +} diff --git a/openless-all/app/src-tauri/src/side_aware_combo.rs b/openless-all/app/src-tauri/src/side_aware_combo.rs index 668e43eeb..859110c23 100644 --- a/openless-all/app/src-tauri/src/side_aware_combo.rs +++ b/openless-all/app/src-tauri/src/side_aware_combo.rs @@ -192,6 +192,17 @@ pub enum SideModifier { ShiftRight, } +impl SideModifier { + fn recording_key(self) -> &'static str { + match self { + Self::CmdLeft => "LeftCommand", Self::CmdRight => "RightCommand", + Self::CtrlLeft => "LeftControl", Self::CtrlRight => "RightControl", + Self::AltLeft => "LeftAlt", Self::AltRight => "RightAlt", + Self::ShiftLeft => "LeftShift", Self::ShiftRight => "RightShift", + } + } +} + pub struct SideAwareComboMonitor; impl SideAwareComboMonitor { @@ -351,14 +362,17 @@ pub mod platform { VK_RMENU, VK_RSHIFT, VK_RWIN, VK_SPACE, VK_TAB, VK_UP, }; - pub fn dispatch_vk(vk_code: u32, pressed: bool) { + pub fn dispatch_vk(vk_code: u32, pressed: bool) -> bool { if let Some(side) = side_from_vk(vk_code) { + crate::recording_companion::event(side.recording_key(), pressed); handle_side_modifier(side, pressed); - return; + return false; } if let Some(primary) = primary_from_vk(vk_code) { + if crate::recording_companion::event(&primary, pressed) { return true; } handle_primary_key(&primary, pressed); } + false } fn side_from_vk(vk_code: u32) -> Option { @@ -543,7 +557,7 @@ pub mod platform { const FLAG_MASK_ALTERNATE: u64 = 1 << 19; // 0x0008_0000 (Option/Alt) const FLAG_MASK_COMMAND: u64 = 1 << 20; // 0x0010_0000 - pub fn dispatch_keycode(keycode: i64, flags_changed: bool, flags: u64, pressed: bool) { + pub fn dispatch_keycode(keycode: i64, flags_changed: bool, flags: u64, pressed: bool) -> bool { if flags_changed { if let Some(side) = side_from_keycode(keycode) { // The event-carried `flags` are race-free (they describe the state @@ -556,14 +570,19 @@ pub mod platform { // `CGEventSourceKeyState` (Apple's standard way to resolve side). None => keycode_is_down(keycode), }; + crate::recording_companion::event(side.recording_key(), down); handle_side_modifier(side, down); + } else if keycode == 63 { + crate::recording_companion::event("Fn", flags & (1 << 23) != 0); } - return; + return false; } if let Some(primary) = primary_from_keycode(keycode) { + if crate::recording_companion::event(&primary, pressed) { return true; } handle_primary_key(&primary, pressed); } + false } /// Modifier-class flag bit for a side-modifier keycode, or `None` if the keycode diff --git a/openless-all/app/src-tauri/src/tauri_coordinator_host.rs b/openless-all/app/src-tauri/src/tauri_coordinator_host.rs index cde3403fe..86df885be 100644 --- a/openless-all/app/src-tauri/src/tauri_coordinator_host.rs +++ b/openless-all/app/src-tauri/src/tauri_coordinator_host.rs @@ -64,10 +64,10 @@ fn capsule_transcript_rail_position( CapsuleStyle::Classic => { const HOST_HEIGHT: f64 = 172.0; const BODY_BOTTOM_INSET: f64 = 16.0; - const BODY_HEIGHT: f64 = 52.0; + const BODY_HEIGHT: f64 = 32.0; const RAIL_HEIGHT: f64 = 52.0; const RAIL_GAP: f64 = 8.0; - const BADGE_HEIGHT: f64 = 22.0; + const BADGE_HEIGHT: f64 = 28.0; const BADGE_GAP: f64 = 8.0; let body_top = HOST_HEIGHT - BODY_BOTTOM_INSET - BODY_HEIGHT; let gap = RAIL_GAP; @@ -187,7 +187,7 @@ fn capsule_control_hit_rect( // Classic transcript is hosted by the separate click-through rail HWND on // Windows. The capsule HWND therefore owns only its 172px host, regardless // of whether the rail is visible. - CapsuleStyle::Classic => (460.0, 172.0, 196.0, 52.0, 16.0), + CapsuleStyle::Classic => (460.0, 172.0, 116.0, 32.0, 16.0), // Typeless content is scaled by zoom: 64px CSS × 0.447. The native window may be // 57px or 65px high when the dedicated translation row is present. CapsuleStyle::Typeless => ( @@ -202,8 +202,13 @@ fn capsule_control_hit_rect( let _ = transcript_visible; let scale = (window_width as f64 / logical_host_width).min(window_height as f64 / logical_host_height); - let body_width = (logical_body_width * scale).round() as i32; - let body_height = (logical_body_height * scale).round() as i32; + // Windows clips the native input region as well as CSS. Include the language + // picker only while translation is active; the transcript remains click-through. + let picker_visible = style == CapsuleStyle::Classic && translation_active; + let interactive_width = if picker_visible { 260.0 } else { logical_body_width }; + let interactive_height = logical_body_height + if picker_visible { 36.0 } else { 0.0 }; + let body_width = (interactive_width * scale).round() as i32; + let body_height = (interactive_height * scale).round() as i32; let bottom_inset = (logical_bottom_inset * scale).round() as i32; let control_left = ((window_width as f64 - body_width as f64) / 2.0).round() as i32; let control_bottom = window_height - bottom_inset; @@ -774,8 +779,11 @@ fn capsule_window_action( fallback_card_active: bool, show_capsule: bool, state: CapsuleState, + qa_voice_active: bool, ) -> CapsuleWindowAction { - if fallback_card_active { + if qa_voice_active { + CapsuleWindowAction::HideCapsule + } else if fallback_card_active { CapsuleWindowAction::PreserveFallbackCard } else if show_capsule && !matches!(state, CapsuleState::Idle) { CapsuleWindowAction::ShowCapsule @@ -818,9 +826,23 @@ pub(crate) struct CapsuleSnapshot { pub(crate) payload_revision: u64, } +struct CapsuleMenuFrame { + label: String, + session_id: openless_core::SessionId, + position: tauri::PhysicalPosition, + size: tauri::PhysicalSize, +} + +fn capsule_menu_geometry(y: i32, height: u32, work_top: i32, scale: f64) -> (i32, u32) { + let extra = ((320.0 * scale).round() as i32).min(y.saturating_sub(work_top).max(0)); + (y - extra, height.saturating_add(extra as u32)) +} + struct CapsuleWindowState { layout: Mutex>, capsule_visible: AtomicBool, + qa_voice_active: AtomicBool, + translation_menu: Mutex>, cursor_passthrough: AtomicBool, hit_test_mode: AtomicU8, transcript_visible: AtomicBool, @@ -846,6 +868,8 @@ impl Default for CapsuleWindowState { Self { layout: Mutex::new(None), capsule_visible: AtomicBool::new(false), + qa_voice_active: AtomicBool::new(false), + translation_menu: Mutex::new(None), cursor_passthrough: AtomicBool::new(true), hit_test_mode: AtomicU8::new(HIT_TEST_MODE_CAPSULE), transcript_visible: AtomicBool::new(false), @@ -1148,6 +1172,70 @@ impl TauriCapsuleWindow { .map_err(|error| error.to_string()) } + fn restore_translation_menu(&self, owner: Option<(&str, openless_core::SessionId)>) -> Result { + let frame = { + let mut slot = self.state.translation_menu.lock(); + if let Some((label, session_id)) = owner { + if !slot.as_ref().is_some_and(|frame| frame.label == label && frame.session_id == session_id) { return Ok(false); } + } + slot.take() + }; + let Some(frame) = frame else { return Ok(false); }; + #[cfg(not(mobile))] + crate::hotkey::set_capsule_menu_open(false); + self.invalidate_layout(); + if let Some(window) = self.app.get_webview_window(&frame.label) { + window.set_size(frame.size).map_err(|error| error.to_string())?; + window.set_position(frame.position).map_err(|error| error.to_string())?; + #[cfg(target_os = "windows")] + configure_capsule_hit_test(&window, self.state.cached_style(), + self.state.transcript_visible.load(Ordering::SeqCst), true).map_err(|error| error.to_string())?; + } + Ok(true) + } + + /// Reserve room for the shared popup above the pill without moving its bottom anchor. + pub(crate) fn set_translation_menu_open(&self, label: String, session_id: openless_core::SessionId, open: bool) -> Result<(), String> { + if !open { + if self.restore_translation_menu(Some((&label, session_id)))? && self.state.capsule_visible.load(Ordering::SeqCst) { + self.start_layout_watch(); + self.refresh_style(); + self.sync_capsule_mirrors(); + } + return Ok(()); + } + if self.state.qa_voice_active.load(Ordering::SeqCst) { return Err("qa_owns_voice_surface".into()); } + if self.state.translation_menu.lock().as_ref().is_some_and(|frame| frame.label == label && frame.session_id == session_id) { return Ok(()); } + self.restore_translation_menu(None)?; + let window = self.app.get_webview_window(&label).ok_or("capsule_window_unavailable")?; + let position = window.outer_position().map_err(|error| error.to_string())?; + let size = window.inner_size().map_err(|error| error.to_string())?; + let scale = window.scale_factor().map_err(|error| error.to_string())?; + let work_top = window.current_monitor().map_err(|error| error.to_string())? + .map(|monitor| monitor.work_area().position.y).unwrap_or(position.y - (320.0 * scale) as i32); + let (top, height) = capsule_menu_geometry(position.y, size.height, work_top, scale); + *self.state.translation_menu.lock() = Some(CapsuleMenuFrame {label, session_id, position, size}); + #[cfg(not(mobile))] + crate::hotkey::set_capsule_menu_open(true); + self.stop_layout_watch(); + self.hide_transcript_overlay(); + let result = (|| -> tauri::Result<()> { + window.set_position(tauri::PhysicalPosition::new(position.x, top))?; + window.set_size(tauri::PhysicalSize::new(size.width, height))?; + #[cfg(not(mobile))] + window.set_ignore_cursor_events(false)?; + #[cfg(target_os = "windows")] + configure_card_hit_test(&window)?; + Ok(()) + })(); + if let Err(error) = result { + let _ = self.restore_translation_menu(None); + self.start_layout_watch(); + return Err(error.to_string()); + } + Ok(()) + } + pub(crate) fn set_size(&self, width: f64, height: f64) -> tauri::Result<()> { // Cards temporarily borrow this window; their geometry belongs to the card until released. self.stop_layout_watch(); @@ -1271,6 +1359,7 @@ impl TauriCapsuleWindow { #[cfg(any(target_os = "macos", target_os = "windows"))] fn apply_capsule_mirrors(&self) { + if self.state.translation_menu.lock().is_some() { return; } use crate::capsule_mirrors::{ capsule_placement, ensure_capsule_mirror, mirror_label, mirror_targets, CAPSULE_MIRROR_PREFIX, MAX_CAPSULE_MIRRORS, RAIL_MIRROR_PREFIX, @@ -1455,6 +1544,7 @@ impl TauriCapsuleWindow { } pub(crate) fn hide(&self) -> tauri::Result<()> { + let _ = self.restore_translation_menu(None); self.state.capsule_visible.store(false, Ordering::SeqCst); self.stop_layout_watch(); self.hide_transcript_overlay(); @@ -1669,6 +1759,7 @@ impl TauriCapsuleWindow { translation_active: bool, style: CapsuleStyle, ) { + if self.state.translation_menu.lock().is_some() { return; } let Some(next) = self.layout_snapshot(window, translation_active, style) else { return; }; @@ -1723,6 +1814,7 @@ impl TauriCapsuleWindow { } pub(crate) fn show_for_recording(&self, reassert_spaces: bool) { + if self.state.qa_voice_active.load(Ordering::SeqCst) { let _ = self.hide(); return; } self.state.capsule_visible.store(true, Ordering::SeqCst); if let Some(window) = self.window() { show_capsule_window_for_recording(&self.app, &window, reassert_spaces); @@ -1822,6 +1914,9 @@ impl TauriCapsuleWindow { style: CapsuleStyle, reassert_spaces: bool, ) { + if payload.state != CapsuleState::Recording || !payload.translation { + let _ = self.restore_translation_menu(None); + } self.state.cache_style(style); let Some(window) = self.window() else { return; @@ -1831,7 +1926,7 @@ impl TauriCapsuleWindow { let fallback_card_active = self.state.defer_if_fallback_active(payload); { - let action = capsule_window_action(fallback_card_active, show_capsule, payload.state); + let action = capsule_window_action(fallback_card_active, show_capsule, payload.state, self.state.qa_voice_active.load(Ordering::SeqCst)); if action == CapsuleWindowAction::PreserveFallbackCard { log::debug!( "[capsule] native window update deferred: insert fallback card owns the window" @@ -2044,6 +2139,15 @@ impl TauriCoordinatorHost { }) } + pub(crate) fn set_qa_voice_active(&self, active: bool) { + if self.capsule.qa_voice_active.swap(active, Ordering::SeqCst) == active { return; } + if active { + if let Some(capsule) = self.capsule_window() { + let _ = capsule.run_on_main_thread(|capsule| { let _ = capsule.hide(); }); + } + } + } + pub(crate) fn cached_capsule_style(&self) -> CapsuleStyle { self.capsule.cached_style() } @@ -2510,6 +2614,26 @@ mod tests { ); } + #[test] + fn dedicated_qa_voice_hides_all_shared_capsule_presentations() { + for state in [CapsuleState::Recording, CapsuleState::Transcribing, CapsuleState::Polishing, CapsuleState::Done, CapsuleState::Error, CapsuleState::Idle] { + for fallback in [true, false] { + assert_eq!(capsule_window_action(fallback, true, state, true), CapsuleWindowAction::HideCapsule); + } + } + assert_eq!(capsule_window_action(false, true, CapsuleState::Recording, false), CapsuleWindowAction::ShowCapsule); + } + + #[test] + fn language_menu_expands_upward_and_preserves_the_bottom_at_each_scale() { + for (y,height,top,scale) in [(600,172,24,1.0), (1200,344,48,2.0), (-200,172,-1000,1.0), (100,172,24,1.0)] { + let (expanded_y, expanded_height) = super::capsule_menu_geometry(y,height,top,scale); + assert!(expanded_y >= top); + assert_eq!(expanded_y + expanded_height as i32, y + height as i32); + assert!(expanded_height >= height); + } + } + #[test] fn fallback_card_owns_native_window_until_dismissed() { for state in [ @@ -2519,7 +2643,7 @@ mod tests { CapsuleState::Done, ] { assert_eq!( - capsule_window_action(true, true, state), + capsule_window_action(true, true, state, false), CapsuleWindowAction::PreserveFallbackCard ); } @@ -2528,15 +2652,15 @@ mod tests { #[test] fn capsule_window_action_follows_visibility_without_fallback_card() { assert_eq!( - capsule_window_action(false, true, CapsuleState::Recording), + capsule_window_action(false, true, CapsuleState::Recording, false), CapsuleWindowAction::ShowCapsule ); assert_eq!( - capsule_window_action(false, true, CapsuleState::Idle), + capsule_window_action(false, true, CapsuleState::Idle, false), CapsuleWindowAction::HideCapsule ); assert_eq!( - capsule_window_action(false, false, CapsuleState::Recording), + capsule_window_action(false, false, CapsuleState::Recording, false), CapsuleWindowAction::HideCapsule ); } @@ -2561,14 +2685,14 @@ mod tests { classic.top_offset, classic.gap ), - (460.0, 52.0, 44.0, 8.0) + (460.0, 52.0, 64.0, 8.0) ); assert_eq!( capsule_transcript_rail_position(CapsuleStyle::Classic, true, true), Some(CapsuleTranscriptRailPosition { width: 460.0, - height: 82.0, - top_offset: 14.0, + height: 88.0, + top_offset: 28.0, gap: 8.0, }) ); @@ -2601,7 +2725,7 @@ mod tests { capsule_transcript_rail_position(CapsuleStyle::Classic, true, false).unwrap(); assert_eq!( (classic_badge.height, classic_badge.top_offset), - (22.0, 74.0) + (28.0, 88.0) ); let typeless_badge = capsule_transcript_rail_position(CapsuleStyle::Typeless, true, false).unwrap(); @@ -2619,18 +2743,18 @@ mod tests { assert_eq!( capsule_control_hit_rect(CapsuleStyle::Classic, true, false, 460, 172), Some(CapsuleHitTestRect { - left: 132, - right: 328, - top: 104, + left: 172, + right: 288, + top: 124, bottom: 156, }) ); assert_eq!( capsule_control_hit_rect(CapsuleStyle::Classic, false, false, 460, 172), Some(CapsuleHitTestRect { - left: 132, - right: 328, - top: 104, + left: 172, + right: 288, + top: 124, bottom: 156, }) ); diff --git a/openless-all/app/src-tauri/src/tauri_events.rs b/openless-all/app/src-tauri/src/tauri_events.rs index f40dd3851..25268c57b 100644 --- a/openless-all/app/src-tauri/src/tauri_events.rs +++ b/openless-all/app/src-tauri/src/tauri_events.rs @@ -113,6 +113,16 @@ pub(crate) fn publish( backend.event_publisher().publish(session_id, kind); } +fn qa_owns_voice_surface(phase: openless_core::QaPhase) -> bool { + !cfg!(mobile) + && matches!( + phase, + openless_core::QaPhase::Recording + | openless_core::QaPhase::Thinking + | openless_core::QaPhase::AwaitingApproval + ) +} + async fn forward_legacy_event( app: &AppHandle, backend: &OpenLessBackend, @@ -124,6 +134,20 @@ async fn forward_legacy_event( kind, BackendEventKind::QaLevel(_) | BackendEventKind::QaState(_) ) { + if let Ok(qa) = backend.services().qa.snapshot().await { + if let Some(coordinator) = app.try_state::>() { + coordinator + .tauri_host() + .set_qa_voice_active(qa_owns_voice_surface(qa.phase)); + } + } + } + if cfg!(mobile) + && matches!( + kind, + BackendEventKind::QaLevel(_) | BackendEventKind::QaState(_) + ) + { let selection = backend.services().selection.snapshot().await.ok(); let selection_voice = backend.services().selection_voice.snapshot().await.ok(); // Read QA after the other async snapshots. Queued levels/terminals from @@ -138,7 +162,7 @@ async fn forward_legacy_event( selection_voice.map(|snapshot| snapshot.phase), ); let previous_voice = capsule_owners.qa_voice; - if let Some(payload) = qa_capsule_payload( + if let Some(payload) = mobile_qa_capsule_payload( capsule_owners, session_id, &kind, @@ -387,14 +411,21 @@ async fn forward_legacy_event( }); // Recheck the current owner after awaiting QA. A queued callback // from a cancelled native operation must not replace a new capsule. - if let Some(payload) = transcription_notice_payload( - session_id, - ¬ice.message, - &backend.snapshot().dictation, - qa.as_ref(), - less_voice.as_ref(), - backend.get_preferences().capsule_style, - ) { + let qa_notice = + session_id.is_some() && qa.as_ref().is_some_and(|qa| qa.session_id == session_id); + if let Some(payload) = (!qa_notice || cfg!(mobile)) + .then(|| { + transcription_notice_payload( + session_id, + ¬ice.message, + &backend.snapshot().dictation, + qa.as_ref(), + less_voice.as_ref(), + backend.get_preferences().capsule_style, + ) + }) + .flatten() + { if let Some(coordinator) = app.try_state::>() { if let Some(owner) = session_id.filter(|id| { qa.as_ref() @@ -635,7 +666,7 @@ fn finish_qa_transcription_notice( } } -fn qa_capsule_payload( +fn mobile_qa_capsule_payload( owners: &mut CapsuleOwners, session_id: Option, event: &BackendEventKind, @@ -861,6 +892,26 @@ fn resync_domain_events( mod tests { use super::*; + #[test] + fn desktop_qa_owns_one_surface_until_voice_processing_finishes() { + use openless_core::QaPhase; + for phase in [ + QaPhase::Recording, + QaPhase::Thinking, + QaPhase::AwaitingApproval, + ] { + assert_eq!(super::qa_owns_voice_surface(phase), !cfg!(mobile)); + } + for phase in [ + QaPhase::Idle, + QaPhase::Completed, + QaPhase::Failed, + QaPhase::Cancelled, + ] { + assert!(!super::qa_owns_voice_surface(phase)); + } + } + #[test] fn qa_native_epoch_is_not_reacquired_by_notice_or_resync_after_rejection() { let session_id = SessionId::new(); @@ -909,7 +960,7 @@ mod tests { } #[test] - fn qa_voice_events_restore_the_capsule_lifecycle() { + fn mobile_qa_voice_events_restore_the_capsule_lifecycle() { use openless_core::{QaPhase, QaStateKind}; let session_id = SessionId::new(); let mut qa = QaSnapshot { @@ -918,7 +969,7 @@ mod tests { ..Default::default() }; let mut owners = CapsuleOwners::default(); - let payload = qa_capsule_payload( + let payload = mobile_qa_capsule_payload( &mut owners, Some(session_id), &BackendEventKind::QaState(openless_core::QaStateEvent::from_snapshot(&qa)), @@ -926,12 +977,12 @@ mod tests { false, CapsuleStyle::Classic, ) - .expect("ordinary QA recording must show the existing capsule"); + .expect("mobile QA recording uses the overlay capsule"); assert_eq!(payload.state, CapsuleState::Recording); assert!(payload.warming); assert_eq!(owners.qa_voice, Some(session_id)); for expected_level in [0.0, 0.35] { - let level = qa_capsule_payload( + let level = mobile_qa_capsule_payload( &mut owners, Some(session_id), &BackendEventKind::QaLevel(openless_core::QaRecordingLevel { @@ -984,7 +1035,7 @@ mod tests { if kind == QaStateKind::Thinking { owners.transcription_notice = Some(session_id); } - let payload = qa_capsule_payload( + let payload = mobile_qa_capsule_payload( &mut owners, Some(session_id), &BackendEventKind::QaState(event), @@ -1032,7 +1083,7 @@ mod tests { QaStateKind::Idle, ] { assert!( - qa_capsule_payload( + mobile_qa_capsule_payload( &mut owners, Some(old), &BackendEventKind::QaState(openless_core::QaStateEvent::simple(kind)), @@ -1046,7 +1097,7 @@ mod tests { assert_eq!(owners.qa_voice, Some(current)); assert_eq!(owners.transcription_notice, Some(current)); } - assert!(qa_capsule_payload( + assert!(mobile_qa_capsule_payload( &mut owners, Some(old), &BackendEventKind::QaLevel(openless_core::QaRecordingLevel { @@ -1079,7 +1130,7 @@ mod tests { assert!(blocked); owners.qa_voice = Some(current); assert!( - qa_capsule_payload( + mobile_qa_capsule_payload( &mut owners, Some(current), &BackendEventKind::QaState(openless_core::QaStateEvent::from_snapshot( @@ -1094,7 +1145,7 @@ mod tests { ); assert_eq!(owners.qa_voice, None); assert!( - qa_capsule_payload( + mobile_qa_capsule_payload( &mut owners, Some(current), &BackendEventKind::QaLevel(openless_core::QaRecordingLevel { @@ -1110,7 +1161,7 @@ mod tests { ); assert_eq!(owners.qa_voice, None); assert!( - qa_capsule_payload( + mobile_qa_capsule_payload( &mut owners, Some(current), &BackendEventKind::QaLevel(openless_core::QaRecordingLevel { @@ -1126,7 +1177,7 @@ mod tests { ); assert_eq!(owners.qa_voice, None); assert!( - qa_capsule_payload( + mobile_qa_capsule_payload( &mut owners, Some(current), &BackendEventKind::QaState(openless_core::QaStateEvent::from_snapshot( @@ -1160,7 +1211,7 @@ mod tests { ] { qa.phase = phase; assert!( - qa_capsule_payload( + mobile_qa_capsule_payload( &mut owners, Some(session_id), &BackendEventKind::QaState(openless_core::QaStateEvent::from_snapshot(&qa)), @@ -1174,7 +1225,7 @@ mod tests { } owners.qa_voice = Some(SessionId::new()); qa.phase = QaPhase::Thinking; - let idle = qa_capsule_payload( + let idle = mobile_qa_capsule_payload( &mut owners, Some(session_id), &BackendEventKind::QaState(openless_core::QaStateEvent::from_snapshot(&qa)), @@ -1188,7 +1239,7 @@ mod tests { qa.phase = QaPhase::Recording; assert_eq!( - qa_capsule_payload( + mobile_qa_capsule_payload( &mut owners, Some(session_id), &BackendEventKind::QaState(openless_core::QaStateEvent::from_snapshot(&qa)), @@ -1202,7 +1253,7 @@ mod tests { ); qa.phase = QaPhase::Thinking; assert_eq!( - qa_capsule_payload( + mobile_qa_capsule_payload( &mut owners, Some(session_id), &BackendEventKind::QaState(openless_core::QaStateEvent::from_snapshot(&qa)), @@ -1217,7 +1268,7 @@ mod tests { let closed = QaSnapshot::default(); assert_eq!( - qa_capsule_payload( + mobile_qa_capsule_payload( &mut owners, None, &BackendEventKind::QaState(openless_core::QaStateEvent::simple(QaStateKind::Idle)), diff --git a/openless-all/app/src-tauri/src/tls_crypto.rs b/openless-all/app/src-tauri/src/tls_crypto.rs new file mode 100644 index 000000000..d0116acea --- /dev/null +++ b/openless-all/app/src-tauri/src/tls_crypto.rs @@ -0,0 +1,17 @@ +pub(crate) fn install_tls_crypto_provider() { + // Select the process provider before any HTTP or WebSocket client is built, + // including on mobile. Repeated installation leaves the existing default intact. + let _ = rustls::crypto::ring::default_provider().install_default(); +} + +#[cfg(all(test, not(any(target_os = "android", target_os = "ios"))))] +mod tests { + #[test] + fn tls_provider_install_allows_client_config() { + super::install_tls_crypto_provider(); + super::install_tls_crypto_provider(); + let _ = rustls::ClientConfig::builder() + .with_root_certificates(rustls::RootCertStore::empty()) + .with_no_client_auth(); + } +} diff --git a/openless-all/app/src-tauri/src/unicode_keystroke.rs b/openless-all/app/src-tauri/src/unicode_keystroke.rs index 6c103cb88..24ba0a41a 100644 --- a/openless-all/app/src-tauri/src/unicode_keystroke.rs +++ b/openless-all/app/src-tauri/src/unicode_keystroke.rs @@ -1,30 +1,30 @@ -//! 跨平台 Unicode keystroke 合成(流式输入用)。 +//! Platform-specific Unicode text injection for streaming insertion. //! -//! 公开 API 三件套: -//! - `type_unicode_chunk(text)` —— 阻塞地把一段文字逐 codepoint 当作键盘事件发出去, -//! 不动剪贴板。各平台用各自的原语;返回确认成功发送的字符数。 -//! - `switch_to_ascii(app)` —— 仅 macOS 有效;切到 ABC 输入源以绕过 CJK / 日文 IME -//! 对 Unicode 字符串事件的拦截。Windows 上是 no-op。 -//! - `restore_input_source(app, prev)` —— 配对调用,恢复 macOS 上的原输入源。 +//! Public operations: +//! - `type_unicode_chunk(text)` sends bounded text events without changing the +//! clipboard and returns the number of characters successfully delivered. +//! - `switch_to_ascii(app)` temporarily selects a direct input source so an active +//! input method cannot consume injected text. It is a no-op where unnecessary. +//! - `restore_input_source(app, prev)` restores the previously selected input source. //! //! ## Platform differences //! -//! - **macOS**:手写 CGEvent FFI(与 `insertion.rs::macos` 的 Cmd+V 同源)。 -//! `CGEventKeyboardSetUnicodeString` 在 CJK / 日文 IME 激活时被拦截 —— -//! 必须 `switch_to_ascii` 切到 ABC,session 结束再 `restore_input_source` 切回。 -//! - **Windows**:`SendInput(KEYEVENTF_UNICODE)` 直接发 UTF-16 scancode。TSF 不拦 -//! Unicode 事件(与 keyboard layout / IME 解耦),所以不需要切输入法。 +//! - The event-based implementation temporarily bypasses text composition and +//! restores the input source when the insertion session ends. +//! - The scan-code implementation sends UTF-16 units directly, independently of +//! keyboard layout and input-method composition. //! //! ## Known pitfalls (macOS) //! -//! - Under Secure Event Input (password fields, 1Password, ...) CGEventPost +//! - Under Secure Event Input, such as credential fields, CGEventPost //! fails silently; `type_unicode_chunk` probes with //! `IsSecureEventInputEnabled` up front and returns //! `TypeError::SecureInputActive` when set. //! - Modifier state inheritance — a held Shift maps characters to uppercase; //! every event sets `CGEventSetFlags(_, 0)` explicitly. -//! - Chromium / Electron / Tauri themselves drop characters when -//! keyDown/keyUp have no delay; sleeps 1ms per codepoint. +//! - Per-character Space events can trigger asynchronous smart punctuation in +//! WebKit, reordering spaces or replacing text. Send bounded text runs instead +//! (at most 20 UTF-16 units), preserving real newline keystrokes and event pacing. //! //! ## Thread safety (macOS) //! @@ -163,30 +163,150 @@ mod macos_impl { if is_secure_input_enabled() { return Err(TypeError::SecureInputActive); } + // Per-batch re-assertion of the ASCII input source (streaming only). + // Activating the target app / field can make macOS re-apply that + // document's own input source ("Automatically switch to a document's + // input source"), silently undoing the session-start `switch_to_ascii`. + run_ascii_guard(); + type_unicode_chunk_with_sender(text, newline_mode, |chunk, kind| match kind { + MacKeystroke::ShiftReturn => send_shift_return(), + MacKeystroke::LineFeed => send_line_feed(), + MacKeystroke::Return => send_return(), + MacKeystroke::Swallow => Ok(()), + MacKeystroke::Unicode => send_unicode_text(chunk), + }) + } + + pub(super) fn type_unicode_chunk_with_sender( + text: &str, + newline_mode: MacosNewlineMode, + mut send: impl FnMut(&str, MacKeystroke) -> Result<(), TypeError>, + ) -> Result { let mut typed_chars = 0; - for ch in text.chars() { - let sent = match classify_mac_keystroke(ch, newline_mode) { - MacKeystroke::ShiftReturn => send_shift_return(), - MacKeystroke::LineFeed => send_line_feed(), - MacKeystroke::Return => send_return(), - // Swallowed chars still count: the caller - // (`flush_streaming_insert_buffer_with`) compares `typed_chars` - // against `delta.chars().count()`, and any shortfall is judged - // a partial failure that drops all later deltas. The count - // means "this char was processed", not "one more character on - // screen". - MacKeystroke::Swallow => Ok(()), - MacKeystroke::Unicode => send_one_codepoint(ch), - }; - if let Err(e) = sent { + let mut remaining = text; + while let Some(ch) = remaining.chars().next() { + let kind = classify_mac_keystroke(ch, newline_mode); + let mut end = ch.len_utf8(); + if kind == MacKeystroke::Unicode { + let run_end = remaining.find(['\r', '\n']).unwrap_or(remaining.len()); + let run = &remaining[..run_end]; + let mut units = 0; + end = 0; + for ch in run.chars() { + if units + ch.len_utf16() > MAX_UNICODE_EVENT_UNITS { + break; + } + units += ch.len_utf16(); + end += ch.len_utf8(); + } + // Do not leave a lone space event at a chunk boundary. WebKit + // asynchronously checks such events for double-space → period, + // which can overtake later text and replace unrelated characters. + if &run[end..] == " " { + let last = run[..end].chars().next_back().expect("nonempty Unicode chunk"); + end -= last.len_utf8(); + } + } + let chunk = &remaining[..end]; + if let Err(e) = send(chunk, kind) { return Err(partial_or_original(typed_chars, e)); } - typed_chars += 1; - std::thread::sleep(INTER_KEYSTROKE_DELAY); + // Count source Unicode scalars, including swallowed CRs, not UTF-16 + // units or posted events. Preserve the exact prefix on failure. + typed_chars += chunk.chars().count(); + remaining = &remaining[end..]; + // An unavoidable single space (e.g. a final trailing space) needs + // time for the text system's async substitution check to settle. + std::thread::sleep(if chunk == " " { + Duration::from_millis(25) + } else { + INTER_KEYSTROKE_DELAY + }); } Ok(typed_chars) } + // CGEvent's Unicode payload is effectively limited to 20 UTF-16 units. + // Longer strings are silently truncated by some native text clients. + const MAX_UNICODE_EVENT_UNITS: usize = 20; + + /// Process-wide hook installed by the streaming session after it switched + /// to ABC; `None` outside streaming so one-shot typing is unaffected. + static ASCII_GUARD: parking_lot::Mutex>> = + parking_lot::Mutex::new(None); + + pub(super) fn run_ascii_guard() { + let guard = ASCII_GUARD.lock().clone(); + if let Some(guard) = guard { + guard(); + } + } + + /// Install (`Some`) or remove (`None`) the per-batch ASCII input source + /// guard. Pair with `switch_to_ascii` / `restore_input_source`. + pub fn set_streaming_ascii_guard(app: Option>) { + install_guard(app.map(|app| { + std::sync::Arc::new(move || ensure_ascii_blocking(&app)) + as std::sync::Arc + })); + } + + pub(super) fn install_guard(guard: Option>) { + *ASCII_GUARD.lock() = guard; + } + + /// Runs the check on the main thread (TIS requirement) and waits briefly. + /// Never blocks typing for long and never fails the write: a timeout only + /// skips the guard for this batch. + fn ensure_ascii_blocking(app: &AppHandle) { + let (tx, rx) = std::sync::mpsc::channel(); + if app + .run_on_main_thread(move || { + let _ = tx.send(unsafe { ensure_ascii_on_main() }); + }) + .is_err() + { + return; + } + if let Ok(true) = rx.recv_timeout(Duration::from_millis(250)) { + // Give the target app's text-input context a moment to adopt the + // new source before the next keystroke arrives. + std::thread::sleep(Duration::from_millis(30)); + } + } + + /// Returns true when the current source was not ASCII-capable and ABC was + /// re-selected. + unsafe fn ensure_ascii_on_main() -> bool { + let current = TISCopyCurrentKeyboardInputSource(); + if current.is_null() { + return false; + } + let ascii = { + let value = TISGetInputSourceProperty(current, kTISPropertyInputSourceIsASCIICapable); + !value.is_null() && CFBooleanGetValue(value) != 0 + }; + CFRelease(current as _); + if ascii { + return false; + } + match switch_to_ascii_on_main() { + Ok(prev) => { + if let Some(p) = prev { + CFRelease(p.raw as *const _); + } + log::warn!( + "[unicode-keystroke] input source drifted off ASCII during streaming; re-selected ABC" + ); + true + } + Err(error) => { + log::warn!("[unicode-keystroke] ASCII input source re-select failed: {error}"); + false + } + } + } + fn partial_or_original(typed_chars: usize, source: TypeError) -> TypeError { if typed_chars == 0 { source @@ -198,14 +318,17 @@ mod macos_impl { } } - fn send_one_codepoint(ch: char) -> Result<(), TypeError> { - let mut buf = [0u16; 2]; - let utf16 = ch.encode_utf16(&mut buf); - // Virtual keycode 0 + Unicode string override: the character is fully - // determined by the unicode string, the keycode is irrelevant. - // Flags are explicitly cleared — a held Shift would otherwise map the - // character to uppercase. - post_key_event(0, 0, Some(utf16)) + fn send_unicode_text(text: &str) -> Result<(), TypeError> { + let mut buf = [0u16; MAX_UNICODE_EVENT_UNITS]; + let mut len = 0; + for unit in text.encode_utf16() { + buf[len] = unit; + len += 1; + } + // Deliver a short text run atomically rather than simulated individual + // typing. This keeps list indentation literal and avoids macOS smart + // punctuation racing later characters in WebKit-based input controls. + post_key_event(0, 0, Some(&buf[..len])) } /// Sends one Shift+Return. Uses the real Return virtual keycode @@ -215,7 +338,7 @@ mod macos_impl { } fn send_line_feed() -> Result<(), TypeError> { - send_one_codepoint('\n') + send_unicode_text("\n") } /// Sends one Return with no modifiers. This equals "send" in chat boxes — @@ -228,9 +351,9 @@ mod macos_impl { /// Constructs and posts a down/up keyboard event pair; owns all CF resource /// release. /// - /// When `unicode` is `Some`, `CGEventKeyboardSetUnicodeString` overrides the - /// character content (`virtual_key` is then meaningless); when `None`, the - /// event presses the physical `virtual_key`. + /// When `unicode` is `Some`, the payload supplies the text. Clients that + /// ignore it may still interpret the physical key; the session therefore + /// selects an ASCII input source. With `None`, press the physical key. fn post_key_event( virtual_key: CGKeyCode, flags: CGEventFlags, @@ -401,6 +524,7 @@ mod macos_impl { #[link(name = "CoreFoundation", kind = "framework")] extern "C" { fn CFRelease(cf: *const c_void); + fn CFBooleanGetValue(boolean: *const c_void) -> u8; fn CFStringCreateWithCString( alloc: CFAllocatorRef, c_str: *const i8, @@ -414,6 +538,8 @@ mod macos_impl { fn TISCopyCurrentKeyboardInputSource() -> TISInputSourceRef; fn TISCopyInputSourceForLanguage(lang: CFStringRef) -> TISInputSourceRef; fn TISSelectInputSource(source: TISInputSourceRef) -> i32; + fn TISGetInputSourceProperty(source: TISInputSourceRef, key: CFStringRef) -> *const c_void; + static kTISPropertyInputSourceIsASCIICapable: CFStringRef; } } @@ -439,13 +565,13 @@ mod windows_impl { /// Electron / Tauri themselves drop characters when keyDown/keyUp have no delay"). Windows /// had no such gap — characters within a chunk were sent back-to-back with zero spacing, /// only pausing every [`SENDINPUT_CHUNK_CHARS`]. Observed on hardware: dictating mixed - /// Chinese/English text ("我要把这个 open list...") dropped the leading character(s) of the + /// Mixed-script text could drop the leading characters of the /// Latin-script word right after the CJK→ASCII transition (e.g. "open" arrived as "pen"). /// 1ms is inaudible/invisible to the user but gives the target app's message loop room to /// process each keystroke before the next one lands. const INTER_KEYSTROKE_DELAY: Duration = Duration::from_millis(1); - /// Windows 上没有 input source 概念,token 留空。Send/Sync 自动派生。 + /// This platform does not switch input sources, so the restoration token is empty. pub struct PreviousInputSource; #[derive(Debug, Clone, Copy, PartialEq, Eq)] @@ -859,6 +985,96 @@ mod tests { } } + /// A send failure keeps the exact consumed prefix; swallowed `\r` is + /// counted without producing a keystroke. + #[test] + #[cfg(target_os = "macos")] + fn mac_sender_seam_reports_consumed_prefix() { + use super::macos_impl::{type_unicode_chunk_with_sender, MacKeystroke}; + use crate::types::MacosNewlineMode; + + let mut sent = Vec::new(); + let n = type_unicode_chunk_with_sender("胶囊\r样式", MacosNewlineMode::Auto, |ch, kind| { + if kind != MacKeystroke::Swallow { + sent.push(ch.to_string()); + } + Ok(()) + }) + .unwrap(); + assert_eq!(n, 5); + assert_eq!(sent.concat(), "胶囊样式"); + + let mut calls = 0; + let err = type_unicode_chunk_with_sender("胶\r囊样式", MacosNewlineMode::Auto, |_, _| { + calls += 1; + if calls == 3 { + Err(TypeError::SecureInputActive) + } else { + Ok(()) + } + }) + .unwrap_err(); + assert_eq!(err.typed_chars(), 2); + } + + #[test] + #[cfg(target_os = "macos")] + fn unicode_runs_preserve_indentation_and_utf16_boundaries() { + use super::macos_impl::{type_unicode_chunk_with_sender, MacKeystroke}; + use crate::types::MacosNewlineMode; + for text in [ + "1. 变更说明\n (a) 相比上一个 Beta 版本", + "1234567890123456789😀 尾部", + "12345678901234567890 ", + " ", + ] { + let mut received = String::new(); + let count = type_unicode_chunk_with_sender(text, MacosNewlineMode::Auto, |chunk, kind| { + assert!(chunk.encode_utf16().count() <= 20); + assert_ne!(chunk, " ", "do not isolate spaces from their text run"); + if kind == MacKeystroke::Unicode { assert!(!chunk.contains('\n')); } + received.push_str(chunk); + Ok(()) + }).unwrap(); + assert_eq!(received, text); + assert_eq!(count, text.chars().count()); + } + } + + #[test] + #[cfg(target_os = "macos")] + fn partial_unicode_run_counts_scalars_not_utf16_units() { + use super::macos_impl::type_unicode_chunk_with_sender; + use crate::types::MacosNewlineMode; + let text = format!("{}tail", "😀".repeat(10)); + let mut calls = 0; + let error = type_unicode_chunk_with_sender(&text, MacosNewlineMode::Auto, |_, _| { + calls += 1; + if calls == 2 { Err(TypeError::EventAllocFailed) } else { Ok(()) } + }).unwrap_err(); + assert_eq!(error.typed_chars(), 10); + } + + /// The per-batch ASCII guard runs when installed and not after removal. + #[test] + #[cfg(target_os = "macos")] + fn streaming_ascii_guard_runs_only_while_installed() { + use super::macos_impl::{install_guard, run_ascii_guard}; + use std::sync::atomic::{AtomicUsize, Ordering}; + use std::sync::Arc; + + let hits = Arc::new(AtomicUsize::new(0)); + let counter = Arc::clone(&hits); + install_guard(Some(Arc::new(move || { + counter.fetch_add(1, Ordering::SeqCst); + }))); + run_ascii_guard(); + run_ascii_guard(); + install_guard(None); + run_ascii_guard(); + assert_eq!(hits.load(Ordering::SeqCst), 2); + } + #[test] fn type_error_partial_reports_typed_chars() { let err = TypeError::Partial { @@ -941,8 +1157,8 @@ pub fn expected_sendinput_typed_chars(text: &str) -> usize { #[cfg(target_os = "macos")] #[allow(unused_imports)] pub use macos_impl::{ - is_secure_input_enabled, restore_input_source, switch_to_ascii, type_unicode_chunk, - type_unicode_chunk_with_options, PreviousInputSource, + is_secure_input_enabled, restore_input_source, set_streaming_ascii_guard, switch_to_ascii, + type_unicode_chunk, type_unicode_chunk_with_options, PreviousInputSource, }; #[cfg(target_os = "windows")] diff --git a/openless-all/app/src-tauri/tauri.conf.json b/openless-all/app/src-tauri/tauri.conf.json index aa01ef427..74ddfc9bc 100644 --- a/openless-all/app/src-tauri/tauri.conf.json +++ b/openless-all/app/src-tauri/tauri.conf.json @@ -1,7 +1,7 @@ { "$schema": "https://schema.tauri.app/config/2", "productName": "OpenLess", - "version": "2.0.2-Beta.1+build.20261017", + "version": "2.0.2-Beta.1+build.20261021-nativechrome", "identifier": "com.openless.app", "build": { "beforeDevCommand": "npm run dev", diff --git a/openless-all/app/src/components/Capsule.tsx b/openless-all/app/src/components/Capsule.tsx index b479a081e..5a2322fcb 100644 --- a/openless-all/app/src/components/Capsule.tsx +++ b/openless-all/app/src/components/Capsule.tsx @@ -1,20 +1,18 @@ -import { Icon } from './Icon'; -import { memo, useCallback, useEffect, useMemo, useRef, useState, type ReactNode } from 'react'; +import { useCallback, useEffect, useMemo, useRef, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { detectOS, type OS } from './WindowChrome'; import { warmUpSiriShaders } from './SiriGL'; +import { useReducedMotion } from '../lib/motion'; import { VoiceOrbStage } from './VoiceOrbStage'; -import { TypelessCapsule } from './TypelessCapsule'; +import { DEFAULT_CAPSULE_EXIT_MS, OpenLessPill } from './OpenLessCapsule'; import { CapsuleTranscriptRail, CapsuleTranslationBadge } from './LiveTranscriptPill'; import { capsuleTranscriptFontSize, visibleCapsuleTranscript } from '../lib/capsuleTranscript'; import { getSettings } from '../lib/ipc/settings'; import { cancelDictation, setCapsuleTranscriptVisible, stopDictation } from '../lib/ipc/dictation'; import { getCapsuleHostMetrics, - getCapsuleMessageLayout, getCapsulePillMetrics, getClassicCapsuleGeometry, - getClassicProcessingLabel, getCapsuleTranscriptRailHeight, parseCapsuleStyle, } from '../lib/capsuleLayout'; @@ -64,17 +62,7 @@ const CAPSULE_KEYFRAMES = ` @keyframes selection-polish-spinner { to { transform: rotate(360deg); } } - /* Classic pill (Openless default style) only: - - cap-shine: blue light sweep over the "thinking" text during transcribe/polish; - - cap-state-enter: fade-in when state content switches. */ - @keyframes cap-shine { - 0% { background-position: 200% center; } - 100% { background-position: -200% center; } - } - @keyframes cap-state-enter { - from { opacity: 0; transform: translateY(2px); } - to { opacity: 1; transform: translateY(0); } - } + `; if (typeof document !== 'undefined' && !document.getElementById('capsule-keyframes')) { @@ -187,324 +175,8 @@ function SelectionPolishNotice({ state, message }: SelectionPolishNoticeProps) { } // ───────── Classic pill (Openless default style) ──────────────────────── -// Restored from the 1.3.14 capsule: frosted pill + volume bars + cancel/confirm -// buttons. Sizes match the capsuleLayout constants of that release (the Siri orb -// stage is full-bleed 460×180; the classic pill is a small centered pill). - -interface ClassicPillMetrics { - width: number; - height: number; - textWidth: number; -} - -const CLASSIC_PILL_METRICS: ClassicPillMetrics = { - width: 176, - height: 42, - textWidth: 84, -}; -const CLASSIC_PILL_METRICS_WIN: ClassicPillMetrics = { - width: 196, - height: 52, - textWidth: 104, -}; - -function classicPillMetrics(os: OS): ClassicPillMetrics { - return os === 'win' ? CLASSIC_PILL_METRICS_WIN : CLASSIC_PILL_METRICS; -} - -function AudioBars({ level, compact = false }: { level: number; compact?: boolean }) { - const envelope = [0.55, 0.85, 1.0, 0.85, 0.55]; - const base = 2; - const max = compact ? 16 : 24; - const voice = Math.min(1, Math.max(0, level)); - const silenceGate = 0.012; - const responseCeiling = 0.34; - const gatedVoice = Math.min( - 1, - Math.max(0, (voice - silenceGate) / (responseCeiling - silenceGate)), - ); - const easedVoice = gatedVoice * gatedVoice * (3 - 2 * gatedVoice); - const visualVoice = Math.pow(easedVoice, 0.42); - return ( -
- {envelope.map((env, i) => ( - - ))} -
- ); -} - -interface CenterTextProps { - os: OS; - kind: 'default' | 'processing' | 'error'; - text: string; - color?: string; -} - -function CenterText({ os, kind, text, color = 'var(--ol-capsule-center-ink)' }: CenterTextProps) { - const metrics = classicPillMetrics(os); - const layout = getCapsuleMessageLayout(os, kind); - return ( - - {text} - - ); -} - -interface CircleButtonProps { - variant: 'cancel' | 'confirm'; - enabled: boolean; - onClick: () => void; -} - -// memo: level changes every frame (~60Hz) while recording, re-rendering the pill; the -// cancel/confirm SVG buttons don't depend on level, so memo + stable onClick lets them -// skip re-renders during recording (only the volume bars actually update). -const CircleButton = memo(function CircleButton({ variant, enabled, onClick }: CircleButtonProps) { - const { t } = useTranslation(); - const isCancel = variant === 'cancel'; - return ( - - ); -}); - -interface ClassicPillProps { - os: OS; - state: CapsuleState; - level: number; - insertedChars: number; - message?: string; - operating: boolean; - onCancel: () => void; - onConfirm: () => void; -} - -function ClassicPill({ - os, - state, - level, - insertedChars, - message, - operating, - onCancel, - onConfirm, -}: ClassicPillProps) { - const { t } = useTranslation(); - const metrics = classicPillMetrics(os); - const processingLayout = useMemo(() => getCapsuleMessageLayout(os, 'processing'), [os]); - const cancelEnabled = state === 'recording' || state === 'transcribing' || state === 'polishing'; - const confirmEnabled = state === 'recording'; - - // Keep the original Classic processing treatment: the thinking/using label - // has its own entry and shine animation, while recording keeps the live bars. - const [shineFast, setShineFast] = useState(true); - useEffect(() => { - if (state === 'transcribing' || state === 'polishing') { - setShineFast(true); - const timer = setTimeout(() => setShineFast(false), 2000); - return () => clearTimeout(timer); - } - setShineFast(true); - return undefined; - }, [state]); - - let center: ReactNode; - switch (state) { - case 'recording': - center = ; - break; - case 'transcribing': - case 'polishing': - center = ( -
- - - {t(getClassicProcessingLabel(operating))} - -
- ); - break; - case 'done': - center = ( - - ); - break; - case 'cancelled': - center = ; - break; - case 'error': - center = ( - - ); - break; - default: - center = ; - } - - const ambient = state === 'recording' ? Math.min(1, Math.max(0, level)) : 0; - const scale = os === 'win' ? 1 : 1 + ambient * 0.018; - const shadowAlpha = 0.2 + ambient * 0.1; - - return ( - // Non-Linux uses fake frost; on Linux with transparent windows disabled, .ol-frost - // platform rules fall back to an opaque surface. No backdrop-filter: the webview - // can't blur the desktop behind a transparent window (Tauri upstream limitation). -
- -
- {center} -
- -
- ); -} +// Preserve the native Classic host/rail geometry; OpenLessPill owns the new +// white-and-blue recording/processing surface inside that stable host. interface ClassicCapsuleProps { os: OS; @@ -518,6 +190,8 @@ interface ClassicCapsuleProps { transcriptInSameWindow?: boolean; operating: boolean; translation: boolean; + leaving: boolean; + warming: boolean; } /** @@ -537,6 +211,8 @@ function ClassicCapsule({ transcriptInSameWindow = true, operating, translation, + leaving, + warming, }: ClassicCapsuleProps) { const hostMetrics = getCapsuleHostMetrics(os, false, 'classic'); const onCancel = useCallback(() => { @@ -560,19 +236,19 @@ function ClassicCapsule({ (translateX(-50%)) with no animation; the inner layer only does vertical shift + fade. This avoids conflicting with translateX(-50%) and avoids keyframe vs inline transform overrides causing visual jumps. */} - {transcriptInSameWindow && ( -
- -
- )} + {/* The language picker belongs to the interactive capsule, even when + Windows puts the transcript in a separate click-through rail. */} +
+ +
{liveText && ( )} - @@ -601,10 +280,9 @@ function ClassicCapsule({ // Must stay in sync with the @keyframes capsule-out duration — otherwise the timer // unmounts before the animation ends and the user sees it cut off mid-flight. Both -// styles share the same capsule-in/out keyframes with different durations: Siri orb -// 520ms (as-is), classic pill 360ms (matching 1.3.14). +// The spectral renderer exits in 520ms; the default capsule contracts in 180ms. const EXIT_ANIM_MS_SIRI = 520; -const EXIT_ANIM_MS_CLASSIC = 360; +const EXIT_ANIM_MS_CLASSIC = DEFAULT_CAPSULE_EXIT_MS; // Average capsule warm→ready duration (ms), driving the predicted pace of the entry // expand animation (see SiriGL warmProgress): EMA-updated after each recording becomes @@ -649,7 +327,7 @@ function getPreviewCapsulePayload() { translation: false, warming: false, selectionPolish: false, - style: 'siri' as CapsuleStyle, + style: 'classic' as CapsuleStyle, insertDemo: false, }; } @@ -668,7 +346,7 @@ function getPreviewCapsulePayload() { translation: params.get('translation') === '1', warming: params.get('warming') === '1', selectionPolish: params.get('selectionPolish') === '1', - style: parseCapsuleStyle(params.get('style')) ?? 'siri', + style: parseCapsuleStyle(params.get('style')) ?? 'classic', insertDemo, }; } @@ -681,6 +359,7 @@ export function Capsule({ os: forcedOs }: CapsuleProps = {}) { const { t } = useTranslation(); const os = forcedOs ?? detectOS(); const preview = useMemo(() => getPreviewCapsulePayload(), []); + const reducedMotion = useReducedMotion(); const metrics = getCapsulePillMetrics(os); const [state, setState] = useState(preview.state); const [level, setLevel] = useState(preview.level); @@ -705,7 +384,6 @@ export function Capsule({ os: forcedOs }: CapsuleProps = {}) { const [capsuleStyle, setCapsuleStyle] = useState(preview.style); const stylePreferenceReadyRef = useRef(false); const isClassic = capsuleStyle === 'classic'; - const isTypeless = capsuleStyle === 'typeless'; // Windows keeps the transcript in the dedicated capsule-rail HWND. The browser // preview and other platforms continue rendering the sibling rail in this tree. const splitTranscriptRail = isTauri && os === 'win'; @@ -1084,7 +762,7 @@ export function Capsule({ os: forcedOs }: CapsuleProps = {}) { } // Truly unmounted: state is idle and no exit animation is running. - if (state === 'idle' && !leaving) { + if (state === 'idle' && lastVisibleState === 'idle' && !leaving) { return
; } @@ -1105,13 +783,17 @@ export function Capsule({ os: forcedOs }: CapsuleProps = {}) { background: preview.insertDemo ? 'radial-gradient(ellipse at 50% 35%, #4d9a4a 0%, #1a4a22 42%, #0e2414 100%)' : 'transparent', - animation: leaving - ? `capsule-out ${exitMs}ms cubic-bezier(.55,.06,.68,.19) forwards` - : // The .68s entry got "delay after keypress" feedback: cut to .38s with the - // curve keeping a slight bounce, so the orb appears almost immediately. - 'capsule-in .38s cubic-bezier(.3,1.2,.4,1) both', + animation: reducedMotion + ? 'none' + : isClassic + ? 'none' + : leaving + ? `capsule-out ${exitMs}ms cubic-bezier(.55,.06,.68,.19) forwards` + : // The .68s entry got "delay after keypress" feedback: cut to .38s with the + // curve keeping a slight bounce, so the orb appears almost immediately. + 'capsule-in .38s cubic-bezier(.3,1.2,.4,1) both', transformOrigin: 'center', - willChange: 'transform, opacity', + willChange: isClassic ? 'auto' : 'transform, opacity', }} > {!renderedSelectionPolish && @@ -1128,19 +810,8 @@ export function Capsule({ os: forcedOs }: CapsuleProps = {}) { transcriptInSameWindow={!splitTranscriptRail} operating={operatingRef.current} translation={translation} - /> - ) : isTypeless ? ( - ) : ( <> diff --git a/openless-all/app/src/components/CapsuleStyles.css b/openless-all/app/src/components/CapsuleStyles.css index 519df9a47..25862bcb5 100644 --- a/openless-all/app/src/components/CapsuleStyles.css +++ b/openless-all/app/src/components/CapsuleStyles.css @@ -47,39 +47,56 @@ .ol-classic-translation { display: inline-flex; - flex: 0 0 22px; - height: 22px; + flex: 0 0 28px; + height: 28px; box-sizing: border-box; align-items: center; - gap: 5px; - padding: 0 10px; - border-radius: 999px; - font-size: 10.5px; - font-weight: var(--ol-font-weight-semibold); - color: var(--ol-blue); - background: var(--ol-capsule-badge-bg); - border: 0.5px solid var(--ol-capsule-badge-border); + gap: 6px; + padding: 3px 4px 3px 8px; + border-radius: 6px; + font-size: 11px; + color: #2563eb; + color-scheme: light; + background: #fff; + border: 1px solid #dbeafe; box-shadow: - 0 4px 12px -4px rgb(37 99 235 / 25%), - 0 0 0 0.5px rgb(0 0 0 / 4%); - letter-spacing: 0.02em; + 0 2px 6px rgb(0 0 0 / 10%), + inset 0 -2px 4px rgb(37 99 235 / 12%); white-space: nowrap; transform-origin: center bottom; - transition: - opacity 0.24s ease-out, - transform 0.34s cubic-bezier(0.2, 0.9, 0.3, 1.1); } - -.ol-classic-translation[data-visible='false'] { - opacity: 0; - transform: translateY(40px) scale(0.88); +.ol-translation-language { + pointer-events: auto; + max-width: 174px; } - -.ol-classic-translation > span { - width: 5px; - height: 5px; - border-radius: 999px; - background: var(--ol-blue); +.ol-translation-language .ol-select-trigger { + height: 22px; + min-width: 92px; + max-width: 174px; + width: auto; + padding: 0 7px; + border-radius: 4px; + font-size: 11px; +} +.ol-translation-language[data-busy='true'] { + opacity: 0.6; +} +.ol-classic-translation[data-visible='false'] .ol-translation-language { + pointer-events: none; +} +.ol-translation-error { + position: absolute; + bottom: calc(100% + 6px); + left: 50%; + transform: translateX(-50%); + max-width: 280px; + padding: 5px 8px; + border-radius: 6px; + background: #fff; + color: #dc2626; + font-size: 10px; + white-space: normal; + width: max-content; } .ol-capsule-transcript-overlay .ol-capsule-transcript-rail { diff --git a/openless-all/app/src/components/CapsuleTranslationBadge.tsx b/openless-all/app/src/components/CapsuleTranslationBadge.tsx new file mode 100644 index 000000000..74d7d13f6 --- /dev/null +++ b/openless-all/app/src/components/CapsuleTranslationBadge.tsx @@ -0,0 +1,231 @@ +import { motion, useReducedMotion } from 'framer-motion'; +import { useEffect, useMemo, useRef, useState } from 'react'; +import { useTranslation } from 'react-i18next'; +import { SelectLite } from './ui/SelectLite'; +import './ui/Select.css'; +import { getSettings } from '../lib/ipc/settings'; +import { isTauri } from '../lib/ipc/shared'; +import { + getDictationTranslationTarget, + setCapsuleLanguageMenu, + selectDictationTranslationTarget, + type DictationTranslationTarget, +} from '../lib/ipc/dictation'; +import { localizedLanguages, nativeLanguageName } from '../lib/languageCatalog'; +import { isTranslationTargetRedundant } from '../lib/translationTarget'; +import './CapsuleStyles.css'; + +/** The same Base UI menu as settings, with temporary native headroom above the capsule. */ +export function CapsuleTranslationBadge({ visible = true }: { visible?: boolean }) { + const { t, i18n } = useTranslation(); + const reduced = useReducedMotion(); + const [snapshot, setSnapshot] = useState(null); + const [savedTarget, setSavedTarget] = useState(''); + const [busy, setBusy] = useState(false); + const [menuOpen, setMenuOpen] = useState(false); + const menuEpoch = useRef(0); + const menuOwner = useRef(null); + const closeTimer = useRef>(); + const shown = useRef(visible); + shown.current = visible; + const [error, setError] = useState(false); + const revision = useRef(0); + const pickerSession = useRef(null); + const pendingChange = useRef(null); + const current = useRef(snapshot); + current.current = snapshot; + + useEffect(() => { + let disposed = false; + let unlisten: (() => void)[] = []; + let lastRecording = ''; + const refresh = async () => { + const request = ++revision.current; + try { + const [prefs, active] = await Promise.all([getSettings(), getDictationTranslationTarget()]); + if (disposed || request !== revision.current) return; + setSavedTarget(prefs.translationTargetLanguage); + setSnapshot(active); + } catch { + if (!disposed && request === revision.current) setSnapshot(null); + } + }; + if (!visible) { + setError(false); + setBusy(false); + pickerSession.current = null; + pendingChange.current = null; + return; + } + void (async () => { + if (isTauri) { + const { listen } = await import('@tauri-apps/api/event'); + const handles = await Promise.all([ + listen('prefs:changed', () => void refresh()), + listen<{ sessionId?: string; state: string; warming?: boolean; translation?: boolean }>( + 'capsule:state', + ({ payload }) => { + const key = `${payload.sessionId}:${payload.state}:${payload.warming}:${payload.translation}`; + if (key !== lastRecording) { + lastRecording = key; + void refresh(); + } + }, + ), + ]); + if (disposed) { + handles.forEach((stop) => stop()); + return; + } + unlisten = handles; + } + await refresh(); + })().catch(() => { + if (!disposed) setSnapshot(null); + }); + return () => { + disposed = true; + revision.current++; + unlisten.forEach((stop) => stop()); + }; + }, [visible]); + + const target = nativeLanguageName(snapshot?.targetLanguage ?? savedTarget); + const languages = useMemo( + () => localizedLanguages(i18n.language, [target]), + [i18n.language, target], + ); + const selected = languages.find((language) => language.nativeName === target); + const options = languages.filter( + (language) => + language.nativeName === target || + !isTranslationTargetRedundant(language.nativeName, snapshot?.workingLanguages ?? []), + ); + const openMenu = async (next: boolean) => { + const epoch = ++menuEpoch.current; + if (closeTimer.current) clearTimeout(closeTimer.current); + if (!next) { + setMenuOpen(false); + const owner = menuOwner.current; + if (owner) + closeTimer.current = setTimeout( + () => { + if (epoch !== menuEpoch.current) return; + menuOwner.current = null; + void setCapsuleLanguageMenu(false, owner).catch(() => {}); + }, + reduced ? 0 : 160, + ); + return; + } + const active = current.current; + if (!shown.current || !active?.mutable) return; + pickerSession.current = active.sessionId; + menuOwner.current = active.sessionId; + try { + await setCapsuleLanguageMenu(true, active.sessionId); + await new Promise((resolve) => + requestAnimationFrame(() => requestAnimationFrame(() => resolve())), + ); + if ( + epoch === menuEpoch.current && + shown.current && + current.current?.sessionId === active.sessionId && + current.current.mutable + ) { + setMenuOpen(true); + } else { + await setCapsuleLanguageMenu(false, active.sessionId); + } + } catch { + if (epoch === menuEpoch.current) setError(true); + } + }; + useEffect(() => { + if ( + menuOwner.current && + (!visible || !snapshot?.mutable || snapshot.sessionId !== menuOwner.current) + ) + void openMenu(false); + }, [visible, snapshot?.mutable, snapshot?.sessionId]); + useEffect( + () => () => { + menuEpoch.current++; + if (closeTimer.current) clearTimeout(closeTimer.current); + if (menuOwner.current) void setCapsuleLanguageMenu(false, menuOwner.current).catch(() => {}); + }, + [], + ); + useEffect(() => { + const closeOnBlur = () => { + if (menuOwner.current) void openMenu(false); + }; + window.addEventListener('blur', closeOnBlur); + return () => window.removeEventListener('blur', closeOnBlur); + }, []); + const change = async (value: string) => { + const sessionId = pickerSession.current ?? snapshot?.sessionId; + pickerSession.current = null; + void openMenu(false); + if (!sessionId || pendingChange.current || !snapshot?.mutable) return; + const request = Symbol('translation-target'); + pendingChange.current = request; + setBusy(true); + setError(false); + revision.current++; + try { + const updated = await selectDictationTranslationTarget(sessionId, value); + // A native dropdown may outlive the recording which opened it. + if (current.current?.sessionId === updated.sessionId) { + setSnapshot(updated); + setSavedTarget(updated.targetLanguage); + } + } catch { + if (current.current?.sessionId === sessionId) setError(true); + } finally { + if (pendingChange.current === request) { + pendingChange.current = null; + setBusy(false); + } + } + }; + + return ( + + {t('capsule.translateTo')} +
+ ({ + value: language.nativeName, + label: language.displayName, + }))} + placeholder={selected?.displayName || target || '…'} + ariaLabel={t('translation.target.title')} + disabled={!visible || busy || !snapshot?.mutable} + open={menuOpen} + onOpenChange={(next) => void openMenu(next)} + onChange={(value) => void change(value)} + side="top" + popupStyle={{ width: 240 }} + /> +
+ {error && ( + + {t('capsule.translationChangeFailed')} + + )} +
+ ); +} diff --git a/openless-all/app/src/components/FloatingShell.tsx b/openless-all/app/src/components/FloatingShell.tsx index e229f5f46..6558c5da8 100644 --- a/openless-all/app/src/components/FloatingShell.tsx +++ b/openless-all/app/src/components/FloatingShell.tsx @@ -389,6 +389,9 @@ function FloatingShellBody({ >
); } +// Warm likely destinations on hover/focus; React.lazy shares the module cache. +function preloadPage(tab: AppTab) { + const load = + tab === 'history' + ? import('../pages/History') + : tab === 'vocab' + ? import('../pages/Vocab') + : tab === 'style' + ? import('../pages/Style') + : tab === 'marketplace' + ? import('../pages/Marketplace') + : tab === 'translation' + ? import('../pages/Translation') + : tab === 'selectionAsk' + ? import('../pages/SelectionAsk') + : null; + void load?.catch(() => {}); // The normal lazy boundary owns visible load errors. +} + const MOBILE_BOTTOM_TABS: Array<{ id: AppTab; icon: string }> = [ { id: 'overview', icon: 'overview' }, { id: 'history', icon: 'history' }, @@ -901,7 +944,8 @@ const mobileNavBtnStyle: CSSProperties = { cursor: 'default', }; -/** Base style for sidebar nav buttons (shared by flat items / group titles / children; children override paddingLeft). */ +/** Base style for sidebar nav buttons (shared by flat items / group titles / children; children override paddingLeft). + * Layout only: colour, background and cursor come from the .ol-sidebar-surface rules. */ const navBtnStyle: CSSProperties = { display: 'flex', alignItems: 'center', @@ -913,8 +957,6 @@ const navBtnStyle: CSSProperties = { // (After the Codex sidebar): 15px nav text, 16px icons — closer to the reference design. fontFamily: 'inherit', fontSize: 15, - cursor: 'default', - transition: 'color 0.16s var(--ol-motion-quick), background 0.16s var(--ol-motion-quick)', textAlign: 'left', }; diff --git a/openless-all/app/src/components/LiveTranscriptPill.tsx b/openless-all/app/src/components/LiveTranscriptPill.tsx index 482a6752f..1e978e962 100644 --- a/openless-all/app/src/components/LiveTranscriptPill.tsx +++ b/openless-all/app/src/components/LiveTranscriptPill.tsx @@ -29,7 +29,7 @@ import { type TranscriptViewState, } from '../lib/backendEvent'; import { capsuleTranscriptFontSize, visibleCapsuleTranscript } from '../lib/capsuleTranscript'; -import { getCapsuleTranscriptRailHeight } from '../lib/capsuleLayout'; +import { getCapsuleTranscriptRailHeight, parseCapsuleStyle } from '../lib/capsuleLayout'; import { getSettings } from '../lib/ipc/settings'; import { getCapsuleSnapshot, isTauri } from '../lib/ipc'; import type { @@ -42,15 +42,7 @@ import type { export type LiveTranscriptTone = 'frost' | 'dark'; -export function CapsuleTranslationBadge({ visible = true }: { visible?: boolean }) { - const { t } = useTranslation(); - return ( -
- - {t('capsule.translating')} -
- ); -} +export { CapsuleTranslationBadge } from './CapsuleTranslationBadge'; export interface LiveTranscriptPillProps { text: string; @@ -137,7 +129,7 @@ export function CapsuleTranscriptRail({ export function CapsuleTranscriptOverlay() { const { t } = useTranslation(); const [state, setState] = useState('idle'); - const [style, setStyle] = useState('siri'); + const [style, setStyle] = useState('classic'); const [text, setText] = useState(''); const [enabled, setEnabled] = useState(true); const [fontSize, setFontSize] = useState(14); @@ -162,7 +154,7 @@ export function CapsuleTranscriptOverlay() { transcriptRef.current = sessionTranscript; stateRef.current = payload.state; setState(payload.state); - if (payload.capsuleStyle) setStyle(payload.capsuleStyle); + if (payload.capsuleStyle) setStyle(parseCapsuleStyle(payload.capsuleStyle) ?? 'classic'); setSelectionPolish(payload.selectionPolish === true); setTranslation(payload.translation === true); if (payload.state === 'recording' && previousState !== 'recording' && !sessionChanged) { @@ -184,7 +176,8 @@ export function CapsuleTranscriptOverlay() { const preferenceHandle = await listen('prefs:changed', (event) => { setEnabled(event.payload.capsuleTranscriptEnabled ?? true); setFontSize(capsuleTranscriptFontSize(event.payload.capsuleTranscriptFontSize)); - if (event.payload.capsuleStyle) setStyle(event.payload.capsuleStyle); + if (event.payload.capsuleStyle) + setStyle(parseCapsuleStyle(event.payload.capsuleStyle) ?? 'classic'); }); const applySnapshot = ( snapshot: CapsuleSnapshot, @@ -202,7 +195,7 @@ export function CapsuleTranscriptOverlay() { const previousState = stateRef.current; stateRef.current = snapshot.state; setState(snapshot.state); - setStyle(snapshot.capsuleStyle ?? fallbackStyle); + setStyle(parseCapsuleStyle(snapshot.capsuleStyle ?? fallbackStyle) ?? 'classic'); setSelectionPolish(snapshot.selectionPolish === true); setTranslation(snapshot.translation === true); if (snapshot.state === 'recording' && previousState !== 'recording' && !sessionChanged) { @@ -242,7 +235,7 @@ export function CapsuleTranscriptOverlay() { if (!cancelled) { setEnabled(preferences.capsuleTranscriptEnabled ?? true); setFontSize(capsuleTranscriptFontSize(preferences.capsuleTranscriptFontSize)); - setStyle(preferences.capsuleStyle); + setStyle(parseCapsuleStyle(preferences.capsuleStyle) ?? 'classic'); await replaySnapshot(preferences.capsuleStyle); } } @@ -270,7 +263,6 @@ export function CapsuleTranscriptOverlay() { maxWidth={440} height={railHeight} /> - {translation && !selectionPolish && style === 'classic' && } {translation && !selectionPolish && typeless && (
{t('capsule.translating')} diff --git a/openless-all/app/src/components/OpenLessCapsule.css b/openless-all/app/src/components/OpenLessCapsule.css new file mode 100644 index 000000000..76fb05b3b --- /dev/null +++ b/openless-all/app/src/components/OpenLessCapsule.css @@ -0,0 +1,174 @@ +/* Reference geometry/motion, with OpenLess's white paper and project-blue ink. */ +.ol-default-capsule { + position: relative; + height: 32px; + flex: 0 0 auto; + isolation: isolate; + overflow: hidden; + border-radius: 999px; + color-scheme: light; + color: #2563eb; + font-family: var(--ol-font-sans); + box-shadow: 0 2px 6px rgb(0 0 0 / 14%); + transform-origin: center bottom; +} +.ol-default-capsule::before { + content: ''; + position: absolute; + inset: 0; + z-index: -2; + background: #fff; + border: 1px solid #d4d4d8; + border-radius: inherit; +} +.ol-default-capsule::after { + content: ''; + position: absolute; + inset: 0; + z-index: -1; + border-radius: inherit; + background: #dbeafe; + transform: translateX(-100%); + pointer-events: none; +} +.ol-default-capsule[data-processing='true']::after { + animation: ol-capsule-sweep 2.4s linear infinite; +} +/* Reference processing fill travels left→right; it is not a pulsing spinner. */ +@keyframes ol-capsule-sweep { + 0% { + transform: translateX(-100%); + } + 85%, + 100% { + transform: translateX(0); + } +} +.ol-default-capsule[data-translation='true']::before { + box-shadow: inset 0 4px 7px -3px rgb(37 99 235 / 65%); +} +.ol-default-recording { + position: absolute; + top: 0; + left: 50%; + width: 116px; + height: 32px; + transform: translateX(-50%); + display: flex; + align-items: center; + justify-content: center; + transition: opacity 90ms linear 60ms; +} +.ol-default-recording[aria-hidden='true'] { + opacity: 0; + pointer-events: none; +} +.ol-default-action { + position: absolute; + top: 4px; + display: grid; + place-items: center; + width: 24px; + height: 24px; + padding: 0; + border: 0; + border-radius: 50%; + background: #f0f0f2; + color: #52525b; + cursor: pointer; + transition: + opacity 80ms linear, + background-color 100ms ease; +} +.ol-default-cancel { + left: 4px; +} +.ol-default-confirm { + right: 4px; + color: #fff; + background: #2563eb; +} +.ol-default-action[aria-hidden='true'] { + opacity: 0; + pointer-events: none; +} +.ol-default-capsule[data-processing='true'] .ol-default-action { + transition-delay: 50ms; +} +.ol-default-action:focus-visible, +.ol-default-processing-cancel:focus-visible { + outline: 2px solid #2563eb; + outline-offset: -2px; +} +.ol-default-action:active:not(:disabled) { + scale: 0.92; +} +@media (hover: hover) and (pointer: fine) { + .ol-default-cancel:hover:not(:disabled) { + background: #e4e4e7; + } + .ol-default-confirm:hover:not(:disabled) { + background: #1d4ed8; + } +} +.ol-default-status { + position: absolute; + inset: 0; + display: flex; + align-items: center; + justify-content: center; + padding: 0 14px; + pointer-events: none; + font-size: 12px; + font-weight: 500; + opacity: 1; + transition: opacity 80ms linear 120ms; +} +.ol-default-status[aria-hidden='true'] { + opacity: 0; + transition-delay: 0ms; +} +.ol-default-status > span { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.ol-default-capsule[data-error='true'] .ol-default-status { + color: #dc2626; +} +.ol-default-processing-cancel { + position: absolute; + inset: 0; + width: 100%; + height: 100%; + padding: 0; + border: 0; + border-radius: inherit; + background: transparent; + cursor: pointer; +} +.ol-default-waveform { + display: flex; + align-items: center; + justify-content: center; + gap: 2px; + width: 40px; + height: 18px; +} +.ol-default-waveform > span { + width: 1.5px; + height: 1.5px; + flex: 0 0 1.5px; + border-radius: 999px; + background: #2563eb; +} +@media (prefers-reduced-motion: reduce) { + .ol-default-capsule::after { + animation: none !important; + } + .ol-default-recording, + .ol-default-action, + .ol-default-status { + transition: none; + } +} diff --git a/openless-all/app/src/components/OpenLessCapsule.tsx b/openless-all/app/src/components/OpenLessCapsule.tsx new file mode 100644 index 000000000..030135997 --- /dev/null +++ b/openless-all/app/src/components/OpenLessCapsule.tsx @@ -0,0 +1,182 @@ +import { motion } from 'framer-motion'; +import { useEffect, useLayoutEffect, useRef, useState } from 'react'; +import { useTranslation } from 'react-i18next'; +import { Icon } from './Icon'; +import { VoiceOrbStage } from './VoiceOrbStage'; +import { useReducedMotion } from '../lib/motion'; +import type { OS } from './WindowChrome'; +import type { CapsuleState, CapsuleStyle } from '../lib/types'; +import './CapsuleStyles.css'; +import './OpenLessCapsule.css'; + +// Measured from the 60 fps reference: 232×64 physical pixels at 2×. +const ENVELOPE = [0.22, 0.34, 0.48, 0.65, 0.82, 1, 0.82, 0.65, 0.48, 0.34, 0.22]; +const MORPH = { duration: 0.22, ease: [0.22, 1, 0.36, 1] as const }; +export const DEFAULT_CAPSULE_EXIT_MS = 180; + +export function CapsuleWaveform({ level, active = true }: { level: number; active?: boolean }) { + const root = useRef(null); + const input = useRef(level); + input.current = level; + const reduced = useReducedMotion(); + useEffect(() => { + const bars = root.current?.children; + if (!bars) return; + let frame = 0; + let previous = 0; + let smoothed = 0; + const draw = (now: number) => { + const dt = previous ? Math.min(now - previous, 50) : 16; + previous = now; + const voice = active ? Math.min(1, Math.max(0, (input.current - 0.008) / 0.32)) : 0; + smoothed += (voice - smoothed) * (1 - Math.exp(-dt / (voice > smoothed ? 35 : 90))); + ENVELOPE.forEach((envelope, index) => { + // The centre stays strongest; neighbouring bars do not move as one rigid icon. + const ripple = reduced ? 1 : 0.86 + 0.14 * Math.sin(now / 85 + index * 0.8); + (bars[index] as HTMLElement).style.height = + `${1.5 + 14.5 * Math.pow(smoothed, 0.6) * envelope * ripple}px`; + }); + if (active && !reduced) frame = requestAnimationFrame(draw); + }; + draw(performance.now()); + return () => cancelAnimationFrame(frame); + }, [active, reduced, reduced ? level : undefined]); + return ( +
-
- - {label} - -
-
-
- - - ); -} - -/** This local preview makes a saved choice visible without starting the microphone. */ -export function CapsuleStylePreview({ style }: { style: CapsuleStyle }) { - return ( - - ); -} diff --git a/openless-all/app/src/components/WindowChrome.tsx b/openless-all/app/src/components/WindowChrome.tsx index 266ef05d9..f3a748e35 100644 --- a/openless-all/app/src/components/WindowChrome.tsx +++ b/openless-all/app/src/components/WindowChrome.tsx @@ -49,7 +49,9 @@ export function WindowChrome({ os = 'mac', children, height = 800 }: WindowChrom position: 'relative', isolation: 'isolate', borderRadius: 'var(--ol-window-shell-radius)', - boxShadow: os === 'win' ? 'none' : 'var(--ol-shadow-xl)', + // The shell fills the whole window, so a CSS shadow lands outside the viewport and + // is clipped; macOS/Windows draw the real window shadow natively. + boxShadow: os === 'win' || os === 'mac' ? 'none' : 'var(--ol-shadow-xl)', overflow: 'hidden', display: 'flex', flexDirection: 'column', diff --git a/openless-all/app/src/components/ui/ChoiceChips.tsx b/openless-all/app/src/components/ui/ChoiceChips.tsx index 11bd783a3..07743f7d6 100644 --- a/openless-all/app/src/components/ui/ChoiceChips.tsx +++ b/openless-all/app/src/components/ui/ChoiceChips.tsx @@ -1,7 +1,4 @@ -import { motion } from 'framer-motion'; -import { useReducedMotion } from '../../lib/motion'; -import { keyboardInteraction } from '../../lib/interactionMode'; - +// Chips keep one size in every state: selecting only recolours, so neighbours never shift. export function ChoiceChips({ options, value, @@ -13,25 +10,17 @@ export function ChoiceChips({ onChange: (value: T) => void; label: string; }) { - const reduced = useReducedMotion(); - const quiet = reduced || keyboardInteraction(); return (
{options.map((option) => ( - onChange(option.value)} > {option.label} - + ))}
); diff --git a/openless-all/app/src/components/ui/Segmented.tsx b/openless-all/app/src/components/ui/Segmented.tsx new file mode 100644 index 000000000..4dcc5775a --- /dev/null +++ b/openless-all/app/src/components/ui/Segmented.tsx @@ -0,0 +1,65 @@ +import { useRef } from 'react'; +import { useSelectionMotion } from '../../lib/motion'; + +export interface SegmentedOption { + value: T; + label: string; + title?: string; +} + +/** The one segmented control used across Settings: a white track with the controls' + * hairline, and a neutral chip that slides under the selected option. */ +export function Segmented({ + options, + value, + onChange, + label, + disabled = false, + className, + indicatorClassName, +}: { + options: SegmentedOption[]; + value: T; + onChange: (value: T) => void; + label: string; + disabled?: boolean; + className?: string; + /** Extra hook for callers whose tests address the sliding chip directly. */ + indicatorClassName?: string; +}) { + const trackRef = useRef(null); + const indicatorRef = useRef(null); + useSelectionMotion(trackRef, indicatorRef, value); + return ( +
+ + {options.map((option) => ( + + ))} +
+ ); +} diff --git a/openless-all/app/src/components/ui/Select.css b/openless-all/app/src/components/ui/Select.css index a3ffd5c39..e332b1df3 100644 --- a/openless-all/app/src/components/ui/Select.css +++ b/openless-all/app/src/components/ui/Select.css @@ -93,7 +93,7 @@ background: var(--ol-select-option-hover-bg); } .ol-select-item[data-selected] { - color: var(--ol-blue); + color: var(--ol-choice-active-ink); font-weight: var(--ol-font-weight-semibold); } .ol-select-check { diff --git a/openless-all/app/src/components/ui/Select.tsx b/openless-all/app/src/components/ui/Select.tsx index f1ec9e097..6430d6aa0 100644 --- a/openless-all/app/src/components/ui/Select.tsx +++ b/openless-all/app/src/components/ui/Select.tsx @@ -11,6 +11,9 @@ interface SelectProps { placeholder?: string; style?: CSSProperties; onOpenChange?: (open: boolean) => void; + open?: boolean; + side?: 'top' | 'bottom'; + popupStyle?: CSSProperties; } /** Standard Base UI Select; keyboard navigation, typeahead and focus return stay upstream. */ @@ -23,9 +26,13 @@ export function Select({ placeholder, style, onOpenChange, + open, + side = 'bottom', + popupStyle, }: SelectProps) { return ( - + {options.map((option) => ( void; + open?: boolean; + side?: 'top' | 'bottom'; + popupStyle?: CSSProperties; searchable?: boolean; searchPlaceholder?: string; emptyMessage?: string; @@ -45,6 +48,9 @@ export function SelectLite({ style, ariaLabel, onOpenChange, + open: controlledOpen, + side = 'bottom', + popupStyle, searchable = false, searchPlaceholder = 'Search…', emptyMessage = 'No matching options', @@ -77,6 +83,9 @@ export function SelectLite({ ariaLabel, searchPlaceholder, emptyMessage, + open: controlledOpen, + side, + popupStyle, }} onOpenChange={handleOpenChange} /> @@ -84,7 +93,18 @@ export function SelectLite({ } return (

CddtlQT`G8_I1K15UBoZ^urcZLG@KnChwVfcA;8I_s=*2arCo0G5CXA38BG zf>H(ep~%9)kTVqv1QB;MctGsxY8&->lGgh6@~%?VPGwn&~RUN;JV@f$R#JGXDg z#>SqY(x#3~bKHCx!o}a>joF)G!Ak7)=ewX&^1m>tgh>b8_*_9ng`-|4xaX&G0oGx{ zs7eAdPj*)XU_RA_?@FCj&!{|Z!_}LtXKWB9lzzP?2!9089Dp2BnB_Mxim_^Kl}9CodjUalHkq@wDS;piE0nZ+{%ypp{vVoen*O6DK`rSUEFHW6!i$vPv!_pPpyyg=>`zvWE z#jL40^%j(k3$v_ee{t%|LlzuQTj_Da4jJmay!p75VwQknBm)*Aty-o=$O;%)eSPnV zu;c}&9T?}LeNiJ7t+{3?eHqiIv<&9c(ZeMr*Nz-%BBCH<_kq;<%|$gpxQ9d^k7Jj> z!a5@TcR*MElm1fNeMmOeMLoZd(veNWacxwHaXF0NPJZvV!{K3JVbM*Uoyd6^LJ0}b zX}ovq$fiH?;FPO*KG=e@g?881Qgg5jg>_c3h%a0MR%jIRGCNUfL6N;!PN`mX9!n{e zbl*|GObT=dN4Thu1cRM4zF1q~2Q`vm2nB3J@W5 zNt7o~8ohF8b_DKL~O$FhFP+boQ zY;h*;Htxp)r58GbVKQ7a}`iLi}1gJ3UG z(&_;y{RUd>mTZD~7q)Xpx|SJn)!$Zp_~C|&xuJ%x*dj}1ri?N?3V;PL3uFMu1s zYn;|}y(esfFZSz;Py$}W5Y?}C{-cw_!icwDq=dLQV093m>B68xU0wE3ydq-OOSCbGdELLC9Xt(-;Vi=<-@u@9; z`PJGESkJ;Pm>#{o)7Pw>C-yYXd8L4TQd(Utazjc_Zwxxq#ott3YuU01!A$!T&|g=6 zy_KrG3>vHInT zXfXe7k5g z=K{KeP?NcPNT{f&_$58pO-@QOf2Ahq$oU>ZAuv6O4h@hlPEAd|+Xnj2(PS1(3}hp;je+~P0$ z-7p6rSG-~Rf}mIfm{%`K@zaA3Sy?R@N?1<(Wb9Yu8Tx>w*qo>!Nd?}(>Myqs7{CCR zXfL!=z|19DrnDZA4@lSz@iIcBD^4h=uR5${=H%o|Js`Ndn{RGA?B8oU&MH({iu3Up zpY^?XX(x%KZrrb))A<;YmNelt7FSo@!^N9vIhjg4TDN~HEZjs9OE=USCso$fb;AiV zm^Ks~fW?ubbU~}|%*~fSfBwY2(W(tfjgkiy$qKFzazgS+_h)l@TMrzcTLljcxuJ~Q zd`OkVsd(v<6l!b=rq2jqfEx(UxpSH5O4tc_uV8=pj4enCYTb2bX;5(N z((aBAHpB8)eMv7$Ghk0V)-xsgsV!c&febVba)A68g{B}&yf89)yCNG-}Gk+G%62LvW2rLq;vuJg@+D? zRu>d8)D*{d!FO8-pBZ$VZXO=VD!B>nfe&%@Qge=piA>-N0}2OEnzm@Oa#!_13yO^# zAkH^-v`cTPW7|SUq}d5lf0IRxW9T!|eWH=L;Z0?**k?@lNA*OLtOm(CBqy=>Z@ob? z4S*pR@QkM*Y=v8JuyE4 z-`d@WyUbS+onDLLXYlChudfBF%U2x%<2|EL6wo1dgCOb{^g_>^Qo%BiOORFDHuG`i z?`&J8o6e@4OFYRLykoCAf3mFCy3 zE*9bfn7J`H0B?{KV*m4#cOS{>Yx`+Q5fLep0wJ+O9SyjRj%QE~osU-tz?xOcBf zn9hcdmZm16)nV!dr8_3lj3k7+gy)|=UF6`(VNeO0$CSwCtu*>F8EJdswS+Iti|k3= zKc>U~`*eXb%VlQhL4lr{%BYn>&#K8^W9Iti4TwgiO_ezHRE=sll9(_h_`}@0Cgtwm zg&6aVZ*2NN)TQ4$C$roUs)UQ)W*M2?Rc;E$3Qp)yu<`CtVd~?z0^gV)pB`>vY1-MX z$L$aeV7X*D!JrF68z|L%^XQ=i3jmV<-J!bEW_MZSu#DO-;QFTO(V|*I@q@9jH`r{B zKQcKvNzUiFva<5^>p5MF`H?!yh)+&3Qy-|`Z-X-bTVSf~c=DA^qC`IK{Q`!vQ$3rN zUT4Y#*Wwhu1sL;v6Yc8i!VMXfrcs#!$)AXIb`IO$6cpX5>NHl%rWx7}ZJD|n7K7dS zPq7$r5_m7=S)4daOCxGsXA*|~e(m-I&beGkF|nq_s>EYd+NmWNrCdC7=Haie@iH;) zIoa7#GqpIX?B)h_SGksFXH_#tc$t~?|KVo#o6_^GudbqS83PA^anBWG#sJRtxgWx* z-xw*h93!DlbLo+Id%Bj2su+LSJ9eY)IjMn^%ja5K6Xe8f5kL-Q5fvpRrvDDz_fDJ` zM|CcOGgEx3c*_wQ&|AX7Bca^$jT~C;Cs$n-Qq?xc%iR=!ug`87x2RX|Um|O{y{8}B z8Po1qLdgBR1)>71U{%`<8YH+wNe0hl6&xXz?3;G_UFAJsViIh}kD=IUyUXt`>++cn zDh$>5qsGYoxJ2yE`y$vV|L`F3D{sNbYkBMqiiiqkYtE7y*zKo z3LWRaa}^XARe!7grEHvK*t20FQipC0)X;)+H%Xn4!?)gPe4@u8M<4VT79Q}~FjEpF zKn8|OC!V;bN{Vk>5I<(Qo^6FX6ny3=R$ckC3$G8|1hh4QjdJLacOxTR*KV?BC=?@# zsQ2`9W#B|@tFBfwOq{*Hw?X=crBy17rR2I-KsFN(y?WOuS}Z?--;=srQCT^0fMO_D zzkE(6Nj1Oj=ZY~ed2{4j1Rp&a`SFm{6K$%0$iy7ty(Ns$6zQ1;yrR02Wc=qW!=nkR zUyu#g(4fi9-8`;->f~Mr!fGtmCaOtJ4h}h;PIidrEm)(~`@VZ8Cr_3Q#g z1Fk<8~ux4+c*^{cGwPf5k+eo0$`eCP`WtgHbuHnp^HR?=pIud+E`&kT~+ zQI^N4eS6F~f5QkLwK7U!kZaI!I=NtG0ITA5Tf}6UuFkb!em-*k7Z}*K0cQtudh3=K z7jc%mzYC=kwzIK8msZ=}Zqr{noqhoMP!Kga3DW|_4718(2(C2lRnS=qAdhu=y@JX2 zx&B1Mc&gKMSp*_Vs6Oi{tzaK@%D` ztZcde_u+6C&n*{6_BLhd(|2=Mh{`AVY{LR>P?1Yjo5l!$7%*G_b)_fb8(UF zFQ9jmwwZ$Kf)Q-ZjU5*nb~grHeCXO?ww^8d>foe*Qg!BHSq9{3@$qjuG9+qW+E4mj=V-AAPF2SgsFrdx=9=xJ>HbFw=-xpn2r%Av|Rc;ZUBsJ|%M z(eyaAEMW^gH;OVee-k?D%3(azV~e3+q$3>ez@pa#PUJA&=x7kr~4J^ubd+b4`-#ZScwo6qXFVid?*3 zXgrDr`OtOPh`F|gaU#9C1=q>!4j2&biKMo?8%z?gqW6~7Ps(C=m+2`l#NTa(9i~|S!Bf`B?Q;lK3^nBOi zWudk8UPh^ppUDMj`2GsuI?bus?f0M^7qG+>AeWDQG^Ia(uFM|qCT^ZSC&s`s4zKZl zSchudH~-vSBzzSA^=Rk+1wi#b{S~>#!*O({s^+Kkpop1i6#jZt5^%+Ah)DNuHx z@9dfzQXyN(>QN{7uVX8XZQa^SJ@8L)ldgZW1M$g^dkRGG>4e^HB&g)3zj;$FzZKQ- zr;r|Gu`12D`{cS=^@E>t{T(+K??@iEpZzuDvd<|&y%=Gn!7aKt z_%H)PFR|Ew%L>yPS+1)WE)YC$N7vhCH1TMA%F1d->SR#v?%Yp$+a%ZnB!6-M~=XfVO%oduLFfc};Mp&NNcnl|w zcD36HtzaWHv(~KpSts$e3yv&wE8GYS1!Ef&l1?O;{8Ly{m~!*shi-1Hy5*HCWf5%_ zGUq~#dY2$5%}h%RzpPvE{HFE>?lS<7e$5|SwzZ|&iJAhr{Rz`s6&2UGCM_{noCEgr z!xB-LMu$&s3<5L7)pDV8AJG4^%APJR7-aP~Mi(!PG;9(fSU318WaXL08xWJ|zZ`)Y z6S}=S$=t{hp%HXUP~s%y65q^**x;~5xXY~}#MzG1)d`oP=}Gi2Oo zvyo6ZIi+@e`zN0FScks!p7o0c!vh2B?K;6aDqFLah|?TAOeYE?S+($oxwLd+lA_s> z!-vWFo__f75TM#WS0q=>P|ZBHJ4S;RZYe3z2s=&Y^MqZM$fPawfe=k_8Clnba_5Ws z*TA+Fi7I(U?kHw>9^RjVJndP^=VZ-03+&n1R{+G~(-5iRxW#eZCWH)~NPy8HZ~pdn z9uE%>DA&NM!+DrfH8c|%6ckr{44H#`o_&3Nh!`&feQQiEX4n1|>ng8@I`wK^FA1D+ z;TPaa0kWodgW1;Oxf?hoe@w3q`Z{8IwYt8JSu%_OavaxmkN0z*fFxZCWrL9%Pt>ODE6Emy*2A_E?rUvyt;hB#RCUQ}me6+?Kj-Evc>T&?fk8`cb^ND-1FMWvJqH*R(_d`o z2W85~No`X-4SU$*fNvu4MqOD(<)V`LxB-=3i-PXlTs0DjQ~4 zz*|7wsiexgtl8BHMkz2td88j=b2xf5Y&O`GE@xFt{~R4Xl#z4}NlJTzaHF7vqZUlWEL(NEC3;d*`;^$<-?x+Q zC1-tiQ`FPV4p9`U8QLBOn*@T@x&7nn4Wc0OpXcVjZP?k_dE)rcT&Bad1WO)sMMRUa*(0|TFBaG3j0@fKknDj#g%dnqd1ib-mlS%^Rs54xzvW!jR^0_nik==9htnxl>@AMU8^ z#$$NJ{#9Q!O<3;F1=rcf5$`DaZ$lj&dgE(`iT#Q%J*YQZU~$(R+x1Nvh-SAalS0bE zWR97+8)(DnuwH6O_>N9ci~pr!)K-YG_R{p$8=hf&5e*I8_J<7(_W}1*ByNhC1e2dv zyt=^w0YGlEp1nMt%GC}dZD7=pLIS!>Iq?M6;PHY$Y~`gFFj5iqW1#-~@2fZ`K-R)&)P+?+zlsF{AjbSxvO#pypX{L*r0YM4#>jRx;J%9dHO$Ja|;_o?41I~ey$&)9a zEhlS$(8C+<^x|(|-WcNIDZ?Gs>@Oqm8DI`S!Ed@KL`P5WU1(@%a5VHnMC+&v7^U)!OY zDwb*OMcj2(;iGakV#ncZ?>@7CLl;)WXt$3E*x$!o7giiby1Hk=U>c2Kdv}3N6DA{I zFZOjB|F&O{GTziF+;Sv?{O0S|udzw1u&)7eEbNj7{A-?f0O(gPw6);m6Km=Co?Po2 zeu9F6(ckdThG4#Jy^GL{))1vtXM6kiuyyyTmmm_atkfvB?0^SC@9|A3#XyY@PSHCXtza)FUt!up{K>d zrZ^!sLG6tyFnILHXHsg@EF9c-$1R7#%YgfdMqhi%qAI_Q#~6tNG71b-0E5)mn!*U%I)Tk)WM$!EoEp%- zYBgnl|Ni}uE6Ev)>UrkGVLFQHdz7$VqE%En6%Za?guGKY>S~63Uq?p`P|0y?b9w)P z1AhvPRPukr@%VVx-o`y9J_*VHnIKIQu8se&-;4n#)g*#0LRd%;ctQNhbAksu|J%4W z|KHZ|dD?c8szCIBux}g~I0FAZj6Nx@xuvCf!+#<=I`{d_GXP+)Gza0L@t@FdIxv&K znuddNL4iGN%lDFhlEbUI(BFBCWRMrOv{=DYQ$yr^HdP4TIHIph&ZLQECyHSgm{?df zr@4qY{veyQS-_x5!DqMa1uuvaxoq-33>@dKf5@c%=aIKu@VC&mPxp6cnEqv)i_PdmXv7Y>Zp z6<>69otPDnBstoFiwMDv#0dpK?CRCOSH5981MMc@%D|C9waQ@4a_+ z^b8Je$21BYg?!EGN2FDDNGcZ-ejWHSEUX*jHo>h8vrQrBJa8Eo=r#>wuwL^B=kJNj zalJ@A*i)8n{CK9X9x~wzo3I+hn6uFgdR9ecmCy-NSGcmz!eVW9*2B$BA6lp=ks~b@ z_+vPb!D@TS6C9jWY&GqP8}h92H7xBFW8%R*I}^7!;OVxDjL`h`t0sKoK`U5TTpWke z!IeTV|MP}Tw<=`Bu$KWQCcO0qn{T{z({g3z&}Q9qaYQf1pL@MJL0V3OagZ)(Bit9J zq(Hg=FFSz@gz)i&1#?{}X<{+UyX{I2Gl(t-t+8;{7n&raCkzY>8sA^PdHka3U=^MW zLm~9(5@$_r-5Lb43>Q-vdFMYPophsMj@fdBYBn~SJwg`5>OD)WpVXwCc88Tc)MSg>a7bX9 zZZ7_oIV~$IEr;zsSPG<7JJJtfXfI!#K>f|Z+Ij_}$>vv4wn-u|Z76S2ECa<@B5Llg0^>?N)$*pW^`PD10*tTR-j9;JSY=y8Cv2h(Wi zglu~XreXSwL(F9M*D8q2HDb*vlOIk`BZ64i@etVGk^Ac;|Jzo#wu?Xd}`8WvO+L+_abx9F&h;@4HGlmq@J>)6{r!wjV zeD{WLAM}9TrQ@c6eEOqgAOC2&uL)%Fb~fgi=I~q3oZh2=x7GgX;d9i$7$1o^UAy)^ zO5LIs1TYNCX-R(va}?XG%zS80LkWmtU#eSlFtQ=fA`yTnj?iZyK`oV2mc2ZS?(o>9^Bt*oga1fw1KS|Q+bn^8ziHwAK*Mrz)rL{PqmJ~PFWGF}UB&o@7DU$44^v=Ui1GHl-B7X&G(-|@DL~{G6Yaw1#O6{juuiiVhy6^Y`>JS7 z!`?YH+%-dvHGaB25m4ff^-H;d9a^$=xc~TyOeBl%c?kjg6=5)3P$xG#GUiuH7~*PP z>o1F&9pKQnl6LXk@ES;ffRe*@fq}H@1gI%v9a$kB9)|u*{)L5wz%$kIm)f9az{a{h z=TH98f)SLpKavk$EbT8!v`_(zRczPg7;x!Gp2fQud3i3fd z`5mY_zK#&n!FvE^Fk(GMO)+w)z7c1`B&9+;T|Hrz&VAK%P#FB1p&}5g@`8QA{+b>d ziax<%x0HiO2~0-X!$W{ULY;)6CG$0EIGKyxy(`~|HAy6Zp)^eFe1z*(T%xIHO|KT? zqh@Mm=0u!7I%ws_E_WwjYl$4N*<9;AdFoV4IA#JC;9%}MYM&Z@9Z~ZJFa$zx1!2_s z`Z^Rl)}=4@*7u!qw)bJNXV0f~@HKP`V^;+)TFk7qXU8sL+L%31_pW<9QdBxzx z#Ddf-5xG@gNr8YbVBYXKZUjxNjkcwxejTo=dWAAvwi5QzIyHWbyjDgEsSeRTnG^l} z4L}PNGg!g}9P)JP$-u|~f0neDWI4RXr!SCLUjgO-g=SQj1*ZZ~xcQvNeIK!-K zgBpmfLpcsv(%rA($VhkXf>`&u(+uuW%rKS>^u6wqR&ij6;(OQxmUXy=6J_HIw7#`s zwNS9!e>_mJh?EagnB(-JjvudpHo~^TebmTE3pTDBeP5o_IIestDLKv0ubNPqrPs2s zwA7QoOor8x; z7P>GM6eli}oIk!0&i1w70TF9m_2ayjD&Uh~qk}YXFV5=)xls4hb|^|Ad{;^ztUsQu z-?~67MK<>4_~@Z=H0dwpCbf3NYe>N7`GfSIqXw>1r4x%b7YUjH0ZtCj;D-$RoTxJ= zvI$>0QQk;dR`%i{SlB@!A^f9< zAD8U&`d(dHO59Iu9=|{dq4hDtA16N@2;VqjgUhYzQaTw$BB^+riMlVEgtd#u72SO&`PR*48`t zO}S6a@H2bUGBW%RXU6_!rH?H|O$qf)ZLtSJ-F)6bW8mj^l8WjAr;ZP>p4``Ba%YMM zq~%uXYfvJ>UrAUPUai6s5;7#LbGw`Vtp%tv+eLCZP^t!Prl@QE+qVaaE$7@em`32g z|2z2he*ZU2H~tsF!5{eRzZCZRpI<>-ASC|<4k`chCjaM6;tl*4Lel>~Ur_`y)I?iq kJjFqHZM%ro(hib)IZ15fr)~@pmy*csySGwqJb3p100ZlrDF6Tf diff --git a/openless-all/app/e2e/visual-refinements.spec.ts-snapshots/typography-light-chromium-linux.png b/openless-all/app/e2e/visual-refinements.spec.ts-snapshots/typography-light-chromium-linux.png deleted file mode 100644 index 77ecf00749ea340ee0ef0284cb39dda1cc9ababa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 65435 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 b%%XTp*v&n=X17U`=QT4u@O|E%Q, shown: bool, window: Arc, + capsule: DefaultCapsule, + reduce_motion: bool, } impl eframe::App for CapsuleApp { @@ -41,7 +48,10 @@ impl eframe::App for CapsuleApp { } ui.ctx() .send_viewport_cmd(egui::ViewportCommand::MousePassthrough( - !frame.interactive || frame.state.style == "siri", + !frame.interactive + || frame.leaving + || frame.state.selection_polish + || frame.state.style == "siri", )); self.frame = Some(*frame); if !self.shown { @@ -59,36 +69,21 @@ impl eframe::App for CapsuleApp { let Some(frame) = &self.frame else { return; }; - if !frame.transcript.is_empty() { - let area = egui::Rect::from_min_size(egui::pos2(12.0, 4.0), egui::vec2(436.0, 40.0)); - ui.painter() - .rect_filled(area, 12, egui::Color32::from_black_alpha(205)); - let mut job = egui::text::LayoutJob::default(); - job.wrap.max_width = 420.0; - job.wrap.max_rows = 1; - job.append( - &frame.transcript, - 0.0, - egui::text::TextFormat { - font_id: egui::FontId::proportional( - frame.transcript_font_size.clamp(11.0, 24.0), - ), - color: egui::Color32::WHITE, - ..Default::default() - }, - ); - let galley = ui.fonts_mut(|fonts| fonts.layout_job(job)); - ui.painter().galley( - area.center() - galley.size() * 0.5, - galley, - egui::Color32::WHITE, - ); - } - let action = openless_capsule::renderer::dictation_capsule(ui, &frame.state, &frame.labels); + let action = if frame.state.style == "siri" && !frame.state.selection_polish { + siri_transcript(ui, frame); + openless_capsule::renderer::dictation_capsule(ui, &frame.state, &frame.labels) + } else { + let dark = match frame.theme { + ThemeMode::Light => false, + ThemeMode::Dark => true, + ThemeMode::System => ui.ctx().system_theme() == Some(egui::Theme::Dark), + }; + self.capsule.show(ui, frame, dark, self.reduce_motion) + }; let action = match action { - openless_capsule::renderer::CapsuleAction::None => None, - openless_capsule::renderer::CapsuleAction::Cancel => Some(Action::Cancel), - openless_capsule::renderer::CapsuleAction::Confirm => Some(Action::Confirm), + CapsuleAction::None => None, + CapsuleAction::Cancel => Some(Action::Cancel), + CapsuleAction::Confirm => Some(Action::Confirm), }; if let Some(action) = action.filter(|action| frame.accepts(&frame.session_id, frame.sequence, *action)) @@ -106,41 +101,167 @@ impl eframe::App for CapsuleApp { } } +/// The spectral style keeps a compact transcript strip above the orb. +fn siri_transcript(ui: &egui::Ui, frame: &Frame) { + if !frame.show_transcript || frame.transcript.is_empty() { + return; + } + let area = egui::Rect::from_min_size(egui::pos2(12.0, 4.0), egui::vec2(436.0, 40.0)); + ui.painter() + .rect_filled(area, 12, egui::Color32::from_black_alpha(205)); + let mut job = egui::text::LayoutJob::default(); + job.wrap.max_width = 420.0; + job.wrap.max_rows = 1; + job.append( + &frame.transcript, + 0.0, + egui::text::TextFormat { + font_id: egui::FontId::proportional(frame.transcript_font_size.clamp(11.0, 24.0)), + color: egui::Color32::WHITE, + ..Default::default() + }, + ); + let galley = ui.fonts_mut(|fonts| fonts.layout_job(job)); + ui.painter().galley( + area.center() - galley.size() * 0.5, + galley, + egui::Color32::WHITE, + ); +} + +/// One fallback slot: the candidate (file, face) for the regular, medium and +/// semibold families, as CSS weight matching picks static faces. +type Slot = [Vec<(PathBuf, u32)>; 3]; + +fn same(path: impl Into, faces: [u32; 3]) -> Slot { + let path = path.into(); + faces.map(|face| vec![(path.clone(), face)]) +} + +/// `--ol-font-sans` (system-ui, -apple-system, 'PingFang SC', 'Microsoft +/// YaHei') followed by the system fallbacks for Hangul and symbols. +#[cfg(target_os = "macos")] +fn font_slots() -> Vec { + // PingFang SC ships as an on-demand font asset; the UI copy + // (PingFangUI.ttc) uses an outline format egui cannot draw. + let pingfang = std::fs::read_dir("/System/Library/AssetsV2") + .into_iter() + .flatten() + .flatten() + .filter(|kind| { + kind.file_name() + .to_string_lossy() + .starts_with("com_apple_MobileAsset_Font") + }) + .flat_map(|kind| std::fs::read_dir(kind.path()).into_iter().flatten().flatten()) + .map(|asset| asset.path().join("AssetData/PingFang.ttc")) + .find(|path| path.is_file()); + let mut slots = vec![same("/System/Library/Fonts/SFNS.ttf", [0; 3])]; + slots.extend(pingfang.map(|path| same(path, [3, 7, 11]))); + slots.push(same("/System/Library/Fonts/Hiragino Sans GB.ttc", [0, 0, 2])); + slots.push(same("/System/Library/Fonts/AppleSDGothicNeo.ttc", [0, 2, 4])); + slots.push(same("/System/Library/Fonts/Apple Symbols.ttf", [0; 3])); + slots +} + +#[cfg(windows)] +fn font_slots() -> Vec { + let fonts = PathBuf::from(std::env::var_os("WINDIR").unwrap_or_else(|| "C:\\Windows".into())) + .join("Fonts"); + let face = |file: &str| (fonts.join(file), 0); + vec![ + [ + vec![face("SegUIVar.ttf"), face("segoeui.ttf")], + vec![face("SegUIVar.ttf"), face("segoeui.ttf")], + vec![face("SegUIVar.ttf"), face("seguisb.ttf")], + ], + [vec![face("msyh.ttc")], vec![face("msyh.ttc")], vec![face("msyhbd.ttc")]], + [vec![face("malgun.ttf")], vec![face("malgun.ttf")], vec![face("malgunbd.ttf")]], + same(fonts.join("seguisym.ttf"), [0; 3]), + ] +} + +#[cfg(not(any(target_os = "macos", windows)))] +fn font_slots() -> Vec { + vec![ + same("/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc", [0; 3]), + same("/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf", [0; 3]), + ] +} + +/// Installs the regular family plus the medium and semibold families the +/// pill asks for. Files are memory-mapped, so only pages holding drawn glyphs +/// become resident instead of reading ~60 MB of collections per helper. fn install_fonts(ctx: &egui::Context) { let mut fonts = egui::FontDefinitions::default(); - // System CJK fonts stay inside the disposable UI process. - #[cfg(target_os = "macos")] - let candidates = [ - "/System/Library/Fonts/PingFang.ttc", - "/System/Library/Fonts/STHeiti Medium.ttc", - ]; - #[cfg(windows)] - let candidates = [ - "C:\\Windows\\Fonts\\msyh.ttc", - "C:\\Windows\\Fonts\\simhei.ttf", - ]; - #[cfg(not(any(target_os = "macos", windows)))] - let candidates = [ - "/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc", - "/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf", - ]; - for path in candidates { - if let Ok(bytes) = std::fs::read(path) { - fonts.font_data.insert( - "openless-cjk".into(), - egui::FontData::from_owned(bytes).into(), - ); - fonts - .families - .entry(egui::FontFamily::Proportional) - .or_default() - .push("openless-cjk".into()); - break; + let bundled = fonts + .families + .get(&egui::FontFamily::Proportional) + .cloned() + .unwrap_or_default(); + let mut maps: HashMap>> = HashMap::new(); + let mut primary_baseline = None; + let mut chains: [Vec; 3] = Default::default(); + for slot in font_slots() { + for (chain, candidates) in chains.iter_mut().zip(slot) { + let found = candidates.into_iter().find_map(|(path, face)| { + let map = maps + .entry(path.clone()) + .or_insert_with(|| { + let file = std::fs::File::open(&path).ok()?; + // SAFETY: system font files are not truncated while the helper runs. + unsafe { memmap2::Mmap::map(&file) }.ok().map(Arc::new) + }) + .clone()?; + let baseline = baseline(&map, face)?; + Some((format!("{}#{face}", path.display()), map, face, baseline)) + }); + let Some((name, map, face, baseline)) = found else { + continue; + }; + if !fonts.font_data.contains_key(&name) { + // egui centres a fallback face's own line box in the row; + // CSS keeps every glyph on the primary face's baseline. + let primary = *primary_baseline.get_or_insert(baseline); + let tweak = egui::FontTweak { + y_offset_factor: primary - baseline, + ..Default::default() + }; + let data = egui::FontData::from_blob(map, face).tweak(tweak); + fonts.font_data.insert(name.clone(), Arc::new(data)); + } + chain.push(name); } } + let [regular, medium, semibold] = chains; + for (family, chain) in [ + (egui::FontFamily::Proportional, regular), + (egui::FontFamily::Name(pill::MEDIUM_FAMILY.into()), medium), + (egui::FontFamily::Name(pill::SEMIBOLD_FAMILY.into()), semibold), + ] { + // egui's bundled faces stay behind the system ones as a last resort. + let names = chain.into_iter().chain(bundled.iter().cloned()).collect(); + fonts.families.insert(family, names); + } ctx.set_fonts(fonts); } +/// Baseline below the centre of egui's line box for this face, in em: half +/// of ascent + descent − line gap (descent is negative). Faces without +/// supported outlines are rejected before entering the fallback chain. +fn baseline(bytes: &[u8], face: u32) -> Option { + use skrifa::{instance::LocationRef, instance::Size, raw::TableProvider, MetadataProvider, Tag}; + let font = skrifa::FontRef::from_index(bytes, face).ok()?; + [*b"glyf", *b"CFF ", *b"CFF2"] + .into_iter() + .any(|tag| font.table_data(Tag::new(&tag)).is_some()) + .then_some(())?; + let _ = font.head().ok()?; + let metrics = font.metrics(Size::unscaled(), LocationRef::default()); + let em = f32::from(metrics.units_per_em.max(1)); + Some(0.5 * (metrics.ascent + metrics.descent - metrics.leading) / em) +} + fn main() -> eframe::Result<()> { platform::configure_early().map_err(eframe::Error::AppCreation)?; let (sender, incoming) = mpsc::sync_channel(2); @@ -166,7 +287,7 @@ fn main() -> eframe::Result<()> { let options = eframe::NativeOptions { viewport: egui::ViewportBuilder::default() .with_title("OpenLess Capsule") - .with_inner_size([460.0, 110.0]) + .with_inner_size([460.0, 158.0]) .with_decorations(false) .with_transparent(true) .with_has_shadow(false) @@ -204,6 +325,8 @@ fn main() -> eframe::Result<()> { frame: None, shown: false, window, + capsule: DefaultCapsule::default(), + reduce_motion: platform::reduce_motion(), })) }), ) diff --git a/openless-all/app/native-capsule/src/platform.rs b/openless-all/app/native-capsule/src/platform.rs index b88c81380..84ffe0102 100644 --- a/openless-all/app/native-capsule/src/platform.rs +++ b/openless-all/app/native-capsule/src/platform.rs @@ -198,6 +198,20 @@ mod macos { } } + pub(super) fn reduce_motion() -> bool { + let Some(class) = AnyClass::get("NSWorkspace") else { + return false; + }; + unsafe { + let workspace: *mut AnyObject = msg_send![class, sharedWorkspace]; + if workspace.is_null() { + return false; + } + let reduce: Bool = msg_send![workspace, accessibilityDisplayShouldReduceMotion]; + reduce.as_bool() + } + } + pub(super) unsafe fn configure( view: *mut AnyObject, ) -> Result<(), Box> { @@ -213,6 +227,38 @@ mod macos { } } +/// The system "reduce motion" setting, as WebView's `prefers-reduced-motion`. +pub fn reduce_motion() -> bool { + #[cfg(target_os = "macos")] + return macos::reduce_motion(); + #[cfg(windows)] + return windows_reduce_motion(); + #[cfg(not(any(target_os = "macos", windows)))] + false +} + +/// Chromium maps `prefers-reduced-motion` to "Show animations in Windows". +#[cfg(windows)] +fn windows_reduce_motion() -> bool { + use windows::Win32::{ + Foundation::BOOL, + UI::WindowsAndMessaging::{ + SystemParametersInfoW, SPI_GETCLIENTAREAANIMATION, SYSTEM_PARAMETERS_INFO_UPDATE_FLAGS, + }, + }; + let mut animate = BOOL(1); + unsafe { + SystemParametersInfoW( + SPI_GETCLIENTAREAANIMATION, + 0, + Some(&mut animate as *mut BOOL as *mut _), + SYSTEM_PARAMETERS_INFO_UPDATE_FLAGS(0), + ) + } + .is_ok() + && !animate.as_bool() +} + pub fn place(window: &winit::window::Window, bounds: [i32; 4]) { window.set_outer_position(winit::dpi::PhysicalPosition::new(bounds[0], bounds[1])); let _ = window.request_inner_size(winit::dpi::PhysicalSize::new( diff --git a/openless-all/app/package-lock.json b/openless-all/app/package-lock.json index 6ff8a1249..774889db5 100644 --- a/openless-all/app/package-lock.json +++ b/openless-all/app/package-lock.json @@ -1,12 +1,12 @@ { "name": "openless-app", - "version": "2.0.2-Beta.1+build.20261017", + "version": "2.0.2-Beta.1+build.20261021-nativechrome", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "openless-app", - "version": "2.0.2-Beta.1+build.20261017", + "version": "2.0.2-Beta.1+build.20261021-nativechrome", "dependencies": { "@base-ui/react": "^1.6.0", "@shadcn/react": "^0.2.1", diff --git a/openless-all/app/package.json b/openless-all/app/package.json index 2f63e8a71..71e45f74a 100644 --- a/openless-all/app/package.json +++ b/openless-all/app/package.json @@ -1,7 +1,7 @@ { "name": "openless-app", "private": true, - "version": "2.0.2-Beta.1+build.20261017", + "version": "2.0.2-Beta.1+build.20261021-nativechrome", "type": "module", "scripts": { "pretest": "npm run build", diff --git a/openless-all/app/public/startup.js b/openless-all/app/public/startup.js index b0d669d35..e4634cedf 100644 --- a/openless-all/app/public/startup.js +++ b/openless-all/app/public/startup.js @@ -11,14 +11,14 @@ if (new URLSearchParams(location.search).has('window')) { document.documentElement.dataset.olAux = ''; } else { // Match fontScale.ts before the first HTML frame, not only after React loads. - let scale = 1; + let scale = 1.1; try { const saved = localStorage.getItem('ol-font-scale'); if (saved === 'small') scale = 0.9; if (saved === 'medium') scale = 1; if (saved === 'large') scale = 1.1; } catch { - /* Keep the shared 100% default when storage is unavailable. */ + /* Keep the shared 110% default when storage is unavailable. */ } document.documentElement.style.zoom = String(scale); document.documentElement.style.setProperty('--ol-interface-scale', String(scale)); diff --git a/openless-all/app/scripts/ci-changed-areas.test.mjs b/openless-all/app/scripts/ci-changed-areas.test.mjs index 23619fb16..8957e75a8 100644 --- a/openless-all/app/scripts/ci-changed-areas.test.mjs +++ b/openless-all/app/scripts/ci-changed-areas.test.mjs @@ -173,22 +173,20 @@ check( workflow.includes("if: needs.changes.outputs.msrv != 'false'"), true, ); -// A macOS runner is only spent on MSRV while the declared MSRV is behind the -// stable toolchain; otherwise `cross-platform` already compiles that code. +// Native changes must exercise the pinned minimum compiler on every platform. check( - 'msrv job is skipped when MSRV equals stable', - workflow.includes("needs.changes.outputs.msrv_needed == 'true'"), - true, + 'macos msrv is not skipped when stable has the same version', + workflow.includes("if: needs.changes.outputs.msrv != 'false' &&"), + false, ); check( - 'changes job publishes the msrv comparison', - workflow.includes('msrv_needed: ${{ steps.msrv.outputs.needed }}'), + 'changes job publishes the native-source gate for pinned toolchains', + workflow.includes('msrv_needed: ${{ steps.detect.outputs.msrv }}'), true, ); -// Windows spends ~10 minutes on its own MSRV pass; it must follow the same rule -// as the macOS job instead of running unconditionally. +// The secondary platform uses the same native-source gate. check( - 'windows msrv steps follow the comparison', + 'windows msrv steps follow the source gate', workflow.includes("if: runner.os == 'Windows' && needs.changes.outputs.msrv_needed == 'true'"), true, ); diff --git a/openless-all/app/scripts/desktop-version-contract.test.mjs b/openless-all/app/scripts/desktop-version-contract.test.mjs index 7118db033..aded06930 100644 --- a/openless-all/app/scripts/desktop-version-contract.test.mjs +++ b/openless-all/app/scripts/desktop-version-contract.test.mjs @@ -3,7 +3,7 @@ import { readFile } from 'node:fs/promises'; const app = new URL('../', import.meta.url); const read = async (path) => (await readFile(new URL(path, app), 'utf8')).replace(/\r\n/g, '\n'); -const version = '2.0.2-Beta.1+build.20261017'; +const version = '2.0.2-Beta.1+build.20261021-nativechrome'; const pkg = JSON.parse(await read('package.json')); const lock = JSON.parse(await read('package-lock.json')); const tauri = JSON.parse(await read('src-tauri/tauri.conf.json')); diff --git a/openless-all/app/scripts/layout-mode-contract.test.mjs b/openless-all/app/scripts/layout-mode-contract.test.mjs index 1ebe34db7..24592c8cc 100644 --- a/openless-all/app/scripts/layout-mode-contract.test.mjs +++ b/openless-all/app/scripts/layout-mode-contract.test.mjs @@ -9,6 +9,7 @@ const read = (relativePath) => readFileSync(join(appRoot, relativePath), 'utf8') const css = read('src/styles/global.css'); const stackedLayout = read('src/lib/stackedLayout.ts'); const shared = read('src/pages/settings/shared.tsx'); +const refinements = read('src/styles/refinements.css'); const pageAtoms = read('src/pages/_atoms.tsx'); const row = read('src/components/ui/Row.tsx'); const channelList = read('src/pages/settings/ChannelList.tsx'); @@ -26,12 +27,16 @@ assert.match(css, /\.ol-conservative-stack/); assert.match(stackedLayout, /stackedRowLayout\?: boolean/); assert.doesNotMatch(stackedLayout, /mobile\s*\|\|/); -// Toggle size contract: width 36 is locked by width/minWidth/maxWidth; flex only declares no grow/shrink. -// flex-basis must be auto to avoid stretching the toggle's height to 36px in a column-direction container. -assert.match(shared, /flex:\s*['"]0 0 auto['"]/); -assert.match(shared, /width:\s*36/); -assert.match(shared, /minWidth:\s*36/); -assert.match(shared, /maxWidth:\s*36/); +// Toggle size contract: the shared .ol-switch locks width 36 with width/min-width/max-width; flex only +// declares no grow/shrink. flex-basis must be auto to avoid stretching the toggle's height to 36px in a +// column-direction container. +const switchRule = refinements.match(/\.ol-switch\s*\{[^}]*\}/)?.[0] ?? ''; +assert.match(shared, /className="ol-switch"/); +assert.match(switchRule, /--ol-switch-width:\s*36px/); +assert.match(switchRule, /flex:\s*0 0 auto/); +assert.match(switchRule, /\swidth:\s*var\(--ol-switch-width\)/); +assert.match(switchRule, /min-width:\s*var\(--ol-switch-width\)/); +assert.match(switchRule, /max-width:\s*var\(--ol-switch-width\)/); assert.match(pageAtoms, /preferenceStack\s*\?/); assert.match(row, /stackLayout\s*\?\s*'minmax\(0, 1fr\)'/); diff --git a/openless-all/app/scripts/local-asr-polling-contract.test.mjs b/openless-all/app/scripts/local-asr-polling-contract.test.mjs index 184024819..ecbe7d520 100644 --- a/openless-all/app/scripts/local-asr-polling-contract.test.mjs +++ b/openless-all/app/scripts/local-asr-polling-contract.test.mjs @@ -3,8 +3,15 @@ import ts from 'typescript'; const source = await readFile(new URL('../src/pages/LocalAsr/index.tsx', import.meta.url), 'utf-8'); +// The poller skips ticks while the window is hidden, so allow that guard before the refresh. +const HIDDEN_GUARD = String.raw`(?:if \(document\.hidden\) return;\s*)?`; const refreshPolling = - source.match(/window\.setInterval\(\(\) => \{\s*void refresh\(\);?\s*\}, 3000\)/g) ?? []; + source.match( + new RegExp( + String.raw`window\.setInterval\(\(\) => \{\s*${HIDDEN_GUARD}void refresh\(\);?\s*\}, 3000\)`, + 'g', + ), + ) ?? []; const sourceFile = ts.createSourceFile( 'LocalAsr/index.tsx', @@ -62,13 +69,23 @@ if (refreshPolling.length !== 1) { } if ( - !/if \(downloadDialogOpen\) return[\s\S]{0,200}window\.setInterval\(\(\) => \{\s*void refresh\(\)/.test( - source, - ) + !new RegExp( + String.raw`if \(downloadDialogOpen\) return[\s\S]{0,300}window\.setInterval\(\(\) => \{\s*${HIDDEN_GUARD}void refresh\(\)`, + ).test(source) ) { throw new Error('LocalAsr refresh polling must stop while the download dialog is open'); } +if ( + !/if \(document\.hidden\) return;\s*void refresh\(\);/.test(source) || + !/addEventListener\('visibilitychange', onVisible\)/.test(source) || + !/removeEventListener\('visibilitychange', onVisible\)/.test(source) +) { + throw new Error( + 'LocalAsr refresh polling must pause while the window is hidden and catch up on visibilitychange', + ); +} + for (const contract of [ 'const downloadDialogOpenRef = useRef(downloadDialogOpen)', 'const refreshGenerationRef = useRef(0)', diff --git a/openless-all/app/scripts/qa-panel-runtime.test.mjs b/openless-all/app/scripts/qa-panel-runtime.test.mjs index 90c9d60e6..47f48ff74 100644 --- a/openless-all/app/scripts/qa-panel-runtime.test.mjs +++ b/openless-all/app/scripts/qa-panel-runtime.test.mjs @@ -39,7 +39,7 @@ const factory = new Function( '__listen', 'exports', 'require', - `${compiled};return {QaPanel,Composer,MessageRow,ErrorContent};`, + `${compiled};return {QaPanel,Composer,EmbeddedComposer,MessageRow,ErrorContent};`, ); const tick = () => new Promise((resolve) => setImmediate(resolve)); const deferred = () => { @@ -211,7 +211,7 @@ function context(native = true, embedded = false) { const emit = (name, payload) => { for (const fn of events.get(name) ?? []) fn({ payload }); }; - const composer = (tree) => find(tree, (n) => n.type === api.Composer).props; + const composer = (tree) => find(tree, (n) => n.type === api.EmbeddedComposer).props; return { api, hooks, render, emit, calls, pending, lifecycle, events, keys, composer }; } let passed = 0, @@ -317,30 +317,35 @@ await test('polish confirmation submits edited text and retains it after a faile assert.equal(c.calls.dismiss, 1); c.hooks.unmount(); }); -await test('native text waits for expansion and excludes repeated clicks; keeps a newer draft', async () => { +await test('text submission stays compact until a result, excludes repeats and keeps a newer draft', async () => { const c = context(); c.render(); await tick(); - assert.deepEqual(c.calls.resize, [false]); c.composer(c.render()).onChange('question'); - let p = c.composer(c.render()); - const resize = deferred(), + const p = c.composer(c.render()), send = deferred(); - c.pending.resize = (next) => (next ? resize.promise : undefined); c.pending.submit = send; const first = p.onSubmit(); void p.onSubmit(); c.render(); await tick(); - assert.deepEqual(c.calls.resize, [false, true]); - assert.deepEqual(c.calls.submit, []); - resize.resolve(); - await tick(); + assert.deepEqual(c.calls.resize, [false]); assert.deepEqual(c.calls.submit, ['question']); c.composer(c.render()).onChange('next draft'); send.resolve(); await first; assert.equal(c.composer(c.render()).value, 'next draft'); + c.emit('qa:state', { + kind: 'answer', + sessionId: 'answer', + messages: [ + { role: 'user', content: 'question' }, + { role: 'assistant', content: 'answer' }, + ], + }); + c.render(); + await tick(); + assert.deepEqual(c.calls.resize, [false, true]); c.hooks.unmount(); }); await test('send failure preserves draft and exposes error without a fake user message', async () => { @@ -362,11 +367,11 @@ await test('send failure preserves draft and exposes error without a fake user m }); await test('cancel during resize prevents queued question and late layout failures do not overwrite reopened compact state', async () => { const c = context(); + const d = deferred(); + c.pending.resize = () => d.promise; c.render(); await tick(); c.composer(c.render()).onChange('do not send'); - const d = deferred(); - c.pending.resize = (next) => (next ? d.promise : undefined); const submission = c.composer(c.render()).onSubmit(); c.render(); await tick(); @@ -376,14 +381,15 @@ await test('cancel during resize prevents queued question and late layout failur c.lifecycle.closing = false; c.lifecycle.enterEpoch++; c.render(); - assert.deepEqual(c.calls.resize, [false, true]); + assert.deepEqual(c.calls.resize, [false]); + c.pending.resize = undefined; d.reject(new Error('old geometry')); await submission; await tick(); c.render(); await tick(); assert.deepEqual(c.calls.submit, []); - assert.deepEqual(c.calls.resize, [false, true, false]); + assert.deepEqual(c.calls.resize, [false, false]); assert.equal(c.composer(c.render()).status, 'idle'); assert(!nodes(c.render()).some((n) => n.props.className === 'qa-layout-error')); c.hooks.unmount(); @@ -430,7 +436,7 @@ await test('recording level requires active session; no fake recording before ba c.hooks.unmount(); }); await test('stale answer is ignored and final answer replaces streaming buffer exactly once', async () => { - const c = context(); + const c = context(true, true); c.render(); await tick(); c.emit('qa:state', { @@ -631,12 +637,13 @@ await test('composer IME enter, WebKit 229 and form submission guards; genuine e await test('session drift during delayed native resize cancels old draft', async () => { const c = context(); + const d = deferred(); + c.pending.resize = () => d.promise; c.render(); await tick(); c.emit('qa:state', { kind: 'idle', sessionId: 'a', messages: [] }); c.composer(c.render()).onChange('belongs to a'); - const d = deferred(); - c.pending.resize = (next) => (next ? d.promise : undefined); + const result = c.composer(c.render()).onSubmit(); await tick(); c.emit('qa:state', { kind: 'idle', sessionId: 'b', messages: [] }); diff --git a/openless-all/app/scripts/windows-ui-config.test.mjs b/openless-all/app/scripts/windows-ui-config.test.mjs index 7bc6c47ac..cc7b263bb 100644 --- a/openless-all/app/scripts/windows-ui-config.test.mjs +++ b/openless-all/app/scripts/windows-ui-config.test.mjs @@ -84,8 +84,8 @@ const capsuleStylesCss = await readFile( new URL('../src/components/CapsuleStyles.css', import.meta.url), 'utf-8', ); -const typelessTsx = await readFile( - new URL('../src/components/TypelessCapsule.tsx', import.meta.url), +const defaultCapsuleTsx = await readFile( + new URL('../src/components/OpenLessCapsule.tsx', import.meta.url), 'utf-8', ); const liveTranscriptTsx = await readFile( @@ -336,14 +336,14 @@ assertMatch( 'Classic translation badge and external rail should use one explicit geometry model', ); assertMatch( - capsuleTsx, - /case 'recording':[\s\S]*?AudioBars[\s\S]*?case 'transcribing':[\s\S]*?case 'polishing':[\s\S]*?cap-state-enter[\s\S]*?AudioBars[\s\S]*?cap-shine[\s\S]*?getClassicProcessingLabel\(operating\)/, - 'Classic recording/transcribing/polishing should render waveform bars and preserve thinking/using text', + defaultCapsuleTsx, + /const processing = state === 'transcribing' \|\| state === 'polishing'[\s\S]*?capsule\.using[\s\S]*?capsule\.thinking[\s\S]*?[\s\S]*?ol-typeless-translation[\s\S]*?