diff --git a/.repository-projection.json b/.repository-projection.json index ca5e8c704..cb4a81127 100644 --- a/.repository-projection.json +++ b/.repository-projection.json @@ -3,11 +3,11 @@ "projection": "deixic-code", "projectionSchemaVersion": 1, "sourceRepository": "dx-corp/mono", - "sourceSha": "04f7ae516002b11959d4ebcdc259d977d8994730", + "sourceSha": "50114ce38f576af6a8994c53990bb8e3aef3676b", "destinationRepository": "dx-corp/code", - "priorProjectedBase": "673950559a68c6984ccab0cf331a98d4a3732131", + "priorProjectedBase": "a80a7e50aafeded0f5a7d24f1ec6ceeee7dde9ce", "definitionDigest": "cc5446d8982464d5504de96b74641fe6f74b8e430830d0cca507e19fab0041b8", "toolDigest": "45502ff0478e541d02f34cc39ac332935f8d3c0030fa221afe5bcc3b5e51f88e", - "contentDigest": "26573505ca5d4535437811b11896c995ada76385e02418bf604495918d63849c", + "contentDigest": "e0cb16df55485089142b5466411e8d3acd8b2c3e93903756e74687b2b15243ce", "publicationEligible": true } diff --git a/packages/local-host-rs/src/telemetry/staged_rollout_test.rs b/packages/local-host-rs/src/telemetry/staged_rollout_test.rs index 371e30c4f..3036be971 100644 --- a/packages/local-host-rs/src/telemetry/staged_rollout_test.rs +++ b/packages/local-host-rs/src/telemetry/staged_rollout_test.rs @@ -181,7 +181,11 @@ fn loopback_server( fn loopback_server_records_unexpected_request( timeout: Duration, -) -> (String, mpsc::Receiver, std::thread::JoinHandle<()>) { +) -> ( + String, + mpsc::Receiver>, + std::thread::JoinHandle<()>, +) { let listener = TcpListener::bind("127.0.0.1:0").expect("bind loopback server"); listener .set_nonblocking(true) @@ -196,7 +200,7 @@ fn loopback_server_records_unexpected_request( loop { match listener.accept() { Ok((mut stream, _)) => { - let _ = read_http_request(&mut stream); + let request = read_http_request(&mut stream); let body = "{}"; let response = format!( "HTTP/1.1 202 telemetry\r\nContent-Type: application/json\r\nContent-Length: {}\r\nConnection: close\r\n\r\n{body}", @@ -204,13 +208,13 @@ fn loopback_server_records_unexpected_request( ); let _ = stream.write_all(response.as_bytes()); sender - .send(true) + .send(Some(request)) .expect("report unexpected telemetry request"); return; } Err(error) if error.kind() == std::io::ErrorKind::WouldBlock => { if Instant::now() >= deadline { - sender.send(false).expect("report no telemetry request"); + sender.send(None).expect("report no telemetry request"); return; } std::thread::sleep(Duration::from_millis(10)); @@ -546,6 +550,7 @@ fn onboarding_outbox_retries_without_reattributing_identity_scope() { } fn assert_outbox_scope_binding(event: FirstPartyTelemetryEvent) { + let event_id = event.event_id().to_string(); let temp = tempfile::tempdir().expect("telemetry tempdir"); let origin_scope = test_identity_scope("org-a", "workspace-a"); let later_scope = test_identity_scope("org-b", "workspace-b"); @@ -577,12 +582,15 @@ fn assert_outbox_scope_binding(event: FirstPartyTelemetryEvent) { path.exists(), "a different tenant must not acknowledge the origin record" ); - assert!( - !switched_requests - .recv_timeout(Duration::from_secs(2)) - .expect("scope-switch result"), - "the current tenant bearer must never replay a different tenant's record" - ); + let unexpected = switched_requests + .recv_timeout(Duration::from_secs(2)) + .expect("scope-switch result"); + if let Some(request) = unexpected { + assert!( + !request.contains(&event_id), + "the current tenant bearer must never replay a different tenant's record: {request}" + ); + } switched_server .join() .expect("scope-switch loopback server");