feat: add GNOME handoff extension #6

Merged
erik merged 2 commits from feat/task-b8ac108e-gnome-handoff-extension into main 2026-07-17 11:03:28 -05:00
Owner

Summary

Add the GNOME Shell 50 handoff extension and private per-user IPC integration with the Linux receiver.

Task

#task-b8ac108e

Changes

  • Add a control-gated left-edge pressure barrier that reports logical cursor Y.
  • Report GNOME lock and unlock transitions to the Rust receiver.
  • Add private Unix-socket IPC, reconnect handling, control-state synchronization, and receiver responses.
  • Release Linux input and return control on edge or lock events.
  • Discard input queued during the Linux-to-Mac handoff race without closing the persistent connection.
  • Document extension packaging, installation, and diagnostics.

Testing

  • Rust unit tests added/updated (cargo test --all-targets, 24 tests).
  • Rust clippy and formatting pass.
  • Extension JavaScript syntax checked with node --check.
  • Extension archive validated with gnome-extensions pack and unzip -t.
  • Receiver/extension Unix-socket protocol smoke-tested on the target GNOME host.
  • Live GNOME Shell 50.1 test verified extension activation, left-edge return, persistent connection, and inactive behavior after return.

Checklist

  • Forgejo Rust and Swift CI jobs pass.
  • Documentation updated.
  • No unrelated changes included.
## Summary Add the GNOME Shell 50 handoff extension and private per-user IPC integration with the Linux receiver. ## Task #task-b8ac108e ## Changes - Add a control-gated left-edge pressure barrier that reports logical cursor Y. - Report GNOME lock and unlock transitions to the Rust receiver. - Add private Unix-socket IPC, reconnect handling, control-state synchronization, and receiver responses. - Release Linux input and return control on edge or lock events. - Discard input queued during the Linux-to-Mac handoff race without closing the persistent connection. - Document extension packaging, installation, and diagnostics. ## Testing - [x] Rust unit tests added/updated (`cargo test --all-targets`, 24 tests). - [x] Rust clippy and formatting pass. - [x] Extension JavaScript syntax checked with `node --check`. - [x] Extension archive validated with `gnome-extensions pack` and `unzip -t`. - [x] Receiver/extension Unix-socket protocol smoke-tested on the target GNOME host. - [x] Live GNOME Shell 50.1 test verified extension activation, left-edge return, persistent connection, and inactive behavior after return. ## Checklist - [x] Forgejo Rust and Swift CI jobs pass. - [x] Documentation updated. - [x] No unrelated changes included.
feat: add GNOME handoff extension
All checks were successful
CI / Rust build, lint, and test (pull_request) Successful in 11s
CI / Swift build, lint, and test (pull_request) Successful in 13s
735b644e4f
Task: #task-b8ac108e
fix: tolerate queued input after Linux handoff
All checks were successful
CI / Rust build, lint, and test (pull_request) Successful in 11s
CI / Swift build, lint, and test (pull_request) Successful in 13s
7b20b602c1
Task: #task-b8ac108e
Author
Owner

Review

Summary

The GNOME Shell 50 extension and receiver IPC implementation satisfy the handoff-extension task. Forgejo Rust and Swift CI pass, and the extension was exercised in the target GNOME Shell 50.1 Wayland session.

Acceptance criteria

  • Left-edge push reporting: the extension uses a GNOME pressure barrier gated by Linux control, reports logical cursor Y through the private Unix socket, and returned control successfully during live target-host testing.
  • Lock and unlock reporting: GNOME screen-shield transitions are sent through IPC; parsing, receiver state propagation, held-input release, and locked-state reporting are covered by tests.
  • Inactive without Linux control: the extension destroys the pressure barrier when control returns to the Mac, the receiver synchronizes control state, and inactive edge events are ignored by a dedicated test.

Blocking issues

None.

Warnings

None.

Verdict

Approved.

## Review ### Summary The GNOME Shell 50 extension and receiver IPC implementation satisfy the handoff-extension task. Forgejo Rust and Swift CI pass, and the extension was exercised in the target GNOME Shell 50.1 Wayland session. ### Acceptance criteria - [x] **Left-edge push reporting:** the extension uses a GNOME pressure barrier gated by Linux control, reports logical cursor Y through the private Unix socket, and returned control successfully during live target-host testing. - [x] **Lock and unlock reporting:** GNOME screen-shield transitions are sent through IPC; parsing, receiver state propagation, held-input release, and locked-state reporting are covered by tests. - [x] **Inactive without Linux control:** the extension destroys the pressure barrier when control returns to the Mac, the receiver synchronizes control state, and inactive edge events are ignored by a dedicated test. ### Blocking issues None. ### Warnings None. ### Verdict Approved.
erik merged commit ee68b08f95 into main 2026-07-17 11:03:28 -05:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
erik/kvshare!6
No description provided.