Skip to content

Sync main with v1.0.0-beta.20 - #48

Merged
snekxs merged 14 commits into
mainfrom
sync/main-with-beta.20
Oct 26, 2026
Merged

snekxs merged 14 commits into
mainfrom
sync/main-with-beta.20

Conversation

@snekxs

@snekxs snekxs commented Oct 26, 2026 •

Copy link
Copy Markdown
Member

main was rolled back to v1.0.0-beta.18 (#44), so the beta.19 and beta.20 work, including the v1.0.0-beta.20 release, never appeared in its history.

This PR brings main up to date without rewriting any history:

  1. Reverts the rollback merge (Roll main back to v1.0.0-beta.18 #44), restoring the beta.19 content.
  2. Merges dev-v1.0.0-beta.19, which adds everything in beta.20.

The resulting tree is identical to the v1.0.0-beta.20 tag and to dev-v1.0.0-beta.19 (verified with git diff).

Note: CI republishes the rolling dev-build prerelease on every push to main, so merging will refresh it with the beta.20 code.

Note

Sync main with v1.0.0-beta.20

Merge of the v1.0.0-beta.20 release branch into main. The main changes are:

  • Adds local applications and custom games: new API endpoints for listing, replacing, and saving images (src/api.rs), plus profile selection that matches running local apps and games (src/service.rs).
  • Adds tray battery display (glyph or percentage style), hybrid device mode, and a redesigned Home/Settings panel (src/desktop.rs).
  • Hardens the updater: bounded downloads, validated archive extraction, and transactional installs with backups and rollback (src/updater.rs).
  • Adds mouse discovery, native status reads (DPI, polling rate, switch mode) across drivers, and manual-settings ownership tracking (src/drivers/mod.rs).
  • Adds macOS app-bundle packaging with signing and notarization support (packaging/macos/build-app.sh).
  • Risk: HID input reports now use a bounded queue and overflow disconnects the session; device grouping now requires a verified nonempty serial to merge paths (src/hid.rs).

Macroscope summarized be37ad0.

snekxs and others added 10 commits October 26, 2026 14:25
98294bc keyed each HID candidate by path and refused any candidate with
more than one path ("refusing multi-path access", plus a matching
"refusing report fan-out" guard). ed5bcd9 then made a non-empty serial
the grouping identity, so every top-level collection of a device with a
serial lands in one candidate again. On Windows each collection is its
own path, so "list" failed for every serial-bearing multi-collection
mouse.

Allow several paths when every interface reports the same non-empty
serial, and keep refusing otherwise. The report path already routes to
the path that declares the report ID, so its guard now only rejects a
device with no open path.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
GET /v1/local-applications (and the PUT response) now gives each entry
an `iconId`, computed with applications::icon_id(path). The field is
response-only; saved lists are accepted with or without it.

GET /v1/applications/{iconId}/icon serves a saved local application's
icon whether or not it is running: on a cache miss it is extracted from
the saved path, and prune_application_icons keeps saved applications'
icons. It still 404s when extraction fails or off Windows.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Review follow-up on the multi-path fix. A device opened with several paths
now sends each report to exactly one of them: the paths that declare the
report (or every path, for Razer, whose descriptors are not parsed) are tried
in order and the first that takes it is the only one written, so one command
never reaches the device twice.

start_reader stores the stop flag before spawning, and a later spawn failure
stops and joins the readers already running instead of leaving them to block
session cleanup.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Replacing the saved local applications prunes the icon cache, so a removed
app's icon is no longer served. A failed extraction is not cached, so a path
that comes back later gets its icon, and an icon read while the list changed
is cached only if a saved app still owns its id.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…cal-app-icons

fix/hid serial paths local app icons
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Release v1.0.0-beta.20: HID multi-path fix and icons for saved apps
…pdater bundle-aware

- packaging/macos: build OpenMouse Bridge.app (tray-only, icon, bundled native-hid) and a dmgbuild installer window
- updater: replace the whole .app in a locked, rolling-back transaction; bare-binary installs keep the existing zip
- updater: open archives with a known zero offset so the metadata budget no longer rejects every real (>16 MiB) release archive
- release workflow: build, optionally Developer ID sign and notarize, and publish the DMG plus app update archive
@coderabbitai

coderabbitai Bot commented Oct 26, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 47 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

Run configuration
Commits

Reviewing files that changed from the base of the PR and between 4c53685 and be37ad0.

Files ignored due to path filters: 5
  • Cargo.lock is excluded by !**/*.lock
  • assets/fonts/DMSans-Variable.ttf is excluded by !**/*.ttf
  • native-hid/package-lock.json is excluded by !**/package-lock.json
  • packaging/macos/dmg-background.tiff is excluded by !**/*.tiff
  • packaging/macos/icon-1024.png is excluded by !**/*.png
Files selected for processing: 53
  • .github/workflows/ci.yml
  • .github/workflows/release.yml
  • .gitignore
  • Cargo.toml
  • README.md
  • assets/fonts/DM-Sans-OFL.txt
  • assets/fonts/DM-Sans-source.json
  • install-linux.sh
  • native-hid/README.md
  • native-hid/package.json
  • native-hid/src/apply.mjs
  • native-hid/src/automation.mjs
  • native-hid/src/automation.test.mjs
  • native-hid/src/button-listener.mjs
  • native-hid/src/hid-device-adapter.mjs
  • packaging/macos/Info.plist
  • packaging/macos/build-app.sh
  • packaging/macos/build-dmg.sh
  • packaging/macos/dmg-settings.py
  • packaging/macos/entitlements.plist
  • packaging/macos/make-assets.py
  • src/api.rs
  • src/applications.rs
  • src/buttons.rs
  • src/buttons/keymap.rs
  • src/buttons/linux.rs
  • src/buttons/macos.rs
  • src/config.rs
  • src/desktop.rs
  • src/drivers/automation.rs
  • src/drivers/automation/tests.rs
  • src/drivers/mod.rs
  • src/drivers/native_hid.rs
  • src/drivers/pulsar.rs
  • src/games.rs
  • src/hid.rs
  • src/lib.rs
  • src/local_targets.rs
  • src/main.rs
  • src/native_image.rs
  • src/native_ui.rs
  • src/overlay/linux.rs
  • src/overlay/render.rs
  • src/platform/linux.rs
  • src/platform/macos.rs
  • src/platform/mod.rs
  • src/platform/windows.rs
  • src/remote_image.rs
  • src/service.rs
  • src/updater.rs
  • src/updater/tests.rs
  • tests/backend_local_profiles.rs
  • tests/linux_startup.sh
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added area: native Native bridge and platform services area: devices HID access and device drivers area: overlay Desktop overlay area: packaging Installation and application assets area: documentation Documentation area: dependencies Dependency manifests and lockfiles area: ci Automation and build configuration labels Oct 26, 2026
@macroscopeapp

macroscopeapp Bot commented Oct 26, 2026 •

Copy link
Copy Markdown

Macroscope skipped reviewing this pull request. Per-review cost limit exceeded (workspace setting).

This review would cost an estimated $22.22, which exceeds your per-review limit of $10.00.

The top 3 files driving up this estimate:

File Diff Size Estimate
src/service.rs 95.45KB $3.28
src/desktop.rs 89.64KB $3.08
src/updater.rs 44.27KB $1.52

Tip

To get this pull request reviewed, you can:

  1. Comment @macroscope-app on this PR to request a manual review (monthly spend limits still apply).
  2. Exclude the file(s) above from review by adding a pattern to your .macroscope/ignore.md — note that creating this file replaces Macroscope's built-in default ignores rather than extending them.
  3. Raise your cost limit in your workspace billing settings.

Turn off this reminder going forward

@macroscopeapp

macroscopeapp Bot commented Oct 26, 2026 •

Copy link
Copy Markdown

Approvability

Verdict: Needs Human Approval

Macroscope's review found this PR requires human approval — This release sync introduces multiple production capabilities and behavior changes, including local profiles, native hardware automation, button injection, hybrid device ownership, a redesigned tray, remote image handling, and new macOS packaging. Its broad runtime and distribution impact warrants human review.

Notes:

  • Your repo's Minimum Blocking Severity is Off, so correctness findings do not automatically block approval.
  • Per-review cost limit exceeded (workspace setting). Approvability was decided on eligibility alone.

Review your spending limits in Billing settings, or comment @macroscope-app review this PR to bypass the limit and review now. You can add or adjust custom eligibility rules. Learn more.

@snekxs
snekxs merged commit 52024f7 into main Oct 26, 2026
9 checks passed
@snekxs
snekxs deleted the sync/main-with-beta.20 branch October 29, 2026 08:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: ci Automation and build configuration area: dependencies Dependency manifests and lockfiles area: devices HID access and device drivers area: documentation Documentation area: native Native bridge and platform services area: overlay Desktop overlay area: packaging Installation and application assets

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant