Skip to content

chore: pin AltTester fork with driver transport hardening - #10029

Draft
mikhail-dcl wants to merge 1 commit into
devfrom
fix/alttester-transport-hardening
Draft

chore: pin AltTester fork with driver transport hardening#10029
mikhail-dcl wants to merge 1 commit into
devfrom
fix/alttester-transport-hardening

Conversation

@mikhail-dcl

Copy link
Copy Markdown
Collaborator

What does this PR change?

Pin com.alttester.sdk in the manifest and lockfile to fork commit 3b2540f5. It includes the Unity 6000.5 compatibility and NLog initialization fixes from AltTester #1984, plus a separate transport-hardening commit.

The transport-only diff fixes reconnect state, requires driver registration, reports failed sends, and isolates command responses across connections. The branch backing #1984 remains unchanged at 3c644489; these changes are not added to that contribution.

This updates the Unity package only. The external explorer-automation runner still consumes its separate AltTester-Driver NuGet package. This PR does not claim to resolve the original intermittent Explorer stall.

Test Instructions

  1. Open Explorer/ using the Unity version in Explorer/ProjectSettings/ProjectVersion.txt and allow Package Manager to resolve dependencies.
  2. Verify com.alttester.sdk resolves to 3b2540f507264eeb675bc7787400af485f7e6986, with no AltTester compilation or NLog initialization errors.
  3. Launch an instrumented client, connect AltTester Desktop, and smoke-test an object lookup and input command. Confirm the existing Unity compatibility behavior is preserved.

Transport regression checks, from the AltTester fork at the pinned commit:

$env:DOTNET_ROLL_FORWARD = 'Major'
dotnet test 'Bindings~/dotnet/AltDriver.Tests/AltDriver.Tests.csproj' --filter 'FullyQualifiedName~TestDriverTransport|FullyQualifiedName~TestAltBaseCommand'
dotnet build 'Bindings~/dotnet/AltDriver/AltDriver.csproj' --configuration Release

Completed: 15 tests passed on the full Unity-upgrade base; Release builds for netstandard2.0 and net5.0 passed with zero warnings/errors. Manifest/lockfile consistency, unchanged package dependencies, and upgrade ancestry were verified. Unity import and instrumented-client smoke testing remain pending.

Quality Checklist

  • Local SDK tests/builds and dependency-pin checks passed.
  • Only the manifest and lockfile are changed in Explorer.
  • Upgrade fixes are retained and AltTester [QA] An image can be seen during the start of an emote  #1984 is unchanged.
  • Scope and validation limitations are documented above.
  • Unity import and instrumented-client smoke test completed.

@github-actions

github-actions Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

🚦 CI Status

Build

Windows and Mac built successfully in Unity Cloud.

Name Links & timing
Build d83d5d2 · Logs · built 2026-09-08T12:09:07Z
Windows GitHub job · Unity Cloud #1 · Unity log · ⏱ 57m 50s build + 8m 3s queue · Download .zip · .zip via S3
Mac GitHub job · Unity Cloud #1 · Unity log · ⏱ 1h 25m build + 5m 4s queue · Download .zip · .zip via S3

Lint

No C# files changed — lint ratchet skipped.

Tests

All Unity tests passed ✅

TESTS SUITE Result Passed Failed Skipped Tests time Job time
EditMode ✅ Passed 25824 0 13 4m 3s 16m 10s
PlayMode ✅ Passed 248 0 37 38s 13m 20s

Tests time sums the test cases; Job time is the job's wall clock including checkout, licensing and asset import.

