diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c8bd995c..e8899bb7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,7 +12,7 @@ jobs: runs-on: windows-latest defaults: run: - working-directory: openless -all/app + working-directory: openless-all/app steps: - uses: actions/checkout@v4 @@ -20,7 +20,7 @@ jobs: with: node-version: "22" cache: npm - cache-dependency-path: openless -all/app/package-lock.json + cache-dependency-path: openless-all/app/package-lock.json - uses: dtolnay/rust-toolchain@stable diff --git a/.github/workflows/release-tauri.yml b/.github/workflows/release-tauri.yml index bb9cb8a3..a7439572 100644 --- a/.github/workflows/release-tauri.yml +++ b/.github/workflows/release-tauri.yml @@ -35,7 +35,7 @@ jobs: with: node-version: 20 cache: npm - cache-dependency-path: 'openless -all/app/package-lock.json' + cache-dependency-path: 'openless-all/app/package-lock.json' - uses: dtolnay/rust-toolchain@stable with: @@ -44,7 +44,7 @@ jobs: - name: Cache Cargo uses: swatinem/rust-cache@v2 with: - workspaces: 'openless -all/app/src-tauri -> target' + workspaces: 'openless-all/app/src-tauri -> target' - name: Install Linux bundle deps if: matrix.platform == 'ubuntu-22.04' @@ -66,17 +66,17 @@ jobs: wget - name: Install npm deps - working-directory: 'openless -all/app' + working-directory: 'openless-all/app' run: npm ci - name: Build (Windows) if: matrix.platform == 'windows-latest' - working-directory: 'openless -all/app' + working-directory: 'openless-all/app' run: npm run tauri build - name: Build (Linux) if: matrix.platform == 'ubuntu-22.04' - working-directory: 'openless -all/app' + working-directory: 'openless-all/app' run: npm run tauri -- build --bundles deb,rpm,appimage - name: Upload Windows artifacts @@ -85,8 +85,8 @@ jobs: with: name: openless-windows-x64 path: | - openless -all/app/src-tauri/target/release/bundle/nsis/*.exe - openless -all/app/src-tauri/target/release/bundle/msi/*.msi + openless-all/app/src-tauri/target/release/bundle/nsis/*.exe + openless-all/app/src-tauri/target/release/bundle/msi/*.msi if-no-files-found: error - name: Upload Linux artifacts @@ -95,9 +95,9 @@ jobs: with: name: openless-linux-x64 path: | - openless -all/app/src-tauri/target/release/bundle/deb/*.deb - openless -all/app/src-tauri/target/release/bundle/rpm/*.rpm - openless -all/app/src-tauri/target/release/bundle/appimage/*.AppImage + openless-all/app/src-tauri/target/release/bundle/deb/*.deb + openless-all/app/src-tauri/target/release/bundle/rpm/*.rpm + openless-all/app/src-tauri/target/release/bundle/appimage/*.AppImage if-no-files-found: error # ── tag 推送时上传到 GitHub Release(macOS DMG 由本地手动上传)── @@ -111,8 +111,8 @@ jobs: prerelease: false generate_release_notes: true files: | - openless -all/app/src-tauri/target/release/bundle/nsis/*.exe - openless -all/app/src-tauri/target/release/bundle/msi/*.msi - openless -all/app/src-tauri/target/release/bundle/deb/*.deb - openless -all/app/src-tauri/target/release/bundle/rpm/*.rpm - openless -all/app/src-tauri/target/release/bundle/appimage/*.AppImage + openless-all/app/src-tauri/target/release/bundle/nsis/*.exe + openless-all/app/src-tauri/target/release/bundle/msi/*.msi + openless-all/app/src-tauri/target/release/bundle/deb/*.deb + openless-all/app/src-tauri/target/release/bundle/rpm/*.rpm + openless-all/app/src-tauri/target/release/bundle/appimage/*.AppImage diff --git a/CLAUDE.md b/CLAUDE.md index ccbbf0d7..008fb91b 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -11,16 +11,16 @@ The repository contains **two parallel implementations** of the same product: | Path | Stack | Status | | --- | --- | --- | | `Sources/`, `Tests/`, `Package.swift`, `scripts/`, `appcast.xml` | SwiftPM macOS-only (macOS 15+, Swift 5.9) | Legacy. Still ships Sparkle updates for `v*` tags so old users keep auto-updating. | -| `openless -all/app/` (note the space) | Tauri 2 + Rust backend + React/TS frontend, macOS 12+ and Windows | **Active**. All current development happens here. | +| `openless-all/app/` (no space) | Tauri 2 + Rust backend + React/TS frontend, macOS 12+ and Windows | **Active**. All current development happens here. | -The Tauri port is a faithful module-for-module rewrite of the Swift app. **The Swift original is the behavior authority — when Rust and TS disagree, Swift wins.** When porting, open the Rust file and the matching `Sources/OpenLess/...` Swift file side by side. UI must match `openless -all/design_handoff_openless/*.jsx` pixel-for-pixel; the JSX is reference-only, never imported. +The Tauri port is a faithful module-for-module rewrite of the Swift app. **The Swift original is the behavior authority — when Rust and TS disagree, Swift wins.** When porting, open the Rust file and the matching `Sources/OpenLess/...` Swift file side by side. UI must match `openless-all/design_handoff_openless/*.jsx` pixel-for-pixel; the JSX is reference-only, never imported. ## Build, Run, Test ### Tauri (current — start here) ```bash -cd "openless -all/app" +cd "openless-all/app" npm ci # Dev: vite at :1420 + tauri shell @@ -49,8 +49,8 @@ cargo check --manifest-path src-tauri/Cargo.toml ``` Generated artifacts: -- `openless -all/app/src-tauri/target/release/bundle/macos/OpenLess.app` -- `openless -all/app/src-tauri/target/release/bundle/dmg/OpenLess__aarch64.dmg` +- `openless-all/app/src-tauri/target/release/bundle/macos/OpenLess.app` +- `openless-all/app/src-tauri/target/release/bundle/dmg/OpenLess__aarch64.dmg` Logs: `~/Library/Logs/OpenLess/openless.log` (macOS) / `%LOCALAPPDATA%\OpenLess\Logs\openless.log` (Windows). @@ -75,7 +75,7 @@ Logs: `~/Library/Logs/OpenLess/OpenLess.log`. `DictationCoordinator` (Swift) / `coordinator::Coordinator` (Rust) is the **single owner of session state**. Hotkey edges drive a small phase enum (`Idle → Starting → Listening → Processing`); recorder, ASR, polish, insertion, and history are wired here and nowhere else. Library/module code never calls across modules — they each depend only on shared types. ``` -Swift (Sources/OpenLess*) Rust (openless -all/app/src-tauri/src) Purpose +Swift (Sources/OpenLess*) Rust (openless-all/app/src-tauri/src) Purpose ───────────────────────── ────────────────────────────────────── ──────────────────────────────── OpenLessCore types.rs Pure value types: DictationSession, PolishMode, HotkeyBinding, errors OpenLessHotkey hotkey.rs Global hotkey monitor (modifier-key edges) @@ -107,8 +107,8 @@ Invariants: ### Permissions, credentials, on-disk state -- **Bundle ID `com.openless.app`** is shared between Swift and Tauri builds (hard-coded in `scripts/build-app.sh`, `openless -all/app/src-tauri/tauri.conf.json`, and `CredentialsVault.serviceName`). Changing it breaks Keychain lookups *and* every existing TCC grant. -- **TCC**: Microphone + Accessibility + AppleEvents. Both apps declare `NSMicrophoneUsageDescription` / `NSAccessibilityUsageDescription` / `NSAppleEventsUsageDescription` in their Info.plist. Tauri's lives at `openless -all/app/src-tauri/Info.plist`. After a fresh build that resets TCC, the app must be **fully quit and relaunched** after granting Accessibility before the global hotkey tap installs. +- **Bundle ID `com.openless.app`** is shared between Swift and Tauri builds (hard-coded in `scripts/build-app.sh`, `openless-all/app/src-tauri/tauri.conf.json`, and `CredentialsVault.serviceName`). Changing it breaks Keychain lookups *and* every existing TCC grant. +- **TCC**: Microphone + Accessibility + AppleEvents. Both apps declare `NSMicrophoneUsageDescription` / `NSAccessibilityUsageDescription` / `NSAppleEventsUsageDescription` in their Info.plist. Tauri's lives at `openless-all/app/src-tauri/Info.plist`. After a fresh build that resets TCC, the app must be **fully quit and relaunched** after granting Accessibility before the global hotkey tap installs. - **Credentials** live in Keychain under accounts in `CredentialAccount` (`volcengine.app_key`, `volcengine.access_key`, `volcengine.resource_id`, `ark.api_key`, `ark.model_id`, `ark.endpoint`). The Rust port additionally reads the legacy plaintext fallback at `~/.openless/credentials.json` so users who configured the Swift app keep their creds without re-entering. Never hard-code keys. - **Per-user data**: - macOS: `~/Library/Application Support/OpenLess/{history.json, preferences.json, dictionary.json}` — same paths as the Swift app, capped at 200 history entries. **Do not rename `dictionary.json` to `vocab.json`** (drops user data). @@ -122,7 +122,7 @@ Two separate flows, by design: - **Swift (Sparkle, old users):** `scripts/release.sh ` bumps `build-app.sh`, builds the `.app`, ditto-zips it, signs with Sparkle EdDSA private key (Keychain item, not in repo), appends `` to `appcast.xml`, commits, tags `v`, pushes, and creates the GitHub Release. The public EdDSA key in `build-app.sh` (`SPARKLE_PUBLIC_KEY`) and the appcast URL `https://raw.githubusercontent.com/appergb/openless/main/appcast.xml` are baked into shipped clients — changing either strands existing users. - **Tauri (cross-platform):** push a `v*-tauri` tag → `.github/workflows/release-tauri.yml` builds macOS arm64 `.dmg` and Windows x64 `.msi`. macOS Developer ID signing + notarization runs only when `APPLE_CERTIFICATE` / `APPLE_CERTIFICATE_PASSWORD` / `APPLE_ID` / `APPLE_PASSWORD` / `APPLE_TEAM_ID` secrets are set; otherwise it falls back to ad-hoc signing with a CI warning. Tauri tags use `-tauri` suffix specifically to not collide with Swift `vX.Y.Z` tags. -When bumping versions, update **both** `version` fields: `openless -all/app/package.json` and `openless -all/app/src-tauri/tauri.conf.json` (and `Cargo.toml`). For Swift releases, bump `APP_VERSION` *and* `BUILD_NUMBER` in `scripts/build-app.sh`. +When bumping versions, update **both** `version` fields: `openless-all/app/package.json` and `openless-all/app/src-tauri/tauri.conf.json` (and `Cargo.toml`). For Swift releases, bump `APP_VERSION` *and* `BUILD_NUMBER` in `scripts/build-app.sh`. ## Repo conventions @@ -135,10 +135,10 @@ When bumping versions, update **both** `version` fields: `openless -all/app/pack ### Adding a new module Tauri (preferred): -1. Add a `.rs` (or directory) under `openless -all/app/src-tauri/src/`, importing only from `types`. +1. Add a `.rs` (or directory) under `openless-all/app/src-tauri/src/`, importing only from `types`. 2. Register it in `lib.rs` (`mod ;`). 3. Wire it into `coordinator.rs` and expose any frontend-callable surface via `commands.rs` + `invoke_handler!`. -4. Add the matching TS wrapper in `openless -all/app/src/lib/ipc.ts` (with a mock branch for browser dev). +4. Add the matching TS wrapper in `openless-all/app/src/lib/ipc.ts` (with a mock branch for browser dev). Swift (only if also patching the legacy app): 1. Add target in `Package.swift` under `Sources/OpenLess`, depending only on `OpenLessCore`. diff --git a/README.md b/README.md index 39438392..d6597817 100644 --- a/README.md +++ b/README.md @@ -123,10 +123,10 @@ Full end-user walkthrough: [USAGE.md](USAGE.md). ## Build from source (developers) -The active codebase is in `openless -all/app/` (Tauri 2 + Rust + React/TS). +The active codebase is in `openless-all/app/` (Tauri 2 + Rust + React/TS). ```bash -cd "openless -all/app" +cd "openless-all/app" npm ci # Dev: Vite at :1420 + Tauri shell @@ -145,7 +145,7 @@ npm run build Logs: `~/Library/Logs/OpenLess/openless.log` (macOS) / `%LOCALAPPDATA%\OpenLess\Logs\openless.log` (Windows). -**Windows build** — see [`openless -all/README.md`](openless%20-all/README.md) for MSVC vs GNU/MinGW routes. +**Windows build** — see [`openless-all/README.md`](openless-all/README.md) for MSVC vs GNU/MinGW routes. **Swift (legacy, Sparkle updates only):** @@ -197,7 +197,7 @@ The main window is organized as Home / History / Dictionary / Settings. The Dict ## Architecture -The active implementation is Tauri 2 (`openless -all/app/`). The Swift/SwiftPM codebase under `Sources/` is legacy and still serves Sparkle auto-updates for existing users. +The active implementation is Tauri 2 (`openless-all/app/`). The Swift/SwiftPM codebase under `Sources/` is legacy and still serves Sparkle auto-updates for existing users. **Tauri backend (Rust)** — each module depends only on `types.rs`: @@ -232,7 +232,7 @@ Planned but not yet shipped: ## Maintainer release checklist -- Bump version in `openless -all/app/package.json`, `src-tauri/tauri.conf.json`, and `src-tauri/Cargo.toml`. +- Bump version in `openless-all/app/package.json`, `src-tauri/tauri.conf.json`, and `src-tauri/Cargo.toml`. - Run `INSTALL=0 ./scripts/build-mac.sh` and confirm the `.app` launches. - Verify on a clean macOS box: permission flow, hotkey, recording, ASR, polish, insertion, clipboard fallback. - Push a `v-tauri` tag — CI builds and signs the macOS `.dmg` + Windows `.msi`. diff --git a/README.zh.md b/README.zh.md index 21b9254a..b634c0ab 100644 --- a/README.zh.md +++ b/README.zh.md @@ -123,10 +123,10 @@ OpenLess 只做一件事:**把语音变成可用的书面文字(尤其是 AI ## 从源码构建(开发者) -当前活跃代码库在 `openless -all/app/`(Tauri 2 + Rust + React/TS)。 +当前活跃代码库在 `openless-all/app/`(Tauri 2 + Rust + React/TS)。 ```bash -cd "openless -all/app" +cd "openless-all/app" npm ci # 开发模式:Vite at :1420 + Tauri shell @@ -145,7 +145,7 @@ npm run build 日志路径:`~/Library/Logs/OpenLess/openless.log`(macOS)/ `%LOCALAPPDATA%\OpenLess\Logs\openless.log`(Windows)。 -**Windows 构建** — MSVC 和 GNU/MinGW 两种路线详见 [`openless -all/README.md`](openless%20-all/README.md)。 +**Windows 构建** — MSVC 和 GNU/MinGW 两种路线详见 [`openless-all/README.md`](openless-all/README.md)。 **Swift(仅用于 Sparkle 遗留版本发布):** @@ -201,7 +201,7 @@ OpenLess 的润色模型只做文本整理,不做问答、不做任务执行 ## 架构概览 -当前活跃实现是 Tauri 2(`openless -all/app/`)。`Sources/` 下的 Swift/SwiftPM 代码是遗留版本,仍为老用户提供 Sparkle 自动更新。 +当前活跃实现是 Tauri 2(`openless-all/app/`)。`Sources/` 下的 Swift/SwiftPM 代码是遗留版本,仍为老用户提供 Sparkle 自动更新。 **Tauri 后端(Rust)** — 各模块只依赖 `types.rs`: @@ -236,7 +236,7 @@ commands.rs Tauri IPC 接口 ## 维护者:发布检查 -- 同步更新 `openless -all/app/package.json`、`src-tauri/tauri.conf.json`、`src-tauri/Cargo.toml` 中的版本号。 +- 同步更新 `openless-all/app/package.json`、`src-tauri/tauri.conf.json`、`src-tauri/Cargo.toml` 中的版本号。 - 运行 `INSTALL=0 ./scripts/build-mac.sh`,确认 `.app` 可启动。 - 在干净 macOS 机器上验证:权限引导、快捷键、录音、ASR、润色、插入、剪贴板兜底。 - 推送 `v-tauri` tag → CI 构建并签名 macOS `.dmg` + Windows `.msi`。 diff --git a/openless -all/README.md b/openless-all/README.md similarity index 91% rename from openless -all/README.md rename to openless-all/README.md index afb08751..6bfd160c 100644 --- a/openless -all/README.md +++ b/openless-all/README.md @@ -69,10 +69,10 @@ powershell -ExecutionPolicy Bypass -File .\scripts\windows-preflight.ps1 -Toolch ### GNU / MinGW Route -Use this route when MSVC/Windows SDK is unavailable. The current repository path -contains a space in `openless -all`, and GNU/MinGW tooling can fail from paths -with spaces while generating import libraries. Use the helper script; it mirrors -the app to a no-space temporary directory before building. +Use this route when MSVC/Windows SDK is unavailable. The app now lives under +the no-space `openless-all` directory to avoid GNU/MinGW path quoting issues +while generating import libraries. Use the helper script to keep the GNU build +environment and target setup consistent. ```powershell cd app diff --git a/openless -all/app/.gitignore b/openless-all/app/.gitignore similarity index 100% rename from openless -all/app/.gitignore rename to openless-all/app/.gitignore diff --git a/openless -all/app/index.html b/openless-all/app/index.html similarity index 100% rename from openless -all/app/index.html rename to openless-all/app/index.html diff --git a/openless -all/app/package-lock.json b/openless-all/app/package-lock.json similarity index 100% rename from openless -all/app/package-lock.json rename to openless-all/app/package-lock.json diff --git a/openless -all/app/package.json b/openless-all/app/package.json similarity index 100% rename from openless -all/app/package.json rename to openless-all/app/package.json diff --git a/openless -all/app/public/AppIcon.png b/openless-all/app/public/AppIcon.png similarity index 100% rename from openless -all/app/public/AppIcon.png rename to openless-all/app/public/AppIcon.png diff --git a/openless -all/app/scripts/build-mac.sh b/openless-all/app/scripts/build-mac.sh similarity index 100% rename from openless -all/app/scripts/build-mac.sh rename to openless-all/app/scripts/build-mac.sh diff --git a/openless -all/app/scripts/windows-build-gnu.ps1 b/openless-all/app/scripts/windows-build-gnu.ps1 similarity index 100% rename from openless -all/app/scripts/windows-build-gnu.ps1 rename to openless-all/app/scripts/windows-build-gnu.ps1 diff --git a/openless -all/app/scripts/windows-preflight.ps1 b/openless-all/app/scripts/windows-preflight.ps1 similarity index 100% rename from openless -all/app/scripts/windows-preflight.ps1 rename to openless-all/app/scripts/windows-preflight.ps1 diff --git a/openless -all/app/src-tauri/Cargo.lock b/openless-all/app/src-tauri/Cargo.lock similarity index 100% rename from openless -all/app/src-tauri/Cargo.lock rename to openless-all/app/src-tauri/Cargo.lock diff --git a/openless -all/app/src-tauri/Cargo.toml b/openless-all/app/src-tauri/Cargo.toml similarity index 100% rename from openless -all/app/src-tauri/Cargo.toml rename to openless-all/app/src-tauri/Cargo.toml diff --git a/openless -all/app/src-tauri/Entitlements.plist b/openless-all/app/src-tauri/Entitlements.plist similarity index 100% rename from openless -all/app/src-tauri/Entitlements.plist rename to openless-all/app/src-tauri/Entitlements.plist diff --git a/openless -all/app/src-tauri/Info.plist b/openless-all/app/src-tauri/Info.plist similarity index 100% rename from openless -all/app/src-tauri/Info.plist rename to openless-all/app/src-tauri/Info.plist diff --git a/openless -all/app/src-tauri/build.rs b/openless-all/app/src-tauri/build.rs similarity index 100% rename from openless -all/app/src-tauri/build.rs rename to openless-all/app/src-tauri/build.rs diff --git a/openless -all/app/src-tauri/capabilities/default.json b/openless-all/app/src-tauri/capabilities/default.json similarity index 100% rename from openless -all/app/src-tauri/capabilities/default.json rename to openless-all/app/src-tauri/capabilities/default.json diff --git a/openless -all/app/src-tauri/icons/128x128.png b/openless-all/app/src-tauri/icons/128x128.png similarity index 100% rename from openless -all/app/src-tauri/icons/128x128.png rename to openless-all/app/src-tauri/icons/128x128.png diff --git a/openless -all/app/src-tauri/icons/128x128@2x.png b/openless-all/app/src-tauri/icons/128x128@2x.png similarity index 100% rename from openless -all/app/src-tauri/icons/128x128@2x.png rename to openless-all/app/src-tauri/icons/128x128@2x.png diff --git a/openless -all/app/src-tauri/icons/32x32.png b/openless-all/app/src-tauri/icons/32x32.png similarity index 100% rename from openless -all/app/src-tauri/icons/32x32.png rename to openless-all/app/src-tauri/icons/32x32.png diff --git a/openless -all/app/src-tauri/icons/64x64.png b/openless-all/app/src-tauri/icons/64x64.png similarity index 100% rename from openless -all/app/src-tauri/icons/64x64.png rename to openless-all/app/src-tauri/icons/64x64.png diff --git a/openless -all/app/src-tauri/icons/Square107x107Logo.png b/openless-all/app/src-tauri/icons/Square107x107Logo.png similarity index 100% rename from openless -all/app/src-tauri/icons/Square107x107Logo.png rename to openless-all/app/src-tauri/icons/Square107x107Logo.png diff --git a/openless -all/app/src-tauri/icons/Square142x142Logo.png b/openless-all/app/src-tauri/icons/Square142x142Logo.png similarity index 100% rename from openless -all/app/src-tauri/icons/Square142x142Logo.png rename to openless-all/app/src-tauri/icons/Square142x142Logo.png diff --git a/openless -all/app/src-tauri/icons/Square150x150Logo.png b/openless-all/app/src-tauri/icons/Square150x150Logo.png similarity index 100% rename from openless -all/app/src-tauri/icons/Square150x150Logo.png rename to openless-all/app/src-tauri/icons/Square150x150Logo.png diff --git a/openless -all/app/src-tauri/icons/Square284x284Logo.png b/openless-all/app/src-tauri/icons/Square284x284Logo.png similarity index 100% rename from openless -all/app/src-tauri/icons/Square284x284Logo.png rename to openless-all/app/src-tauri/icons/Square284x284Logo.png diff --git a/openless -all/app/src-tauri/icons/Square30x30Logo.png b/openless-all/app/src-tauri/icons/Square30x30Logo.png similarity index 100% rename from openless -all/app/src-tauri/icons/Square30x30Logo.png rename to openless-all/app/src-tauri/icons/Square30x30Logo.png diff --git a/openless -all/app/src-tauri/icons/Square310x310Logo.png b/openless-all/app/src-tauri/icons/Square310x310Logo.png similarity index 100% rename from openless -all/app/src-tauri/icons/Square310x310Logo.png rename to openless-all/app/src-tauri/icons/Square310x310Logo.png diff --git a/openless -all/app/src-tauri/icons/Square44x44Logo.png b/openless-all/app/src-tauri/icons/Square44x44Logo.png similarity index 100% rename from openless -all/app/src-tauri/icons/Square44x44Logo.png rename to openless-all/app/src-tauri/icons/Square44x44Logo.png diff --git a/openless -all/app/src-tauri/icons/Square71x71Logo.png b/openless-all/app/src-tauri/icons/Square71x71Logo.png similarity index 100% rename from openless -all/app/src-tauri/icons/Square71x71Logo.png rename to openless-all/app/src-tauri/icons/Square71x71Logo.png diff --git a/openless -all/app/src-tauri/icons/Square89x89Logo.png b/openless-all/app/src-tauri/icons/Square89x89Logo.png similarity index 100% rename from openless -all/app/src-tauri/icons/Square89x89Logo.png rename to openless-all/app/src-tauri/icons/Square89x89Logo.png diff --git a/openless -all/app/src-tauri/icons/StoreLogo.png b/openless-all/app/src-tauri/icons/StoreLogo.png similarity index 100% rename from openless -all/app/src-tauri/icons/StoreLogo.png rename to openless-all/app/src-tauri/icons/StoreLogo.png diff --git a/openless -all/app/src-tauri/icons/android/mipmap-anydpi-v26/ic_launcher.xml b/openless-all/app/src-tauri/icons/android/mipmap-anydpi-v26/ic_launcher.xml similarity index 100% rename from openless -all/app/src-tauri/icons/android/mipmap-anydpi-v26/ic_launcher.xml rename to openless-all/app/src-tauri/icons/android/mipmap-anydpi-v26/ic_launcher.xml diff --git a/openless -all/app/src-tauri/icons/android/mipmap-hdpi/ic_launcher.png b/openless-all/app/src-tauri/icons/android/mipmap-hdpi/ic_launcher.png similarity index 100% rename from openless -all/app/src-tauri/icons/android/mipmap-hdpi/ic_launcher.png rename to openless-all/app/src-tauri/icons/android/mipmap-hdpi/ic_launcher.png diff --git a/openless -all/app/src-tauri/icons/android/mipmap-hdpi/ic_launcher_foreground.png b/openless-all/app/src-tauri/icons/android/mipmap-hdpi/ic_launcher_foreground.png similarity index 100% rename from openless -all/app/src-tauri/icons/android/mipmap-hdpi/ic_launcher_foreground.png rename to openless-all/app/src-tauri/icons/android/mipmap-hdpi/ic_launcher_foreground.png diff --git a/openless -all/app/src-tauri/icons/android/mipmap-hdpi/ic_launcher_round.png b/openless-all/app/src-tauri/icons/android/mipmap-hdpi/ic_launcher_round.png similarity index 100% rename from openless -all/app/src-tauri/icons/android/mipmap-hdpi/ic_launcher_round.png rename to openless-all/app/src-tauri/icons/android/mipmap-hdpi/ic_launcher_round.png diff --git a/openless -all/app/src-tauri/icons/android/mipmap-mdpi/ic_launcher.png b/openless-all/app/src-tauri/icons/android/mipmap-mdpi/ic_launcher.png similarity index 100% rename from openless -all/app/src-tauri/icons/android/mipmap-mdpi/ic_launcher.png rename to openless-all/app/src-tauri/icons/android/mipmap-mdpi/ic_launcher.png diff --git a/openless -all/app/src-tauri/icons/android/mipmap-mdpi/ic_launcher_foreground.png b/openless-all/app/src-tauri/icons/android/mipmap-mdpi/ic_launcher_foreground.png similarity index 100% rename from openless -all/app/src-tauri/icons/android/mipmap-mdpi/ic_launcher_foreground.png rename to openless-all/app/src-tauri/icons/android/mipmap-mdpi/ic_launcher_foreground.png diff --git a/openless -all/app/src-tauri/icons/android/mipmap-mdpi/ic_launcher_round.png b/openless-all/app/src-tauri/icons/android/mipmap-mdpi/ic_launcher_round.png similarity index 100% rename from openless -all/app/src-tauri/icons/android/mipmap-mdpi/ic_launcher_round.png rename to openless-all/app/src-tauri/icons/android/mipmap-mdpi/ic_launcher_round.png diff --git a/openless -all/app/src-tauri/icons/android/mipmap-xhdpi/ic_launcher.png b/openless-all/app/src-tauri/icons/android/mipmap-xhdpi/ic_launcher.png similarity index 100% rename from openless -all/app/src-tauri/icons/android/mipmap-xhdpi/ic_launcher.png rename to openless-all/app/src-tauri/icons/android/mipmap-xhdpi/ic_launcher.png diff --git a/openless -all/app/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_foreground.png b/openless-all/app/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_foreground.png similarity index 100% rename from openless -all/app/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_foreground.png rename to openless-all/app/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_foreground.png diff --git a/openless -all/app/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_round.png b/openless-all/app/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_round.png similarity index 100% rename from openless -all/app/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_round.png rename to openless-all/app/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_round.png diff --git a/openless -all/app/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher.png b/openless-all/app/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher.png similarity index 100% rename from openless -all/app/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher.png rename to openless-all/app/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher.png diff --git a/openless -all/app/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_foreground.png b/openless-all/app/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_foreground.png similarity index 100% rename from openless -all/app/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_foreground.png rename to openless-all/app/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_foreground.png diff --git a/openless -all/app/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_round.png b/openless-all/app/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_round.png similarity index 100% rename from openless -all/app/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_round.png rename to openless-all/app/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_round.png diff --git a/openless -all/app/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher.png b/openless-all/app/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher.png similarity index 100% rename from openless -all/app/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher.png rename to openless-all/app/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher.png diff --git a/openless -all/app/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_foreground.png b/openless-all/app/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_foreground.png similarity index 100% rename from openless -all/app/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_foreground.png rename to openless-all/app/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_foreground.png diff --git a/openless -all/app/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_round.png b/openless-all/app/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_round.png similarity index 100% rename from openless -all/app/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_round.png rename to openless-all/app/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_round.png diff --git a/openless -all/app/src-tauri/icons/android/values/ic_launcher_background.xml b/openless-all/app/src-tauri/icons/android/values/ic_launcher_background.xml similarity index 100% rename from openless -all/app/src-tauri/icons/android/values/ic_launcher_background.xml rename to openless-all/app/src-tauri/icons/android/values/ic_launcher_background.xml diff --git a/openless -all/app/src-tauri/icons/icon.icns b/openless-all/app/src-tauri/icons/icon.icns similarity index 100% rename from openless -all/app/src-tauri/icons/icon.icns rename to openless-all/app/src-tauri/icons/icon.icns diff --git a/openless -all/app/src-tauri/icons/icon.ico b/openless-all/app/src-tauri/icons/icon.ico similarity index 100% rename from openless -all/app/src-tauri/icons/icon.ico rename to openless-all/app/src-tauri/icons/icon.ico diff --git a/openless -all/app/src-tauri/icons/icon.png b/openless-all/app/src-tauri/icons/icon.png similarity index 100% rename from openless -all/app/src-tauri/icons/icon.png rename to openless-all/app/src-tauri/icons/icon.png diff --git a/openless -all/app/src-tauri/icons/ios/AppIcon-20x20@1x.png b/openless-all/app/src-tauri/icons/ios/AppIcon-20x20@1x.png similarity index 100% rename from openless -all/app/src-tauri/icons/ios/AppIcon-20x20@1x.png rename to openless-all/app/src-tauri/icons/ios/AppIcon-20x20@1x.png diff --git a/openless -all/app/src-tauri/icons/ios/AppIcon-20x20@2x-1.png b/openless-all/app/src-tauri/icons/ios/AppIcon-20x20@2x-1.png similarity index 100% rename from openless -all/app/src-tauri/icons/ios/AppIcon-20x20@2x-1.png rename to openless-all/app/src-tauri/icons/ios/AppIcon-20x20@2x-1.png diff --git a/openless -all/app/src-tauri/icons/ios/AppIcon-20x20@2x.png b/openless-all/app/src-tauri/icons/ios/AppIcon-20x20@2x.png similarity index 100% rename from openless -all/app/src-tauri/icons/ios/AppIcon-20x20@2x.png rename to openless-all/app/src-tauri/icons/ios/AppIcon-20x20@2x.png diff --git a/openless -all/app/src-tauri/icons/ios/AppIcon-20x20@3x.png b/openless-all/app/src-tauri/icons/ios/AppIcon-20x20@3x.png similarity index 100% rename from openless -all/app/src-tauri/icons/ios/AppIcon-20x20@3x.png rename to openless-all/app/src-tauri/icons/ios/AppIcon-20x20@3x.png diff --git a/openless -all/app/src-tauri/icons/ios/AppIcon-29x29@1x.png b/openless-all/app/src-tauri/icons/ios/AppIcon-29x29@1x.png similarity index 100% rename from openless -all/app/src-tauri/icons/ios/AppIcon-29x29@1x.png rename to openless-all/app/src-tauri/icons/ios/AppIcon-29x29@1x.png diff --git a/openless -all/app/src-tauri/icons/ios/AppIcon-29x29@2x-1.png b/openless-all/app/src-tauri/icons/ios/AppIcon-29x29@2x-1.png similarity index 100% rename from openless -all/app/src-tauri/icons/ios/AppIcon-29x29@2x-1.png rename to openless-all/app/src-tauri/icons/ios/AppIcon-29x29@2x-1.png diff --git a/openless -all/app/src-tauri/icons/ios/AppIcon-29x29@2x.png b/openless-all/app/src-tauri/icons/ios/AppIcon-29x29@2x.png similarity index 100% rename from openless -all/app/src-tauri/icons/ios/AppIcon-29x29@2x.png rename to openless-all/app/src-tauri/icons/ios/AppIcon-29x29@2x.png diff --git a/openless -all/app/src-tauri/icons/ios/AppIcon-29x29@3x.png b/openless-all/app/src-tauri/icons/ios/AppIcon-29x29@3x.png similarity index 100% rename from openless -all/app/src-tauri/icons/ios/AppIcon-29x29@3x.png rename to openless-all/app/src-tauri/icons/ios/AppIcon-29x29@3x.png diff --git a/openless -all/app/src-tauri/icons/ios/AppIcon-40x40@1x.png b/openless-all/app/src-tauri/icons/ios/AppIcon-40x40@1x.png similarity index 100% rename from openless -all/app/src-tauri/icons/ios/AppIcon-40x40@1x.png rename to openless-all/app/src-tauri/icons/ios/AppIcon-40x40@1x.png diff --git a/openless -all/app/src-tauri/icons/ios/AppIcon-40x40@2x-1.png b/openless-all/app/src-tauri/icons/ios/AppIcon-40x40@2x-1.png similarity index 100% rename from openless -all/app/src-tauri/icons/ios/AppIcon-40x40@2x-1.png rename to openless-all/app/src-tauri/icons/ios/AppIcon-40x40@2x-1.png diff --git a/openless -all/app/src-tauri/icons/ios/AppIcon-40x40@2x.png b/openless-all/app/src-tauri/icons/ios/AppIcon-40x40@2x.png similarity index 100% rename from openless -all/app/src-tauri/icons/ios/AppIcon-40x40@2x.png rename to openless-all/app/src-tauri/icons/ios/AppIcon-40x40@2x.png diff --git a/openless -all/app/src-tauri/icons/ios/AppIcon-40x40@3x.png b/openless-all/app/src-tauri/icons/ios/AppIcon-40x40@3x.png similarity index 100% rename from openless -all/app/src-tauri/icons/ios/AppIcon-40x40@3x.png rename to openless-all/app/src-tauri/icons/ios/AppIcon-40x40@3x.png diff --git a/openless -all/app/src-tauri/icons/ios/AppIcon-512@2x.png b/openless-all/app/src-tauri/icons/ios/AppIcon-512@2x.png similarity index 100% rename from openless -all/app/src-tauri/icons/ios/AppIcon-512@2x.png rename to openless-all/app/src-tauri/icons/ios/AppIcon-512@2x.png diff --git a/openless -all/app/src-tauri/icons/ios/AppIcon-60x60@2x.png b/openless-all/app/src-tauri/icons/ios/AppIcon-60x60@2x.png similarity index 100% rename from openless -all/app/src-tauri/icons/ios/AppIcon-60x60@2x.png rename to openless-all/app/src-tauri/icons/ios/AppIcon-60x60@2x.png diff --git a/openless -all/app/src-tauri/icons/ios/AppIcon-60x60@3x.png b/openless-all/app/src-tauri/icons/ios/AppIcon-60x60@3x.png similarity index 100% rename from openless -all/app/src-tauri/icons/ios/AppIcon-60x60@3x.png rename to openless-all/app/src-tauri/icons/ios/AppIcon-60x60@3x.png diff --git a/openless -all/app/src-tauri/icons/ios/AppIcon-76x76@1x.png b/openless-all/app/src-tauri/icons/ios/AppIcon-76x76@1x.png similarity index 100% rename from openless -all/app/src-tauri/icons/ios/AppIcon-76x76@1x.png rename to openless-all/app/src-tauri/icons/ios/AppIcon-76x76@1x.png diff --git a/openless -all/app/src-tauri/icons/ios/AppIcon-76x76@2x.png b/openless-all/app/src-tauri/icons/ios/AppIcon-76x76@2x.png similarity index 100% rename from openless -all/app/src-tauri/icons/ios/AppIcon-76x76@2x.png rename to openless-all/app/src-tauri/icons/ios/AppIcon-76x76@2x.png diff --git a/openless -all/app/src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png b/openless-all/app/src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png similarity index 100% rename from openless -all/app/src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png rename to openless-all/app/src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png diff --git a/openless -all/app/src-tauri/src/asr/frame.rs b/openless-all/app/src-tauri/src/asr/frame.rs similarity index 100% rename from openless -all/app/src-tauri/src/asr/frame.rs rename to openless-all/app/src-tauri/src/asr/frame.rs diff --git a/openless -all/app/src-tauri/src/asr/mod.rs b/openless-all/app/src-tauri/src/asr/mod.rs similarity index 100% rename from openless -all/app/src-tauri/src/asr/mod.rs rename to openless-all/app/src-tauri/src/asr/mod.rs diff --git a/openless -all/app/src-tauri/src/asr/volcengine.rs b/openless-all/app/src-tauri/src/asr/volcengine.rs similarity index 100% rename from openless -all/app/src-tauri/src/asr/volcengine.rs rename to openless-all/app/src-tauri/src/asr/volcengine.rs diff --git a/openless -all/app/src-tauri/src/asr/whisper.rs b/openless-all/app/src-tauri/src/asr/whisper.rs similarity index 100% rename from openless -all/app/src-tauri/src/asr/whisper.rs rename to openless-all/app/src-tauri/src/asr/whisper.rs diff --git a/openless -all/app/src-tauri/src/commands.rs b/openless-all/app/src-tauri/src/commands.rs similarity index 100% rename from openless -all/app/src-tauri/src/commands.rs rename to openless-all/app/src-tauri/src/commands.rs diff --git a/openless -all/app/src-tauri/src/coordinator.rs b/openless-all/app/src-tauri/src/coordinator.rs similarity index 100% rename from openless -all/app/src-tauri/src/coordinator.rs rename to openless-all/app/src-tauri/src/coordinator.rs diff --git a/openless -all/app/src-tauri/src/hotkey.rs b/openless-all/app/src-tauri/src/hotkey.rs similarity index 100% rename from openless -all/app/src-tauri/src/hotkey.rs rename to openless-all/app/src-tauri/src/hotkey.rs diff --git a/openless -all/app/src-tauri/src/insertion.rs b/openless-all/app/src-tauri/src/insertion.rs similarity index 100% rename from openless -all/app/src-tauri/src/insertion.rs rename to openless-all/app/src-tauri/src/insertion.rs diff --git a/openless -all/app/src-tauri/src/lib.rs b/openless-all/app/src-tauri/src/lib.rs similarity index 100% rename from openless -all/app/src-tauri/src/lib.rs rename to openless-all/app/src-tauri/src/lib.rs diff --git a/openless -all/app/src-tauri/src/main.rs b/openless-all/app/src-tauri/src/main.rs similarity index 100% rename from openless -all/app/src-tauri/src/main.rs rename to openless-all/app/src-tauri/src/main.rs diff --git a/openless -all/app/src-tauri/src/permissions.rs b/openless-all/app/src-tauri/src/permissions.rs similarity index 100% rename from openless -all/app/src-tauri/src/permissions.rs rename to openless-all/app/src-tauri/src/permissions.rs diff --git a/openless -all/app/src-tauri/src/persistence.rs b/openless-all/app/src-tauri/src/persistence.rs similarity index 100% rename from openless -all/app/src-tauri/src/persistence.rs rename to openless-all/app/src-tauri/src/persistence.rs diff --git a/openless -all/app/src-tauri/src/polish.rs b/openless-all/app/src-tauri/src/polish.rs similarity index 100% rename from openless -all/app/src-tauri/src/polish.rs rename to openless-all/app/src-tauri/src/polish.rs diff --git a/openless -all/app/src-tauri/src/recorder.rs b/openless-all/app/src-tauri/src/recorder.rs similarity index 100% rename from openless -all/app/src-tauri/src/recorder.rs rename to openless-all/app/src-tauri/src/recorder.rs diff --git a/openless -all/app/src-tauri/src/types.rs b/openless-all/app/src-tauri/src/types.rs similarity index 100% rename from openless -all/app/src-tauri/src/types.rs rename to openless-all/app/src-tauri/src/types.rs diff --git a/openless -all/app/src-tauri/tauri.conf.json b/openless-all/app/src-tauri/tauri.conf.json similarity index 100% rename from openless -all/app/src-tauri/tauri.conf.json rename to openless-all/app/src-tauri/tauri.conf.json diff --git a/openless -all/app/src/App.tsx b/openless-all/app/src/App.tsx similarity index 100% rename from openless -all/app/src/App.tsx rename to openless-all/app/src/App.tsx diff --git a/openless -all/app/src/components/Capsule.tsx b/openless-all/app/src/components/Capsule.tsx similarity index 100% rename from openless -all/app/src/components/Capsule.tsx rename to openless-all/app/src/components/Capsule.tsx diff --git a/openless -all/app/src/components/FloatingShell.tsx b/openless-all/app/src/components/FloatingShell.tsx similarity index 100% rename from openless -all/app/src/components/FloatingShell.tsx rename to openless-all/app/src/components/FloatingShell.tsx diff --git a/openless -all/app/src/components/Icon.tsx b/openless-all/app/src/components/Icon.tsx similarity index 100% rename from openless -all/app/src/components/Icon.tsx rename to openless-all/app/src/components/Icon.tsx diff --git a/openless -all/app/src/components/Onboarding.tsx b/openless-all/app/src/components/Onboarding.tsx similarity index 100% rename from openless -all/app/src/components/Onboarding.tsx rename to openless-all/app/src/components/Onboarding.tsx diff --git a/openless -all/app/src/components/SettingsModal.tsx b/openless-all/app/src/components/SettingsModal.tsx similarity index 100% rename from openless -all/app/src/components/SettingsModal.tsx rename to openless-all/app/src/components/SettingsModal.tsx diff --git a/openless -all/app/src/components/WindowChrome.tsx b/openless-all/app/src/components/WindowChrome.tsx similarity index 100% rename from openless -all/app/src/components/WindowChrome.tsx rename to openless-all/app/src/components/WindowChrome.tsx diff --git a/openless -all/app/src/components/ui/Row.tsx b/openless-all/app/src/components/ui/Row.tsx similarity index 100% rename from openless -all/app/src/components/ui/Row.tsx rename to openless-all/app/src/components/ui/Row.tsx diff --git a/openless -all/app/src/components/ui/SegSimple.tsx b/openless-all/app/src/components/ui/SegSimple.tsx similarity index 100% rename from openless -all/app/src/components/ui/SegSimple.tsx rename to openless-all/app/src/components/ui/SegSimple.tsx diff --git a/openless -all/app/src/components/ui/SelectLite.tsx b/openless-all/app/src/components/ui/SelectLite.tsx similarity index 100% rename from openless -all/app/src/components/ui/SelectLite.tsx rename to openless-all/app/src/components/ui/SelectLite.tsx diff --git a/openless -all/app/src/components/ui/SwitchLite.tsx b/openless-all/app/src/components/ui/SwitchLite.tsx similarity index 100% rename from openless -all/app/src/components/ui/SwitchLite.tsx rename to openless-all/app/src/components/ui/SwitchLite.tsx diff --git a/openless -all/app/src/lib/appVersion.ts b/openless-all/app/src/lib/appVersion.ts similarity index 100% rename from openless -all/app/src/lib/appVersion.ts rename to openless-all/app/src/lib/appVersion.ts diff --git a/openless -all/app/src/lib/hotkey.ts b/openless-all/app/src/lib/hotkey.ts similarity index 100% rename from openless -all/app/src/lib/hotkey.ts rename to openless-all/app/src/lib/hotkey.ts diff --git a/openless -all/app/src/lib/ipc.ts b/openless-all/app/src/lib/ipc.ts similarity index 100% rename from openless -all/app/src/lib/ipc.ts rename to openless-all/app/src/lib/ipc.ts diff --git a/openless -all/app/src/lib/mockData.ts b/openless-all/app/src/lib/mockData.ts similarity index 100% rename from openless -all/app/src/lib/mockData.ts rename to openless-all/app/src/lib/mockData.ts diff --git a/openless -all/app/src/lib/providerSetup.test.ts b/openless-all/app/src/lib/providerSetup.test.ts similarity index 100% rename from openless -all/app/src/lib/providerSetup.test.ts rename to openless-all/app/src/lib/providerSetup.test.ts diff --git a/openless -all/app/src/lib/providerSetup.ts b/openless-all/app/src/lib/providerSetup.ts similarity index 100% rename from openless -all/app/src/lib/providerSetup.ts rename to openless-all/app/src/lib/providerSetup.ts diff --git a/openless -all/app/src/lib/types.ts b/openless-all/app/src/lib/types.ts similarity index 100% rename from openless -all/app/src/lib/types.ts rename to openless-all/app/src/lib/types.ts diff --git a/openless -all/app/src/main.tsx b/openless-all/app/src/main.tsx similarity index 100% rename from openless -all/app/src/main.tsx rename to openless-all/app/src/main.tsx diff --git a/openless -all/app/src/pages/History.tsx b/openless-all/app/src/pages/History.tsx similarity index 100% rename from openless -all/app/src/pages/History.tsx rename to openless-all/app/src/pages/History.tsx diff --git a/openless -all/app/src/pages/Overview.tsx b/openless-all/app/src/pages/Overview.tsx similarity index 100% rename from openless -all/app/src/pages/Overview.tsx rename to openless-all/app/src/pages/Overview.tsx diff --git a/openless -all/app/src/pages/Settings.tsx b/openless-all/app/src/pages/Settings.tsx similarity index 99% rename from openless -all/app/src/pages/Settings.tsx rename to openless-all/app/src/pages/Settings.tsx index f82dfd77..50bedbff 100644 --- a/openless -all/app/src/pages/Settings.tsx +++ b/openless-all/app/src/pages/Settings.tsx @@ -248,8 +248,7 @@ function ProvidersSection() { await setActiveAsrProvider(id); if (prefs) { const next = { ...prefs, activeAsrProvider: id }; - setPrefsState(next); - await setSettings(next); + await updatePrefs(next); } }; diff --git a/openless -all/app/src/pages/Style.tsx b/openless-all/app/src/pages/Style.tsx similarity index 100% rename from openless -all/app/src/pages/Style.tsx rename to openless-all/app/src/pages/Style.tsx diff --git a/openless -all/app/src/pages/Vocab.tsx b/openless-all/app/src/pages/Vocab.tsx similarity index 100% rename from openless -all/app/src/pages/Vocab.tsx rename to openless-all/app/src/pages/Vocab.tsx diff --git a/openless -all/app/src/pages/_atoms.tsx b/openless-all/app/src/pages/_atoms.tsx similarity index 100% rename from openless -all/app/src/pages/_atoms.tsx rename to openless-all/app/src/pages/_atoms.tsx diff --git a/openless -all/app/src/state/HotkeySettingsContext.tsx b/openless-all/app/src/state/HotkeySettingsContext.tsx similarity index 100% rename from openless -all/app/src/state/HotkeySettingsContext.tsx rename to openless-all/app/src/state/HotkeySettingsContext.tsx diff --git a/openless -all/app/src/state/useAppState.ts b/openless-all/app/src/state/useAppState.ts similarity index 100% rename from openless -all/app/src/state/useAppState.ts rename to openless-all/app/src/state/useAppState.ts diff --git a/openless -all/app/src/styles/global.css b/openless-all/app/src/styles/global.css similarity index 100% rename from openless -all/app/src/styles/global.css rename to openless-all/app/src/styles/global.css diff --git a/openless -all/app/src/styles/tokens.css b/openless-all/app/src/styles/tokens.css similarity index 100% rename from openless -all/app/src/styles/tokens.css rename to openless-all/app/src/styles/tokens.css diff --git a/openless -all/app/src/vite-env.d.ts b/openless-all/app/src/vite-env.d.ts similarity index 100% rename from openless -all/app/src/vite-env.d.ts rename to openless-all/app/src/vite-env.d.ts diff --git a/openless -all/app/tsconfig.json b/openless-all/app/tsconfig.json similarity index 100% rename from openless -all/app/tsconfig.json rename to openless-all/app/tsconfig.json diff --git a/openless -all/app/tsconfig.node.json b/openless-all/app/tsconfig.node.json similarity index 100% rename from openless -all/app/tsconfig.node.json rename to openless-all/app/tsconfig.node.json diff --git a/openless -all/app/vite.config.ts b/openless-all/app/vite.config.ts similarity index 100% rename from openless -all/app/vite.config.ts rename to openless-all/app/vite.config.ts diff --git a/openless -all/design_handoff_openless/App.html b/openless-all/design_handoff_openless/App.html similarity index 100% rename from openless -all/design_handoff_openless/App.html rename to openless-all/design_handoff_openless/App.html diff --git a/openless -all/design_handoff_openless/AppIcon.png b/openless-all/design_handoff_openless/AppIcon.png similarity index 100% rename from openless -all/design_handoff_openless/AppIcon.png rename to openless-all/design_handoff_openless/AppIcon.png diff --git a/openless -all/design_handoff_openless/OpenLess Redesign.html b/openless-all/design_handoff_openless/OpenLess Redesign.html similarity index 100% rename from openless -all/design_handoff_openless/OpenLess Redesign.html rename to openless-all/design_handoff_openless/OpenLess Redesign.html diff --git a/openless -all/design_handoff_openless/OpenLess.standalone.html b/openless-all/design_handoff_openless/OpenLess.standalone.html similarity index 100% rename from openless -all/design_handoff_openless/OpenLess.standalone.html rename to openless-all/design_handoff_openless/OpenLess.standalone.html diff --git a/openless -all/design_handoff_openless/README.md b/openless-all/design_handoff_openless/README.md similarity index 100% rename from openless -all/design_handoff_openless/README.md rename to openless-all/design_handoff_openless/README.md diff --git a/openless -all/design_handoff_openless/capsule.jsx b/openless-all/design_handoff_openless/capsule.jsx similarity index 100% rename from openless -all/design_handoff_openless/capsule.jsx rename to openless-all/design_handoff_openless/capsule.jsx diff --git a/openless -all/design_handoff_openless/chrome.jsx b/openless-all/design_handoff_openless/chrome.jsx similarity index 100% rename from openless -all/design_handoff_openless/chrome.jsx rename to openless-all/design_handoff_openless/chrome.jsx diff --git a/openless -all/design_handoff_openless/data.js b/openless-all/design_handoff_openless/data.js similarity index 100% rename from openless -all/design_handoff_openless/data.js rename to openless-all/design_handoff_openless/data.js diff --git a/openless -all/design_handoff_openless/design-canvas.jsx b/openless-all/design_handoff_openless/design-canvas.jsx similarity index 100% rename from openless -all/design_handoff_openless/design-canvas.jsx rename to openless-all/design_handoff_openless/design-canvas.jsx diff --git a/openless -all/design_handoff_openless/icons.jsx b/openless-all/design_handoff_openless/icons.jsx similarity index 100% rename from openless -all/design_handoff_openless/icons.jsx rename to openless-all/design_handoff_openless/icons.jsx diff --git a/openless -all/design_handoff_openless/pages.jsx b/openless-all/design_handoff_openless/pages.jsx similarity index 100% rename from openless -all/design_handoff_openless/pages.jsx rename to openless-all/design_handoff_openless/pages.jsx diff --git a/openless -all/design_handoff_openless/tokens.css b/openless-all/design_handoff_openless/tokens.css similarity index 100% rename from openless -all/design_handoff_openless/tokens.css rename to openless-all/design_handoff_openless/tokens.css diff --git a/openless -all/design_handoff_openless/tweaks-panel.jsx b/openless-all/design_handoff_openless/tweaks-panel.jsx similarity index 100% rename from openless -all/design_handoff_openless/tweaks-panel.jsx rename to openless-all/design_handoff_openless/tweaks-panel.jsx diff --git a/openless -all/design_handoff_openless/variants.jsx b/openless-all/design_handoff_openless/variants.jsx similarity index 100% rename from openless -all/design_handoff_openless/variants.jsx rename to openless-all/design_handoff_openless/variants.jsx