Skip to content
Closed
Show file tree
Hide file tree
Changes from 9 commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
947b863
fix(network): dedupe concurrent connection attempts
sanity Nov 1, 2025
24b1ab2
fix(network): stabilize subscription handling and gateway routing
sanity Nov 2, 2025
b79a43e
build(deps): bump freenet-stdlib to 0.1.24
sanity Nov 2, 2025
48033bd
fix(update): align fallback with fire-and-forget semantics
sanity Nov 2, 2025
e3c28c1
test: reserve unique ports for integration harness
sanity Nov 2, 2025
d302f36
test: harden packet corruption detection
sanity Nov 2, 2025
f12ecf5
test: retry flaky three-hop PUT path
sanity Nov 2, 2025
349cd08
fix: keep peers running after handshake drop
sanity Nov 3, 2025
0bf2c14
test: default harness logging to pretty format
sanity Nov 3, 2025
1756b53
refactor(connect): checkpoint handshake adjustments
sanity Nov 3, 2025
42a6bc0
feat(connect): add connect_v2 scaffolding
sanity Nov 5, 2025
e7d5c5c
feat(connect): add joiner and relay logic skeleton
sanity Nov 5, 2025
9a558cd
feat(connect): expose v2 handler entry points
sanity Nov 5, 2025
17e7fb6
feat(connect): add relay context adapter
sanity Nov 5, 2025
4c9db25
test(connect): cover v2 helper behaviours
sanity Nov 5, 2025
b8ac88f
feat(connect): add net message support for v2 handshake
sanity Nov 5, 2025
0bd9ce8
feat(connect): provide joiner request helper
sanity Nov 6, 2025
3685ada
test(connect): validate join request builder
sanity Nov 6, 2025
512c236
feat(connect): wire connect_v2 operation scaffolding
sanity Nov 6, 2025
279a3f8
feat(connect): route connect_v2 messages through op manager
sanity Nov 6, 2025
b242d5a
fix(connect): use connect_v2 for maintenance and join
sanity Nov 6, 2025
b910329
fix(connect): trigger maintenance via connect_v2
sanity Nov 6, 2025
0dddfec
refactor(connect): checkpoint connect-v2 migration work
sanity Nov 6, 2025
d792d2a
refactor(connect): ignore legacy connect messages
sanity Nov 6, 2025
08ca88c
fix: make river 2-peer and 6-peer tests pass
sanity Nov 6, 2025
5bd717f
refactor(core): drop legacy connect handshake and clean warnings
sanity Nov 6, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ wasmer = "6.1.0"
wasmer-compiler-singlepass = "6.1.0"

# freenet-stdlib = { git = "https://github.com/freenet/freenet-stdlib.git", branch = "main", package = "freenet-stdlib" }
freenet-stdlib = { version = "0.1.23" }
freenet-stdlib = { version = "0.1.24" }

# [patch.crates-io]
# freenet-stdlib = { git = "https://github.com/freenet/freenet-stdlib.git", branch = "main" }
Expand Down
1 change: 1 addition & 0 deletions crates/core/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ pav_regression = "0.6.1"
parking_lot = "0.12"
pin-project = "1"
rand = { features = ["small_rng"], workspace = true }
once_cell = "1"
redb = { optional = true, version = "3" }
serde = { features = ["derive", "rc"], workspace = true }
serde_json = { workspace = true }
Expand Down
33 changes: 18 additions & 15 deletions crates/core/src/client_events/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1158,31 +1158,34 @@ async fn process_open_request(
"Starting direct SUBSCRIBE operation (legacy mode)",
);

// Legacy mode: direct operation without deduplication
let op_id =
crate::node::subscribe(op_manager.clone(), key, Some(client_id))
.await
.inspect_err(|err| {
tracing::error!("Subscribe error: {}", err);
})?;

tracing::debug!(
request_id = %request_id,
transaction_id = %op_id,
operation = "subscribe",
"Request-Transaction correlation"
);
// Legacy mode: generate transaction, register first, then run op
let tx = crate::message::Transaction::new::<
crate::operations::subscribe::SubscribeMsg,
>();

op_manager
.ch_outbound
.waiting_for_transaction_result(op_id, client_id, request_id)
.waiting_for_transaction_result(tx, client_id, request_id)
.await
.inspect_err(|err| {
tracing::error!(
"Error waiting for transaction result: {}",
err
);
})?;

crate::node::subscribe_with_id(op_manager.clone(), key, None, Some(tx))
.await
.inspect_err(|err| {
tracing::error!("Subscribe error: {}", err);
})?;

tracing::debug!(
request_id = %request_id,
transaction_id = %tx,
operation = "subscribe",
"Request-Transaction correlation"
);
}
}
_ => {
Expand Down
Loading
Loading