Conversation
Bumps [postcss](https://github.com/postcss/postcss) from 8.5.15 to 8.5.25. - [Release notes](https://github.com/postcss/postcss/releases) - [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md) - [Commits](postcss/postcss@8.5.15...8.5.25) --- updated-dependencies: - dependency-name: postcss dependency-version: 8.5.25 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com>
* Adorime Anal Vibrator 2 * Galaku F1
Added: * JoyHub Prax * JoyHub Poptint * JoyHub Tauros Altered: * JoyHub Mowgli II (rotate to oscillate) * JoyHub Marino (fix constrict index)
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
F1S V3 hardware lacks the f1sv2 protocol's rx (00000a04) characteristic, so initialization failed with 'Characteristic rx not found'. V3 devices use the Harmony BLE layout (service 0xFFF0, command 0xFFF1, tx 0xFFF2, auth 0x0A11), which the lelo-harmony protocol already implements: its initializer runs the same authorization handshake on the whitelist endpoint and its vibrate command writes identical bytes to tx. The F1SV3 device definition moves to lelo-harmony, keeping its existing definition id so device-level user configuration references remain stable. Device config bumped to 5.42. Fixes #920
Bumps [nanoid](https://github.com/ai/nanoid) from 3.3.12 to 3.3.18. - [Release notes](https://github.com/ai/nanoid/releases) - [Changelog](https://github.com/ai/nanoid/blob/3.3.18/CHANGELOG.md) - [Commits](ai/nanoid@3.3.12...3.3.18) --- updated-dependencies: - dependency-name: nanoid dependency-version: 3.3.18 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com>
`readValue()` resolves to a DataView. `Uint8Array::new(&data_view)` treats it as a plain array-like (length undefined) and yields an empty array, so the subsequent `copy_to` length assertion panics and kills the wasm instance. Any protocol that performs a hardware read during init (e.g. sensee-v2) dies right after chooser pairing. Build the Uint8Array over the DataView's underlying buffer instead, honoring its byte offset/length — the Subscribe notification handler already uses the buffer-based pattern. Verified against a physical Sensee Capsule (CCPA10S2) via Chrome/macOS: the device identifies and runs through the browser embedded server. Fixes #941 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QitzJcyNqb1CHnMJ8rcZP1
- SocketBindError now wraps a SocketAddr - ButtplugWebsocketServerTransport now wraps a SocketAddr - ButtplugWebsocketServerTransportBuilder now takes a SocketAddr - intiface_engine sprouts a new CLI option and either passes in or computes the right string for EngineOptions and later parses that to hand to the ButtplugWebsocketServerTransportBuilder.
…dress The listen address changes in 54b2a9c replaced the builder's port() with listen_address() and folded the port into SocketBindError's SocketAddr. Update the bind-in-use test to construct a SocketAddr, match the new error shape, and assert on the full address.
The web-sys WebBluetooth bindings are gated behind the web_sys_unstable_apis cfg, which .cargo/config.toml only sets for wasm32-unknown-unknown rustflags, so this crate cannot compile for native targets. Gate the modules and re-exports behind cfg(target_arch = "wasm32") and move the wasm-only dependencies into a wasm32 target dependency table so native workspace builds no longer break on this crate and never unify its wasm-flavored buttplug_core/buttplug_server feature requests, which would make native server code call wasm-bindgen imports and panic at runtime.
* Sexverse Aether * Sexverse Sirius Also fixing the sexverse-v5 yml
…fier Adds the SdlGamepadSpecifier enum variant, schema component, protocol YAML (two 0-65535 vibrate features, low/high motors), and the regenerated device config (v5.43). Structural inspiration: chiefautism's abandoned PR #860.
The SDL3 gamepad hardware manager builds SDL from source via cmake (build-from-source-static). SDL's configure step hard-fails when neither X11 nor Wayland development libraries are present, which broke the ubuntu build job. Install the X11 and Wayland dev package set (plus ALSA headers) so SDL configures with both desktop backends available.
The SDL gamepad hardware manager only uses the gamepad (joystick/hidapi) and rumble (haptic) surfaces of SDL, but was building SDL with every subsystem autodetected. On Linux that made the cmake configure step hard-require X11 or Wayland dev libraries, and soft-warn about ALSA, neither of which a headless gamepad service needs. Prune the SDL build to gamepad-only via sdl3-sys features: audio, video (with its gpu/render/camera dependents), dialog, and tray are compiled out; joystick, haptic, hidapi, power, and sensor stay on. Enable sdl-unix-console-build so SDL's unix configure no longer demands X11 or Wayland when video is disabled. SDL now configures and links with no display or audio stack present, so CI needs no extra apt packages (revert the previous apt additions). Verified locally on macOS: cmake cache shows AUDIO/VIDEO/DIALOG/TRAY off and JOYSTICK/HAPTIC/HIDAPI on; the sdl3_thread_spike example passes, including enumeration and rumble-capability queries of a real DualSense controller.
Development-time diagnostic for validating headless SDL init and gamepad enumeration on a dedicated thread; the production factory and CI coverage make it redundant. Drop the example target, its CI step, and the README reference.
A command's reply can arrive before the loop-top pass that follows it, so asserting driver state right after a single scan races the loop thread. The existing barrier() helper (two commands) guarantees the intervening pass has run; three rumble-refresh and disconnect tests asserted after a single scan instead and failed on windows CI, which was the first runner to lose that race. Update the deadline re-arm, disconnect-stops-rumble, and connected-removal cases to barrier probes.
The comm manager re-emitted DeviceFound for every visible gamepad on every timed-retry tick, so connected pads logged a found line each second. Scan results now carry the pad's open state (computed on the SDL thread from the open pad table) and the manager skips open pads with a debug log, while continuing to re-offer unopened pads so the server can retry failed connects.
Bump sdl3 to 0.20.0 and sdl3-sys to 0.7.1 (feature set unchanged: the 0.6.8 and 0.7.1 feature lists are identical). JoystickId became a proper newtype with a private field in 0.20.0, so raw instance-id accesses move from tuple field `.0` to the new `.raw()` accessor; no behavioral change. Runtime (keepalive/dither/hardware) revalidation on SDL 3.4.16 is pending and recorded as such in the README. Picks up upstream joystick fixes including Joy-Con partial-user-calibration handling (SDL issue 8085 class).
Add a BatteryLevel command to the SDL thread protocol, mirroring SetRumbleState: id + generation guards (stale or removed handles get SdlTaskError::Removed), with the percent sourced from the opened pad's DriverGamepad::battery_percent. The production override maps Gamepad::power_info via power_info_to_percent (Charged=100, battery states clamp 0-100, wired/unknown/error states report distinct errors). A failed battery read is a reporting error, not device loss: the pad is never evicted (follow-up rumble still works). Plumbing runs through SdlTaskHandle/SdlOpenedGamepadHandle and the async SdlOpenedGamepad seam; fakes implement the new surface with a configurable battery result map. Tests: power-level/percentage policy table, command round trip, default unsupported error, stale-generation rejection, and error-does-not-evict.
SDL hardware now advertises Endpoint::Rx alongside Tx and serves read_value on it: the read awaits the opened gamepad's battery_level through the SDL thread, maps task errors via hardware_error, and returns a one-byte percent HardwareReading. Reads on any other endpoint stay UnhandledCommand errors. The test mock's battery became configurable. The sdl-gamepad protocol handler gains handle_battery_level_cmd: it issues a one-byte HardwareReadCmd on rx and wraps the returned byte as InputTypeReading::Battery in an InputReadingV4, mirroring the peer battery protocols (kiiroo-powershot shape). Tests: rx read round trip + error mapping, non-rx rejection, endpoint list, and protocol wrapping with a fake readable hardware internal.
…on coverage Add a shared battery input feature (0-100, Read) to all three sdl-gamepad definitions at indices 2/4/2, so capability does not vary by layout; device config regenerates to v5.55. Saved user configs for sdl-gamepad devices are feature-count invalidated and rebuild from base (the disabled-channel test fixture gains the battery stub, matching how input features appear in user configs). The SDL test device now exposes rx alongside tx, mirroring production. New test_sdl_gamepad_battery.yaml covers the full client -> server -> protocol -> hardware-read path with a canned 57% response on rx, version-gated to v2+ and registered for v2/v3/v4 (embedded + json); advertised-definition tests assert the battery feature index and unchanged vibrate features in every layout. Fix a pre-existing v2 reply conversion bug this coverage exposed: battery replies to v2 clients now convert directly from the v4 input reading (the v4->v3->v2 route required a v3 SensorReadCmd request context a v2 client never sends, so the reply was dropped and the request hung). Lovense v2 battery tests passed only because their read runs in an un-awaited spawned task.
|
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.