You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[SEAM] W5.8 cli: connect CliApp.Mock.Stack to the real stack inside #50 #72
Seam connections inside open PR #50 (W5.8 the demo and ping binaries). The PR builds the binaries against one mock, CliApp/Mock/Stack.lean, standing for the whole W5 stack. The mock declares opaque ops with executable failure bodies, and its NEED CHANGES review records which names are false against the current tree (Mock/Stack.lean:220,231, packages/cli/docs/ARCHITECTURE.md:154); the swap must re-check each.
The dependencies behind the stack: #20W5.7 (PR #45), #11W5.1 (PR #63 or #44, organiser picks), #15W5.2 (PR #64), #17W5.4 (PR #49, draft), #16W5.3 (PR #67, draft), #19W5.6 (PR #61). #14W4.3 merged on 2026-11-06 (PR #62).
Definition of done
CliApp/Mock/Stack.lean is gone; the binaries drive the real packages.
The live loopback demo and the interop gates run for real, per the issue [W5.8] cli: the demo and ping binaries #22 done-list, and the PLAN documents the substitutions no longer needed.
#89 moves identify and ping onto the real libp2p/core and libp2p/host, and deletes Protocols/Mock/Core.lean and Protocols/Mock/Host.lean. The swap of CliApp/Mock/Stack.lean (#50) connects to these shapes:
Ping.protocolId, Identify.protocolId, and Identify.pushId are Libp2p.Core.ProtocolId values. Ping.pingHandler is a Libp2p.Core.StreamHandler.
Identify.respondHandler key addrs protocols agent spr takes no observed address. Each answer carries the remoteAddr of the stream's connection.
Identify.pushHandler h clock timeoutMs takes the Libp2p.Host.Host whose peerstore it updates. It checks each push against the remotePeer of the stream's connection.
Identify.client s clock timeoutMs expected and Ping.ping s clock payload keep their signatures.
Tests/Protocols.lean in #89 runs identify and push between two real hosts of Tests/HostPair.lean, the same setup a demo node uses.
Activity
IvanAnishchuk commentedon Nov 10, 2026
#86 moves the host onto the merged
libp2p/negotiateand deletesNegotiate.Legacy. No existing signature changes. The host adds four names:Libp2p.Host.upgraderuns the upgrade, with the secured checkpoint after the handshake and before the muxer stage.Libp2p.Host.negotiateStreamruns multistream-select on a muxedStream, and hands the bytes after the selection to the handler.UpgradedandAdmissionnow live inLibp2p.Host. No code outside the host named them before.Once #86 merges,
Tests/Host.leanruns real hosts over the sim (unit 1b). A swap of this unit's host mock can build its test hosts the same way.IvanAnishchuk commentedon Nov 10, 2026
#89 moves identify and ping onto the real
libp2p/coreandlibp2p/host, and deletesProtocols/Mock/Core.leanandProtocols/Mock/Host.lean. The swap ofCliApp/Mock/Stack.lean(#50) connects to these shapes:Ping.protocolId,Identify.protocolId, andIdentify.pushIdareLibp2p.Core.ProtocolIdvalues.Ping.pingHandleris aLibp2p.Core.StreamHandler.Identify.respondHandler key addrs protocols agent sprtakes no observed address. Each answer carries theremoteAddrof the stream's connection.Identify.pushHandler h clock timeoutMstakes theLibp2p.Host.Hostwhose peerstore it updates. It checks each push against theremotePeerof the stream's connection.Identify.client s clock timeoutMs expectedandPing.ping s clock payloadkeep their signatures.Tests/Protocols.leanin #89 runs identify and push between two real hosts ofTests/HostPair.lean, the same setup a demo node uses.