Tags: KaiCreates/InputSync
Tags
fix: v1.1.2 — startup panic from double logger init (closes #2) egui_logger and tracing-subscriber both tried to install the global log backend. Only one can exist — the second .init() call panicked with "Unable to install global subscriber: SetLoggerError(())". Fix: - Remove tracing_subscriber::fmt().init() from main() - Enable "log" feature on tracing crate so tracing::info!/warn!/etc. bridge automatically to the log crate that egui_logger owns - Remove tracing-subscriber dependency (was only used for the init call) All tracing macros now reach the in-app Logs tab via egui_logger. No behavior change — log output is identical, panic is gone. Fixes: #2 Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
fix: v1.1.1 — deb conflict with input-sync + Illegal instruction (closes #1) - Cargo.toml: add Conflicts/Replaces: input-sync to deb metadata so dpkg automatically removes the old Tauri-based package on upgrade; fixes "trying to overwrite .../inputsync.png which is also in package input-sync" - Cargo.toml: bump version to 1.1.1 - CHANGELOG.md: document both fixes (deb conflict + AVX2 crash) Fixes: #1 Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
ci: rename release assets to include platform suffix (linux-x86_64 / … …windows-x86_64) - Linux: inputsync -> inputsync-linux-x86_64 - Windows: inputsync.exe -> inputsync-windows-x86_64.exe - SHA256SUMS files updated to reference new names - Release title updated to include 'Native Rust KVM Switch' tagline - Release body expanded with full v1.1.0 changelog, improved downloads table, and updated verification instructions referencing versioned filenames Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
fix: code audit + v1.0.0 release prep Code audit fixes (13 issues): - Fix #1: InputSimulator moved to dedicated std::thread — enigo now runs off the tokio executor, actual input simulation works correctly - Fix #2: Relative mouse movement — server sends deltas, client uses Coordinate::Rel; eliminates screen-resolution mismatch between machines - Fix #3: ScrollLock toggles input forwarding on server (switch mechanism); UI toggle button shares the same Arc<AtomicBool> - Fix #4: Counter-window resync in UDP receiver — tries up to 64 counters ahead before dropping; survives packet loss without permanent desync - Fix #5: client_count tracked via Arc<AtomicUsize> shared with server task; increments/decrements correctly on connect/disconnect - Fix #6: Cleaner server shutdown — capture handle dropped before server handle; TCP keep-alive loop exits on EOF or error - Fix #7: Bounded mpsc channel (512 cap) + try_send in capture thread — drops events under load instead of growing unbounded - Fix #8: Session code normalized to uppercase in server handshake and validate_code_format; case-insensitive matching - Fix #10: Extended key mappings — punctuation (-, =, [, ]) now simulate correctly; Unknown keys filtered silently instead of erroring - Fix #12: panic = "unwind" in release, strip = false — preserves stack traces for crash diagnosis - Fix #13: Simulator init errors propagated via status channel to UI Version bump: 0.1.0 → 1.0.0 Docs: LICENSE (MIT), README.md, CHANGELOG.md, CONTRIBUTING.md, SECURITY.md Co-Authored-By: Claude Sonnet 4.6 <[email protected]>