fix(diag): gate connected soak on guaranteed login boundary
The first-player-position line is emitted only when initial streaming must recenter. Treating it as a required login event made a valid same-landblock login time out while route automation was already running. Gate on in-world and the route's authoritative materialization barriers instead. Co-Authored-By: Codex <noreply@openai.com>
This commit is contained in:
parent
3ee8ec537a
commit
e797e7482a
2 changed files with 26 additions and 1 deletions
|
|
@ -344,6 +344,28 @@ public sealed class ConnectedR6SoakContractTests
|
||||||
StringComparison.Ordinal);
|
StringComparison.Ordinal);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void LoginGateDoesNotRequireTheOptionalFirstPositionRecenterDiagnostic()
|
||||||
|
{
|
||||||
|
string source = File.ReadAllText(Path.Combine(
|
||||||
|
FindRepoRoot(),
|
||||||
|
"tools",
|
||||||
|
"run-connected-r6-soak.ps1"));
|
||||||
|
|
||||||
|
Assert.Contains(
|
||||||
|
"Wait-ForLogPattern $process $stdoutLog 'live: in world'",
|
||||||
|
source,
|
||||||
|
StringComparison.Ordinal);
|
||||||
|
Assert.DoesNotContain(
|
||||||
|
"Wait-ForLogPattern $process $stdoutLog 'live: first player position'",
|
||||||
|
source,
|
||||||
|
StringComparison.Ordinal);
|
||||||
|
Assert.Contains(
|
||||||
|
"route materialization below is the deterministic world-ready barrier.",
|
||||||
|
source,
|
||||||
|
StringComparison.Ordinal);
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void DenseTownModeUsesTheDedicatedOneCheckpointRoute()
|
public void DenseTownModeUsesTheDedicatedOneCheckpointRoute()
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -717,7 +717,10 @@ try {
|
||||||
}
|
}
|
||||||
|
|
||||||
$null = Wait-ForLogPattern $process $stdoutLog 'live: in world' 1 $LoginTimeoutSeconds
|
$null = Wait-ForLogPattern $process $stdoutLog 'live: in world' 1 $LoginTimeoutSeconds
|
||||||
$null = Wait-ForLogPattern $process $stdoutLog 'live: first player position' 1 $LoginTimeoutSeconds
|
# "live: first player position" is a recenter diagnostic, not a session
|
||||||
|
# boundary: it is intentionally absent when the player's authoritative
|
||||||
|
# first cell already matches the initial streaming center. The first
|
||||||
|
# route materialization below is the deterministic world-ready barrier.
|
||||||
Write-Marker ("in-world elapsed={0:N1}s" -f $stopwatch.Elapsed.TotalSeconds)
|
Write-Marker ("in-world elapsed={0:N1}s" -f $stopwatch.Elapsed.TotalSeconds)
|
||||||
|
|
||||||
foreach ($destination in $destinations) {
|
foreach ($destination in $destinations) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue