Skip to content

v0.36.0 - 203d0dab72f6ef5023421fc64dd847ca2dce1864

Choose a tag to compare

@github-actions github-actions released this 23 Sep 18:34
· 164 commits to main since this release
Immutable release. Only release title and notes can be modified.
203d0da

Commits in v0.36.0 (HEAD)

  • feat(ws): rsrpc-ws skeleton with config, error and message types (6d9d4f4)
  • feat(ws): async server with bounded queues, keepalive and shutdown (6d06911)
  • feat(types): rsrpc-types with Arc ids, cmd and user modules (20ee90f)
  • feat(protocol): rsrpc-protocol with typed errors and Arc-shared payloads (89f6942)
  • feat(types): Box conversions and TimeoutValue accessor (9ce7aaa)
  • refactor(lib): re-export types/protocol with Arc payloads and typed errors (ee9fd86)
  • feat(transport-ws): game WS transport over rsrpc-ws without map lock contention (1d18abd)
  • feat(transport-ipc): async IPC transport with JoinSet lifecycle (ab7248b)
  • feat(state): rsrpc-state snapshot slots with caller version (65cfd1e)
  • refactor(protocol): canonical query_params shared by transports (a90d444)
  • feat(bridge): async activity bridge with dirty-gated snapshots (31b1cac)
  • feat(telemetry): rsrpc-telemetry gauges, RSS and census rendering (f61e859)
  • feat(proc-events): rsrpc-proc-events watcher with shared gauge sink (fff1fc0)
  • feat(steam): rsrpc-steam VDF provider with hermetic tests (69eadde)
  • feat(detect): rsrpc-detect database module with bundled snapshot (95ff1f1)
  • feat(detect): process scanner split with lock-free generation swaps (d9c1c63)
  • feat(core): rsrpc-core daemon wiring with run_until shutdown (4643436)
  • feat(cli): thin async CLI over Daemon with tokio signal handling (30aafd6)
  • refactor!: remove legacy lib, wire workspace lints and CI paths (43262b4)
  • fix(core): move database into scanner instead of cloning and retaining it (8e5139c)
  • perf: drop chrono, lazy fallback, inlines, reused IPC frame buffers (ba2daea)
  • perf: snapshot slots without deep clone, borrow args map (9e65707)
  • perf: carry is_clear on payloads instead of re-parsing (bcbb3b8)
  • perf: FxHashMap on u64-keyed hot maps with bench proof (b173331)
  • perf: refcounted text payloads, slim subscriber, tuned runtime (8a70ee8)
  • fix(ipc): clear presence on protocol-violation close (6bc8dfb)
  • fix(bridge): reap dead-pid ghosts from replay on null scan (2d42c76)
  • fix(transports): clear every published pid on disconnect, bounded history (4ca6ba9)
  • docs: fix private intra-doc link from public cache_entry_pid (9496c98)
  • docs: point Unreleased entries at workspace paths, document modularization (ffa2039)
  • fix(bridge): resolve replay-cache owner from body pid first (75b8db2)
  • fix(bridge): register consumers under resolved protocol (7a8dff6)
  • fix: close four reviewer-found correctness gaps (c683bbd)
  • fix(detect,steam): guard empty exclusion fetch, decode mount UTF-8 (58b3777)
  • fix(ipc): socket-link ownership, reliable presence clears (22ed44b)
  • fix(ws,ipc): reap JoinSets, enforce idle on its own deadline (429ba03)
  • fix(ipc): unblock connection pumps on unix shutdown (fc4bd06)
  • fix: process parity and review nits (9ead738)
  • refactor(bridge): split handle_set_activity into focused helpers (127e867)
  • refactor(ipc): split handle_stream per-packet arms (2c55e02)
  • refactor(bridge): single user-mutex section in handle_bridge_control (599563c)
  • refactor(cli): split async_main into focused helpers (1cc2d9e)
  • feat: wire resource census hourly and session-boundary emission (9dee156)
  • fix: restore cross-platform builds and lint gates (9b9cfd5)
  • fix(detect): share one detection generation across server clones (04cd02f)
  • fix(ipc): probe errs toward alive after a successful connect (638bd3e)
  • fix(transport-ws): bound reply waits so a stalled client cannot freeze the pump (7b603d9)
  • fix(ipc): route clean-close clear through the retrying clear path (f6ab963)
  • fix(proc-events): count only delivered events as forwarded (8610bea)
  • docs(ipc): document the Windows shutdown drain limitation (3a3f7e2)
  • docs(readme): make the library examples compile (01a9317)
  • fix(bridge): return the unix liveness probe directly (04e627a)
  • fix(proc-events): gate netlink-only items to Linux (cff8fa0)
  • fix(detect): serialize detection-bundle writers under one lock (58e94e2)
  • fix(transport-ws): record publications even when the reply fails (0b4e7ed)
  • docs(readme): align the runtime description with current behavior (e2c5591)
  • chore(core): drop the unused tokio-util dependency (31e7e49)
  • docs(core): correct the scanner channel-bound comment (14cb146)
  • docs(detect): finish the ac_probe rustdoc sentence (1679600)
  • refactor(steam): remove unused test seams (948230c)
  • refactor(protocol)!: decouple the HTTP error from the client (b0369b2)
  • docs(readme): drop removed-behavior bullets, complete bench paths (e554719)
  • perf(publish): fingerprint first, drop floods before building (cee0efd)
  • fix(protocol): stamp application id before fingerprinting (b257006)
  • docs(readme): drop the unsupported RSRPC_STATE_FILE bullet (9003659)
  • fix(transport-ws): clear evicted pids instead of leaking them (28a111a)
  • fix(transport-ws): refuse disallowed origins at connect (bbbc3f8)
  • docs(protocol): scope the dependency claim to workspace-internal (34f93a9)
  • docs: cover undocumented functions touched by the PR (e430d02)
  • fix(transport-ws): retain evicted clears when enqueue fails (0e0f0bd)
  • fix(detect,bridge,core): per-slot clears, scan shutdown exit, ignored EXEC hits (a402725)
  • fix(detect): allow dead exec_hit_ignored off Linux (cd6e958)
  • docs: document every function touched by the PR diff (8454abc)
  • fix(transport-ws,ws): cap publications at tracking bound; validate bind bounds (3618b0d)
  • fix(detect,bridge): review follow-ups; validators after swap, watcher-gated backoff, single-lock removal (8dd860b)
  • fix(ws): bound over-limit rejection backlog; register tasks for shutdown (8cafbb3)
  • fix(core): map each connector flag to its command class (142b16f)
  • chore(msrv): raise minimum toolchain to 1.95 (4ff4b8a)
  • docs(ws): restore slow-consumer doc displaced by bind test (491d71b)
  • chore(ci): pin toolchain action to immutable SHA (bb82013)
  • fix(ws,transport-ws): reject zero keepalive at bind; drain residue on shutdown (b989297)
  • fix(detect): reject empty exe names; unpark scan on watcher failure (7f64ef4)
  • fix(ws): cancel handshakes on shutdown; reject zero keepalive at bind (265a9cc)
  • fix(bridge): fallible pid_t narrowing; deterministic barrier test (af26859)
  • fix(steam): hermetic cache seam for refresh tests (def2702)
  • fix(ws): reject zero idle_timeout at bind (d349efe)
  • fix(ipc): malformed activity disturbs no presence (414cd58)
  • fix(ipc): bind falls through candidate dirs (1529a25)
  • docs: precedence wording; symbol citation over line number (fbccb1c)
  • fix(bridge): count pruned consumers in raw broadcasts (5253767)
  • fix(ipc): drop closes live sockets; cancel before abort (5feba05)
  • fix(telemetry,proc-events): bounded watcher backlog with CAS reservation (1fba9bd)
  • fix(transport-ws): ordered pending-clear queue with per-clear deadlines (dfb6949)
  • fix(detect): normalized match-all guard; unpark dead-code allowance (5157fb3)
  • fix(ipc): error reply on malformed activity; disturb no presence (9259930)
  • fix(bridge): deterministic raw-broadcast counting test (8c867fc)
  • fix(bridge): prune consumer protocol entries with dead consumers (0271714)
  • fix(ipc): back off on repeated accept errors (4a77f49)
  • fix(bridge): prune consumer protocol entries with dead consumers (741fab2)
  • fix(ws,ipc): back off on persistent accept errors (309e764)
  • fix(detect,bench): poison-tolerant sweep; pinned flood-drop timestamp (476d289)
  • docs: mutable daemon in staged API example (4f8ebe7)
  • fix(core): hermetic override paths via explicit environment source (7bb631e)
  • fix(ws): server Drop; hub close timeout; zero idle validation (d1ef8da)
  • fix(transport-ws): per-clear deadlines; ordered staging; retry worker (cdae401)
  • fix(detect): normalized match-all guard; unpark allowance (1f5e6d5)
  • fix(ipc): malformed error reply; candidate-dir fallback; minimal tokio-util (1503ef6)
  • fix(core,protocol,cli): scan interval validation; WsExhausted wording; misc (86ec39f)
  • ci: fix msrv toolchain input; drop Node audit; pin ubuntu 22.04 (22bfa68)
  • Merge staging: full workspace modularization + ghost-presence and memory fixes (e12182a)
  • fix(detect): deferred post-swap trim and allocator telemetry (97185db)
  • perf(detect): reuse per-tick buffers in scan and match paths (78a59d2)
  • perf(detect): single-pass automaton build with sized vectors (b7f9d08)
  • chore(deps): trim tokio-util to default features (0840f49)
  • fix(detect,ws): non-Linux builds and review feedback (d6cab8c)
  • test(detect): capacity-gated backing assert; check normalized / (62fe758)
  • fix(detect): gate native_at helper to linux test path (29f0f6e)
  • style(detect): rustfmt native_at closure onto one line (eec9d73)
  • perf(detect): retain high-water Exec slots across smaller sweeps (61aa308)
  • Merge PR #2: Fix hourly memory ratchet + per-tick churn (54a85cd)
  • docs: release 0.36.0 changelog (21fceba)
  • chore: release v0.36.0 (203d0da)

What's Changed

  • Full workspace modularization + ghost-presence and memory fixes by @yiesko in #1
  • Fix hourly memory ratchet + per-tick churn (measured, no behavior change) by @yiesko in #2

New Contributors

  • @yiesko made their first contribution in #1

Full Changelog: https://github.com/yiesko/discord-rich-presence/commits/v0.36.0