feat(perf): #263-A — the measurement instrument (CALIBRATION_ONLY; no admissible baseline yet) #1978
ci.yml
on: pull_request
C# leak extractor (Roslyn) -> OwnIR -> core
6m 52s
lint (ruff + mypy --strict)
21s
rust (fmt + clippy + tests)
29s
Windows-native mutation campaign (own-check.ps1 + the drive-rooted locator arm)
6m 8s
Stage-2 mutation campaign, Windows verdict (gate only, records nothing)
4m 9s
shadow compare (committed corpus)
44s
audit aggregation selftests
10s
release-workflow environment-protection predicate (fixture-driven)
7s
extended codegen fuzz
37s
golden C# compiles & runs (.NET)
29s
OwnTS (React useEffect) -> OwnIR -> core
9s
OwnTS OSS true positives -> runtime leak proof (jsdom)
8s
own-check repo scan (github + msbuild) + composite action
1m 9s
own-check.ps1 exit-code tiers (Windows)
2m 1s
own-check SARIF -> GitHub code scanning (Rust dog-food)
1m 3s
P-014 Tier B — external reference resolution (--ref-dir)
36s
corpus benchmark (real C# recall + specificity)
6m 22s
Matrix: own-cli (ownir parity replay)
Matrix: owen CLI (gate A) — clean install -> check -> findings
Matrix: #263-A measurement instrument (CALIBRATION_ONLY)
Matrix: owen --engine (#262 Stage 1 controls)
Matrix: Rust-default dogfood (Own.NET's own tree, via own-cli)
Matrix: tests
shadow compare (C# samples)
43s
Annotations
20 errors and 71 warnings
|
own-check repo scan (github + msbuild) + composite action:
frontend/roslyn/samples/ColumnAnchorsSample.cs#L51
IDisposable local 'second' is never disposed (leak)
|
|
own-check repo scan (github + msbuild) + composite action:
frontend/roslyn/samples/ColumnAnchorsSample.cs#L51
IDisposable local 'first' is never disposed (leak)
|
|
own-check repo scan (github + msbuild) + composite action:
frontend/roslyn/samples/CloseReleaseSample.cs#L37
IDisposable field '_xconn' (type 'FakeConnection') is never disposed — its owner 'ClosesOtherInstanceField' leaks it (leak)
|
|
own-check repo scan (github + msbuild) + composite action:
frontend/roslyn/samples/CloseReleaseSample.cs#L26
IDisposable field '_leakedConn' (type 'FakeConnection') is never disposed — its owner 'LeaksUnclosed' leaks it (leak)
|
|
own-check repo scan (github + msbuild) + composite action:
frontend/roslyn/samples/AppDomainShutdownSample.cs#L54
event 'SomeBus.Pinged' is subscribed (handler '(_, _) => cts.Cancel()') to a static (process-lived) event source that outlives 'NonAppDomainSubscriber'; the strong subscription promotes 'NonAppDomainSubscriber' to the source's lifetime, so it can never be collected — a region escape (leak, no release path — and being an inline lambda it has no '-=' handle, so it could never be detached)
|
|
own-check repo scan (github + msbuild) + composite action:
frontend/roslyn/samples/AppDomainShutdownSample.cs#L34
event 'AppDomain.CurrentDomain.ProcessExit' is subscribed (handler '(_, _) => _count++') to a static (process-lived) event source that outlives 'CapturingShutdownSubscriber'; the strong subscription promotes 'CapturingShutdownSubscriber' to the source's lifetime, so it can never be collected — a region escape (leak, no release path — and being an inline lambda it has no '-=' handle, so it could never be detached)
|
|
own-check repo scan (github + msbuild) + composite action:
frontend/roslyn/samples/AliasDisposeSample.cs#L75
IDisposable field '_scopedLeak' (type 'CancellationTokenSource') is never disposed — its owner 'ScopedAliasNameLeak' leaks it (leak)
|
|
own-check repo scan (github + msbuild) + composite action:
frontend/roslyn/samples/AliasDisposeSample.cs#L57
IDisposable field '_refRebound' (type 'CancellationTokenSource') is never disposed — its owner 'RefReboundAliasLeaks' leaks it (leak)
|
|
own-check repo scan (github + msbuild) + composite action:
frontend/roslyn/samples/AliasDisposeSample.cs#L42
IDisposable field '_rebound' (type 'CancellationTokenSource') is never disposed — its owner 'ReboundAliasLeaks' leaks it (leak)
|
|
own-check repo scan (github + msbuild) + composite action:
frontend/roslyn/samples/AliasDisposeSample.cs#L29
IDisposable field '_neverDisposed' (type 'CancellationTokenSource') is never disposed — its owner 'AliasNeverDisposes' leaks it (leak)
|
|
OWN001:
frontend/roslyn/samples/ColumnAnchorsSample.cs#L51
[OWN001] IDisposable local 'second' is never disposed (leak) [resource: disposable]
|
|
OWN001:
frontend/roslyn/samples/ColumnAnchorsSample.cs#L51
[OWN001] IDisposable local 'first' is never disposed (leak) [resource: disposable]
|
|
OWN001:
frontend/roslyn/samples/CloseReleaseSample.cs#L37
[OWN001] IDisposable field '_xconn' (type 'FakeConnection') is never disposed — its owner 'ClosesOtherInstanceField' leaks it (leak) [resource: disposable field]
|
|
OWN001:
frontend/roslyn/samples/CloseReleaseSample.cs#L26
[OWN001] IDisposable field '_leakedConn' (type 'FakeConnection') is never disposed — its owner 'LeaksUnclosed' leaks it (leak) [resource: disposable field]
|
|
OWN014:
frontend/roslyn/samples/AppDomainShutdownSample.cs#L54
[OWN014] event 'SomeBus.Pinged' is subscribed (handler '(_, _) => cts.Cancel()') to a static (process-lived) event source that outlives 'NonAppDomainSubscriber'; the strong subscription promotes 'NonAppDomainSubscriber' to the source's lifetime, so it can never be collected — a region escape (leak, no release path — and being an inline lambda it has no '-=' handle, so it could never be detached) [resource: subscription token]
|
|
OWN014:
frontend/roslyn/samples/AppDomainShutdownSample.cs#L34
[OWN014] event 'AppDomain.CurrentDomain.ProcessExit' is subscribed (handler '(_, _) => _count++') to a static (process-lived) event source that outlives 'CapturingShutdownSubscriber'; the strong subscription promotes 'CapturingShutdownSubscriber' to the source's lifetime, so it can never be collected — a region escape (leak, no release path — and being an inline lambda it has no '-=' handle, so it could never be detached) [resource: subscription token]
|
|
OWN001:
frontend/roslyn/samples/AliasDisposeSample.cs#L75
[OWN001] IDisposable field '_scopedLeak' (type 'CancellationTokenSource') is never disposed — its owner 'ScopedAliasNameLeak' leaks it (leak) [resource: disposable field]
|
|
OWN001:
frontend/roslyn/samples/AliasDisposeSample.cs#L57
[OWN001] IDisposable field '_refRebound' (type 'CancellationTokenSource') is never disposed — its owner 'RefReboundAliasLeaks' leaks it (leak) [resource: disposable field]
|
|
OWN001:
frontend/roslyn/samples/AliasDisposeSample.cs#L42
[OWN001] IDisposable field '_rebound' (type 'CancellationTokenSource') is never disposed — its owner 'ReboundAliasLeaks' leaks it (leak) [resource: disposable field]
|
|
OWN001:
frontend/roslyn/samples/AliasDisposeSample.cs#L29
[OWN001] IDisposable field '_neverDisposed' (type 'CancellationTokenSource') is never disposed — its owner 'AliasNeverDisposes' leaks it (leak) [resource: disposable field]
|
|
OwnTS (React useEffect) -> OwnIR -> core
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5, actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
own-cli (ownir parity replay) (ubuntu-latest)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
extended codegen fuzz
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5, actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
audit aggregation selftests
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5, actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
own-cli (ownir parity replay) (windows-latest)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
owen CLI (gate A) — clean install -> check -> findings (ubuntu-latest)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5, actions/setup-dotnet@67a3573c9a986a3f9c594539f4ab511d57bb3ce9, actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
owen CLI (gate A) — clean install -> check -> findings (ubuntu-latest):
frontend/roslyn/OwnSharp.Extractor/Program.cs#L5234
Argument of type 'IEnumerable<string?>' cannot be used for parameter 'collection' of type 'IEnumerable<string>' in 'HashSet<string>.HashSet(IEnumerable<string> collection, IEqualityComparer<string>? comparer)' due to differences in the nullability of reference types.
|
|
shadow compare (committed corpus)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5, actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
tests (py3.13)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5, actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
lint (ruff + mypy --strict)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5, actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Rust-default dogfood (Own.NET's own tree, via own-cli) (ubuntu-latest)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5, actions/setup-dotnet@67a3573c9a986a3f9c594539f4ab511d57bb3ce9, actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Rust-default dogfood (Own.NET's own tree, via own-cli) (ubuntu-latest):
frontend/roslyn/OwnSharp.Extractor/Program.cs#L5234
Argument of type 'IEnumerable<string?>' cannot be used for parameter 'collection' of type 'IEnumerable<string>' in 'HashSet<string>.HashSet(IEnumerable<string> collection, IEqualityComparer<string>? comparer)' due to differences in the nullability of reference types.
|
|
own-check repo scan (github + msbuild) + composite action:
frontend/roslyn/samples/AppScopedSourceSample.cs#L100
event 'service.ThemeChanged' is subscribed (handler 'OnTheme') but never unsubscribed; its source is an injected dependency whose lifetime is unknown, so it may outlive and keep 'CuratedOnlyApp' alive (possible leak)
|
|
own-check repo scan (github + msbuild) + composite action:
frontend/roslyn/samples/AppScopedSourceSample.cs#L89
event 'themeManager.ThemeChanged' is subscribed (handler '(s, e) => counter[0]++') but never unsubscribed; its source is an injected dependency whose lifetime is unknown, so it may outlive and keep 'LambdaApp' alive (possible leak — and being an inline lambda it has no '-=' handle, so it could never be detached)
|
|
own-check repo scan (github + msbuild) + composite action:
frontend/roslyn/samples/AppScopedSourceSample.cs#L74
event 'themeManager.ThemeChanged' is subscribed (handler 'OnTheme') but never unsubscribed; its source is an injected dependency whose lifetime is unknown, so it may outlive and keep 'NotAnApp' alive (possible leak)
|
|
own-check repo scan (github + msbuild) + composite action:
frontend/roslyn/samples/AppDomainShutdownSample.cs#L54
event 'SomeBus.Pinged' is subscribed (handler '(_, _) => cts.Cancel()') to a static (process-lived) event source that outlives 'NonAppDomainSubscriber'; the strong subscription promotes 'NonAppDomainSubscriber' to the source's lifetime, so it can never be collected — a region escape (leak, no release path — and being an inline lambda it has no '-=' handle, so it could never be detached)
|
|
own-check repo scan (github + msbuild) + composite action:
frontend/roslyn/samples/AppDomainShutdownSample.cs#L34
event 'AppDomain.CurrentDomain.ProcessExit' is subscribed (handler '(_, _) => _count++') to a static (process-lived) event source that outlives 'CapturingShutdownSubscriber'; the strong subscription promotes 'CapturingShutdownSubscriber' to the source's lifetime, so it can never be collected — a region escape (leak, no release path — and being an inline lambda it has no '-=' handle, so it could never be detached)
|
|
own-check repo scan (github + msbuild) + composite action:
frontend/roslyn/samples/AliasedSourceViewModel.cs#L23
event 'src.CustomerChanged' is subscribed (handler 'OnAliased') but never unsubscribed; its source is an injected dependency whose lifetime is unknown, so it may outlive and keep 'AliasedSourceViewModel' alive (possible leak)
|
|
own-check repo scan (github + msbuild) + composite action:
frontend/roslyn/samples/AliasDisposeSample.cs#L75
IDisposable field '_scopedLeak' (type 'CancellationTokenSource') is never disposed — its owner 'ScopedAliasNameLeak' leaks it (leak)
|
|
own-check repo scan (github + msbuild) + composite action:
frontend/roslyn/samples/AliasDisposeSample.cs#L57
IDisposable field '_refRebound' (type 'CancellationTokenSource') is never disposed — its owner 'RefReboundAliasLeaks' leaks it (leak)
|
|
own-check repo scan (github + msbuild) + composite action:
frontend/roslyn/samples/AliasDisposeSample.cs#L42
IDisposable field '_rebound' (type 'CancellationTokenSource') is never disposed — its owner 'ReboundAliasLeaks' leaks it (leak)
|
|
own-check repo scan (github + msbuild) + composite action:
frontend/roslyn/samples/AliasDisposeSample.cs#L29
IDisposable field '_neverDisposed' (type 'CancellationTokenSource') is never disposed — its owner 'AliasNeverDisposes' leaks it (leak)
|
|
own-check repo scan (github + msbuild) + composite action:
frontend/roslyn/samples/AssociatedObjectSourceSample.cs#L139
event 's0.Loaded' is subscribed (handler 'OnLoaded') but never unsubscribed; its source is an injected dependency whose lifetime is unknown, so it may outlive and keep 'ReassignedLocalBehavior' alive (possible leak)
|
|
own-check repo scan (github + msbuild) + composite action:
frontend/roslyn/samples/AssociatedObjectSourceSample.cs#L118
event 'panel.Loaded' is subscribed (handler 'OnLoaded') but never unsubscribed; its source is an injected dependency whose lifetime is unknown, so it may outlive and keep 'MixedFieldBehavior' alive (possible leak)
|
|
own-check repo scan (github + msbuild) + composite action:
frontend/roslyn/samples/AssociatedObjectSourceSample.cs#L100
event 'this.AssociatedObject.Loaded' is subscribed (handler 'OnLoaded') but never unsubscribed; its source is an injected dependency whose lifetime is unknown, so it may outlive and keep 'NotABehavior' alive (possible leak)
|
|
own-check repo scan (github + msbuild) + composite action:
frontend/roslyn/samples/AssociatedObjectSourceSample.cs#L57
event '_bus.Changed' is subscribed (handler '(s, e) => Handle()') but never unsubscribed; its source is an injected dependency whose lifetime is unknown, so it may outlive and keep 'TiltLikeBehavior' alive (possible leak — and being an inline lambda it has no '-=' handle, so it could never be detached)
|
|
own-check repo scan (github + msbuild) + composite action:
frontend/roslyn/samples/AppScopedSourceSample.cs#L137
event 'tm.ThemeChanged' is subscribed (handler 'OnTheme') but never unsubscribed; its source is an injected dependency whose lifetime is unknown, so it may outlive and keep 'ReassignApp' alive (possible leak)
|
|
own-check repo scan (github + msbuild) + composite action:
frontend/roslyn/samples/AppScopedSourceSample.cs#L118
event 'themeManager.ThemeChanged' is subscribed (handler '_twin!.OnTheme') but never unsubscribed; its source is an injected dependency whose lifetime is unknown, so it may outlive and keep 'TwinApp' alive (possible leak)
|
|
own-check repo scan (github + msbuild) + composite action:
frontend/roslyn/samples/AppScopedSourceSample.cs#L100
event 'service.ThemeChanged' is subscribed (handler 'OnTheme') but never unsubscribed; its source is an injected dependency whose lifetime is unknown, so it may outlive and keep 'CuratedOnlyApp' alive (possible leak)
|
|
own-check repo scan (github + msbuild) + composite action:
frontend/roslyn/samples/AppScopedSourceSample.cs#L89
event 'themeManager.ThemeChanged' is subscribed (handler '(s, e) => counter[0]++') but never unsubscribed; its source is an injected dependency whose lifetime is unknown, so it may outlive and keep 'LambdaApp' alive (possible leak — and being an inline lambda it has no '-=' handle, so it could never be detached)
|
|
own-check repo scan (github + msbuild) + composite action:
frontend/roslyn/samples/AppScopedSourceSample.cs#L74
event 'themeManager.ThemeChanged' is subscribed (handler 'OnTheme') but never unsubscribed; its source is an injected dependency whose lifetime is unknown, so it may outlive and keep 'NotAnApp' alive (possible leak)
|
|
own-check repo scan (github + msbuild) + composite action:
frontend/roslyn/samples/AliasedSourceViewModel.cs#L23
event 'src.CustomerChanged' is subscribed (handler 'OnAliased') but never unsubscribed; its source is an injected dependency whose lifetime is unknown, so it may outlive and keep 'AliasedSourceViewModel' alive (possible leak)
|
|
OWN001:
frontend/roslyn/samples/AssociatedObjectSourceSample.cs#L118
[OWN001] event 'panel.Loaded' is subscribed (handler 'OnLoaded') but never unsubscribed; its source is an injected dependency whose lifetime is unknown, so it may outlive and keep 'MixedFieldBehavior' alive (possible leak) [resource: subscription token]
|
|
OWN001:
frontend/roslyn/samples/AssociatedObjectSourceSample.cs#L100
[OWN001] event 'this.AssociatedObject.Loaded' is subscribed (handler 'OnLoaded') but never unsubscribed; its source is an injected dependency whose lifetime is unknown, so it may outlive and keep 'NotABehavior' alive (possible leak) [resource: subscription token]
|
|
OWN001:
frontend/roslyn/samples/AssociatedObjectSourceSample.cs#L57
[OWN001] event '_bus.Changed' is subscribed (handler '(s, e) => Handle()') but never unsubscribed; its source is an injected dependency whose lifetime is unknown, so it may outlive and keep 'TiltLikeBehavior' alive (possible leak — and being an inline lambda it has no '-=' handle, so it could never be detached) [resource: subscription token]
|
|
OWN001:
frontend/roslyn/samples/AppScopedSourceSample.cs#L137
[OWN001] event 'tm.ThemeChanged' is subscribed (handler 'OnTheme') but never unsubscribed; its source is an injected dependency whose lifetime is unknown, so it may outlive and keep 'ReassignApp' alive (possible leak) [resource: subscription token]
|
|
OWN001:
frontend/roslyn/samples/AppScopedSourceSample.cs#L118
[OWN001] event 'themeManager.ThemeChanged' is subscribed (handler '_twin!.OnTheme') but never unsubscribed; its source is an injected dependency whose lifetime is unknown, so it may outlive and keep 'TwinApp' alive (possible leak) [resource: subscription token]
|
|
OWN001:
frontend/roslyn/samples/AppScopedSourceSample.cs#L100
[OWN001] event 'service.ThemeChanged' is subscribed (handler 'OnTheme') but never unsubscribed; its source is an injected dependency whose lifetime is unknown, so it may outlive and keep 'CuratedOnlyApp' alive (possible leak) [resource: subscription token]
|
|
OWN001:
frontend/roslyn/samples/AppScopedSourceSample.cs#L89
[OWN001] event 'themeManager.ThemeChanged' is subscribed (handler '(s, e) => counter[0]++') but never unsubscribed; its source is an injected dependency whose lifetime is unknown, so it may outlive and keep 'LambdaApp' alive (possible leak — and being an inline lambda it has no '-=' handle, so it could never be detached) [resource: subscription token]
|
|
OWN001:
frontend/roslyn/samples/AppScopedSourceSample.cs#L74
[OWN001] event 'themeManager.ThemeChanged' is subscribed (handler 'OnTheme') but never unsubscribed; its source is an injected dependency whose lifetime is unknown, so it may outlive and keep 'NotAnApp' alive (possible leak) [resource: subscription token]
|
|
OWN001:
frontend/roslyn/samples/AliasedSourceViewModel.cs#L23
[OWN001] event 'src.CustomerChanged' is subscribed (handler 'OnAliased') but never unsubscribed; its source is an injected dependency whose lifetime is unknown, so it may outlive and keep 'AliasedSourceViewModel' alive (possible leak) [resource: subscription token]
|
|
own-check repo scan (github + msbuild) + composite action:
frontend/roslyn/OwnSharp.Extractor/Program.cs#L5234
Argument of type 'IEnumerable<string?>' cannot be used for parameter 'collection' of type 'IEnumerable<string>' in 'HashSet<string>.HashSet(IEnumerable<string> collection, IEqualityComparer<string>? comparer)' due to differences in the nullability of reference types.
|
|
release-workflow environment-protection predicate (fixture-driven)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
tests (py3.12)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5, actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
OwnTS OSS true positives -> runtime leak proof (jsdom)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
golden C# compiles & runs (.NET)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5, actions/setup-dotnet@67a3573c9a986a3f9c594539f4ab511d57bb3ce9, actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
P-014 Tier B — external reference resolution (--ref-dir)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5, actions/setup-dotnet@67a3573c9a986a3f9c594539f4ab511d57bb3ce9, actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
P-014 Tier B — external reference resolution (--ref-dir):
frontend/roslyn/OwnSharp.Extractor/Program.cs#L5234
Argument of type 'IEnumerable<string?>' cannot be used for parameter 'collection' of type 'IEnumerable<string>' in 'HashSet<string>.HashSet(IEnumerable<string> collection, IEqualityComparer<string>? comparer)' due to differences in the nullability of reference types.
|
|
own-check.ps1 exit-code tiers (Windows)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5, actions/setup-dotnet@67a3573c9a986a3f9c594539f4ab511d57bb3ce9, actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Stage-2 mutation campaign, Windows verdict (gate only, records nothing)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5, actions/setup-dotnet@67a3573c9a986a3f9c594539f4ab511d57bb3ce9, actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
rust (fmt + clippy + tests)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
own-check SARIF -> GitHub code scanning (Rust dog-food)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5, actions/setup-dotnet@v4, actions/setup-python@v5. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
own-check SARIF -> GitHub code scanning (Rust dog-food):
frontend/roslyn/OwnSharp.Extractor/Program.cs#L5234
Argument of type 'IEnumerable<string?>' cannot be used for parameter 'collection' of type 'IEnumerable<string>' in 'HashSet<string>.HashSet(IEnumerable<string> collection, IEqualityComparer<string>? comparer)' due to differences in the nullability of reference types.
|
|
owen --engine (#262 Stage 1 controls) (ubuntu-latest)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5, actions/setup-dotnet@67a3573c9a986a3f9c594539f4ab511d57bb3ce9, actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
owen --engine (#262 Stage 1 controls) (ubuntu-latest):
frontend/roslyn/OwnSharp.Extractor/Program.cs#L5234
Argument of type 'IEnumerable<string?>' cannot be used for parameter 'collection' of type 'IEnumerable<string>' in 'HashSet<string>.HashSet(IEnumerable<string> collection, IEqualityComparer<string>? comparer)' due to differences in the nullability of reference types.
|
|
owen --engine (#262 Stage 1 controls) (ubuntu-latest):
frontend/roslyn/OwnSharp.Extractor/Program.cs#L5234
Argument of type 'IEnumerable<string?>' cannot be used for parameter 'collection' of type 'IEnumerable<string>' in 'HashSet<string>.HashSet(IEnumerable<string> collection, IEqualityComparer<string>? comparer)' due to differences in the nullability of reference types.
|
|
tests (py3.11)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5, actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
owen CLI (gate A) — clean install -> check -> findings (windows-latest)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5, actions/setup-dotnet@67a3573c9a986a3f9c594539f4ab511d57bb3ce9, actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
owen CLI (gate A) — clean install -> check -> findings (windows-latest):
frontend/roslyn/OwnSharp.Extractor/Program.cs#L5234
Argument of type 'IEnumerable<string?>' cannot be used for parameter 'collection' of type 'IEnumerable<string>' in 'HashSet<string>.HashSet(IEnumerable<string> collection, IEqualityComparer<string>? comparer)' due to differences in the nullability of reference types.
|
|
Rust-default dogfood (Own.NET's own tree, via own-cli) (windows-latest)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5, actions/setup-dotnet@67a3573c9a986a3f9c594539f4ab511d57bb3ce9, actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Rust-default dogfood (Own.NET's own tree, via own-cli) (windows-latest):
frontend/roslyn/OwnSharp.Extractor/Program.cs#L5234
Argument of type 'IEnumerable<string?>' cannot be used for parameter 'collection' of type 'IEnumerable<string>' in 'HashSet<string>.HashSet(IEnumerable<string> collection, IEqualityComparer<string>? comparer)' due to differences in the nullability of reference types.
|
|
owen --engine (#262 Stage 1 controls) (windows-latest)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5, actions/setup-dotnet@67a3573c9a986a3f9c594539f4ab511d57bb3ce9, actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
owen --engine (#262 Stage 1 controls) (windows-latest):
frontend/roslyn/OwnSharp.Extractor/Program.cs#L5234
Argument of type 'IEnumerable<string?>' cannot be used for parameter 'collection' of type 'IEnumerable<string>' in 'HashSet<string>.HashSet(IEnumerable<string> collection, IEqualityComparer<string>? comparer)' due to differences in the nullability of reference types.
|
|
owen --engine (#262 Stage 1 controls) (windows-latest):
frontend/roslyn/OwnSharp.Extractor/Program.cs#L5234
Argument of type 'IEnumerable<string?>' cannot be used for parameter 'collection' of type 'IEnumerable<string>' in 'HashSet<string>.HashSet(IEnumerable<string> collection, IEqualityComparer<string>? comparer)' due to differences in the nullability of reference types.
|
|
corpus benchmark (real C# recall + specificity)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5, actions/setup-dotnet@67a3573c9a986a3f9c594539f4ab511d57bb3ce9, actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065, actions/upload-artifact@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
C# leak extractor (Roslyn) -> OwnIR -> core
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5, actions/setup-dotnet@67a3573c9a986a3f9c594539f4ab511d57bb3ce9, actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065, actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
C# leak extractor (Roslyn) -> OwnIR -> core:
frontend/roslyn/OwnSharp.Extractor/Program.cs#L5234
Argument of type 'IEnumerable<string?>' cannot be used for parameter 'collection' of type 'IEnumerable<string>' in 'HashSet<string>.HashSet(IEnumerable<string> collection, IEqualityComparer<string>? comparer)' due to differences in the nullability of reference types.
|
|
Windows-native mutation campaign (own-check.ps1 + the drive-rooted locator arm)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5, actions/setup-dotnet@67a3573c9a986a3f9c594539f4ab511d57bb3ce9, actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
shadow compare (C# samples)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5, actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093, actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
#263-A measurement instrument (CALIBRATION_ONLY) (ubuntu-latest)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5, actions/setup-dotnet@67a3573c9a986a3f9c594539f4ab511d57bb3ce9, actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065, actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
#263-A measurement instrument (CALIBRATION_ONLY) (windows-latest)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5, actions/setup-dotnet@67a3573c9a986a3f9c594539f4ab511d57bb3ce9, actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065, actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
Artifacts
Produced during runtime
| Name | Size | Digest | |
|---|---|---|---|
|
benchmark-scorecard
|
1.53 KB |
sha256:d94a3208994a426dd8a30fa61bddd925756faad3251ca81abec93ec69d74dd0b
|
|
|
csharp-samples-ownir
|
4.34 KB |
sha256:81c213e9f18d24312026429ebb79a2678e7999c7e5dca683466a700caa0de934
|
|
|
perf-calibration-ubuntu-latest
|
20.1 KB |
sha256:8eee7009565183f57f7d776c4904a757a3a491893a0c52c53b9a3104e53167aa
|
|
|
perf-calibration-windows-latest
|
18 KB |
sha256:b83c5a546284fde25e5cd23374e4b24e31038d7c3447c86d333d66111e466cf4
|
|