411 Commits

Author SHA1 Message Date
1281731a81 feat: add test-wasm task for running WebAssembly tests and simplify build-wasm command 2025-12-30 19:18:47 -06:00
8d97c29b19 docs: add test-wasm command to README for running WebAssembly tests 2025-12-30 19:18:42 -06:00
f8712b35b8 refactor: extract run function 2025-12-30 19:18:37 -06:00
0051405033 test: add initial tests for WebAssembly 2025-12-30 19:18:26 -06:00
3a14394640 feat: add go_js_wasm_exec script to increase V8 stack size for WebAssembly tests 2025-12-30 19:17:57 -06:00
2faf1fb5a2 feat: add wasm_exec.js for WebAssembly support, implementing file system, process, and crypto APIs 2025-12-30 19:17:49 -06:00
e51baa8673 test: add comprehensive tests for WASM functions including registration, stats retrieval, connection status, and message handling 2025-12-30 19:17:43 -06:00
21a0dafae6 feat: enhance chat message handling in WASM by including sender information and user-specific app data 2025-12-30 19:17:37 -06:00
156d642fe6 docs: add Go Build badge to README for CI visibility
Some checks failed
Bearer / scan (push) Successful in 36s
Go Test Multi-Platform / Test (ubuntu-latest, arm64) (push) Successful in 1m2s
Go Revive Lint / lint (push) Successful in 47s
Run Gosec / tests (push) Successful in 1m19s
Go Test Multi-Platform / Test (ubuntu-latest, amd64) (push) Successful in 2m12s
TinyGo Build / tinygo-build (tinygo-build, tinygo-default, reticulum-go-tinygo, ) (pull_request) Failing after 1m12s
TinyGo Build / tinygo-build (tinygo-wasm, tinygo-wasm, reticulum-go.wasm, wasm) (pull_request) Failing after 56s
Go Build Multi-Platform / build (amd64, freebsd) (push) Successful in 58s
Go Build Multi-Platform / build (arm, linux) (push) Successful in 54s
Go Build Multi-Platform / build (arm64, freebsd) (push) Successful in 40s
Go Build Multi-Platform / build (amd64, windows) (push) Successful in 56s
Go Build Multi-Platform / build (arm64, windows) (push) Successful in 39s
Go Build Multi-Platform / build (wasm, js) (push) Successful in 37s
Generate SBOM / generate-sbom (push) Successful in 36s
Go Build Multi-Platform / build (amd64, darwin) (push) Successful in 9m25s
Go Build Multi-Platform / build (amd64, linux) (push) Successful in 9m23s
Go Build Multi-Platform / build (arm, freebsd) (push) Successful in 9m25s
Go Build Multi-Platform / build (arm, windows) (push) Successful in 9m23s
Go Build Multi-Platform / build (arm64, darwin) (push) Successful in 9m25s
Go Build Multi-Platform / build (arm64, linux) (push) Successful in 9m25s
Go Build Multi-Platform / Create Release (push) Successful in 11s
v0.6.0
2025-12-30 12:41:36 -06:00
20a1da6a56 docs: update README
All checks were successful
Bearer / scan (push) Successful in 29s
Go Build Multi-Platform / build (amd64, darwin) (push) Successful in 47s
Go Build Multi-Platform / build (amd64, freebsd) (push) Successful in 42s
Go Build Multi-Platform / build (amd64, linux) (push) Successful in 35s
Go Build Multi-Platform / build (amd64, windows) (push) Successful in 33s
Go Build Multi-Platform / build (arm, freebsd) (push) Successful in 37s
Go Build Multi-Platform / build (arm, linux) (push) Successful in 36s
Go Build Multi-Platform / build (arm64, freebsd) (push) Successful in 32s
Go Build Multi-Platform / build (arm64, darwin) (push) Successful in 34s
Go Revive Lint / lint (push) Successful in 44s
Run Gosec / tests (push) Successful in 49s
Go Build Multi-Platform / build (arm, windows) (push) Successful in 9m25s
Go Build Multi-Platform / build (arm64, windows) (push) Successful in 9m22s
Go Build Multi-Platform / build (arm64, linux) (push) Successful in 9m25s
Go Build Multi-Platform / build (wasm, js) (push) Successful in 9m25s
Go Build Multi-Platform / Create Release (push) Has been skipped
Go Test Multi-Platform / Test (ubuntu-latest, arm64) (push) Successful in 18m50s
Go Test Multi-Platform / Test (ubuntu-latest, amd64) (push) Successful in 19m4s
2025-12-30 12:35:44 -06:00
0a3d0c9440 refactor: update bandwidth checks in announce forwarding logic to prevent overload 2025-12-30 12:35:32 -06:00
04bd23e753 refactor: adjust rate limiter configuration in AnnounceManager for improved performance 2025-12-30 12:35:21 -06:00
a01b253473 refactor: update Limiter implementation to use capacity instead of interval and adjust related tests 2025-12-30 12:35:15 -06:00
53b981cb21 refactor: remove unused hops parameter from ReceivedAnnounce method in WASM handler
All checks were successful
Bearer / scan (push) Successful in 28s
Go Build Multi-Platform / build (amd64, darwin) (push) Successful in 35s
Go Build Multi-Platform / build (amd64, freebsd) (push) Successful in 33s
Go Build Multi-Platform / build (amd64, linux) (push) Successful in 32s
Go Build Multi-Platform / build (amd64, windows) (push) Successful in 32s
Go Build Multi-Platform / build (arm, freebsd) (push) Successful in 35s
Go Build Multi-Platform / build (arm, linux) (push) Successful in 34s
Go Build Multi-Platform / build (arm, windows) (push) Successful in 32s
Go Build Multi-Platform / build (arm64, darwin) (push) Successful in 35s
Go Build Multi-Platform / build (arm64, freebsd) (push) Successful in 34s
Go Build Multi-Platform / build (arm64, windows) (push) Successful in 31s
Go Build Multi-Platform / build (arm64, linux) (push) Successful in 33s
Go Build Multi-Platform / build (wasm, js) (push) Successful in 39s
Go Test Multi-Platform / Test (ubuntu-latest, arm64) (push) Successful in 1m6s
Go Revive Lint / lint (push) Successful in 53s
Run Gosec / tests (push) Successful in 1m22s
Go Test Multi-Platform / Test (ubuntu-latest, amd64) (push) Successful in 1m33s
Go Build Multi-Platform / Create Release (push) Has been skipped
2025-12-30 12:32:55 -06:00
6cc82159cf refactor: update WASM build commands in Taskfile to specify the correct package path for Reticulum
Some checks failed
Bearer / scan (push) Successful in 36s
Go Build Multi-Platform / build (amd64, freebsd) (push) Successful in 34s
Go Build Multi-Platform / build (arm, linux) (push) Successful in 31s
Go Build Multi-Platform / build (amd64, windows) (push) Successful in 33s
Go Build Multi-Platform / build (arm64, linux) (push) Successful in 30s
Go Build Multi-Platform / build (arm64, windows) (push) Successful in 33s
Go Build Multi-Platform / build (wasm, js) (push) Failing after 33s
Go Test Multi-Platform / Test (ubuntu-latest, arm64) (push) Successful in 58s
Go Revive Lint / lint (push) Successful in 1m0s
Go Test Multi-Platform / Test (ubuntu-latest, amd64) (push) Successful in 1m36s
Run Gosec / tests (push) Successful in 1m10s
Go Build Multi-Platform / build (amd64, darwin) (push) Successful in 9m23s
Go Build Multi-Platform / build (amd64, linux) (push) Successful in 9m25s
Go Build Multi-Platform / build (arm, freebsd) (push) Successful in 9m23s
Go Build Multi-Platform / build (arm64, darwin) (push) Successful in 9m23s
Go Build Multi-Platform / build (arm, windows) (push) Successful in 9m25s
Go Build Multi-Platform / build (arm64, freebsd) (push) Successful in 9m25s
Go Build Multi-Platform / Create Release (push) Has been skipped
2025-12-30 12:28:09 -06:00
5a9bfd74d3 feat: add WASM package with JavaScript API for Reticulum integration 2025-12-30 12:27:59 -06:00
1c3de51913 feat: implement main entry point for WebAssembly (WASM) application with JS integration 2025-12-30 12:27:55 -06:00
25e0719954 fix: handle error when generating random tag in RequestPath method
All checks were successful
Go Build Multi-Platform / build (amd64, darwin) (push) Successful in 31s
Go Build Multi-Platform / build (arm, freebsd) (push) Successful in 32s
Bearer / scan (push) Successful in 7s
Go Build Multi-Platform / build (amd64, linux) (push) Successful in 32s
Go Build Multi-Platform / build (arm, windows) (push) Successful in 32s
Go Build Multi-Platform / build (wasm, js) (push) Successful in 44s
Go Build Multi-Platform / build (arm64, windows) (push) Successful in 47s
Go Test Multi-Platform / Test (ubuntu-latest, arm64) (push) Successful in 51s
Go Revive Lint / lint (push) Successful in 1m1s
Go Test Multi-Platform / Test (ubuntu-latest, amd64) (push) Successful in 1m44s
Run Gosec / tests (push) Successful in 1m7s
Go Build Multi-Platform / build (amd64, freebsd) (push) Successful in 9m23s
Go Build Multi-Platform / build (amd64, windows) (push) Successful in 9m25s
Go Build Multi-Platform / build (arm, linux) (push) Successful in 9m23s
Go Build Multi-Platform / build (arm64, freebsd) (push) Successful in 9m23s
Go Build Multi-Platform / build (arm64, darwin) (push) Successful in 9m25s
Go Build Multi-Platform / build (arm64, linux) (push) Successful in 9m25s
Go Build Multi-Platform / Create Release (push) Has been skipped
2025-12-30 12:13:49 -06:00
cbff6e4bc4 refactor: optimize WASM build command in Taskfile by adding ldflags for smaller output 2025-12-30 12:09:35 -06:00
4d6eda36c0 feat: add support for building WebAssembly (WASM) targets in CI workflow 2025-12-30 12:09:29 -06:00
18200213f0 feat: add FromBytes function to create Identity from a 64-byte private key representation
Some checks failed
Go Build Multi-Platform / build (amd64, freebsd) (push) Successful in 32s
Go Build Multi-Platform / build (amd64, windows) (push) Successful in 33s
Go Build Multi-Platform / build (arm, linux) (push) Successful in 31s
Go Build Multi-Platform / build (arm64, windows) (push) Successful in 43s
Go Build Multi-Platform / build (arm64, linux) (push) Successful in 46s
Go Test Multi-Platform / Test (ubuntu-latest, arm64) (push) Successful in 50s
Bearer / scan (push) Successful in 33s
Go Test Multi-Platform / Test (ubuntu-latest, amd64) (push) Successful in 1m42s
Go Revive Lint / lint (push) Successful in 1m0s
Run Gosec / tests (push) Failing after 1m7s
Go Build Multi-Platform / build (amd64, darwin) (push) Successful in 9m23s
Go Build Multi-Platform / build (amd64, linux) (push) Successful in 9m26s
Go Build Multi-Platform / build (arm, freebsd) (push) Successful in 9m24s
Go Build Multi-Platform / build (arm, windows) (push) Successful in 9m26s
Go Build Multi-Platform / build (arm64, darwin) (push) Successful in 9m24s
Go Build Multi-Platform / build (arm64, freebsd) (push) Successful in 9m26s
Go Build Multi-Platform / Create Release (push) Has been skipped
2025-12-30 11:42:48 -06:00
3cb375e7f2 refactor: update timeout check in PacketReceipt to use time.Since to fix deadlock
Some checks failed
Bearer / scan (push) Successful in 7s
Go Build Multi-Platform / build (amd64, darwin) (push) Successful in 32s
Go Build Multi-Platform / build (amd64, linux) (push) Successful in 34s
Go Build Multi-Platform / build (arm, freebsd) (push) Successful in 33s
Go Build Multi-Platform / build (arm, windows) (push) Successful in 34s
Go Build Multi-Platform / build (arm64, windows) (push) Successful in 36s
Go Test Multi-Platform / Test (ubuntu-latest, arm64) (push) Successful in 1m2s
Go Revive Lint / lint (push) Successful in 51s
Run Gosec / tests (push) Failing after 1m19s
Go Test Multi-Platform / Test (ubuntu-latest, amd64) (push) Successful in 1m38s
Go Build Multi-Platform / build (amd64, freebsd) (push) Successful in 9m24s
Go Build Multi-Platform / build (amd64, windows) (push) Successful in 9m26s
Go Build Multi-Platform / build (arm, linux) (push) Successful in 9m24s
Go Build Multi-Platform / build (arm64, linux) (push) Successful in 9m22s
Go Build Multi-Platform / build (arm64, darwin) (push) Successful in 9m26s
Go Build Multi-Platform / build (arm64, freebsd) (push) Successful in 9m25s
Go Build Multi-Platform / Create Release (push) Has been skipped
2025-12-30 11:31:51 -06:00
53d418d753 refactor: update Taskfile to change output paths for WASM build and add example tasks for various functionalities
Some checks failed
Bearer / scan (push) Successful in 28s
Go Build Multi-Platform / build (amd64, freebsd) (push) Successful in 28s
Go Build Multi-Platform / build (arm, linux) (push) Successful in 31s
Go Build Multi-Platform / build (amd64, windows) (push) Successful in 33s
Go Build Multi-Platform / build (arm64, linux) (push) Successful in 47s
Go Build Multi-Platform / build (arm64, windows) (push) Successful in 45s
Go Test Multi-Platform / Test (ubuntu-latest, arm64) (push) Successful in 48s
Go Revive Lint / lint (push) Successful in 53s
Go Test Multi-Platform / Test (ubuntu-latest, amd64) (push) Successful in 1m38s
Run Gosec / tests (push) Failing after 1m6s
Go Build Multi-Platform / build (amd64, darwin) (push) Successful in 9m23s
Go Build Multi-Platform / build (arm, freebsd) (push) Successful in 9m23s
Go Build Multi-Platform / build (amd64, linux) (push) Successful in 9m25s
Go Build Multi-Platform / build (arm64, darwin) (push) Successful in 9m23s
Go Build Multi-Platform / build (arm, windows) (push) Successful in 9m25s
Go Build Multi-Platform / build (arm64, freebsd) (push) Successful in 9m25s
Go Build Multi-Platform / Create Release (push) Has been skipped
2025-12-30 11:14:37 -06:00
ac0407c954 refactor: update path request handling to use transportIdentity and improve logging with packet length 2025-12-30 01:30:35 -06:00
83abefcf43 refactor: update TestLinkProofValidation to use new ValidateLinkProof signature with network interface parameter 2025-12-30 01:27:58 -06:00
3d4b77bee3 refactor: add SIZE_48 and TOKEN_OVERHEAD constants to common size constants in constants.go 2025-12-30 01:27:50 -06:00
71b6032ea4 refactor: update ValidateLinkProof method to include network interface parameter for enhanced validation 2025-12-30 01:27:45 -06:00
3675d63418 refactor: modify ValidateLinkProof method to accept a network interface parameter for enhanced validation 2025-12-30 01:27:41 -06:00
37652b2d33 refactor: update ValidateLinkProof method to include network interface parameter for improved link validation 2025-12-30 01:27:36 -06:00
5c19b76367 fix: improve error handling in DeriveKey function to return errors for empty secret and zero length key requests 2025-12-30 01:27:30 -06:00
f96af89269 refactor: improve path request handling and link packet processing with enhanced logging and error management 2025-12-30 01:27:21 -06:00
6704c620c8 refactor: enhance link handling by adding detailed logging for request processing, establishing links, and improving error handling during encryption and decryption 2025-12-30 01:27:16 -06:00
738aa9528a refactor: encryption and decryption methods by deriving HMAC and encryption keys based on key length, and update HMAC validation logic
All checks were successful
Go Build Multi-Platform / build (amd64, darwin) (push) Successful in 38s
Go Build Multi-Platform / build (arm, windows) (push) Successful in 32s
Bearer / scan (push) Successful in 7s
Go Build Multi-Platform / build (arm, freebsd) (push) Successful in 34s
Go Build Multi-Platform / build (amd64, linux) (push) Successful in 37s
Go Build Multi-Platform / build (arm64, windows) (push) Successful in 31s
Go Test Multi-Platform / Test (ubuntu-latest, arm64) (push) Successful in 59s
Go Revive Lint / lint (push) Successful in 48s
Run Gosec / tests (push) Successful in 1m18s
Go Test Multi-Platform / Test (ubuntu-latest, amd64) (push) Successful in 1m32s
Go Build Multi-Platform / build (amd64, freebsd) (push) Successful in 9m26s
Go Build Multi-Platform / build (amd64, windows) (push) Successful in 9m24s
Go Build Multi-Platform / build (arm, linux) (push) Successful in 9m26s
Go Build Multi-Platform / build (arm64, darwin) (push) Successful in 9m24s
Go Build Multi-Platform / build (arm64, linux) (push) Successful in 9m24s
Go Build Multi-Platform / build (arm64, freebsd) (push) Successful in 9m26s
Go Build Multi-Platform / Create Release (push) Has been skipped
2025-12-29 23:59:58 -06:00
ff1589216b fix: simplify dependency installation step in CI workflow by renaming task and removing unnecessary setup step 2025-12-29 23:59:05 -06:00
3af2be27d8 cleanup: remove extra comments
All checks were successful
Bearer / scan (push) Successful in 31s
Go Build Multi-Platform / build (amd64, freebsd) (push) Successful in 32s
Go Build Multi-Platform / build (amd64, windows) (push) Successful in 31s
Go Build Multi-Platform / build (arm, linux) (push) Successful in 31s
Go Build Multi-Platform / build (arm64, windows) (push) Successful in 44s
Go Build Multi-Platform / build (arm64, linux) (push) Successful in 47s
Go Test Multi-Platform / Test (ubuntu-latest, arm64) (push) Successful in 54s
Go Revive Lint / lint (push) Successful in 1m5s
Go Test Multi-Platform / Test (ubuntu-latest, amd64) (push) Successful in 1m50s
Run Gosec / tests (push) Successful in 1m10s
Go Build Multi-Platform / build (amd64, darwin) (push) Successful in 9m23s
Go Build Multi-Platform / build (arm, freebsd) (push) Successful in 9m23s
Go Build Multi-Platform / build (amd64, linux) (push) Successful in 9m25s
Go Build Multi-Platform / build (arm, windows) (push) Successful in 9m25s
Go Build Multi-Platform / build (arm64, darwin) (push) Successful in 9m23s
Go Build Multi-Platform / build (arm64, freebsd) (push) Successful in 9m25s
Go Build Multi-Platform / Create Release (push) Has been skipped
2025-12-29 23:50:03 -06:00
8e777bef03 refactor: update encryption and decryption processes by deriving key material for HMAC and encryption separately, and improve HMAC validation logic 2025-12-29 23:46:33 -06:00
220912989e fix: improve error handling for incoming link requests by logging errors when handling fails 2025-12-29 23:45:36 -06:00
177dc3a099 test: add comprehensive tests for link request handling and response processing, including mock transport and interface implementations
Some checks failed
Bearer / scan (push) Successful in 27s
Go Build Multi-Platform / build (amd64, freebsd) (push) Successful in 34s
Go Build Multi-Platform / build (arm, linux) (push) Successful in 31s
Go Build Multi-Platform / build (amd64, windows) (push) Successful in 33s
Go Build Multi-Platform / build (arm64, linux) (push) Successful in 43s
Go Build Multi-Platform / build (arm64, windows) (push) Successful in 38s
Go Test Multi-Platform / Test (ubuntu-latest, arm64) (push) Successful in 47s
Go Revive Lint / lint (push) Successful in 1m4s
Go Test Multi-Platform / Test (ubuntu-latest, amd64) (push) Successful in 1m41s
Run Gosec / tests (push) Failing after 1m10s
Go Build Multi-Platform / build (amd64, linux) (push) Successful in 9m24s
Go Build Multi-Platform / build (amd64, darwin) (push) Successful in 9m26s
Go Build Multi-Platform / build (arm, windows) (push) Successful in 9m24s
Go Build Multi-Platform / build (arm, freebsd) (push) Successful in 9m26s
Go Build Multi-Platform / build (arm64, freebsd) (push) Successful in 9m24s
Go Build Multi-Platform / build (arm64, darwin) (push) Successful in 9m26s
Go Build Multi-Platform / Create Release (push) Has been skipped
2025-12-29 23:29:04 -06:00
df3497b725 refactor: streamline request handling logic by consolidating type checks for requested_at and request_payload, and rename max function for clarity 2025-12-29 23:28:56 -06:00
e3d65525b8 feat: add TODOs for path table persistence and improve packet handling logic in transport 2025-12-29 23:27:32 -06:00
474bb2ff33 feat: enhance destination handling by auto-registering with transport for incoming directions and adding packet reception logic 2025-12-29 23:27:23 -06:00
5707c230e2 fix: update request handling to support multiple data types for requested_at, path_hash, and request_payload, and improve logging for request processing 2025-12-29 23:27:16 -06:00
4ae59c9716 feat: implement WebSocketInterface for handling WebSocket connections in WASM environment
All checks were successful
Bearer / scan (push) Successful in 24s
Go Build Multi-Platform / build (amd64, freebsd) (push) Successful in 30s
Go Build Multi-Platform / build (arm, linux) (push) Successful in 30s
Go Build Multi-Platform / build (amd64, windows) (push) Successful in 33s
Go Build Multi-Platform / build (arm64, linux) (push) Successful in 40s
Go Build Multi-Platform / build (arm64, windows) (push) Successful in 38s
Go Test Multi-Platform / Test (ubuntu-latest, arm64) (push) Successful in 48s
Go Revive Lint / lint (push) Successful in 1m3s
Go Test Multi-Platform / Test (ubuntu-latest, amd64) (push) Successful in 1m37s
Run Gosec / tests (push) Successful in 1m11s
Go Build Multi-Platform / build (amd64, darwin) (push) Successful in 9m22s
Go Build Multi-Platform / build (amd64, linux) (push) Successful in 9m24s
Go Build Multi-Platform / build (arm, freebsd) (push) Successful in 9m22s
Go Build Multi-Platform / build (arm64, darwin) (push) Successful in 9m22s
Go Build Multi-Platform / build (arm, windows) (push) Successful in 9m24s
Go Build Multi-Platform / build (arm64, freebsd) (push) Successful in 9m24s
Go Build Multi-Platform / Create Release (push) Has been skipped
2025-12-29 23:00:53 -06:00
59060d6002 feat: add TCPClientInterface methods for setting timeouts on Linux and OSX in new tcp_wasm.go file 2025-12-29 23:00:48 -06:00
ed413b62a1 fix: update wasm_exec.js copy logic to check both lib and misc directories for improved compatibility 2025-12-29 23:00:43 -06:00
b60d91aa17 refactor: buffer, channel, rate, and resolver packages to introduce constants for magic numbers 2025-12-29 22:38:39 -06:00
d465f103ec Add 'bearer:disable go_gosec_unsafe_unsafe' comments in tcp_linux.go to suppress specific security scanner warnings related to unsafe operations.
All checks were successful
Bearer / scan (push) Successful in 7s
Go Build Multi-Platform / build (amd64, darwin) (push) Successful in 31s
Go Build Multi-Platform / build (amd64, linux) (push) Successful in 33s
Go Build Multi-Platform / build (arm, windows) (push) Successful in 31s
Go Build Multi-Platform / build (arm, freebsd) (push) Successful in 33s
Go Build Multi-Platform / build (arm64, windows) (push) Successful in 34s
Go Test Multi-Platform / Test (ubuntu-latest, arm64) (push) Successful in 1m0s
Go Revive Lint / lint (push) Successful in 48s
Run Gosec / tests (push) Successful in 1m17s
Go Test Multi-Platform / Test (ubuntu-latest, amd64) (push) Successful in 1m36s
Go Build Multi-Platform / build (amd64, freebsd) (push) Successful in 9m23s
Go Build Multi-Platform / build (amd64, windows) (push) Successful in 9m25s
Go Build Multi-Platform / build (arm, linux) (push) Successful in 9m23s
Go Build Multi-Platform / build (arm64, darwin) (push) Successful in 9m25s
Go Build Multi-Platform / build (arm64, freebsd) (push) Successful in 9m23s
Go Build Multi-Platform / build (arm64, linux) (push) Successful in 9m25s
Go Build Multi-Platform / Create Release (push) Has been skipped
2025-12-29 22:33:17 -06:00
fcfd04c0c2 Add 'bearer:disable go_gosec_filesystem_filereadtaint' comments to file loading functions across config and identity modules to suppress specific security scanner warnings 2025-12-29 22:33:07 -06:00
b25f2c2bdc Refactor Channel message handler management to use structured entries with IDs for easier identification. Update AddMessageHandler and RemoveMessageHandler methods accordingly, and adjust tests to validate new functionality. 2025-12-29 22:32:57 -06:00
7bb127526c Refactor RawChannelReader to use a map for callbacks instead of a slice, enabling callback identification by ID. Update AddReadyCallback and RemoveReadyCallback methods accordingly. Adjust tests to reflect these changes. 2025-12-29 22:32:49 -06:00