Slowest tests
  • [editmode] 16.5s DCL.AuthenticationScreenFlow.Tests.ProfileFetchingAuthStateShould.CancelStalledFetchOnTimeout
  • [editmode] 11.4s DCL.Tests.Editor.ValidationTests.CheckForDebugUsage
  • [editmode] 10.1s DCL.Tests.Editor.ValidationTests.CheckUnityObjectsForMissingReferences
  • [editmode] 10.0s DCL.Notifications.Tests.NotificationsRequestControllerShould.ReuseSingleListInstanceAcrossPollIterations
  • [editmode] 5.0s DCL.Friends.Tests.FriendsConnectivityStatusTrackerShould.RaiseOnlineEventWhenSameStatusIsRebroadcastAfterReset
  • [editmode] 5.0s CrdtEcsBridge.WorldSynchronizer.Tests.CrdtWorldSynchronizerShould.ThrowIfSyncBufferIsAlreadyRented
  • [editmode] 4.1s DCL.Tests.Editor.ValidationTests.SettingsAreValid
  • [editmode] 4.1s SceneRunner.Tests.SceneFacadeShould.ContinueUpdateLoopOnBackgroundThread(30,4000)
  • [editmode] 4.1s SceneRunner.Tests.SceneFacadeShould.ContinueUpdateLoopOnBackgroundThread(60,4000)
  • [editmode] 4.1s SceneRunner.Tests.SceneFacadeShould.ContinueUpdateLoopOnBackgroundThread(180,4000)
  • [playmode] 3.5s Global.Tests.PlayMode.CubeWaveSceneShould.EmitECSComponents
  • [playmode] 2.7s DCL.SDKComponents.Tween.Tests.TweenUpdaterSystemShould.ContinuousTweensRunIndefinitelyWhenDurationIsZero
  • [playmode] 2.1s DCL.SDKComponents.Tween.Tests.TweenSequenceSystemShould.TextureMoveSequenceUpdatesMaterial
  • [playmode] 2.0s DCL.SDKComponents.Tween.Tests.TweenSequenceSystemShould.TweenSequenceWithoutLoopCompletesOnce
  • [playmode] 2.0s DCL.SDKComponents.Tween.Tests.TweenUpdaterSystemShould.RotateContinuousCompletesAfterDuration
  • [playmode] 2.0s DCL.SDKComponents.Tween.Tests.TweenUpdaterSystemShould.MoveContinuousMovesAndCompletesAfterDuration
  • [playmode] 1.9s DCL.SDKComponents.Tween.Tests.TweenUpdaterSystemShould.TextureMoveContinuousOffsetCompletesAndUpdatesMaterial
  • [playmode] 1.5s DCL.SDKComponents.Tween.Tests.TweenSequenceSystemShould.TweenSequenceWithMoveRotateScaleWithOmittedScale_ResolvesScaleFromCurrentTransform
  • [playmode] 1.4s DCL.AvatarRendering.AvatarShape.Tests.AvatarBaseLegacyAnimationPlayModeShould.ReplaceEmoteAnimation_DoesNotEnableAnimator_WhileLegacyAnimationIsPlaying
  • [playmode] 1.4s DCL.SDKComponents.Tween.Tests.TweenUpdaterSystemShould.RotateContinuousAroundXAxisRotatesAroundXNotZ

Full report: run summary · results + editor logs: editmode · playmode

Performance

🏁 Bare-metal benchmark finished — run #34224564460.

Full report

PR #10029, run #34224564460

Overall: ✅ no significant changes

Builds: Windows change, Windows baseline, macOS change, macOS baseline

How to read this table
  • Each build is measured 3 times, interleaved with the other build (change, baseline, change, baseline, ...) in the same session, so both see the same world content and machine state. The values are the median, and (min–max) is the lowest and highest of those runs.
  • Δ is Change minus Baseline (a negative Δ means Change is faster).
  • 🟢 faster / 🔴 slower — a difference that passed every check: the runs are fully separated (every run of one build faster than every run of the other), and the median difference is at least 3% and at least 0.5 ms.
  • ⚪ within noise — the builds' runs overlap, or the difference is tiny; it cannot be told apart from random variation. Treat it as no change.
  • — informational — the 0.1% worst metrics average only the few worst frames of a run, so a single OS hiccup swings them by a lot; they are shown for context and never earn a verdict.
  • ⚠️ no verdict — the two builds' sessions were not comparable (very different sample counts, or too few usable runs), so no conclusion is drawn from them.
  • Exceptions per run — the average number of exceptions in a run's log, not counting teardown ones logged while the app quits. Flagged only on a difference of at least 2 per run and 1.5× the other build; exception kinds the baseline never threw are called out under the table. The Exception breakdown groups all of them by the explorer's report category and exception type (as totals across the runs).
  • A run that logged unusually many exceptions (at least 10 and 5× the median of its build's runs — e.g. a service was down during it) is excluded from all numbers and called out under the table.
  • The Overall line at the top only reacts to a metric that moved on two or more machines, or by 10% or more on one — a single modest 🟢/🔴 cell can still be a statistical fluke.

⚠️ Could not gather the results of apple-m1: no change_build run CSVs were found

Intel Core i5

Metric Baseline Change Δ Result
Samples 5258 (×3) 5294 (×3)
CPU average 17.1 ms (16.8–17.4) 17.0 ms (16.7–17.2) -0.1 ms ⚪ within noise
CPU 1% worst 44.5 ms (37.8–44.6) 41.0 ms (37.4–42.2) -3.5 ms ⚪ within noise
CPU 0.1% worst 101.2 ms (93.5–131.2) 100.8 ms (90.6–104.6) -0.4 ms — informational
GPU average 11.4 ms (11.1–11.7) 11.3 ms (11.1–11.7) -0.1 ms ⚪ within noise
GPU 1% worst 24.4 ms (22.5–25.6) 23.4 ms (23.0–23.9) -1.0 ms ⚪ within noise
GPU 0.1% worst 43.1 ms (26.1–45.0) 35.1 ms (27.5–41.0) -8.0 ms — informational
Exceptions per run 0 0 0 ⚪ no significant change

Automation

On demand — comment /visual-tests on this PR to run the visual regression suite against its build.

@mikhail-dcl mikhail-dcl added the force-build Used to trigger a build on draft PR label Sep 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

force-build Used to trigger a build on draft PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant