Nils Andreas Svee
4cd6da01b6
feat(managed): export managed client modules
2026-04-28 23:34:34 +07:00
Nils Andreas Svee
1f6ce97c3a
feat(managed): implement managed client runner
2026-04-28 23:34:34 +07:00
Nils Andreas Svee
2f3d3ed87d
feat(managed): implement event hub for pub/sub communication
2026-04-28 23:34:34 +07:00
Nils Andreas Svee
b83674880c
feat(managed): implement thread-safe cancellation token
2026-04-28 23:34:34 +07:00
Nils Andreas Svee
90e7239157
feat(error): introduce worker panic and subscription disconnection errors
2026-04-28 23:34:34 +07:00
Nils Andreas Svee
2f3d92ad2b
feat(client): add run status and packet count helpers
2026-04-28 23:34:34 +07:00
Nils Andreas Svee
13c32cd753
refactor(cli): restrict test utilities to test module and expand value escaping
...
Move internal test helpers to the test module to clean up the public API and add support for escaping common whitespace characters in output values.
2026-04-28 23:16:22 +07:00
Nils Andreas Svee
729d884047
perf(cli): use LineWriter for stdout to improve output responsiveness
...
Switch from BufWriter to LineWriter to ensure trace logs and events are flushed to the terminal immediately upon each line completion.
2026-04-28 23:15:54 +07:00
Nils Andreas Svee
d4d39922b0
docs(cli): add TODO for refining final drain duration logic
...
Document the need to derive the final drain period from client state rather than using a hardcoded guess.
2026-04-28 23:15:45 +07:00
Nils Andreas Svee
0229110ea0
feat(cli): implement main execution loop and network I/O logic
2026-04-28 23:06:45 +07:00
Nils Andreas Svee
d82b35ce3a
feat(cli): implement command-line argument parsing and event formatting
2026-04-28 23:06:45 +07:00
Nils Andreas Svee
1d378ed5ea
chore(cli): add dependencies for CLI implementation
2026-04-28 23:06:45 +07:00
Nils Andreas Svee
bef98b5d58
test(client): add regression tests for packet processing and RTT
2026-04-28 22:45:03 +07:00
Nils Andreas Svee
2dd57720d7
refactor(probe): improve CompletedSet eviction logic using insertion order
2026-04-28 22:45:03 +07:00
Nils Andreas Svee
a51274d6b6
fix(client): handle negative RTT and simplify sample generation
2026-04-28 22:45:03 +07:00
Nils Andreas Svee
8ae849b2db
feat(client): add specific warning kinds for dropped packets
2026-04-28 22:45:03 +07:00
Nils Andreas Svee
899506dc64
refactor(client): capture send timestamp before socket call
...
Record the send timestamp immediately before the socket operation to include local enqueue overhead in RTT measurements, providing more conservative latency data for consumers.
2026-04-28 22:38:08 +07:00
Nils Andreas Svee
6782f7b741
refactor(client): unify production and test timing logic
...
Extract internal methods that accept an optional timestamp to eliminate code duplication between primary client logic and test helpers.
2026-04-28 22:07:09 +07:00
Nils Andreas Svee
c4001407d5
test(client): add regression tests for edge cases and correctness
2026-04-28 21:55:49 +07:00
Nils Andreas Svee
8032836661
fix(client): allow partial one-way delay samples
2026-04-28 21:55:49 +07:00
Nils Andreas Svee
3534a59fce
fix(client): improve probe tracking and reply handling
2026-04-28 21:55:49 +07:00
Nils Andreas Svee
2380d76da3
refactor(client): dynamic receive buffer sizing based on negotiated parameters
2026-04-28 21:55:49 +07:00
Nils Andreas Svee
2f5d5744ea
feat(client): add configuration validation and new error types
2026-04-28 21:55:49 +07:00
Nils Andreas Svee
443040c175
refactor(client): use internal clock for timestamps and simplify probe signatures
2026-04-28 21:55:49 +07:00
Nils Andreas Svee
001a4a7cd7
test(client): add comprehensive tests for Milestone 3 probing functionality
2026-04-28 18:23:35 +07:00
Nils Andreas Svee
974fa65626
feat(client): implement core echo probe sending and receiving logic
2026-04-28 18:23:35 +07:00
Nils Andreas Svee
99fbbb9c32
feat(client): define new event types and error variants for echo probes
2026-04-28 18:23:35 +07:00
Nils Andreas Svee
0fbf775400
feat(client): add configuration options for probe timing and budgets
2026-04-28 18:23:35 +07:00
Nils Andreas Svee
0edb3fe223
feat(client): implement PendingMap and CompletedSet for probe tracking
2026-04-28 18:23:35 +07:00
Nils Andreas Svee
b71b6c1938
refactor(client): rename ClientState to ClientPhase and introduce ActiveSession
2026-04-28 18:23:35 +07:00
Nils Andreas Svee
3f902f6f2d
fix(client): Improve socket error handling and remove redundant validation
2026-04-28 17:58:31 +07:00
Nils Andreas Svee
e0a48e1d53
feat(client): Reject empty open_timeouts configuration with dedicated error
2026-04-28 17:58:31 +07:00
Nils Andreas Svee
3a523092fb
refactor(proto): Remove unused protocol flags and helper functions
2026-04-28 17:58:31 +07:00
Nils Andreas Svee
1aff30c709
build(deps): Upgrade thiserror to version 2
2026-04-28 17:58:20 +07:00
Nils Andreas Svee
a3f0cf015a
test(client): Verify socket read timeout restoration after open()
2026-04-28 16:42:33 +07:00
Nils Andreas Svee
ebc7ec1c35
refactor(client): Introduce and apply test helper for timeout servers
2026-04-28 16:42:33 +07:00
Nils Andreas Svee
b04ec41e1e
test(client): Add open() state validation tests
2026-04-28 16:42:33 +07:00
Nils Andreas Svee
afb686b046
feat(client): Validate client state and restore socket timeout on open()
2026-04-28 16:42:33 +07:00
Nils Andreas Svee
c3a75cdb0e
feat(client): Add client session state error variants
2026-04-28 16:42:33 +07:00
Nils Andreas Svee
a5696fd4d3
feat(client): Normalize IPv6 addresses without port in brackets
2026-04-28 16:42:33 +07:00
Nils Andreas Svee
cc7923e0ad
feat(irtt-client): introduce core client connection logic
2026-04-28 16:33:05 +07:00
Nils Andreas Svee
6182bc5378
refactor(irtt-client): update lib.rs for modularized client
2026-04-28 16:33:05 +07:00
Nils Andreas Svee
01d4466bc2
refactor(irtt-client): modularize client components
2026-04-28 16:33:05 +07:00
Nils Andreas Svee
7b26115a35
build(deps): upgrade thiserror to version 2
2026-04-28 16:33:05 +07:00
Nils Andreas Svee
4c9fea3c9b
feat(client): Implement initial IRTT client session management
2026-04-28 16:27:33 +07:00
Nils Andreas Svee
bc260b83e5
build(client): Add core dependencies for irtt-client
2026-04-28 16:27:33 +07:00
Nils Andreas Svee
eade39aa94
refactor(proto): Remove Clock::None and default to Clock::Both
...
Simplify clock parameter negotiation by rejecting the ambiguous 'None' value.
2026-04-28 16:15:26 +07:00
Nils Andreas Svee
82491f0f61
feat(project): Establish initial IRTT workspace and protocol definitions
...
Set up the multi-crate project structure and add the core IRTT protocol with pinned dependencies for reproducible builds.
2026-04-28 16:03:50 +07:00