Nils Andreas Svee
89ec57d48c
feat(managed): add transactional target updates
2026-08-09 18:51:46 +07:00
Nils Andreas Svee
87b41bb379
Merge pull request #49 from Lochnair/feat/tokio-managed-task
...
feat(managed): add unified Tokio managed task
2026-08-05 00:19:17 +07:00
Nils Andreas Svee
99b6ddfead
fix(managed): preserve drain and pacing invariants
2026-08-05 00:09:46 +07:00
Nils Andreas Svee
8445c0cd99
fix(managed): harden stop and deadline ordering
2026-08-04 23:19:18 +07:00
Nils Andreas Svee
1af8afcfae
fix(managed): correct pacing and drain cleanup
2026-08-04 22:33:00 +07:00
Nils Andreas Svee
1cb6e07706
test(managed): verify unified task lifecycle
2026-08-04 20:59:42 +07:00
Nils Andreas Svee
fd3c29e63a
feat(managed): add unified Tokio managed task
2026-08-04 20:38:52 +07:00
Nils Andreas Svee
49b34bf85c
Merge pull request #48 from Lochnair/refactor/async-client-poll-core
...
refactor(client): share pollable async transactions
2026-08-04 20:10:04 +07:00
Nils Andreas Svee
a24898ada6
refactor(client): share pollable async transactions
2026-08-04 19:17:33 +07:00
Nils Andreas Svee
0f02bf54ec
Merge pull request #47 from Lochnair/feat/tokio-async-client
...
feat(client): add Tokio async client
2026-08-04 16:46:00 +07:00
Nils Andreas Svee
b67dcfb425
test(client): focus async adapter coverage
2026-08-04 16:28:27 +07:00
Nils Andreas Svee
2f7932862a
fix(client): reformat tokio dependency entry
2026-08-04 15:54:41 +07:00
Nils Andreas Svee
b1e32d543c
test(client): verify async lifecycle equivalence
2026-08-04 15:34:20 +07:00
Nils Andreas Svee
62a9c8899e
feat(client): add Tokio async client
2026-08-04 15:34:19 +07:00
Nils Andreas Svee
a542d4edf1
feat(client): add optional Tokio socket support
2026-08-04 15:29:35 +07:00
Nils Andreas Svee
069da5cee9
Merge pull request #46 from Lochnair/fix/managed-opening-drain
...
fix(managed): bound opening receiver drains
2026-08-04 14:39:23 +07:00
Nils Andreas Svee
56f54a7b4e
fix(managed): classify opening overflow as configuration
2026-08-04 14:24:40 +07:00
Nils Andreas Svee
04e7893e3e
fix(managed): bound opening receiver drains
2026-08-04 14:22:23 +07:00
Nils Andreas Svee
a2d9b5af81
Merge pull request #45 from Lochnair/fix/transactional-close
...
fix(client): make session closing transactional
2026-08-04 13:54:46 +07:00
Nils Andreas Svee
3948e3dec9
fix(client): timestamp close events after send
2026-08-04 13:44:33 +07:00
Nils Andreas Svee
ef19c45c1f
fix(managed): transact group session close
2026-08-04 13:08:38 +07:00
Nils Andreas Svee
357e1356ea
fix(client): transact blocking session close
2026-08-04 13:03:51 +07:00
Nils Andreas Svee
da731edd0d
refactor(session): prepare close transactions
2026-08-04 12:59:27 +07:00
Nils Andreas Svee
d3a18b0331
Merge pull request #43 from Lochnair/refactor/transactional-opening
...
refactor(client): make session opening transactional
2026-08-04 12:45:58 +07:00
Nils Andreas Svee
185e0bf3e4
fix(managed): drain queued opening replies before retry
2026-08-04 12:34:13 +07:00
Nils Andreas Svee
dd74f3800e
fix(client): preserve no-test opening semantics
2026-08-04 12:18:31 +07:00
Nils Andreas Svee
e270183f5d
refactor(managed): transact group session opening
2026-08-04 12:12:05 +07:00
Nils Andreas Svee
ff27ec24c6
refactor(client): transact blocking session opening
2026-08-04 12:11:32 +07:00
Nils Andreas Svee
dad4d2a298
refactor(session): prepare opening transactions
2026-08-04 12:11:32 +07:00
Nils Andreas Svee
983aec5bab
Merge pull request #44 from Lochnair/fix/probe-send-timestamps
...
fix(client): separate probe admission and send timing
2026-08-04 11:48:08 +07:00
Nils Andreas Svee
e642f962d4
fix(client): separate probe admission and send timing
2026-08-04 11:36:25 +07:00
Nils Andreas Svee
8de478777d
Merge pull request #42 from Lochnair/refactor/transactional-probes
...
refactor(client): make probe sends transactional
2026-08-04 01:13:39 +07:00
Nils Andreas Svee
9bc2ac90b3
refactor(client): commit probe sends transactionally
2026-08-04 01:04:42 +07:00
Nils Andreas Svee
b5d0b1e52e
refactor(probe): preflight pending insertion
2026-08-04 00:53:26 +07:00
Nils Andreas Svee
1a189854e7
Merge pull request #41 from Lochnair/feat/directional-codecs
...
feat(proto): add directional packet codecs
2026-08-04 00:48:25 +07:00
Nils Andreas Svee
cabe0f6c24
feat(proto): add directional echo codecs
2026-08-04 00:34:12 +07:00
Nils Andreas Svee
cc7f7fc9b2
feat(proto): add directional open and close codecs
2026-08-04 00:30:08 +07:00
Nils Andreas Svee
e908c4ce4f
refactor(proto): centralize packet envelope handling
2026-08-04 00:27:45 +07:00
Nils Andreas Svee
6ba76abca0
Merge pull request #40 from Lochnair/refactor/probe-scheduling
...
refactor(client): move probe scheduling out of SessionMachine
2026-08-04 00:16:21 +07:00
Nils Andreas Svee
1920d5e33c
test(managed): make probe pacing assertions deterministic
2026-08-04 00:11:27 +07:00
Nils Andreas Svee
22b8bb80ea
refactor(client): separate probe scheduling from session state
2026-08-04 00:11:27 +07:00
renovate[bot]
561e405d18
chore(deps): maintain cargo lockfile
2026-08-03 17:10:21 +00:00
renovate[bot]
1cb4d01746
fix(deps): update rust crate clap to 4.6.5
2026-08-04 00:06:02 +07:00
renovate[bot]
01787362f5
chore(deps): update github actions
2026-08-04 00:05:19 +07:00
Nils Andreas Svee
549efa8330
Merge pull request #38 from Lochnair/refactor/session-machine-state
...
Make session lifecycle state explicit
2026-08-03 23:41:59 +07:00
Nils Andreas Svee
4b4adc518c
refactor(session): consolidate client session lifecycle
2026-07-31 11:10:23 +07:00
Nils Andreas Svee
dc827908d9
refactor(session): separate negotiation from session state
2026-07-31 11:08:25 +07:00
Nils Andreas Svee
dfe0534905
test(managed): cover group late replies during final drain
...
Exercise a real one-target ManagedClientGroup through timeout, Draining, a gated retained reply, LateReply classification, local close, and authoritative TargetFinished publication. Synchronize release after EchoLoss and a scheduler-handled no-op update so the ordering is deterministic rather than delay-dependent.
Add a silent-server control that verifies completion only after the final-drain deadline, and assert bounded join, queued-event draining through disconnection, target counters, terminal outcome equality, and group aggregates in both cases.
Harden the analogous single-client late-drain test with a viable one-probe run window and packet-shape checks. No production final-drain behavior change was required.
2026-07-28 15:55:18 +07:00
Nils Andreas Svee
7cc55bd619
fix(managed): decouple peer-close control from event delivery
...
Add a scheduler-owned saturating peer-close counter shared with the group session. Update it before best-effort TargetFinished publication so bounded subscriber overflow cannot hide the live shutdown condition, while retaining the existing events, bounded history, and aggregate accounting.
Make grouped CLI and TUI supervision consult the durable count on each existing activity loop and funnel both count and event observations through one-shot stop policy. Preserve interruption suppression, queued-event draining, structured failures, drop reporting, and peer-close diagnostic precedence.
Cover scheduler-only accounting, non-peer exclusions, receiver and removal races, deterministic capacity-one DropOldest eviction with an active target, frontend one-shot policy, and the existing process-level peer-close and interruption behavior.
2026-07-28 15:49:53 +07:00
Nils Andreas Svee
bbe3261eb3
fix(managed): record peer closure in the receiver
...
After publishing the authenticated reply classification and session-close events, mark the target PeerClosed while the receiver still holds its lock. Wake the scheduler to publish and account for the single authoritative terminal outcome.
Add controlled-order regressions proving later scheduler sends and target removal cannot overwrite peer-close provenance, counters remain intact, and ordinary replies stay active.
2026-07-28 14:55:30 +07:00