From fc15430e5280d2eeec919b57649b42f4695f37e2 Mon Sep 17 00:00:00 2001 From: Tanya S <120410716+stubbsta@users.noreply.github.com> Date: Thu, 25 Jun 2026 17:13:38 +0200 Subject: [PATCH 1/2] Temporarily extend ci test job timeout (#3997) --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a407e37f4..fe275a60a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -125,7 +125,7 @@ jobs: matrix: os: [ubuntu-22.04, macos-15] runs-on: ${{ matrix.os }} - timeout-minutes: 45 + timeout-minutes: 60 name: test-${{ matrix.os }} steps: From 3eebc7288b76fdc4ba40c3bfd838e325668fd2d1 Mon Sep 17 00:00:00 2001 From: Darshan <35736874+darshankabariya@users.noreply.github.com> Date: Fri, 26 Jun 2026 01:23:57 +0530 Subject: [PATCH 2/2] test: add S16 lightpush dynamic-recovery unittest (#3995) --- tests/api/test_api_send.nim | 40 +++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/tests/api/test_api_send.nim b/tests/api/test_api_send.nim index f64715592..0ad1cea4a 100644 --- a/tests/api/test_api_send.nim +++ b/tests/api/test_api_send.nim @@ -387,6 +387,46 @@ suite "Waku API - Send": (await node.stop()).isOkOr: raiseAssert "Failed to stop node: " & error + asyncTest "S16 - isolated sender recovers when lightpush peer appears later": + ## Edge sender starts with no peer; a lightpush peer appears mid-send and a + ## later retry must deliver the queued message. + var node: LogosDelivery + lockNewGlobalBrokerContext: + node = (await LogosDelivery.new(createApiNodeConf(cli_args.WakuMode.Edge))).valueOr: + raiseAssert error + (await node.start()).isOkOr: + raiseAssert "Failed to start Waku node: " & error + # No connectToNodes: the sender has no reachable peer at T0. + + check node.waku.node.wakuRelay.isNil() + + let eventManager = newSendEventListenerManager(node.waku.brokerCtx) + defer: + await eventManager.teardown() + + let envelope = MessageEnvelope.init( + ContentTopic("/waku/2/default-content/proto"), "test payload" + ) + + # send() with no peer must still succeed; the message is queued and retried. + let requestId = (await node.messagingClient.send(envelope)).valueOr: + raiseAssert error + + # Nothing should propagate while isolated (retry interval is 1s). + await sleepAsync(5.seconds) + check eventManager.propagatedCount == 0 + + # The lightpush peer appears; a later retry must now deliver. + await node.waku.node.connectToNodes(@[lightpushNodePeerInfo]) + + const eventTimeout = 10.seconds + discard await eventManager.waitForEvents(eventTimeout) + + eventManager.validate({SendEventOutcome.Propagated}, requestId) + + (await node.stop()).isOkOr: + raiseAssert "Failed to stop node: " & error + asyncTest "Send fully validates fallback to lightpush": var node: LogosDelivery lockNewGlobalBrokerContext: