Commit Graph

352 Commits

Author SHA1 Message Date
Siyuan Miao 23a3aaa61d dd script to build inside docker 2025-09-25 16:27:01 +00:00
Siyuan Miao 358512fa83 cleanup 2025-09-25 15:21:08 +00:00
Siyuan Miao 70db172287 update state 2025-09-25 15:08:43 +00:00
Siyuan Miao 76c4144565 fix ipv6 address truncation 2025-09-25 13:05:50 +00:00
Siyuan Miao e9bcdc5f3f minor ui fixes 2025-09-25 13:00:29 +00:00
Siyuan Miao 028cb7ddd6 feat: add reset config and reboot buttons to UI 2025-09-25 12:35:03 +00:00
Siyuan Miao e930363b24 add locks and missing comments 2025-09-25 09:51:59 +00:00
Siyuan Miao f106d308a3 chore: use log_error in native library 2025-09-25 08:39:29 +00:00
Siyuan Miao b042adac67 fix: race condition in native library 2025-09-25 08:33:53 +00:00
Siyuan Miao e582486bec remove lldp 2025-09-24 21:05:05 +00:00
Siyuan Miao 358981128b fix(native): add video init to native start 2025-09-24 20:54:14 +00:00
Siyuan Miao b9f7b3a787 hide unfinished features 2025-09-24 16:23:28 +00:00
Siyuan Miao 0181f6d392 add native library to make build process faster 2025-09-24 09:48:20 +00:00
Siyuan Miao 4b9f869adb ignore generated include & lib files 2025-09-23 09:01:02 +00:00
Siyuan Miao f49de75c1f chore: add built ui files 2025-09-23 08:59:59 +00:00
Siyuan Miao 7c188d73d0 fix linting issues 2025-09-22 13:27:58 +00:00
Siyuan Miao b3d354e949 add no network screen 2025-09-22 13:24:33 +00:00
Siyuan Miao d8dc2a809a update development guide 2025-09-22 12:15:08 +00:00
Siyuan Miao f455d6cc18 add missing deps 2025-09-20 15:24:50 +00:00
Siyuan Miao d71b6537d2 fix deps 2025-09-20 15:24:06 +00:00
Siyuan Miao 1f9aeff313 resolve conflicts 2025-09-19 19:13:27 +00:00
Siyuan Miao 51d546d5f2 chore: upgrade deps 2025-09-19 19:12:52 +00:00
Siyuan Miao 616b625a5c chore: use UIObjSetState instead of Add+Remove 2025-09-19 19:12:30 +00:00
Siyuan Miao 82c2d6df25 remove useless lvgl config 2025-09-19 19:12:11 +00:00
Siyuan Miao 1e58e3d1bc move event handling to native 2025-09-19 19:12:11 +00:00
Siyuan Miao a05ffea205 chore: upgrade deps 2025-09-19 19:12:11 +00:00
Siyuan Miao 4f1ddc8783 refactor functions 2025-09-19 19:11:54 +00:00
Siyuan Miao 0361b24c7d remove build_afpacket from Makefile 2025-09-19 19:11:41 +00:00
Siyuan Miao aaab8beb1a feat: update github actions 2025-09-19 19:11:40 +00:00
Siyuan Miao 800100aebd feat: remove lvgl examples and demos 2025-09-19 19:11:13 +00:00
Siyuan Miao 2fcecda8c7 chore: add LV_STATE_DISABLED to obj set state 2025-09-19 19:11:13 +00:00
Siyuan Miao ff56128dc5 feat: implement about screen 2025-09-19 19:11:13 +00:00
Siyuan Miao fa1eb7332b feat: add video frame handling 2025-09-19 19:11:13 +00:00
Siyuan Miao 06ea0970eb feat: native as lib 2025-09-19 19:10:48 +00:00
Siyuan Miao 0a3e966684 fix lint issues 2025-09-19 19:09:04 +00:00
Siyuan Miao 3c67060269 feat(lldp): show neighbors in UI 2025-09-19 19:09:04 +00:00
Siyuan Miao 269222d471 feat(lldp): implement rx 2025-09-19 19:08:28 +00:00
Aveline 83caa8f82d
feat: get local version only (#813) 2025-09-19 13:45:59 +02:00
Adam Shiervani 27750b9cc2
feat: re-add keyboard and keypress report handlers to RPC (#811) 2025-09-18 17:33:08 +02:00
Adam Shiervani 5112bef19c
fix: remove unnecessary grow-0 utility from in keyboard (#810) 2025-09-18 17:02:08 +02:00
Siyuan Miao 1ffdca4fd6 build: use immediate assignment for VERSION_DEV and other vars 2025-09-18 15:41:39 +02:00
Siyuan Miao c6dba4d59f chore: bump to 0.4.7 2025-09-18 13:53:08 +02:00
Aveline afb146d78c
feat: release keyPress automatically (#796)
* feat: release keyPress automatically

* send keepalive when pressing the key

* remove logging

* clean up logging

* chore: use unreliable channel to send keepalive events

* chore: use ordered unreliable channel for pointer events

* chore: adjust auto release key interval

* chore: update logging for kbdAutoReleaseLock

* chore: update comment for KEEPALIVE_INTERVAL

* fix: should cancelAutorelease when pressed is true

* fix: handshake won't happen if webrtc reconnects

* chore: add trace log for writeWithTimeout

* chore: add timeout for KeypressReport

* chore: use the proper key to send release command

* refactor: simplify HID RPC keyboard input handling and improve key state management

- Updated `handleHidRPCKeyboardInput` to return errors directly instead of keys down state.
- Refactored `rpcKeyboardReport` and `rpcKeypressReport` to return errors instead of states.
- Introduced a queue for managing key down state updates in the `Session` struct to prevent input handling stalls.
- Adjusted the `UpdateKeysDown` method to handle state changes more efficiently.
- Removed unnecessary logging and commented-out code for clarity.

* refactor: enhance keyboard auto-release functionality and key state management

* fix: correct Windows default auto-repeat delay comment from 1ms to 1s

* refactor: send keypress as early as possible

* refactor: replace console.warn with console.info for HID RPC channel events

* refactor: remove unused NewKeypressKeepAliveMessage function from HID RPC

* fix: handle error in key release process and log warnings

* fix: log warning on keypress report failure

* fix: update auto-release keyboard interval to 225

* refactor: enhance keep-alive handling and jitter compensation in HID RPC

- Implemented staleness guard to ignore outdated keep-alive packets.
- Added jitter compensation logic to adjust timer extensions based on packet arrival times.
- Introduced new methods for managing keep-alive state and reset functionality in the Session struct.
- Updated auto-release delay mechanism to use dynamic durations based on keep-alive timing.
- Adjusted keep-alive interval in the UI to improve responsiveness.

* gofmt

* clean up code

* chore: use dynamic duration for scheduleAutoRelease

* Use harcoded timer reset value for now

* fix: prevent nil pointer dereference when stopping timers in Close method

* refactor: remove nil check for kbdAutoReleaseTimers in DelayAutoReleaseWithDuration

* refactor: optimize dependencies in useHidRpc hooks

* refactor: streamline keep-alive timer management in useKeyboard hook

* refactor: clarify comments in useKeyboard hook for resetKeyboardState function

* refactor: reduce keysDownStateQueueSize

* refactor: close and reset keysDownStateQueue in newSession function

* chore: resolve conflicts

* resolve conflicts

---------

Co-authored-by: Adam Shiervani <adam.shiervani@gmail.com>
2025-09-18 13:35:47 +02:00
Aveline 72e3013337
feat: send all paste keystrokes to backend (#789)
* feat: send all paste keystrokes to backend

* feat: cancel paste mode

* wip: send macro using hidRPC channel

* add delay

* feat: allow paste progress to be cancelled

* allow user to override delay

* chore: clear keysDownState

* fix: use currentSession.reportHidRPCKeyboardMacroState

* fix: jsonrpc.go:1142:21: Error return value is not checked (errcheck)

* fix: performance issue of Uint8Array concat

* chore: hide delay option when debugMode isn't enabled

* feat: use clientSide macro if backend doesn't support macros

* fix: update keysDownState handling

* minor issues

* refactor

* fix: send duplicated keyDownState

* chore: add max length for paste text

---------

Co-authored-by: Adam Shiervani <adam.shiervani@gmail.com>
2025-09-18 13:00:57 +02:00
Marc 25b102ac34
fix: ensure that security-key backed SSH keys are supported (#807) 2025-09-17 12:14:45 +02:00
Aveline 5c94c6c87f
chore: upgrade jetkvm native and fix the params of fadeIn / fadeOut (#808) 2025-09-17 01:38:23 +02:00
Marc Brooks cf679978be
fix(timesync): ensure that auto-update waits for time sync (#609)
- Added check to not attempt auto update if time sync is needed and not yet successful (delays 30 second to recheck).
- Added resync of time when DHCP or link state changes if online
- Added conditional* fallback from configured* NTP servers to the IP-named NTP servers, and then to the DNS named ones if that fails
- Added conditional* fallback from the configured* HTTP servers to the default DNS named ones.
- Uses the configuration* option for how many queries to run in parallel
- Added known static IPs for time servers (in case DNS resolution isn't up yet)
- Added time.cloudflare.com to fall-back NTP servers
- Added fallback to NTP via hostnames
- Logs the resultant time (and mode)
2025-09-16 15:37:02 +02:00
Marc Brooks 80a8b9e9e3
feat: Adds IPv6 disabling feature (#803)
* Allow disabling IPv6

Simply ignores any IPv6 addresses in the lease and doesn't offer them to the RPC
Also fixed display issue for IPv6 link local address.
Fixes https://github.com/orgs/jetkvm/projects/7/views/1?pane=issue&itemId=122761546&issue=jetkvm%7Ckvm%7C685

* Don't listen on disabled addresses in mDNS or web server.

* We have to set the IPv4 and IPv6 modes on the server.
2025-09-16 12:44:56 +02:00
Aveline 1717549578
fix: goroutine leak issue of cloudBlink (#801)
* fix: goroutine leak issue of cloudBlink

* chore: add lock and allow context to be cancelled earlier
2025-09-12 18:30:35 +02:00
Aveline 37b1a8bf34
docs: update pprof section of DEVELOPMENT.md (#802) 2025-09-12 11:11:28 +02:00