feat: P-016 B0b: triage --flow-locals on sample project (closed sourc… #94
ci.yml
on: push
lint (ruff + mypy --strict)
11s
extended codegen fuzz
38s
golden C# compiles & runs (.NET)
27s
C# leak extractor (Roslyn) -> OwnIR -> core
30s
own-check repo scan (github + msbuild) + composite action
41s
Matrix: tests
Annotations
30 errors and 18 warnings
|
OWN001:
frontend/roslyn/samples/TimerViewModel.cs#L15
[OWN001] timer '_timer.Tick' (handler 'OnTick') is started but never stopped or detached — the running timer keeps 'TimerViewModel' alive (leak) [resource: timer]
|
|
OWN001:
frontend/roslyn/samples/PooledBufferSample.cs#L12
[OWN001] pooled buffer 'leaky' is rented but never returned to the pool (leak) [resource: pooled buffer]
|
|
OWN001:
frontend/roslyn/samples/MessengerViewModel.cs#L12
[OWN001] the result of 'messenger.Subscribe' is ignored — the IDisposable subscription is never disposed, leaking 'InboxViewModel' (leak) [resource: subscription token]
|
|
OWN001:
frontend/roslyn/samples/LocalDisposableSample.cs#L12
[OWN001] IDisposable local 'leaky' may not be disposed on every path (leak) [resource: disposable]
|
|
OWN001:
frontend/roslyn/samples/FlowLocalsSample.cs#L75
[OWN001] IDisposable local 'realTimer' may not be disposed on every path (leak) [resource: disposable]
|
|
OWN003:
frontend/roslyn/samples/FlowLocalsSample.cs#L33
[OWN003] IDisposable local 'dbl' is disposed more than once [resource: disposable]
|
|
OWN001:
frontend/roslyn/samples/FlowLocalsSample.cs#L23
[OWN001] IDisposable local 'leak' may not be disposed on every path (leak) [resource: disposable]
|
|
OWN002:
frontend/roslyn/samples/FlowLocalsSample.cs#L14
[OWN002] IDisposable local 'uad' is used after it is disposed [resource: disposable]
|
|
OWN001:
frontend/roslyn/samples/DisposableFieldViewModel.cs#L10
[OWN001] IDisposable field '_cts' (type 'CancellationTokenSource') is never disposed — its owner 'ReportViewModel' leaks it (leak) [resource: disposable field]
|
|
OWN001:
frontend/roslyn/samples/CustomerViewModel.cs#L10
[OWN001] event 'bus.CustomerChanged' is subscribed (handler 'OnCustomerChanged') but never unsubscribed — the source keeps 'CustomerViewModel' alive (leak) [resource: subscription token]
|
|
own-check repo scan (github + msbuild) + composite action:
frontend/roslyn/samples/TimerViewModel.cs#L15
timer '_timer.Tick' (handler 'OnTick') is started but never stopped or detached — the running timer keeps 'TimerViewModel' alive (leak)
|
|
own-check repo scan (github + msbuild) + composite action:
frontend/roslyn/samples/PooledBufferSample.cs#L12
pooled buffer 'leaky' is rented but never returned to the pool (leak)
|
|
own-check repo scan (github + msbuild) + composite action:
frontend/roslyn/samples/MessengerViewModel.cs#L12
the result of 'messenger.Subscribe' is ignored — the IDisposable subscription is never disposed, leaking 'InboxViewModel' (leak)
|
|
own-check repo scan (github + msbuild) + composite action:
frontend/roslyn/samples/LocalDisposableSample.cs#L12
IDisposable local 'leaky' may not be disposed on every path (leak)
|
|
own-check repo scan (github + msbuild) + composite action:
frontend/roslyn/samples/FlowLocalsSample.cs#L75
IDisposable local 'realTimer' may not be disposed on every path (leak)
|
|
own-check repo scan (github + msbuild) + composite action:
frontend/roslyn/samples/FlowLocalsSample.cs#L33
IDisposable local 'dbl' is disposed more than once
|
|
own-check repo scan (github + msbuild) + composite action:
frontend/roslyn/samples/FlowLocalsSample.cs#L23
IDisposable local 'leak' may not be disposed on every path (leak)
|
|
own-check repo scan (github + msbuild) + composite action:
frontend/roslyn/samples/FlowLocalsSample.cs#L14
IDisposable local 'uad' is used after it is disposed
|
|
own-check repo scan (github + msbuild) + composite action:
frontend/roslyn/samples/DisposableFieldViewModel.cs#L10
IDisposable field '_cts' (type 'CancellationTokenSource') is never disposed — its owner 'ReportViewModel' leaks it (leak)
|
|
own-check repo scan (github + msbuild) + composite action:
frontend/roslyn/samples/CustomerViewModel.cs#L10
event 'bus.CustomerChanged' is subscribed (handler 'OnCustomerChanged') but never unsubscribed — the source keeps 'CustomerViewModel' alive (leak)
|
|
OWN001:
frontend/roslyn/samples/TimerViewModel.cs#L15
[OWN001] timer '_timer.Tick' (handler 'OnTick') is started but never stopped or detached — the running timer keeps 'TimerViewModel' alive (leak) [resource: timer]
|
|
OWN001:
frontend/roslyn/samples/PooledBufferSample.cs#L12
[OWN001] pooled buffer 'leaky' is rented but never returned to the pool (leak) [resource: pooled buffer]
|
|
OWN001:
frontend/roslyn/samples/MessengerViewModel.cs#L12
[OWN001] the result of 'messenger.Subscribe' is ignored — the IDisposable subscription is never disposed, leaking 'InboxViewModel' (leak) [resource: subscription token]
|
|
OWN001:
frontend/roslyn/samples/LocalDisposableSample.cs#L12
[OWN001] IDisposable local 'leaky' may not be disposed on every path (leak) [resource: disposable]
|
|
OWN001:
frontend/roslyn/samples/FlowLocalsSample.cs#L75
[OWN001] IDisposable local 'realTimer' may not be disposed on every path (leak) [resource: disposable]
|
|
OWN003:
frontend/roslyn/samples/FlowLocalsSample.cs#L33
[OWN003] IDisposable local 'dbl' is disposed more than once [resource: disposable]
|
|
OWN001:
frontend/roslyn/samples/FlowLocalsSample.cs#L23
[OWN001] IDisposable local 'leak' may not be disposed on every path (leak) [resource: disposable]
|
|
OWN002:
frontend/roslyn/samples/FlowLocalsSample.cs#L14
[OWN002] IDisposable local 'uad' is used after it is disposed [resource: disposable]
|
|
OWN001:
frontend/roslyn/samples/DisposableFieldViewModel.cs#L10
[OWN001] IDisposable field '_cts' (type 'CancellationTokenSource') is never disposed — its owner 'ReportViewModel' leaks it (leak) [resource: disposable field]
|
|
OWN001:
frontend/roslyn/samples/CustomerViewModel.cs#L10
[OWN001] event 'bus.CustomerChanged' is subscribed (handler 'OnCustomerChanged') but never unsubscribed — the source keeps 'CustomerViewModel' alive (leak) [resource: subscription token]
|
|
lint (ruff + mypy --strict)
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/setup-python@v5. Actions will be forced to run with Node.js 24 by default starting June 16th, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
tests (py3.11)
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/setup-python@v5. Actions will be forced to run with Node.js 24 by default starting June 16th, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. 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 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/setup-python@v5. Actions will be forced to run with Node.js 24 by default starting June 16th, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. 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 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/setup-python@v5. Actions will be forced to run with Node.js 24 by default starting June 16th, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. 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 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/setup-dotnet@v4, actions/setup-python@v5. Actions will be forced to run with Node.js 24 by default starting June 16th, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. 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 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/setup-dotnet@v4, actions/setup-python@v5. Actions will be forced to run with Node.js 24 by default starting June 16th, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. 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 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/setup-python@v5. Actions will be forced to run with Node.js 24 by default starting June 16th, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
own-check repo scan (github + msbuild) + composite action
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/setup-dotnet@v4, actions/setup-python@v5. Actions will be forced to run with Node.js 24 by default starting June 16th, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
own-check repo scan (github + msbuild) + composite action:
frontend/roslyn/samples/TimerViewModel.cs#L15
timer '_timer.Tick' (handler 'OnTick') is started but never stopped or detached — the running timer keeps 'TimerViewModel' alive (leak)
|
|
own-check repo scan (github + msbuild) + composite action:
frontend/roslyn/samples/PooledBufferSample.cs#L12
pooled buffer 'leaky' is rented but never returned to the pool (leak)
|
|
own-check repo scan (github + msbuild) + composite action:
frontend/roslyn/samples/MessengerViewModel.cs#L12
the result of 'messenger.Subscribe' is ignored — the IDisposable subscription is never disposed, leaking 'InboxViewModel' (leak)
|
|
own-check repo scan (github + msbuild) + composite action:
frontend/roslyn/samples/LocalDisposableSample.cs#L12
IDisposable local 'leaky' may not be disposed on every path (leak)
|
|
own-check repo scan (github + msbuild) + composite action:
frontend/roslyn/samples/FlowLocalsSample.cs#L75
IDisposable local 'realTimer' may not be disposed on every path (leak)
|
|
own-check repo scan (github + msbuild) + composite action:
frontend/roslyn/samples/FlowLocalsSample.cs#L33
IDisposable local 'dbl' is disposed more than once
|
|
own-check repo scan (github + msbuild) + composite action:
frontend/roslyn/samples/FlowLocalsSample.cs#L23
IDisposable local 'leak' may not be disposed on every path (leak)
|
|
own-check repo scan (github + msbuild) + composite action:
frontend/roslyn/samples/FlowLocalsSample.cs#L14
IDisposable local 'uad' is used after it is disposed
|
|
own-check repo scan (github + msbuild) + composite action:
frontend/roslyn/samples/DisposableFieldViewModel.cs#L10
IDisposable field '_cts' (type 'CancellationTokenSource') is never disposed — its owner 'ReportViewModel' leaks it (leak)
|
|
own-check repo scan (github + msbuild) + composite action:
frontend/roslyn/samples/CustomerViewModel.cs#L10
event 'bus.CustomerChanged' is subscribed (handler 'OnCustomerChanged') but never unsubscribed — the source keeps 'CustomerViewModel' alive (leak)
|