Skip to content

Read Disabled when it is asked for rather than at type initialisation - #825

Merged
SimonCropp merged 1 commit into
mainfrom
fix-disabled-computed-once
Aug 22, 2026
Merged

Read Disabled when it is asked for rather than at type initialisation#825
SimonCropp merged 1 commit into
mainfrom
fix-disabled-computed-once

Conversation

@SimonCropp

Copy link
Copy Markdown
Member

DiffRunner.Disabled captured DisabledChecker.IsDisable() in its initialiser, so
whichever of the detectors reported first won for the life of the process. Setting
BuildServerDetector.Detected or AiCliDetector.Detected after anything had touched
DiffRunner did nothing at all - and a test host sets them after it has loaded,
which is the only moment it can. BuildServerDetector.Detected is an AsyncLocal
override on top of that, and a per-context value could never have reached a static
captured once anyway.

It is computed on read now, and an explicit set still pins it: consumers that
assign Disabled keep the value they assigned, and nothing is read from the
environment after that.

DiffRunner.Disabled captured DisabledChecker.IsDisable() in its initialiser, so
whichever of the detectors reported first won for the life of the process. Setting
BuildServerDetector.Detected or AiCliDetector.Detected after anything had touched
DiffRunner did nothing at all - and a test host sets them after it has loaded,
which is the only moment it can. BuildServerDetector.Detected is an AsyncLocal
override on top of that, and a per-context value could never have reached a static
captured once anyway.

It is computed on read now, and an explicit set still pins it: consumers that
assign Disabled keep the value they assigned, and nothing is read from the
environment after that.
@SimonCropp SimonCropp added this to the 20.0.0 milestone Aug 22, 2026
@SimonCropp
SimonCropp merged commit c2e33e2 into main Aug 22, 2026
10 checks passed
@SimonCropp
SimonCropp deleted the fix-disabled-computed-once branch August 22, 2026 13:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant