v0.2.9-pre.010-fix.001

This commit is contained in:
2026-08-24 18:53:10 +02:00
parent 4568d94a62
commit 3198cc5666
6 changed files with 169 additions and 19 deletions

View File

@@ -1,5 +1,5 @@
// file: crates/ksp-onchain-transport-lib/src/grpc_stream.rs
// version: 2
// version: 3
use tonic_prost::prost::Message; // rust-rules: trait-import
@@ -488,10 +488,10 @@ impl ContinuityTracker {
}
if self.recent_set.insert(identity.clone()) {
self.recent_order.push_back(identity);
if self.recent_order.len() > MAX_RECENT_UPDATE_IDENTITIES {
if let std::option::Option::Some(oldest) = self.recent_order.pop_front() {
self.recent_set.remove(&oldest);
}
if self.recent_order.len() > MAX_RECENT_UPDATE_IDENTITIES
&& let std::option::Option::Some(oldest) = self.recent_order.pop_front()
{
self.recent_set.remove(&oldest);
}
}
}
@@ -534,11 +534,11 @@ async fn run_subscribe_actor(
return;
},
};
if matches!(&update, crate::YellowstoneSubscribeUpdate::Ping(_)) {
if let std::result::Result::Err(code) = send_automatic_ping(&request_state, settings.max_outbound_message_size_bytes()) {
fail_actor(code, &request_state, &mut snapshot, &snapshot_tx);
return;
}
if matches!(&update, crate::YellowstoneSubscribeUpdate::Ping(_))
&& let std::result::Result::Err(code) = send_automatic_ping(&request_state, settings.max_outbound_message_size_bytes())
{
fail_actor(code, &request_state, &mut snapshot, &snapshot_tx);
return;
}
tracker.observe(&update, &mut snapshot);
snapshot_tx.send_replace(snapshot);

View File

@@ -1,5 +1,5 @@
// file: crates/ksp-onchain-transport-lib/src/lib.rs
// version: 43
// version: 44
#![warn(missing_docs)]
#![deny(unreachable_pub)]
@@ -42,8 +42,9 @@
//! JSON-RPC, error and constants modules.
//! `0.2.9-pre.007` completes the standard transaction/transaction-status filters and storage-wire projections; `pre.008` completes Blocks, block-meta and
//! entry projections. `0.2.9-pre.009` promotes those protobuf bridges into runtime and opens one KSP-owned bounded bidirectional `Subscribe` session with
//! request mutation, automatic server-Ping reply, observable Pong, normal server half-close, terminal backpressure and bounded graceful shutdown. Reconnect and
//! replay policy remain outside this tranche.
//! request mutation, automatic server-Ping reply, observable Pong, normal server half-close, terminal backpressure and bounded graceful shutdown.
//! `0.2.9-pre.010` activates the bounded KSP-owned reconnect policy, deterministic replay from the latest accepted request and highest observed slot,
//! conservative ReplayInfo-based continuity-gap observability and bounded duplicate observation without claiming exactly-once or lossless delivery.
mod constants;
mod error;