From 797f74c5a46c9e1a3003d5ba3f1c4632f320939c Mon Sep 17 00:00:00 2001 From: PhysShell <45852143+PhysShell@users.noreply.github.com> Date: Tue, 20 Oct 2026 20:25:34 +0500 Subject: [PATCH 1/5] =?UTF-8?q?docs(evidence):=20N3=20pilot=20G1=E2=80=93G?= =?UTF-8?q?4=20pre-registration=20and=20G2=20controls?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixed before any PoC code: scope-ownership evidence S1–S5 (HttpContext, AddDbContext, proven-scoped service, request-scope IServiceProvider; HttpClient never), request-bound holders R1–R3, detached forms D1–D3c (one same-class hop, no cross-class), required pairs mars-vista-api#26, DotNetCloud#43, DFY-BE#35, 14 negative controls, G3 sample (28 saved mature repos, >=5 warnings, precision >=80% with UNCLEAR as FP) and G4. Co-Authored-By: Claude Opus 5.5 (1M context) Claude-Session: https://claude.ai/code/session_01TFkNAFFQz9KoTzpPws8vYG --- .../01-preregistration-g1-g4.md | 153 ++++++++++++ .../controls/N3NegativeControls.cs | 223 ++++++++++++++++++ 2 files changed, 376 insertions(+) create mode 100644 docs/evidence/n3-pilot-2026-10/01-preregistration-g1-g4.md create mode 100644 docs/evidence/n3-pilot-2026-10/controls/N3NegativeControls.cs diff --git a/docs/evidence/n3-pilot-2026-10/01-preregistration-g1-g4.md b/docs/evidence/n3-pilot-2026-10/01-preregistration-g1-g4.md new file mode 100644 index 00000000..3993c35e --- /dev/null +++ b/docs/evidence/n3-pilot-2026-10/01-preregistration-g1-g4.md @@ -0,0 +1,153 @@ +# N3 bounded pilot, gates G1–G4 — pre-registration + +Written 2026-10-20, 20:23 +05, before any G1 code was written. No diff of a G1 pair was read in this session. +Phase 0 read those diffs and summarised them in one line each (`class-miner-phase0-2026-10/data/classes.tsv`). +Those summaries are all that is known here. + +Authority: owner decision `ACCEPT-PASS-G0 / GO-G1-PREREG-AND-BOUNDED-EXECUTION / NO-PRODUCTION`, on #415. + +- **Budget.** One agent-day for G1–G4 together, the same budget approved before G0; it is not extended. +- **Order.** G1 → G2 → G3 → G4. The first failed gate stops the pilot with `KILL-N3-PILOT`, and work returns to N1. +- **Scope.** No production, OwnIR, CI or golden change. The PoC lives under `docs/evidence/n3-pilot-2026-10/`. + +## 1. What a warning claims + +> Code of a request-bound type hands a **scope-owned object** to **detached work**, and the detached work can still +> use that object after the request scope has ended. + +A warning needs both halves: §2 proves the object is scope-owned, and §3 proves the work is detached. The type of the +object alone is never enough. + +## 2. Scope-ownership evidence (fixed) + +A reference is **scope-owned** only when one row below proves it. Anything else is **unknown**, and unknown is +silent. + +| Id | Object | Proof required | Not enough | +|---|---|---|---| +| S1 | `HttpContext`, and `HttpRequest`/`HttpResponse` taken from it | the value comes from the `HttpContext` property of a request-bound type (R1–R3), or is read from `IHttpContextAccessor.HttpContext` **outside** the detached work and then captured | reading `accessor.HttpContext` inside the detached work (a different defect: null or stale context, not in this slice) | +| S2 | a `DbContext` subtype `T` | `T` is registered with `AddDbContext` and no lifetime argument (default scoped), **or** an explicit `ServiceLifetime.Scoped`; and the reference is a constructor-injected field or parameter of a request-bound type | `AddDbContext` with `ServiceLifetime.Singleton`; `AddDbContextFactory`, `AddPooledDbContextFactory`, or a context created inside the detached work | +| S3 | a scoped service | the injected type name is proven scoped by G0 rules 1–4 (every product registration of that name is scoped), and the reference is a constructor-injected field or parameter of a request-bound type | type name only; mixed lifetimes; transient | +| S4 | `IServiceProvider` | constructor-injected into a request-bound type (R1–R3), so it is that request's scope provider; the detached work resolves from it | a provider injected into a singleton, a hosted service or any type that is not request-bound (root provider); `scope.ServiceProvider` of a scope created inside the detached work | +| S5 | `HttpClient` | **never** in this slice. Factory-created and typed clients follow `IHttpClientFactory` rules, not scope ownership | everything | + +Transient `IDisposable` services resolved inside a request scope are also disposed with the scope (owner's note). +This slice does **not** prove them, so they count as unknown. The report must count how many silent sites this +leaves. + +**Request-bound type**, the holder of the reference: + +- **R1.** A class deriving from `ControllerBase`/`Controller`, or carrying `[ApiController]`, by its activation model. + It does not need a DI registration. +- **R2.** A Razor `PageModel`, a SignalR `Hub`, or a minimal-API handler lambda or middleware `InvokeAsync` + parameter. +- **R3.** A class registered scoped, proven by G0 rules 1–4. + +A type registered singleton or transient, and a hosted service, is not request-bound. A transient holder is +unknown, not request-bound, in this slice. + +## 3. Detached work (fixed) + +The work is **detached** only in one of these forms: + +| Id | Form | Condition | +|---|---|---| +| D1 | `Task.Run(λ)`, `Task.Factory.StartNew(λ)`, `ThreadPool.QueueUserWorkItem(λ)`, `new Thread(λ).Start()` | the resulting task is discarded (`_ =` or an expression statement). It is not awaited, returned, assigned and later awaited, or passed to `Task.WhenAll`/`WhenAny`/`Wait` in the same method. Any use of a scope-owned object inside `λ` counts | +| D2 | `QueueBackgroundWorkItem(λ)` (`HostingEnvironment`), or a method named `QueueBackgroundWorkItem*` / `Enqueue*` on a type registered singleton, or one whose name ends in `BackgroundTaskQueue` | any use of a scope-owned object inside `λ` counts | +| D3a | a discarded call whose **receiver** is a scope-owned object: `_ = x.MAsync(…)` or `x.MAsync(…);` with a `Task`-typed result | silent when the callee resolves, by the receiver's declared type, to a non-`async` method that returns a completed task. Otherwise reported: the scope-owned object runs code detached from the request | +| D3b | a discarded call to a method **of the same class** (`_ = MAsync(…)`, `_ = this.MAsync(…)`) | reported only when the callee uses a scope-owned field, or a parameter bound to a scope-owned argument, **after its first `await`**. One hop only: calls inside the callee are not followed | +| D3c | a discarded call to a method of **another class**, with a scope-owned argument | **silent** in this slice. There is no cross-class hop | + +**Use** means a member access, a method call, or passing the reference on. A read that copies data into a local +**before** the detached work starts is not a use inside the work. + +No other form counts, including async void, events and timers. + +## 4. G1 — tiny PoC on real pairs + +- **PoC.** A Roslyn syntax-and-semantic scan, without MSBuild evaluation of the third-party project. It uses: + - the Microsoft.CodeAnalysis DLLs of the `e7d33e33` extractor build; + - a compilation of the repository's `.cs` files with framework reference assemblies only. Unresolved third-party + types are tolerated, and their names come from syntax. + + It reads the registrations through the extractor `services` facts and the G0 rules, plus `AddDbContext` calls for + S2. + + The PoC is built with `--configfile` pointing to a nuget.org-only config and outside the `source/repos` tree. It is + never built inside a third-party tree. Third-party code is only parsed, never restored or built (D13 isolation + rule). +- **Pairs, fixed now.** + - **Required:** `james-langridge/mars-vista-api#26`, `LLabmik/DotNetCloud#43`, `DoForYou-ZA/DFY-BE#35`. + - **Reported only, not required:** `ASADRAJA/Vendorea.PartnerConnect#49`, + `microting/eform-angular-timeplanning-plugin#1669`, `escalated-dev/escalated-dotnet#162` (D3b). + - **Excluded by rule:** GanjoorService#508 (S5, `HttpClient`) and ChatCore.NET#2 (cross-class). +- **Trees.** For each pair, the PR's base commit (buggy) and its merge or head commit (fixed). They are fetched as + source archives over the GitHub API into a fresh directory outside `source/repos`. Nothing is built or restored. + +**PASS-G1** needs both, for each of the three required pairs: + +- **Buggy tree.** At least one warning whose capture or call site is a line the fix changes or removes, and whose + explanation names one S row and one D row. +- **Fixed tree.** No warning on the code the fix touches. + +**KILL** at G1 if any of: + +- a required pair is missed; +- a fixed tree is warned; +- a pair can be explained only by an ownership or detachment assumption outside §2/§3. + +A rule must not be added after seeing a pair. + +## 5. G2 — mandatory negative controls + +One synthetic file, `controls/N3NegativeControls.cs`, is written **before** the PoC is first run on anything. Each +control sits in a request-bound controller with a proven scoped `AppDbContext`, unless stated otherwise. Every +control must be **silent**: + +| # | Control | +|---|---| +| C1 | `await Task.Run(() => _db…)` | +| C2 | `return Task.Run(() => _db…)` | +| C3 | `var t = Task.Run(() => _db…); … await t;` | +| C4 | `var t1 = Task.Run(…_db…); var t2 = …; await Task.WhenAll(t1, t2);` | +| C5 | own scope: `Task.Run(async () => { using var s = _scopeFactory.CreateScope(); var db = s.ServiceProvider.GetRequiredService(); … })` | +| C6 | singleton holder: a class registered `AddSingleton` with singleton deps, firing `Task.Run` that uses its fields | +| C7 | copied data: `var id = _db.Orders.First().Id; var name = HttpContext.User.Identity!.Name; _ = Task.Run(() => Log(id, name));` | +| C8 | `_ = SaveLaterAsync();` (same class) that uses `_db` only **before** its first `await` | +| C9 | an `HttpClient` field in a controller used in a discarded `Task.Run` (S5) | +| C10 | `IServiceProvider` injected into a singleton and used in a discarded `Task.Run` (root provider, S4) | +| C11 | `IHttpClientFactory.CreateClient()` inside a discarded `Task.Run` | +| C12 | `_ = _scoped.PingAsync();` where `PingAsync` is non-`async` and returns `Task.CompletedTask` (D3a) | +| C13 | a mixed-lifetime service (registered scoped in one place and singleton in another) used in a discarded `Task.Run` | +| C14 | `accessor.HttpContext` read inside the detached work (S1, out of slice) | + +The same file also holds one **positive** sample for each of S1–S4 × D1–D3b. The PoC must report each of them; a +miss is a PoC bug and is fixed before G1 is scored. + +**PASS-G2:** C1–C14 silent, and the fixed trees of G1 silent (already required). **KILL** on any warning on a +control. Controls may be added after the first run; none may be removed or changed. + +## 6. G3 — independent precision + +- **Sample, fixed now.** The 28 mature repositories whose sources the direction research holds: 15 holdout and 13 + design-B sweep repositories, at their pinned SHAs. None of them was used to choose or shape N3. Every product-code + warning is triaged by reading the code, with a verdict of TP, FP or UNCLEAR. Warnings in test projects (G0 rule 1) + and in paths matching the direction-research non-product regex are counted but not triaged. +- **Threshold.** Precision ≥ 80%, with UNCLEAR counted as FP, over at least **5** product warnings. +- **PASS-G3:** both hold. **KILL:** precision below 80%, or fewer than 5 product warnings ("not enough data for a + GO"). The sample is not widened to reach 5. + +## 7. G4 — practical yield + +- **PASS-G4:** at least one G3 TP that is actionable at the pinned SHA. Actionable means product code, not already + guarded or fixed, and a concrete scope-ended path can be named, such as a request that returns before the work + uses the object. +- **KILL:** zero actionable TP. +- G4 opens no new sample; it reads the G3 verdicts. + +## 8. What any outcome does not show + +- A PASS at all gates is evidence for a narrow PoC, not for a production rule. Production design needs a separate + owner decision. +- Silence on S-unknown objects (transient `IDisposable`, mixed lifetimes, unrecognised test projects, factory + lambdas) is not safety. The report counts those sites where the PoC can see them. diff --git a/docs/evidence/n3-pilot-2026-10/controls/N3NegativeControls.cs b/docs/evidence/n3-pilot-2026-10/controls/N3NegativeControls.cs new file mode 100644 index 00000000..da9a5f88 --- /dev/null +++ b/docs/evidence/n3-pilot-2026-10/controls/N3NegativeControls.cs @@ -0,0 +1,223 @@ +// N3 pilot G2 controls (01-preregistration-g1-g4.md §5). Written before the PoC was first run. +// Every method named C_* must be SILENT. Every method named P___* must be REPORTED. +// Combinations marked "n/a" have no meaningful shape (e.g. an IServiceProvider is not awaited as a receiver). +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net.Http; +using System.Threading; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore; +using Microsoft.Extensions.DependencyInjection; + +namespace N3Controls; + +public class AppDbContext : DbContext +{ + public DbSet Orders => Set(); +} + +public class Order { public int Id { get; set; } } + +public interface IOrderService { Task NotifyAsync(int id); Task PingAsync(); } + +public class OrderService : IOrderService +{ + private readonly AppDbContext _db; + public OrderService(AppDbContext db) { _db = db; } + public async Task NotifyAsync(int id) { await Task.Delay(1); _db.Orders.Find(id); } + public Task PingAsync() => Task.CompletedTask; +} + +public interface IMixed { void Touch(); } +public class Mixed : IMixed { public void Touch() { } } + +public interface IClock { DateTime Now { get; } } +public class Clock : IClock { public DateTime Now => DateTime.UtcNow; } + +public interface IBackgroundTaskQueue { void QueueBackgroundWorkItem(Func work); } +public class BackgroundTaskQueue : IBackgroundTaskQueue +{ + public void QueueBackgroundWorkItem(Func work) { } +} + +public class SingletonWorker +{ + private readonly IClock _clock; + private readonly IServiceProvider _root; + public SingletonWorker(IClock clock, IServiceProvider root) { _clock = clock; _root = root; } + + // C6: singleton holder with singleton deps + public void C6_SingletonHolder() { _ = Task.Run(() => Console.WriteLine(_clock.Now)); } + + // C10: root provider in a singleton + public void C10_RootProvider() { _ = Task.Run(() => _root.GetRequiredService()); } +} + +public static class Registrations +{ + public static void Register(IServiceCollection services) + { + services.AddDbContext(); + services.AddScoped(); + services.AddScoped(); + services.AddSingleton(); + services.AddSingleton(); + services.AddSingleton(); + services.AddSingleton(); + services.AddHttpClient(); + } +} + +[ApiController] +public class ControlsController : ControllerBase +{ + private readonly AppDbContext _db; + private readonly IOrderService _orders; + private readonly IServiceProvider _sp; + private readonly IServiceScopeFactory _scopeFactory; + private readonly HttpClient _http; + private readonly IHttpClientFactory _httpFactory; + private readonly IMixed _mixed; + private readonly IHttpContextAccessor _accessor; + private readonly IBackgroundTaskQueue _queue; + + public ControlsController(AppDbContext db, IOrderService orders, IServiceProvider sp, + IServiceScopeFactory scopeFactory, HttpClient http, IHttpClientFactory httpFactory, IMixed mixed, + IHttpContextAccessor accessor, IBackgroundTaskQueue queue) + { + _db = db; _orders = orders; _sp = sp; _scopeFactory = scopeFactory; _http = http; + _httpFactory = httpFactory; _mixed = mixed; _accessor = accessor; _queue = queue; + } + + // ---- negative controls: must be silent ---- + + public async Task C1_Awaited() { await Task.Run(() => _db.Orders.Count()); } + + public Task C2_Returned() { return Task.Run(() => _db.Orders.Count()); } + + public async Task C3_StoredThenAwaited() + { + var t = Task.Run(() => _db.Orders.Count()); + Console.WriteLine("work"); + await t; + } + + public async Task C4_WhenAll() + { + var t1 = Task.Run(() => _db.Orders.Count()); + var t2 = Task.Run(() => _orders.PingAsync()); + await Task.WhenAll(t1, t2); + } + + public void C5_OwnScope() + { + _ = Task.Run(async () => + { + using var s = _scopeFactory.CreateScope(); + var db = s.ServiceProvider.GetRequiredService(); + await db.SaveChangesAsync(); + }); + } + + public void C7_CopiedData() + { + var id = _db.Orders.First().Id; + var name = HttpContext.User.Identity!.Name; + _ = Task.Run(() => Log(id, name)); + } + + public void C8_SameClassUseBeforeAwait() { _ = SaveBeforeAwaitAsync(); } + + private async Task SaveBeforeAwaitAsync() + { + var n = _db.Orders.Count(); + await Task.Delay(n); + Console.WriteLine("done"); + } + + public void C9_HttpClientField() { _ = Task.Run(() => _http.GetAsync("https://example.org")); } + + public void C11_HttpClientFactory() + { + _ = Task.Run(() => _httpFactory.CreateClient().GetAsync("https://example.org")); + } + + public void C12_SyncCompletedReceiver() { _ = _orders.PingAsync(); } + + public void C13_MixedLifetime() { _ = Task.Run(() => _mixed.Touch()); } + + public void C14_AccessorInsideWork() { _ = Task.Run(() => Log(0, _accessor.HttpContext?.TraceIdentifier)); } + + // ---- positive samples: must be reported ---- + + // S1 HttpContext + public void P_S1_D1_HttpContextInTaskRun() { _ = Task.Run(() => Log(0, HttpContext.TraceIdentifier)); } + + public void P_S1_D2_HttpContextInQueue() + { + _queue.QueueBackgroundWorkItem(async ct => { await Task.Delay(1, ct); Log(0, HttpContext.TraceIdentifier); }); + } + + public void P_S1_D3a_HttpContextReceiver() { _ = HttpContext.Response.WriteAsync("late"); } + + public void P_S1_D3b_HttpContextSameClass() { _ = LogLaterAsync(HttpContext); } + + private async Task LogLaterAsync(HttpContext ctx) + { + await Task.Delay(10); + Log(0, ctx.TraceIdentifier); + } + + // S2 DbContext + public void P_S2_D1_DbInTaskRun() { _ = Task.Run(() => _db.Orders.Count()); } + + public void P_S2_D2_DbInQueue() { _queue.QueueBackgroundWorkItem(async ct => await _db.SaveChangesAsync(ct)); } + + public void P_S2_D3a_DbReceiver() { _ = _db.SaveChangesAsync(); } + + public void P_S2_D3b_DbSameClass() { _ = SaveAfterAwaitAsync(); } + + private async Task SaveAfterAwaitAsync() + { + await Task.Delay(10); + await _db.SaveChangesAsync(); + } + + // S3 scoped service + public void P_S3_D1_ScopedInTaskRun() { _ = Task.Run(() => _orders.NotifyAsync(1)); } + + public void P_S3_D2_ScopedInQueue() { _queue.QueueBackgroundWorkItem(ct => _orders.NotifyAsync(2)); } + + public void P_S3_D3a_ScopedReceiver() { _ = _orders.NotifyAsync(3); } + + public void P_S3_D3b_ScopedSameClass() { _ = NotifyLaterAsync(); } + + private async Task NotifyLaterAsync() + { + await Task.Delay(10); + await _orders.NotifyAsync(4); + } + + // S4 request-scope IServiceProvider + public void P_S4_D1_ScopeProviderInTaskRun() { _ = Task.Run(() => _sp.GetRequiredService()); } + + public void P_S4_D2_ScopeProviderInQueue() + { + _queue.QueueBackgroundWorkItem(ct => _sp.GetRequiredService().NotifyAsync(5)); + } + + // P_S4_D3a: n/a (an IServiceProvider call does not return a Task) + + public void P_S4_D3b_ScopeProviderSameClass() { _ = ResolveLaterAsync(); } + + private async Task ResolveLaterAsync() + { + await Task.Delay(10); + _sp.GetRequiredService(); + } + + private static void Log(int id, string? s) => Console.WriteLine($"{id} {s}"); +} From 6a44d99178896da01270770c04171523f5e1d0f3 Mon Sep 17 00:00:00 2001 From: PhysShell <45852143+PhysShell@users.noreply.github.com> Date: Tue, 20 Oct 2026 20:31:33 +0500 Subject: [PATCH 2/5] docs(evidence): N3 pilot PoC v1 and runner (before any real pair) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Roslyn scan for §2/§3 of the G1–G4 pre-registration, built against the e7d33e33 extractor's Roslyn DLLs with no package reference; the runner derives lifetimes from extractor services facts under G0 rules 1, 2, 4. On the G2 control file: 15/15 positive samples reported, C1–C14 silent. Co-Authored-By: Claude Opus 5.5 (1M context) Claude-Session: https://claude.ai/code/session_01TFkNAFFQz9KoTzpPws8vYG --- .../n3-pilot-2026-10/poc/N3Poc.csproj | 15 + docs/evidence/n3-pilot-2026-10/poc/Program.cs | 500 ++++++++++++++++++ .../n3-pilot-2026-10/scripts/n3_run.py | 109 ++++ 3 files changed, 624 insertions(+) create mode 100644 docs/evidence/n3-pilot-2026-10/poc/N3Poc.csproj create mode 100644 docs/evidence/n3-pilot-2026-10/poc/Program.cs create mode 100644 docs/evidence/n3-pilot-2026-10/scripts/n3_run.py diff --git a/docs/evidence/n3-pilot-2026-10/poc/N3Poc.csproj b/docs/evidence/n3-pilot-2026-10/poc/N3Poc.csproj new file mode 100644 index 00000000..7a73ee47 --- /dev/null +++ b/docs/evidence/n3-pilot-2026-10/poc/N3Poc.csproj @@ -0,0 +1,15 @@ + + + + Exe + net10.0 + enable + enable + n3poc + + + $(RoslynDir)/Microsoft.CodeAnalysis.dll + $(RoslynDir)/Microsoft.CodeAnalysis.CSharp.dll + + diff --git a/docs/evidence/n3-pilot-2026-10/poc/Program.cs b/docs/evidence/n3-pilot-2026-10/poc/Program.cs new file mode 100644 index 00000000..f23ca4d8 --- /dev/null +++ b/docs/evidence/n3-pilot-2026-10/poc/Program.cs @@ -0,0 +1,500 @@ +// N3 pilot PoC: a scope-owned object reaches detached work (01-preregistration-g1-g4.md §2-§3). +// Research only. Parses a source tree, never builds or restores it. +// +// usage: n3poc --lifetimes lifetimes.json --refs [--refs ...] --out warnings.tsv +// +// lifetimes.json (written by n3_run.py from extractor `services` facts under G0 rules 1, 2 and 4): +// {"service": {"IFoo": "scoped" | "singleton" | "transient" | "mixed"}, +// "impl": {"Foo": "scoped" | ...}, +// "impls": {"IFoo": ["Foo", ...]}} +using System.Text.Json; +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CSharp; +using Microsoft.CodeAnalysis.CSharp.Syntax; + +var srcDir = args[0]; +string? lifetimesPath = null, outPath = null; +var refDirs = new List(); +for (var i = 1; i < args.Length; i++) +{ + switch (args[i]) + { + case "--lifetimes": lifetimesPath = args[++i]; break; + case "--refs": refDirs.Add(args[++i]); break; + case "--out": outPath = args[++i]; break; + default: throw new ArgumentException($"unknown argument {args[i]}"); + } +} + +var lt = Lifetimes.Load(lifetimesPath); +var skip = new[] { "/obj/", "/bin/", "/.git/", "/node_modules/" }; +var files = Directory.EnumerateFiles(srcDir, "*.cs", SearchOption.AllDirectories) + .Where(f => !skip.Any(s => f.Replace('\\', '/').Contains(s))).OrderBy(f => f, StringComparer.Ordinal).ToList(); +var parse = new CSharpParseOptions(LanguageVersion.Preview); +var trees = files.Select(f => CSharpSyntaxTree.ParseText(File.ReadAllText(f), parse, + Path.GetRelativePath(srcDir, f).Replace('\\', '/'))).ToList(); +var refs = refDirs.SelectMany(d => Directory.EnumerateFiles(d, "*.dll")) + .Select(p => (MetadataReference)MetadataReference.CreateFromFile(p)).ToList(); +var comp = CSharpCompilation.Create("n3scan", trees, refs, + new CSharpCompilationOptions(OutputKind.DynamicallyLinkedLibrary, nullableContextOptions: NullableContextOptions.Enable)); + +// S2: AddDbContext(...) lifetimes, read from syntax (EF Core is not referenced). +var dbContexts = new Dictionary(StringComparer.Ordinal); +foreach (var t in trees) +{ + foreach (var inv in t.GetRoot().DescendantNodes().OfType()) + { + if (inv.Expression is not MemberAccessExpressionSyntax { Name: GenericNameSyntax g } + || g.Identifier.Text != "AddDbContext" || g.TypeArgumentList.Arguments.Count == 0) continue; + var name = Syn.SimpleName(g.TypeArgumentList.Arguments[^1]); + var argText = inv.ArgumentList.ToString(); + var life = argText.Contains("ServiceLifetime.Singleton") ? "singleton" + : argText.Contains("ServiceLifetime.Transient") ? "transient" : "scoped"; + dbContexts[name] = dbContexts.TryGetValue(name, out var prev) && prev != life ? "mixed" : life; + } +} + +var scan = new Scanner(comp, lt, dbContexts); +foreach (var t in trees) scan.Run(t); + +using var w = outPath is null ? Console.Out : new StreamWriter(outPath, false, new System.Text.UTF8Encoding(false)); +w.WriteLine("file\tline\tclass\tmethod\tS\tD\tobject\tholder\tsnippet"); +foreach (var r in scan.Warnings.OrderBy(r => r.File, StringComparer.Ordinal).ThenBy(r => r.Line).ThenBy(r => r.Object)) + w.WriteLine(string.Join('\t', r.File, r.Line, r.Class, r.Method, r.S, r.D, r.Object, r.Holder, r.Snippet)); +Console.Error.WriteLine($"n3poc: {files.Count} files, {scan.Warnings.Count} warnings, " + + $"{scan.RequestBoundTypes} request-bound types, {scan.DetachedSites} detached sites, " + + $"{scan.UnknownSites} detached sites using only unknown-ownership fields"); +return 0; + +sealed record Warning(string File, int Line, string Class, string Method, string S, string D, string Object, + string Holder, string Snippet); + +sealed class Lifetimes +{ + public Dictionary Service = new(StringComparer.Ordinal); + public Dictionary Impl = new(StringComparer.Ordinal); + public Dictionary> Impls = new(StringComparer.Ordinal); + + public static Lifetimes Load(string? path) + { + var l = new Lifetimes(); + if (path is null) return l; + using var doc = JsonDocument.Parse(File.ReadAllText(path)); + foreach (var p in doc.RootElement.GetProperty("service").EnumerateObject()) l.Service[p.Name] = p.Value.GetString()!; + foreach (var p in doc.RootElement.GetProperty("impl").EnumerateObject()) l.Impl[p.Name] = p.Value.GetString()!; + foreach (var p in doc.RootElement.GetProperty("impls").EnumerateObject()) + l.Impls[p.Name] = p.Value.EnumerateArray().Select(x => x.GetString()!).ToList(); + return l; + } + + public string Of(string typeName) => Service.TryGetValue(typeName, out var v) ? v : "unknown"; +} + +static class Syn +{ + public static string SimpleName(TypeSyntax t) => t switch + { + QualifiedNameSyntax q => SimpleName(q.Right), + AliasQualifiedNameSyntax a => SimpleName(a.Name), + GenericNameSyntax g => g.Identifier.Text, + IdentifierNameSyntax i => i.Identifier.Text, + NullableTypeSyntax n => SimpleName(n.ElementType), + _ => t.ToString(), + }; + + public static string SimpleName(ITypeSymbol? t) => t switch + { + null => "", + INamedTypeSymbol n => n.Name, + _ => t.Name, + }; + + public static int Line(SyntaxNode n) => n.GetLocation().GetLineSpan().StartLinePosition.Line + 1; + + public static string Snip(SyntaxNode n) + { + var s = n.ToString().Replace('\t', ' ').Replace('\r', ' ').Replace('\n', ' '); + while (s.Contains(" ")) s = s.Replace(" ", " "); + return s.Length > 160 ? s[..160] + "…" : s; + } +} + +sealed class Scanner(CSharpCompilation comp, Lifetimes lt, Dictionary dbContexts) +{ + public readonly List Warnings = new(); + public int RequestBoundTypes, DetachedSites, UnknownSites; + readonly HashSet<(string, int, string)> _seen = new(); + + static readonly HashSet RequestBases = new(StringComparer.Ordinal) + { "ControllerBase", "Controller", "PageModel", "Hub" }; + static readonly HashSet HttpContextMembers = new(StringComparer.Ordinal) + { "HttpContext", "Request", "Response" }; + static readonly HashSet MapMethods = new(StringComparer.Ordinal) + { "MapGet", "MapPost", "MapPut", "MapDelete", "MapPatch", "MapMethods", "Map" }; + + // --- ownership (§2) --- + + // R1/R2/R3: request-bound holder. Returns the reason, or null. + string? RequestBound(INamedTypeSymbol type, ClassDeclarationSyntax decl) + { + if (decl.AttributeLists.SelectMany(a => a.Attributes).Any(a => Syn.SimpleName(a.Name) is "ApiController")) + return "R1"; + for (var b = type.BaseType; b is not null; b = b.BaseType) + if (RequestBases.Contains(b.Name)) return b.Name is "PageModel" or "Hub" ? "R2" : "R1"; + // error-typed bases (no reference) keep their syntax name + if (decl.BaseList?.Types.Any(t => RequestBases.Contains(Syn.SimpleName(t.Type))) == true) return "R1"; + if (lt.Impl.TryGetValue(type.Name, out var l) && l == "scoped") return "R3"; + return null; + } + + // S2/S3/S4 for a type name injected into a request-bound holder. + string? OwnershipOfInjected(string typeName) + { + if (dbContexts.TryGetValue(typeName, out var d) && d == "scoped") return "S2"; + if (typeName == "IServiceProvider") return "S4"; + if (typeName == "HttpClient") return null; // S5: never + if (lt.Of(typeName) == "scoped") return "S3"; + return null; + } + + // Fields/properties of the holder assigned from a constructor parameter, plus primary-constructor + // parameters: symbol -> (S row, injected type name). + Dictionary InjectedMembers(ClassDeclarationSyntax decl, SemanticModel sm) + { + var res = new Dictionary(SymbolEqualityComparer.Default); + var ctors = decl.Members.OfType().ToList(); + foreach (var ctor in ctors) + { + var ps = ctor.ParameterList.Parameters.ToDictionary(p => p.Identifier.Text, p => p); + foreach (var asg in ctor.DescendantNodes().OfType()) + { + var rhs = asg.Right is BinaryExpressionSyntax { RawKind: (int)SyntaxKind.CoalesceExpression } c ? c.Left : asg.Right; + if (rhs is not IdentifierNameSyntax id || !ps.TryGetValue(id.Identifier.Text, out var p) || p.Type is null) continue; + var target = sm.GetSymbolInfo(asg.Left).Symbol; + var tn = Syn.SimpleName(p.Type); + if (target is IFieldSymbol or IPropertySymbol && OwnershipOfInjected(tn) is { } s) res[target] = (s, tn); + } + } + if (decl.ParameterList is { } pl) + foreach (var p in pl.Parameters) + if (p.Type is not null && sm.GetDeclaredSymbol(p) is { } ps && OwnershipOfInjected(Syn.SimpleName(p.Type)) is { } s) + res[ps] = (s, Syn.SimpleName(p.Type)); + return res; + } + + // --- scan --- + + public void Run(SyntaxTree tree) + { + var sm = comp.GetSemanticModel(tree); + foreach (var decl in tree.GetRoot().DescendantNodes().OfType()) + { + if (sm.GetDeclaredSymbol(decl) is not INamedTypeSymbol type) continue; + var rb = RequestBound(type, decl); + if (rb is null) continue; + RequestBoundTypes++; + var injected = InjectedMembers(decl, sm); + var ctx = new Ctx(tree, sm, decl, type, rb, injected, rb is "R1" or "R2"); + foreach (var m in decl.Members.OfType()) + { + if (m is ConstructorDeclarationSyntax) continue; + ScanBody(ctx, m, MethodName(m), new Dictionary(SymbolEqualityComparer.Default)); + } + } + // R2: middleware InvokeAsync(HttpContext ...) parameters and minimal-API handler lambdas. + foreach (var m in tree.GetRoot().DescendantNodes().OfType() + .Where(m => m.Identifier.Text is "InvokeAsync" or "Invoke")) + { + var cls = m.FirstAncestorOrSelf(); + if (cls is null || sm.GetDeclaredSymbol(cls) is not INamedTypeSymbol type) continue; + var locals = ParamOwnership(m.ParameterList, sm, requireHttpContext: true); + if (locals.Count == 0) continue; + var ctx = new Ctx(tree, sm, cls, type, "R2", new(SymbolEqualityComparer.Default), false); + ScanBody(ctx, m, m.Identifier.Text, locals); + } + foreach (var inv in tree.GetRoot().DescendantNodes().OfType()) + { + if (inv.Expression is not MemberAccessExpressionSyntax ma || !MapMethods.Contains(ma.Name.Identifier.Text)) continue; + foreach (var arg in inv.ArgumentList.Arguments) + { + if (arg.Expression is not ParenthesizedLambdaExpressionSyntax lam) continue; + var locals = ParamOwnership(lam.ParameterList, sm, requireHttpContext: false); + if (locals.Count == 0) continue; + var cls = inv.FirstAncestorOrSelf(); + var type = cls is null ? null : sm.GetDeclaredSymbol(cls) as INamedTypeSymbol; + var ctx = new Ctx(tree, sm, cls, type, "R2", new(SymbolEqualityComparer.Default), false); + ScanBody(ctx, lam, ma.Name.Identifier.Text + "(lambda)", locals); + } + } + } + + Dictionary ParamOwnership(ParameterListSyntax pl, SemanticModel sm, bool requireHttpContext) + { + var res = new Dictionary(SymbolEqualityComparer.Default); + var hasCtx = pl.Parameters.Any(p => p.Type is not null && Syn.SimpleName(p.Type) == "HttpContext"); + if (requireHttpContext && !hasCtx) return res; + foreach (var p in pl.Parameters) + { + if (p.Type is null || sm.GetDeclaredSymbol(p) is not { } s) continue; + var tn = Syn.SimpleName(p.Type); + var row = tn is "HttpContext" or "HttpRequest" or "HttpResponse" ? "S1" : OwnershipOfInjected(tn); + if (row is not null) res[s] = (row, tn); + } + return res; + } + + static string MethodName(BaseMethodDeclarationSyntax m) => m switch + { + MethodDeclarationSyntax md => md.Identifier.Text, + _ => m.Kind().ToString(), + }; + + sealed record Ctx(SyntaxTree Tree, SemanticModel Sm, ClassDeclarationSyntax? Decl, INamedTypeSymbol? Type, + string Holder, Dictionary Injected, bool HasHttpContextProperty); + + // Scope-owned reference named by an expression's root identifier, or null. + (string S, string Name)? OwnedRoot(Ctx c, ExpressionSyntax e, Dictionary locals, + SyntaxNode? work) + { + var root = e; + while (true) + { + if (root is MemberAccessExpressionSyntax ma && ma.Expression is not ThisExpressionSyntax) root = ma.Expression; + else if (root is MemberAccessExpressionSyntax ma2) { root = ma2.Name; break; } + else if (root is InvocationExpressionSyntax inv) root = inv.Expression; + else if (root is ConditionalAccessExpressionSyntax ca) root = ca.Expression; + else if (root is PostfixUnaryExpressionSyntax { RawKind: (int)SyntaxKind.SuppressNullableWarningExpression } pu) root = pu.Operand; + else if (root is ElementAccessExpressionSyntax ea) root = ea.Expression; + else break; + } + if (root is not SimpleNameSyntax id) return null; + return OwnedName(c, id, locals, work); + } + + (string S, string Name)? OwnedName(Ctx c, SimpleNameSyntax id, Dictionary locals, + SyntaxNode? work) + { + var sym = c.Sm.GetSymbolInfo(id).Symbol; + if (sym is not null && locals.TryGetValue(sym, out var l)) + { + // a local declared inside the detached work is not captured from outside + if (work is not null && sym.Locations.Any(loc => work.Span.Contains(loc.SourceSpan) && loc.SourceTree == c.Tree)) return null; + return (l.S, id.Identifier.Text); + } + if (sym is not null && c.Injected.TryGetValue(sym.OriginalDefinition, out var f)) return (f.S, id.Identifier.Text); + if (c.HasHttpContextProperty && HttpContextMembers.Contains(id.Identifier.Text)) + { + // the holder's own HttpContext/Request/Response property (resolved, or unresolved by name) + if (sym is IPropertySymbol p && RequestBases.Contains(p.ContainingType.Name)) return ("S1", id.Identifier.Text); + if (sym is null && !locals.Keys.Any(k => k.Name == id.Identifier.Text)) return ("S1", id.Identifier.Text); + } + return null; + } + + void ScanBody(Ctx c, SyntaxNode body, string method, Dictionary locals) + { + // one-step local aliases: `var x = ;` outside any detached work (S1 accessor reads too) + foreach (var v in body.DescendantNodes().OfType()) + { + if (v.Initializer?.Value is not { } init || c.Sm.GetDeclaredSymbol(v) is not { } vs) continue; + if (IsInsideDetached(c, v, body)) continue; + if (init is MemberAccessExpressionSyntax { Name.Identifier.Text: "HttpContext" } acc + && c.Sm.GetTypeInfo(acc.Expression).Type?.Name == "IHttpContextAccessor") + { locals[vs] = ("S1", "HttpContext"); continue; } + var vt = c.Sm.GetTypeInfo(init).Type; + if (init is SimpleNameSyntax or MemberAccessExpressionSyntax + && OwnedRoot(c, (ExpressionSyntax)init, locals, null) is { } o + && (init is SimpleNameSyntax || vt?.Name is "HttpContext" or "HttpRequest" or "HttpResponse")) + locals[vs] = (o.S, vt?.Name ?? o.Name); + } + + foreach (var inv in body.DescendantNodes().OfType()) + { + var name = InvokedName(inv); + if (name is null) continue; + if (IsTaskStarter(c, inv, name) is { } startD) + { + if (!IsDiscarded(inv)) continue; + DetachedSites++; + var lam = inv.ArgumentList.Arguments.Select(a => a.Expression).FirstOrDefault(IsLambda); + if (lam is null) continue; + ReportUses(c, lam, method, startD, locals); + } + else if (IsQueue(c, inv, name)) + { + DetachedSites++; + foreach (var lam in inv.ArgumentList.Arguments.Select(a => a.Expression).Where(IsLambda)) + ReportUses(c, lam, method, "D2", locals); + } + else if (IsDiscarded(inv) && !IsInsideDetached(c, inv, body)) + { + if (inv.Expression is MemberAccessExpressionSyntax ma && ma.Expression is not ThisExpressionSyntax) + { + // D3a: receiver is scope-owned + if (OwnedRoot(c, ma.Expression, locals, null) is not { } o) continue; + if (!ReturnsTask(c, inv, name)) continue; + DetachedSites++; + if (CompletesSynchronously(c, inv, ma)) continue; + Add(c, inv, method, o.S, "D3a", o.Name); + } + else if (SameClassCallee(c, inv) is { } callee) + { + // D3b: one hop into a same-class method; uses after its first await + DetachedSites++; + if (UseAfterFirstAwait(c, inv, callee, locals) is { } u) Add(c, inv, method, u.S, "D3b", u.Name); + } + } + } + } + + static bool IsLambda(ExpressionSyntax e) => e is LambdaExpressionSyntax or AnonymousMethodExpressionSyntax; + + static string? InvokedName(InvocationExpressionSyntax inv) => inv.Expression switch + { + MemberAccessExpressionSyntax ma => ma.Name.Identifier.Text, + SimpleNameSyntax s => s.Identifier.Text, + MemberBindingExpressionSyntax mb => mb.Name.Identifier.Text, + _ => null, + }; + + string? IsTaskStarter(Ctx c, InvocationExpressionSyntax inv, string name) + { + var recv = (inv.Expression as MemberAccessExpressionSyntax)?.Expression.ToString(); + if (name == "Run" && recv is "Task" or "System.Threading.Tasks.Task") return "D1"; + if (name == "StartNew" && recv is "Task.Factory") return "D1"; + if (name is "QueueUserWorkItem" or "UnsafeQueueUserWorkItem" && recv is "ThreadPool") return "D1"; + if (name == "Start" && inv.Expression is MemberAccessExpressionSyntax { Expression: ObjectCreationExpressionSyntax oc } + && Syn.SimpleName(oc.Type) == "Thread" && oc.ArgumentList?.Arguments.FirstOrDefault()?.Expression is { } a && IsLambda(a)) + return "D1"; + return null; + } + + bool IsQueue(Ctx c, InvocationExpressionSyntax inv, string name) + { + if (!(name.StartsWith("QueueBackgroundWorkItem", StringComparison.Ordinal) || name.StartsWith("Enqueue", StringComparison.Ordinal))) + return false; + if (inv.Expression is not MemberAccessExpressionSyntax ma) return false; + if (ma.Expression.ToString() is "HostingEnvironment" or "System.Web.Hosting.HostingEnvironment") return true; + var recvType = c.Sm.GetTypeInfo(ma.Expression).Type; + var tn = recvType is null || recvType.TypeKind == TypeKind.Error ? DeclaredTypeName(c, ma.Expression) : recvType.Name; + if (tn is null) return false; + return lt.Of(tn) == "singleton" || tn.EndsWith("BackgroundTaskQueue", StringComparison.Ordinal); + } + + string? DeclaredTypeName(Ctx c, ExpressionSyntax e) + { + var sym = c.Sm.GetSymbolInfo(e).Symbol; + var t = sym switch { IFieldSymbol f => f.Type, IPropertySymbol p => p.Type, ILocalSymbol l => l.Type, IParameterSymbol p => p.Type, _ => null }; + return t?.Name; + } + + // `_ = call;` or `call;` as a statement (optionally through .ConfigureAwait/.ContinueWith), never awaited. + static bool IsDiscarded(InvocationExpressionSyntax inv) + { + SyntaxNode n = inv; + while (n.Parent is MemberAccessExpressionSyntax { Name.Identifier.Text: "ConfigureAwait" or "ContinueWith" } ma + && ma.Parent is InvocationExpressionSyntax outer) n = outer; + if (n.Parent is ExpressionStatementSyntax) return true; + return n.Parent is AssignmentExpressionSyntax { Left: IdentifierNameSyntax { Identifier.Text: "_" } } asg + && asg.Parent is ExpressionStatementSyntax; + } + + bool IsInsideDetached(Ctx c, SyntaxNode n, SyntaxNode body) + { + for (var p = n.Parent; p is not null && p != body; p = p.Parent) + { + if (p is not (LambdaExpressionSyntax or AnonymousMethodExpressionSyntax)) continue; + if (p.Parent is ArgumentSyntax { Parent.Parent: InvocationExpressionSyntax inv } && InvokedName(inv) is { } nm + && (IsTaskStarter(c, inv, nm) is not null || IsQueue(c, inv, nm))) return true; + } + return false; + } + + bool ReturnsTask(Ctx c, InvocationExpressionSyntax inv, string name) + { + var t = c.Sm.GetTypeInfo(inv).Type; + if (t is not null && t.TypeKind != TypeKind.Error) return t.Name is "Task" or "ValueTask"; + return name.EndsWith("Async", StringComparison.Ordinal); // unresolved type: name convention (reported) + } + + // D3a silence: every resolved implementation of the callee is non-async and returns a completed task. + bool CompletesSynchronously(Ctx c, InvocationExpressionSyntax inv, MemberAccessExpressionSyntax ma) + { + var tn = DeclaredTypeName(c, ma.Expression); + if (tn is null) return false; + var impls = lt.Impls.TryGetValue(tn, out var l) ? l : new List { tn }; + var bodies = new List(); + foreach (var impl in impls) + foreach (var t in comp.GetSymbolsWithName(impl, SymbolFilter.Type).OfType()) + foreach (var m in t.GetMembers(ma.Name.Identifier.Text).OfType()) + foreach (var r in m.DeclaringSyntaxReferences) + if (r.GetSyntax() is MethodDeclarationSyntax md) bodies.Add(md); + if (bodies.Count == 0) return false; + return bodies.All(md => !md.Modifiers.Any(SyntaxKind.AsyncKeyword) + && (md.ExpressionBody?.Expression.ToString() is { } eb && IsCompleted(eb) + || md.Body?.Statements is [ReturnStatementSyntax { Expression: { } rex }] && IsCompleted(rex.ToString()))); + } + + static bool IsCompleted(string e) => e is "Task.CompletedTask" or "default" or "ValueTask.CompletedTask" + || e.StartsWith("Task.FromResult", StringComparison.Ordinal); + + MethodDeclarationSyntax? SameClassCallee(Ctx c, InvocationExpressionSyntax inv) + { + if (c.Decl is null) return null; + var target = inv.Expression is MemberAccessExpressionSyntax { Expression: ThisExpressionSyntax } m ? m.Name + : inv.Expression as SimpleNameSyntax; + if (target is null) return null; + var sym = c.Sm.GetSymbolInfo(target).Symbol as IMethodSymbol + ?? c.Sm.GetSymbolInfo(target).CandidateSymbols.OfType().FirstOrDefault(); + if (sym is null || c.Type is null || !SymbolEqualityComparer.Default.Equals(sym.ContainingType, c.Type)) return null; + return sym.DeclaringSyntaxReferences.Select(r => r.GetSyntax()).OfType() + .FirstOrDefault(md => md.Body is not null || md.ExpressionBody is not null); + } + + (string S, string Name)? UseAfterFirstAwait(Ctx c, InvocationExpressionSyntax call, MethodDeclarationSyntax callee, + Dictionary callerLocals) + { + var body = (SyntaxNode?)callee.Body ?? callee.ExpressionBody; + if (body is null) return null; + var firstAwait = body.DescendantNodes().OfType().FirstOrDefault(); + if (firstAwait is null) return null; + // parameters bound to scope-owned arguments at this call site + var calleeSm = comp.GetSemanticModel(callee.SyntaxTree); + var paramOwn = new Dictionary(SymbolEqualityComparer.Default); + var args = call.ArgumentList.Arguments; + for (var i = 0; i < args.Count && i < callee.ParameterList.Parameters.Count; i++) + if (OwnedRoot(c, args[i].Expression, callerLocals, null) is { } o + && calleeSm.GetDeclaredSymbol(callee.ParameterList.Parameters[i]) is { } ps) + paramOwn[ps] = (o.S, o.Name); + var cc = c with { Sm = calleeSm, Tree = callee.SyntaxTree }; + foreach (var id in body.DescendantNodes().OfType()) + { + if (id.SpanStart <= firstAwait.Span.End) continue; + if (id.Parent is MemberAccessExpressionSyntax ma && ma.Name == id && ma.Expression is not ThisExpressionSyntax) continue; + if (OwnedName(cc, id, paramOwn, null) is { } u) return u; + } + return null; + } + + void ReportUses(Ctx c, ExpressionSyntax lam, string method, string d, Dictionary locals) + { + var any = false; + foreach (var id in lam.DescendantNodes().OfType()) + { + // only the root of a member-access chain names the captured object + if (id.Parent is MemberAccessExpressionSyntax ma && ma.Name == id && ma.Expression is not ThisExpressionSyntax) continue; + if (id.Parent is MemberBindingExpressionSyntax) continue; + if (OwnedName(c, id, locals, lam) is not { } o) continue; + any = true; + Add(c, lam.Parent?.Parent?.Parent ?? lam, method, o.S, d, o.Name); + } + if (!any) UnknownSites++; + } + + void Add(Ctx c, SyntaxNode site, string method, string s, string d, string obj) + { + var line = Syn.Line(site); + if (!_seen.Add((c.Tree.FilePath, line, obj))) return; + Warnings.Add(new Warning(c.Tree.FilePath, line, c.Type?.Name ?? "?", method, s, d, obj, c.Holder, Syn.Snip(site))); + } +} diff --git a/docs/evidence/n3-pilot-2026-10/scripts/n3_run.py b/docs/evidence/n3-pilot-2026-10/scripts/n3_run.py new file mode 100644 index 00000000..474a106d --- /dev/null +++ b/docs/evidence/n3-pilot-2026-10/scripts/n3_run.py @@ -0,0 +1,109 @@ +"""N3 pilot: run the PoC over one source tree (01-preregistration-g1-g4.md). + +1. `services` facts: the given saved facts.json, or a fresh run of the extractor on the tree. +2. Lifetimes under G0 rules 1, 2 and 4 (test-project registrations dropped; a name is a lifetime + only when all remaining registrations agree, else "mixed"). +3. The PoC (`n3poc.dll`), then each warning is labelled test-project / path-regex non-product. + +usage: python -I n3_run.py --src --poc --refs [--refs ] --out + [--facts --facts-base ] [--extractor ] +""" + +from __future__ import annotations + +import argparse +import json +import os +import subprocess +import sys + +sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) +from g0_scope_identity import NONPRODUCT, owning_project, resolve + + +def lifetimes(raw: list[dict], bases: list[str]) -> tuple[dict, int]: + kept, dropped = [], 0 + for s in raw: + src = resolve(str(s.get("file", "?")), bases) + if src is not None and owning_project(src)[1]: + dropped += 1 + continue + kept.append(s) + service: dict[str, set[str]] = {} + impl: dict[str, set[str]] = {} + impls: dict[str, set[str]] = {} + for s in kept: + n, lt, ct = str(s.get("name", "?")), str(s.get("lifetime", "")), str(s.get("ctor_type", "")) + service.setdefault(n, set()).add(lt) + if ct: + impl.setdefault(ct, set()).add(lt) + impls.setdefault(n, set()).add(ct) + + def one(v: set[str]) -> str: + return next(iter(v)) if len(v) == 1 else "mixed" + + return { + "service": {k: one(v) for k, v in sorted(service.items())}, + "impl": {k: one(v) for k, v in sorted(impl.items())}, + "impls": {k: sorted(v) for k, v in sorted(impls.items())}, + }, dropped + + +def main() -> int: + ap = argparse.ArgumentParser() + ap.add_argument("--src", required=True) + ap.add_argument("--poc", required=True) + ap.add_argument("--refs", action="append", default=[]) + ap.add_argument("--out", required=True) + ap.add_argument("--facts") + ap.add_argument("--facts-base", action="append", default=[]) + ap.add_argument("--extractor") + a = ap.parse_args() + src = os.path.abspath(a.src) + os.makedirs(a.out, exist_ok=True) + if a.facts: + facts_path, bases = a.facts, a.facts_base or [src] + else: + facts_path, bases = os.path.join(os.path.abspath(a.out), "facts.json"), [src] + subprocess.run( + ["dotnet", a.extractor, ".", "-o", facts_path], + cwd=src, + check=True, + stdout=subprocess.DEVNULL, + ) + facts = json.load(open(facts_path, encoding="utf-8")) + raw = facts.get("services", []) if isinstance(facts.get("services"), list) else [] + lts, dropped = lifetimes(raw, bases) + lt_path = os.path.join(a.out, "lifetimes.json") + json.dump(lts, open(lt_path, "w", encoding="utf-8"), indent=1, sort_keys=True) + warn_raw = os.path.join(a.out, "warnings.raw.tsv") + cmd = ["dotnet", a.poc, src, "--lifetimes", lt_path, "--out", warn_raw] + for r in a.refs: + cmd += ["--refs", r] + p = subprocess.run(cmd, check=True, capture_output=True, text=True, encoding="utf-8") + stats = p.stderr.strip() + rows = open(warn_raw, encoding="utf-8").read().splitlines() + with open(os.path.join(a.out, "warnings.tsv"), "w", encoding="utf-8", newline="\n") as f: + f.write(rows[0] + "\ttest_project\tpath_regex\n") + for r in rows[1:]: + rel = r.split("\t", 1)[0] + _, is_test = owning_project(os.path.join(src, rel)) + f.write( + f"{r}\t{'test' if is_test else '-'}\t{'nonproduct' if NONPRODUCT.search(rel) else '-'}\n" + ) + summary = { + "src": src, + "registrations": len(raw), + "test_registrations_dropped": dropped, + "scoped_names": sum(1 for v in lts["service"].values() if v == "scoped"), + "mixed_names": sum(1 for v in lts["service"].values() if v == "mixed"), + "warnings": len(rows) - 1, + "poc": stats, + } + json.dump(summary, open(os.path.join(a.out, "summary.json"), "w", encoding="utf-8"), indent=1) + print(json.dumps(summary)) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) From 66d148003abe77247c49f1b041592a851a53caef Mon Sep 17 00:00:00 2001 From: PhysShell <45852143+PhysShell@users.noreply.github.com> Date: Tue, 20 Oct 2026 20:31:53 +0500 Subject: [PATCH 3/5] style(evidence): N3 runner line length (ruff E501) Co-Authored-By: Claude Opus 5.5 (1M context) Claude-Session: https://claude.ai/code/session_01TFkNAFFQz9KoTzpPws8vYG --- docs/evidence/n3-pilot-2026-10/scripts/n3_run.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/docs/evidence/n3-pilot-2026-10/scripts/n3_run.py b/docs/evidence/n3-pilot-2026-10/scripts/n3_run.py index 474a106d..3546f100 100644 --- a/docs/evidence/n3-pilot-2026-10/scripts/n3_run.py +++ b/docs/evidence/n3-pilot-2026-10/scripts/n3_run.py @@ -88,9 +88,8 @@ def main() -> int: for r in rows[1:]: rel = r.split("\t", 1)[0] _, is_test = owning_project(os.path.join(src, rel)) - f.write( - f"{r}\t{'test' if is_test else '-'}\t{'nonproduct' if NONPRODUCT.search(rel) else '-'}\n" - ) + label = "nonproduct" if NONPRODUCT.search(rel) else "-" + f.write(f"{r}\t{'test' if is_test else '-'}\t{label}\n") summary = { "src": src, "registrations": len(raw), From 602d4a8962337cf4193ebca96bac7161d8186c18 Mon Sep 17 00:00:00 2001 From: PhysShell <45852143+PhysShell@users.noreply.github.com> Date: Tue, 20 Oct 2026 20:53:57 +0500 Subject: [PATCH 4/5] =?UTF-8?q?docs(evidence):=20N3=20pilot=20G1/G2=20runs?= =?UTF-8?q?;=20PoC=20v2=20brings=20D3b=20in=20line=20with=20=C2=A73?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PoC v1 counted a call to a void same-class method as D3b and took an await inside a nested lambda as the callee's first await (3 extra warnings on DotNetCloud#43). v2 requires a Task-returning callee and the callee's own first await, as §3 states; it also records the capture line. Control C15 added for this case (controls may be added). G1: mars-vista-api#26 (S1xD3b), DotNetCloud#43 (S3xD1, capture line removed by the fix), DFY-BE#35 (S3xD3a) report on base and are silent on the code each fix touches. Reported-only: Vendorea#49 caught (S4xD1); microting#1669 (transient holder) and escalated#162 (DbContext registered by the consumer app) silent by rule. G2: C1-C15 silent. Co-Authored-By: Claude Opus 5.5 (1M context) Claude-Session: https://claude.ai/code/session_01TFkNAFFQz9KoTzpPws8vYG --- .../controls/N3NegativeControls.cs | 10 ++++ .../n3-pilot-2026-10/data/g1/controls_v2.tsv | 16 +++++++ .../n3-pilot-2026-10/data/g1/pairs.tsv | 6 +++ .../n3-pilot-2026-10/data/g1/touched_v2.tsv | 10 ++++ .../n3-pilot-2026-10/data/g1/warnings_v1.tsv | 13 ++++++ .../n3-pilot-2026-10/data/g1/warnings_v2.tsv | 10 ++++ docs/evidence/n3-pilot-2026-10/poc/Program.cs | 26 +++++++---- .../n3-pilot-2026-10/scripts/g1_touched.py | 46 +++++++++++++++++++ 8 files changed, 127 insertions(+), 10 deletions(-) create mode 100644 docs/evidence/n3-pilot-2026-10/data/g1/controls_v2.tsv create mode 100644 docs/evidence/n3-pilot-2026-10/data/g1/pairs.tsv create mode 100644 docs/evidence/n3-pilot-2026-10/data/g1/touched_v2.tsv create mode 100644 docs/evidence/n3-pilot-2026-10/data/g1/warnings_v1.tsv create mode 100644 docs/evidence/n3-pilot-2026-10/data/g1/warnings_v2.tsv create mode 100644 docs/evidence/n3-pilot-2026-10/scripts/g1_touched.py diff --git a/docs/evidence/n3-pilot-2026-10/controls/N3NegativeControls.cs b/docs/evidence/n3-pilot-2026-10/controls/N3NegativeControls.cs index da9a5f88..f65b4543 100644 --- a/docs/evidence/n3-pilot-2026-10/controls/N3NegativeControls.cs +++ b/docs/evidence/n3-pilot-2026-10/controls/N3NegativeControls.cs @@ -151,6 +151,16 @@ public void C11_HttpClientFactory() public void C14_AccessorInsideWork() { _ = Task.Run(() => Log(0, _accessor.HttpContext?.TraceIdentifier)); } + // C15 (added after the first pair run, PoC v1 bug): a void same-class call is not D3b, and an await + // inside a nested lambda is not the callee's own first await. + public void C15_VoidSameClassNestedAwait() { KickOff(); } + + private void KickOff() + { + Func f = async () => { await Task.Delay(1); _db.Orders.Count(); }; + f().Wait(); + } + // ---- positive samples: must be reported ---- // S1 HttpContext diff --git a/docs/evidence/n3-pilot-2026-10/data/g1/controls_v2.tsv b/docs/evidence/n3-pilot-2026-10/data/g1/controls_v2.tsv new file mode 100644 index 00000000..b24b013d --- /dev/null +++ b/docs/evidence/n3-pilot-2026-10/data/g1/controls_v2.tsv @@ -0,0 +1,16 @@ +file line class method S D object holder capture_line snippet test_project path_regex +N3NegativeControls.cs 167 ControlsController P_S1_D1_HttpContextInTaskRun S1 D1 HttpContext R1 167 Task.Run(() => Log(0, HttpContext.TraceIdentifier)) - - +N3NegativeControls.cs 171 ControlsController P_S1_D2_HttpContextInQueue S1 D2 HttpContext R1 171 _queue.QueueBackgroundWorkItem(async ct => { await Task.Delay(1, ct); Log(0, HttpContext.TraceIdentifier); }) - - +N3NegativeControls.cs 174 ControlsController P_S1_D3a_HttpContextReceiver S1 D3a HttpContext R1 174 HttpContext.Response.WriteAsync("late") - - +N3NegativeControls.cs 176 ControlsController P_S1_D3b_HttpContextSameClass S1 D3b ctx R1 181 LogLaterAsync(HttpContext) - - +N3NegativeControls.cs 185 ControlsController P_S2_D1_DbInTaskRun S2 D1 _db R1 185 Task.Run(() => _db.Orders.Count()) - - +N3NegativeControls.cs 187 ControlsController P_S2_D2_DbInQueue S2 D2 _db R1 187 _queue.QueueBackgroundWorkItem(async ct => await _db.SaveChangesAsync(ct)) - - +N3NegativeControls.cs 189 ControlsController P_S2_D3a_DbReceiver S2 D3a _db R1 189 _db.SaveChangesAsync() - - +N3NegativeControls.cs 191 ControlsController P_S2_D3b_DbSameClass S2 D3b _db R1 196 SaveAfterAwaitAsync() - - +N3NegativeControls.cs 200 ControlsController P_S3_D1_ScopedInTaskRun S3 D1 _orders R1 200 Task.Run(() => _orders.NotifyAsync(1)) - - +N3NegativeControls.cs 202 ControlsController P_S3_D2_ScopedInQueue S3 D2 _orders R1 202 _queue.QueueBackgroundWorkItem(ct => _orders.NotifyAsync(2)) - - +N3NegativeControls.cs 204 ControlsController P_S3_D3a_ScopedReceiver S3 D3a _orders R1 204 _orders.NotifyAsync(3) - - +N3NegativeControls.cs 206 ControlsController P_S3_D3b_ScopedSameClass S3 D3b _orders R1 211 NotifyLaterAsync() - - +N3NegativeControls.cs 215 ControlsController P_S4_D1_ScopeProviderInTaskRun S4 D1 _sp R1 215 Task.Run(() => _sp.GetRequiredService()) - - +N3NegativeControls.cs 219 ControlsController P_S4_D2_ScopeProviderInQueue S4 D2 _sp R1 219 _queue.QueueBackgroundWorkItem(ct => _sp.GetRequiredService().NotifyAsync(5)) - - +N3NegativeControls.cs 224 ControlsController P_S4_D3b_ScopeProviderSameClass S4 D3b _sp R1 229 ResolveLaterAsync() - - diff --git a/docs/evidence/n3-pilot-2026-10/data/g1/pairs.tsv b/docs/evidence/n3-pilot-2026-10/data/g1/pairs.tsv new file mode 100644 index 00000000..d6add35d --- /dev/null +++ b/docs/evidence/n3-pilot-2026-10/data/g1/pairs.tsv @@ -0,0 +1,6 @@ +james-langridge_mars-vista-api__26 james-langridge/mars-vista-api 8f6c0061e7cb0ec8adeba47cc7f5142a42ebcd01 a4e0467f25d64484c48177d1991bf3a3cd9e65b0 119acfa6e49da175abf935e4a1ea00c416ceba76 true 2026-07-11T22:35:41Z +LLabmik_DotNetCloud__43 LLabmik/DotNetCloud 3157aa0fc179e97cffcfbce8007a13e826b71da1 c6167429dde92add341d079bad1edab8209f7ef5 e42397840d7f086bd36f0a1dd109524da7b6c4b5 true 2026-07-18T04:14:10Z +DoForYou-ZA_DFY-BE__35 DoForYou-ZA/DFY-BE 64143d1365c205ebba99e277382925024a64c9d1 08fa5735309986e288f7086be9575a9b5f321c80 d7e2e7a82330fa1a27bb7cf573751f604ca57852 true 2026-10-09T05:05:50Z +ASADRAJA_Vendorea.PartnerConnect__49 ASADRAJA/Vendorea.PartnerConnect 0247153bdbcdacb18fc1014e9aa239ad1fcdfda1 5ce2bd36dc284ba620eb3dd437b0a387f97c1949 468d8f9517a135e5f021d005eafd4bf714058303 true 2026-07-04T17:34:51Z +microting_eform-angular-timeplanning-plugin__1669 microting/eform-angular-timeplanning-plugin 5df52a98ae2bd907a2a96d9fb18165bdec929124 33be1a7c842a79d0dfb0ff11fc15f2e14846b64e 4b3a169fc5d6e4d37ec77b83c1972de686b260a7 true 2026-08-02T07:01:58Z +escalated-dev_escalated-dotnet__162 escalated-dev/escalated-dotnet 8c50a00a92758e5c0060370b4f37235d4d962d73 bcda1895a01c3325a3000a74818ce71acabc42e5 faad721122e3c84f369aca56e9924b5e0dfc0c6d true 2026-09-13T22:19:53Z diff --git a/docs/evidence/n3-pilot-2026-10/data/g1/touched_v2.tsv b/docs/evidence/n3-pilot-2026-10/data/g1/touched_v2.tsv new file mode 100644 index 00000000..92be5197 --- /dev/null +++ b/docs/evidence/n3-pilot-2026-10/data/g1/touched_v2.tsv @@ -0,0 +1,10 @@ +ASADRAJA_Vendorea.PartnerConnect__49 src/Vendorea.PartnerConnect.API/Controllers/Admin/AdminFtpIngestionController.cs:272 capture 276 call=untouched capture=TOUCHED S4xD1 using var scope = _serviceProvider.CreateScope(); +DoForYou-ZA_DFY-BE__35 Controllers/AuthController.cs:70 capture 70 call=TOUCHED capture=TOUCHED S3xD3a _ = _notificationService.NotifyAdminsAsync( +LLabmik_DotNetCloud__43 src/Modules/Video/DotNetCloud.Modules.Video.Data/Services/VideoIndexingCallback.cs:366 capture 371 call=untouched capture=TOUCHED S3xD1 await _seriesService.EnrichSeriesAsync(seriesId); +LLabmik_DotNetCloud__43 src/Modules/Video/DotNetCloud.Modules.Video.Host/Controllers/VideoController.cs:838 capture 838 call=untouched capture=untouched S3xD3a _ = _videoService.UpdateDurationAsync(videoId, probeDuration, HttpCont +LLabmik_DotNetCloud__43 src/Modules/Video/DotNetCloud.Modules.Video.Host/Controllers/VideoController.cs:1462 capture 1469 call=untouched capture=untouched S3xD1 var job = _transcodingService.GetProgress(jobId); + fix-warning LLabmik_DotNetCloud__43 src/Modules/Video/DotNetCloud.Modules.Video.Host/Controllers/VideoController.cs:838 S3xD3a + fix-warning LLabmik_DotNetCloud__43 src/Modules/Video/DotNetCloud.Modules.Video.Host/Controllers/VideoController.cs:1462 S3xD1 +james-langridge_mars-vista-api__26 src/MarsVista.Api/Middleware/UsageTrackingMiddleware.cs:63 capture 175 call=TOUCHED capture=TOUCHED S1xD3b _logger.LogError(ex, "Failed to track usage event for {Path}", context +james-langridge_mars-vista-api__26 src/MarsVista.Api/Middleware/UserApiKeyAuthenticationMiddleware.cs:153 capture 157 call=untouched capture=untouched S1xD1 using var scope = context.RequestServices.CreateScope(); + fix-warning james-langridge_mars-vista-api__26 src/MarsVista.Api/Middleware/UserApiKeyAuthenticationMiddleware.cs:153 S1xD1 diff --git a/docs/evidence/n3-pilot-2026-10/data/g1/warnings_v1.tsv b/docs/evidence/n3-pilot-2026-10/data/g1/warnings_v1.tsv new file mode 100644 index 00000000..6fdee11c --- /dev/null +++ b/docs/evidence/n3-pilot-2026-10/data/g1/warnings_v1.tsv @@ -0,0 +1,13 @@ +ASADRAJA_Vendorea.PartnerConnect__49 base src/Vendorea.PartnerConnect.API/Controllers/Admin/AdminFtpIngestionController.cs 272 AdminFtpIngestionController RunIngestion S4 D1 _serviceProvider R1 Task.Run(async () => { try { using var scope = _serviceProvider.CreateScope(); var bgRunRepository = scope.ServiceProvider.GetRequiredService { await _seriesEnrichmentThrottle.WaitAsync(); try { await _seriesService.EnrichSeriesAsync(seriesId); } catch (Exception ex) { _logger.Log… - - +LLabmik_DotNetCloud__43 base src/Modules/Video/DotNetCloud.Modules.Video.Host/Controllers/VideoController.cs 838 VideoController StreamVideo S3 D3a _videoService R1 _videoService.UpdateDurationAsync(videoId, probeDuration, HttpContext.RequestAborted) - - +LLabmik_DotNetCloud__43 base src/Modules/Video/DotNetCloud.Modules.Video.Host/Controllers/VideoController.cs 1462 VideoController WaitForHlsReadyAsync S3 D1 _transcodingService R1 Task.Run(async () => { try { while (!linkedCts.IsCancellationRequested) { await Task.Delay(500, linkedCts.Token); var job = _transcodingService.GetProgress(jobI… - - +LLabmik_DotNetCloud__43 fix src/Modules/Video/DotNetCloud.Modules.Video.Host/Controllers/VideoController.cs 838 VideoController StreamVideo S3 D3a _videoService R1 _videoService.UpdateDurationAsync(videoId, probeDuration, HttpContext.RequestAborted) - - +LLabmik_DotNetCloud__43 fix src/Modules/Video/DotNetCloud.Modules.Video.Host/Controllers/VideoController.cs 1462 VideoController WaitForHlsReadyAsync S3 D1 _transcodingService R1 Task.Run(async () => { try { while (!linkedCts.IsCancellationRequested) { await Task.Delay(500, linkedCts.Token); var job = _transcodingService.GetProgress(jobI… - - +james-langridge_mars-vista-api__26 base src/MarsVista.Api/Middleware/UsageTrackingMiddleware.cs 63 UsageTrackingMiddleware InvokeAsync S1 D3b context R2 TrackUsageAsync(context, stopwatch.ElapsedMilliseconds, errorDetail) - - +james-langridge_mars-vista-api__26 base src/MarsVista.Api/Middleware/UserApiKeyAuthenticationMiddleware.cs 153 UserApiKeyAuthenticationMiddleware InvokeAsync S1 D1 context R2 Task.Run(async () => { try { using var scope = context.RequestServices.CreateScope(); var db = scope.ServiceProvider.GetRequiredService(); v… - - +james-langridge_mars-vista-api__26 fix src/MarsVista.Api/Middleware/UserApiKeyAuthenticationMiddleware.cs 153 UserApiKeyAuthenticationMiddleware InvokeAsync S1 D1 context R2 Task.Run(async () => { try { using var scope = context.RequestServices.CreateScope(); var db = scope.ServiceProvider.GetRequiredService(); v… - - diff --git a/docs/evidence/n3-pilot-2026-10/data/g1/warnings_v2.tsv b/docs/evidence/n3-pilot-2026-10/data/g1/warnings_v2.tsv new file mode 100644 index 00000000..bcb05654 --- /dev/null +++ b/docs/evidence/n3-pilot-2026-10/data/g1/warnings_v2.tsv @@ -0,0 +1,10 @@ +ASADRAJA_Vendorea.PartnerConnect__49 base src/Vendorea.PartnerConnect.API/Controllers/Admin/AdminFtpIngestionController.cs 272 AdminFtpIngestionController RunIngestion S4 D1 _serviceProvider R1 276 Task.Run(async () => { try { using var scope = _serviceProvider.CreateScope(); var bgRunRepository = scope.ServiceProvider.GetRequiredService { await _seriesEnrichmentThrottle.WaitAsync(); try { await _seriesService.EnrichSeriesAsync(seriesId); } catch (Exception ex) { _logger.Log… - - +LLabmik_DotNetCloud__43 base src/Modules/Video/DotNetCloud.Modules.Video.Host/Controllers/VideoController.cs 838 VideoController StreamVideo S3 D3a _videoService R1 838 _videoService.UpdateDurationAsync(videoId, probeDuration, HttpContext.RequestAborted) - - +LLabmik_DotNetCloud__43 base src/Modules/Video/DotNetCloud.Modules.Video.Host/Controllers/VideoController.cs 1462 VideoController WaitForHlsReadyAsync S3 D1 _transcodingService R1 1469 Task.Run(async () => { try { while (!linkedCts.IsCancellationRequested) { await Task.Delay(500, linkedCts.Token); var job = _transcodingService.GetProgress(jobI… - - +LLabmik_DotNetCloud__43 fix src/Modules/Video/DotNetCloud.Modules.Video.Host/Controllers/VideoController.cs 838 VideoController StreamVideo S3 D3a _videoService R1 838 _videoService.UpdateDurationAsync(videoId, probeDuration, HttpContext.RequestAborted) - - +LLabmik_DotNetCloud__43 fix src/Modules/Video/DotNetCloud.Modules.Video.Host/Controllers/VideoController.cs 1462 VideoController WaitForHlsReadyAsync S3 D1 _transcodingService R1 1469 Task.Run(async () => { try { while (!linkedCts.IsCancellationRequested) { await Task.Delay(500, linkedCts.Token); var job = _transcodingService.GetProgress(jobI… - - +james-langridge_mars-vista-api__26 base src/MarsVista.Api/Middleware/UsageTrackingMiddleware.cs 63 UsageTrackingMiddleware InvokeAsync S1 D3b context R2 175 TrackUsageAsync(context, stopwatch.ElapsedMilliseconds, errorDetail) - - +james-langridge_mars-vista-api__26 base src/MarsVista.Api/Middleware/UserApiKeyAuthenticationMiddleware.cs 153 UserApiKeyAuthenticationMiddleware InvokeAsync S1 D1 context R2 157 Task.Run(async () => { try { using var scope = context.RequestServices.CreateScope(); var db = scope.ServiceProvider.GetRequiredService(); v… - - +james-langridge_mars-vista-api__26 fix src/MarsVista.Api/Middleware/UserApiKeyAuthenticationMiddleware.cs 153 UserApiKeyAuthenticationMiddleware InvokeAsync S1 D1 context R2 157 Task.Run(async () => { try { using var scope = context.RequestServices.CreateScope(); var db = scope.ServiceProvider.GetRequiredService(); v… - - diff --git a/docs/evidence/n3-pilot-2026-10/poc/Program.cs b/docs/evidence/n3-pilot-2026-10/poc/Program.cs index f23ca4d8..fa526e11 100644 --- a/docs/evidence/n3-pilot-2026-10/poc/Program.cs +++ b/docs/evidence/n3-pilot-2026-10/poc/Program.cs @@ -58,16 +58,16 @@ foreach (var t in trees) scan.Run(t); using var w = outPath is null ? Console.Out : new StreamWriter(outPath, false, new System.Text.UTF8Encoding(false)); -w.WriteLine("file\tline\tclass\tmethod\tS\tD\tobject\tholder\tsnippet"); +w.WriteLine("file\tline\tclass\tmethod\tS\tD\tobject\tholder\tcapture_line\tsnippet"); foreach (var r in scan.Warnings.OrderBy(r => r.File, StringComparer.Ordinal).ThenBy(r => r.Line).ThenBy(r => r.Object)) - w.WriteLine(string.Join('\t', r.File, r.Line, r.Class, r.Method, r.S, r.D, r.Object, r.Holder, r.Snippet)); + w.WriteLine(string.Join('\t', r.File, r.Line, r.Class, r.Method, r.S, r.D, r.Object, r.Holder, r.CaptureLine, r.Snippet)); Console.Error.WriteLine($"n3poc: {files.Count} files, {scan.Warnings.Count} warnings, " + $"{scan.RequestBoundTypes} request-bound types, {scan.DetachedSites} detached sites, " + $"{scan.UnknownSites} detached sites using only unknown-ownership fields"); return 0; sealed record Warning(string File, int Line, string Class, string Method, string S, string D, string Object, - string Holder, string Snippet); + string Holder, int CaptureLine, string Snippet); sealed class Lifetimes { @@ -341,7 +341,7 @@ void ScanBody(Ctx c, SyntaxNode body, string method, Dictionary e is "Task.CompletedTask" or "default" or " var sym = c.Sm.GetSymbolInfo(target).Symbol as IMethodSymbol ?? c.Sm.GetSymbolInfo(target).CandidateSymbols.OfType().FirstOrDefault(); if (sym is null || c.Type is null || !SymbolEqualityComparer.Default.Equals(sym.ContainingType, c.Type)) return null; + // §3 D3b is a discarded *Task* call (`_ = MAsync(…)`): a void callee is not detached work by itself + if (sym.ReturnType.Name is not ("Task" or "ValueTask")) return null; return sym.DeclaringSyntaxReferences.Select(r => r.GetSyntax()).OfType() .FirstOrDefault(md => md.Body is not null || md.ExpressionBody is not null); } - (string S, string Name)? UseAfterFirstAwait(Ctx c, InvocationExpressionSyntax call, MethodDeclarationSyntax callee, + (string S, string Name, int Line)? UseAfterFirstAwait(Ctx c, InvocationExpressionSyntax call, MethodDeclarationSyntax callee, Dictionary callerLocals) { var body = (SyntaxNode?)callee.Body ?? callee.ExpressionBody; if (body is null) return null; - var firstAwait = body.DescendantNodes().OfType().FirstOrDefault(); + // the callee's own first await: one inside a nested lambda or local function does not suspend the callee + var firstAwait = body.DescendantNodes(n => n == body || n is not (AnonymousFunctionExpressionSyntax or LocalFunctionStatementSyntax)) + .OfType().FirstOrDefault(); if (firstAwait is null) return null; // parameters bound to scope-owned arguments at this call site var calleeSm = comp.GetSemanticModel(callee.SyntaxTree); @@ -471,7 +475,7 @@ static bool IsCompleted(string e) => e is "Task.CompletedTask" or "default" or " { if (id.SpanStart <= firstAwait.Span.End) continue; if (id.Parent is MemberAccessExpressionSyntax ma && ma.Name == id && ma.Expression is not ThisExpressionSyntax) continue; - if (OwnedName(cc, id, paramOwn, null) is { } u) return u; + if (OwnedName(cc, id, paramOwn, null) is { } u) return (u.S, u.Name, Syn.Line(id)); } return null; } @@ -486,15 +490,17 @@ void ReportUses(Ctx c, ExpressionSyntax lam, string method, string d, Dictionary if (id.Parent is MemberBindingExpressionSyntax) continue; if (OwnedName(c, id, locals, lam) is not { } o) continue; any = true; - Add(c, lam.Parent?.Parent?.Parent ?? lam, method, o.S, d, o.Name); + Add(c, lam.Parent?.Parent?.Parent ?? lam, method, o.S, d, o.Name, Syn.Line(id)); } if (!any) UnknownSites++; } - void Add(Ctx c, SyntaxNode site, string method, string s, string d, string obj) + // `captureLine`: where the scope-owned object is used (D1/D2/D3b) or the call itself (D3a) + void Add(Ctx c, SyntaxNode site, string method, string s, string d, string obj, int captureLine = 0) { var line = Syn.Line(site); if (!_seen.Add((c.Tree.FilePath, line, obj))) return; - Warnings.Add(new Warning(c.Tree.FilePath, line, c.Type?.Name ?? "?", method, s, d, obj, c.Holder, Syn.Snip(site))); + Warnings.Add(new Warning(c.Tree.FilePath, line, c.Type?.Name ?? "?", method, s, d, obj, c.Holder, + captureLine == 0 ? line : captureLine, Syn.Snip(site))); } } diff --git a/docs/evidence/n3-pilot-2026-10/scripts/g1_touched.py b/docs/evidence/n3-pilot-2026-10/scripts/g1_touched.py new file mode 100644 index 00000000..d5d42597 --- /dev/null +++ b/docs/evidence/n3-pilot-2026-10/scripts/g1_touched.py @@ -0,0 +1,46 @@ +"""N3 pilot G1: is a buggy-tree warning's call or capture line changed or removed by the fix? + +usage: python -I g1_touched.py /{base,fix} and //{base,fix}> [run] +""" + +import difflib +import os +import sys + + +def rows(root: str, run: str, slug: str, side: str) -> list[list[str]]: + p = os.path.join(root, run, slug, side, "warnings.tsv") + return [r.split("\t") for r in open(p, encoding="utf-8").read().splitlines()[1:]] + + +def lines(path: str) -> list[str]: + if not os.path.exists(path): + return [] + return open(path, encoding="utf-8", errors="replace").read().splitlines() + + +def main() -> int: + root = sys.argv[1] + run = sys.argv[2] if len(sys.argv) > 2 else "run" + for slug in sorted(os.listdir(os.path.join(root, run))): + for c in rows(root, run, slug, "base"): + f, line, cap = c[0], int(c[1]), int(c[8]) + a = lines(os.path.join(root, "src", slug, "base", f)) + b = lines(os.path.join(root, "src", slug, "fix", f)) + touched: set[int] = set() + ops = difflib.SequenceMatcher(None, a, b, autojunk=False).get_opcodes() + for op, i1, i2, _j1, _j2 in ops: + if op in ("replace", "delete"): + touched.update(range(i1 + 1, i2 + 1)) + call = "TOUCHED" if line in touched else "untouched" + capture = "TOUCHED" if cap in touched else "untouched" + text = a[cap - 1].strip()[:70] + site = f"{slug}\t{f}:{line}\tcapture {cap}" + print(f"{site}\tcall={call}\tcapture={capture}\t{c[4]}x{c[5]}\t{text}") + for c in rows(root, run, slug, "fix"): + print(f" fix-warning\t{slug}\t{c[0]}:{c[1]}\t{c[4]}x{c[5]}") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) From 051fdb97a19ca81bebe95bc62af01df0651f5b76 Mon Sep 17 00:00:00 2001 From: PhysShell <45852143+PhysShell@users.noreply.github.com> Date: Tue, 20 Oct 2026 21:01:10 +0500 Subject: [PATCH 5/5] =?UTF-8?q?docs(evidence):=20N3=20pilot=20=E2=80=94=20?= =?UTF-8?q?KILL-N3-PILOT=20at=20G3=20(0=20warnings=20on=20the=20independen?= =?UTF-8?q?t=20sample)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit G1 PASS (3/3 required pairs), G2 PASS (C1-C15 silent). G3: PoC v2 over the 27 pre-registered mature repositories gives 0 warnings, below the pre-registered minimum of 5; the sample is not widened. An independent grep (526 fire-and-forget sites) confirms no scope-owned capture in a request-bound type. G4 not run. Co-Authored-By: Claude Opus 5.5 (1M context) Claude-Session: https://claude.ai/code/session_01TFkNAFFQz9KoTzpPws8vYG --- .../evidence/n3-pilot-2026-10/REPORT-G1-G4.md | 105 ++++ .../data/g3/crosscheck_grep.tsv | 527 ++++++++++++++++++ .../evidence/n3-pilot-2026-10/data/g3/run.log | 28 + .../n3-pilot-2026-10/data/g3/summary.tsv | 28 + 4 files changed, 688 insertions(+) create mode 100644 docs/evidence/n3-pilot-2026-10/REPORT-G1-G4.md create mode 100644 docs/evidence/n3-pilot-2026-10/data/g3/crosscheck_grep.tsv create mode 100644 docs/evidence/n3-pilot-2026-10/data/g3/run.log create mode 100644 docs/evidence/n3-pilot-2026-10/data/g3/summary.tsv diff --git a/docs/evidence/n3-pilot-2026-10/REPORT-G1-G4.md b/docs/evidence/n3-pilot-2026-10/REPORT-G1-G4.md new file mode 100644 index 00000000..a6a892f5 --- /dev/null +++ b/docs/evidence/n3-pilot-2026-10/REPORT-G1-G4.md @@ -0,0 +1,105 @@ +# N3 bounded pilot, gates G1–G4 — report + +**Result: `KILL-N3-PILOT` at G3.** On the pre-registered independent sample the PoC gives 0 product warnings, fewer +than the required 5 ("not enough data for a GO"). The sample is not widened. G1 and G2 passed; G4 is not run. + +Rules: [`01-preregistration-g1-g4.md`](01-preregistration-g1-g4.md), committed in `797f74c5` before any PoC code. +Authority: `ACCEPT-PASS-G0 / GO-G1-PREREG-AND-BOUNDED-EXECUTION / NO-PRODUCTION`. Time used: 20:23–21:00 +05 on +2026-10-20, inside the one agent-day budget. + +Nothing in production, OwnIR, CI or goldens was touched. Third-party code was parsed only. Trees were exported with +`git archive` from shallow fetches; nothing was restored or built (D13 isolation rule). The PoC itself was built +outside `source/repos` with a nuget.org-only config and no package reference. + +## 1. Gate summary + +| Gate | Verdict | Evidence | +|---|---|---| +| G1 tiny PoC | **PASS** | 3/3 required pairs report on the buggy tree at a line the fix changes. Each fixed tree is silent on the touched code (§3) | +| G2 negative controls | **PASS** | C1–C15 silent, and the 15 positive samples reported, on PoC v2 (`data/g1/controls_v2.tsv`) | +| G3 independent precision | **KILL** | 27 repositories, **0** warnings (§4) | +| G4 practical yield | not run | stopped at G3 | + +## 2. One implementation fix between the first and the scored run (disclosed) + +PoC v1 (`6a44d991`) was correct on the control file. On DotNetCloud#43 it produced 3 extra D3b warnings, from two +departures from §3 of the pre-registration: + +- it accepted a call to a `void` same-class method as D3b, while §3 defines D3b as a discarded Task call + (`_ = MAsync(…)`); +- it took an `await` inside a nested lambda as the callee's first `await`. + +v2 (`602d4a89`) applies §3 as written and also records the capture line. No ownership or detachment rule changed. +Control C15 covers this case; the pre-registration allows adding controls after the first run. v1 output is kept in +`data/g1/warnings_v1.tsv`. + +One input mistake was also corrected before scoring. The buggy tree was first taken as the merge commit's parent. +For mars-vista-api#26, which was rebase-merged from several commits, that parent already contains the fix. The +scored run uses the PR's `base.sha`, and `base.sha` is an ancestor of the fix commit in all six pairs +(`data/g1/pairs.tsv`). + +## 3. G1 — pairs + +Each warning's call line or capture line was checked against the fix diff with +[`scripts/g1_touched.py`](scripts/g1_touched.py). The result is `data/g1/touched_v2.tsv`. + +| Pair | Buggy tree | Fixed tree | +|---|---|---| +| mars-vista-api#26 (required) | `UsageTrackingMiddleware.cs:63` S1×D3b: `_ = TrackUsageAsync(context, …)`, with `context` used after the callee's first `await`. Line removed by the fix | silent on the touched file | +| DotNetCloud#43 (required) | `VideoIndexingCallback.cs:366` S3×D1: discarded `Task.Run` using `_seriesService`, capture line 371 removed by the fix. Holder `VideoIndexingCallback` and `IVideoSeriesService` are both proven scoped (R3, S3) | silent on the touched file | +| DFY-BE#35 (required) | `AuthController.cs:70` S3×D3a: `_ = _notificationService.NotifyAdminsAsync(…)`, line changed by the fix | 0 warnings | +| Vendorea#49 (reported only) | `AdminFtpIngestionController.cs:272` S4×D1, capture line 276 changed by the fix | 0 warnings | +| microting#1669 (reported only) | silent: the holder `ContentHandoverService` is registered transient, which is not request-bound in this slice | silent | +| escalated#162 (reported only) | silent: `WebhookDispatcher` is scoped, but `EscalatedDbContext` is registered by the consuming app, not in the repository, so S2 is unproven | silent | + +Warnings in the pair repositories outside the fixed code were not scored, and are recorded as possible further +instances only. They are present on both trees: + +- mars-vista `UserApiKeyAuthenticationMiddleware.cs:153`: `context.RequestServices` inside a discarded `Task.Run`; +- DotNetCloud `VideoController.cs:838` (D3a) and `:1462` (D1). + +## 4. G3 — the independent sample + +- **Input.** The 28 pre-registered repositories at their pinned SHAs, with saved facts from the `e7d33e33` + extractor. dnSpy has no facts, because the extractor crashed on it in D11 (N13), so 27 were scanned. +- **Result.** 0 warnings in 27 repositories (`data/g3/summary.tsv`, `data/g3/run.log`). The PoC saw 1,929 + request-bound types and only 7 detached sites, all of them without a proven scope-owned use. +- **Independent check that 0 is not a blind spot.** A plain grep was run for statement-level `Task.Run` / + `Task.Factory.StartNew`, `_ = …Async(…)` and `QueueBackgroundWorkItem` in non-test paths + (`data/g3/crosscheck_grep.tsv`). + - It found 526 sites. 13 are in types whose name or base contains `Controller`, `PageModel` or `Hub`. + - Of those, the real ASP.NET controllers are Jackett `ServerConfigurationController` (a static helper), Radarr + `SystemController` (`_lifecycleService`) and Jellyfin `LibraryStructureController`. Jellyfin's + `ILibraryManager` and `ILibraryMonitor` are `AddSingleton` (`ApplicationHost.cs:577`, `:583`). + - The rest match by name only: Duplicati's `Controller` classes and a WPF gallery. + - None captures a scope-owned object, so the PoC's silence matches the code. + +The sample is mostly libraries. Only about 7 of the 27 are request-serving web applications: OrchardCore, eShop, +bitwarden, nopCommerce, Jellyfin, Radarr and Jackett. This was known when the sample was fixed, and the +pre-registration forbids widening it after the run. + +## 5. What this does and does not show + +Confirmed: +- The narrow slice (§2/§3) finds the three required real defects and stays silent on their fixes and on 15 + negative controls. +- Mature code in the fixed sample contains no instance of the slice: 0 by the PoC and 0 by an independent grep. + +Inference: the class recurs in young applications, as Phase 0 found (7 of 8 repos with 0–4 stars). Here it was not +observed in mature code, which matches what D11 recorded for C10 (mature-code yield 0). + +Not shown: +- Precision is unmeasured; there were no warnings to measure it on. +- Yield on a sample of mature **web applications** only was not tested. +- The silent S-unknown cases were not counted by kind: transient `IDisposable`, consumer-registered `DbContext`, + transient holders, factory lambdas. + +## 6. Files + +- [`01-preregistration-g1-g4.md`](01-preregistration-g1-g4.md): the rules. +- [`controls/N3NegativeControls.cs`](controls/N3NegativeControls.cs): controls C1–C15 and positive samples. +- [`poc/`](poc/): the PoC (Roslyn, no package reference). +- [`scripts/n3_run.py`](scripts/n3_run.py): the runner. +- [`scripts/g1_touched.py`](scripts/g1_touched.py): the diff check. +- `data/g1/`: pairs with SHAs, v1 and v2 warnings, the diff check and control output. +- `data/g3/`: per-repository summary, run log and the grep cross-check. diff --git a/docs/evidence/n3-pilot-2026-10/data/g3/crosscheck_grep.tsv b/docs/evidence/n3-pilot-2026-10/data/g3/crosscheck_grep.tsv new file mode 100644 index 00000000..19e8ba30 --- /dev/null +++ b/docs/evidence/n3-pilot-2026-10/data/g3/crosscheck_grep.tsv @@ -0,0 +1,527 @@ +file:line enclosing type statement +holdout/Jackett__Jackett/src/Jackett.Server/Controllers/ServerConfigurationController.cs:298 public class ServerConfigurationController : Controller Task.Factory.StartNew(() => Helper.applicationLifetime.StopApplication +holdout/Jackett__Jackett/src/Jackett.Tray/Main.cs:88 public partial class Main : Form Task.Factory.StartNew(WaitForEvent); +holdout/MassTransit__MassTransit/src/MassTransit/Caching/Internals/NodeTracker.cs:85 public class NodeTracker : Task.Run(() => AddNode(nodeValueFactory)); +holdout/MassTransit__MassTransit/src/MassTransit/Caching/Internals/NodeTracker.cs:95 public class NodeTracker : Task.Run(() => RemoveNode(node)); +holdout/MassTransit__MassTransit/src/MassTransit/Caching/Internals/NodeTracker.cs:260 public class NodeTracker : Task.Run(() => Cleanup(now)); +holdout/MassTransit__MassTransit/src/MassTransit/Clients/ClientRequestHandle.cs:109 public class ClientRequestHandle : Task.Factory.StartNew(CancelAndDispose, CancellationToken.None, TaskCr +holdout/MassTransit__MassTransit/src/MassTransit/Clients/ClientRequestHandle.cs:254 public class ClientRequestHandle : Task.Factory.StartNew(HandleFail, CancellationToken.None, TaskCreation +holdout/MassTransit__MassTransit/src/MassTransit/Consumers/Batching/BatchConsumer.cs:67 public class BatchConsumer : Task.Run(() => _executor.Push(() => +holdout/MassTransit__MassTransit/src/MassTransit/Consumers/Batching/BatchConsumer.cs:125 public class BatchConsumer : Task.Run(() => _executor.Push(() => +holdout/MassTransit__MassTransit/src/MassTransit/Consumers/Configuration/BatchConsumerMessageConnector.cs:103 class BatchConnectHandle : Task.Run(DisposeConsumerFactory); +holdout/MassTransit__MassTransit/src/MassTransit/InMemoryTransport/InMemoryTransport/InMemoryReceiveTransport.cs:98 class ReceiveTransportAgent : Task.Run(() => Startup()); +holdout/MassTransit__MassTransit/src/MassTransit/Internals/Reflection/ReadProperty.cs:34 public class ReadProperty : Task.Run(() => GenerateExpressionGetMethod(getMethod)); +holdout/MassTransit__MassTransit/src/MassTransit/Internals/Reflection/WriteProperty.cs:37 public class WriteProperty : Task.Run(() => GenerateExpressionSetMethod(implementationType, setMeth +holdout/MassTransit__MassTransit/src/MassTransit/JobService/JobService/JobService.cs:137 public class JobService : Task.Run(async () => +holdout/MassTransit__MassTransit/src/MassTransit/Sagas/Configuration/SagaMetadataCache.cs:43 public class SagaMetadataCache : Task.Run(GenerateFactoryMethodAsynchronously); +holdout/MassTransit__MassTransit/src/MassTransit/Sagas/Configuration/SagaMetadataCache.cs:62 public class SagaMetadataCache : Task.Run(GeneratePropertyFactoryMethodAsynchronously); +holdout/MassTransit__MassTransit/src/MassTransit/Transports/Components/KillSwitch/KillSwitch.cs:120 public class KillSwitch : Task.Run(() => RestartReceiveEndpoint()); +holdout/MassTransit__MassTransit/src/MassTransit/Transports/Components/KillSwitch/KillSwitch.cs:134 public class KillSwitch : Task.Run(() => StopReceiveEndpoint(stopped)); +holdout/MassTransit__MassTransit/src/MassTransit/Transports/ConsumerAgent.cs:110 public abstract class ConsumerAgent : Task.Run(() => TryStop()); +holdout/MassTransit__MassTransit/src/MassTransit/Transports/Fabric/Gauge.cs:33 public class Gauge : Task.Run(() => NotifyZeroActivity(zeroActivity)); +holdout/MassTransit__MassTransit/src/MassTransit/Transports/Fabric/MessageQueue.cs:97 public class MessageQueue : Task.Run(async () => +holdout/MassTransit__MassTransit/src/Transports/MassTransit.Azure.ServiceBus.Core/AzureServiceBusTransport/Contexts/QueueClientContext.cs:108 public class QueueClientContext : Task.Run(() => _agent.Stop($"Unrecoverable exception on {entityPath}") +holdout/MassTransit__MassTransit/src/Transports/MassTransit.Azure.ServiceBus.Core/AzureServiceBusTransport/Contexts/SubscriptionClientContext.cs:110 public class SubscriptionClientContext : Task.Run(() => _agent.Stop($"Unrecoverable exception on {entityPath}") +holdout/MassTransit__MassTransit/src/Transports/MassTransit.RabbitMqTransport/RabbitMqTransport/ChannelContextFactory.cs:33 public class ChannelContextFactory : Task.Run(() => asyncContext.Stop(args.ReplyText)) +holdout/MassTransit__MassTransit/src/Transports/MassTransit.RabbitMqTransport/RabbitMqTransport/ConnectionContextFactory.cs:37 public class ConnectionContextFactory : Task.Run(() => contextHandle.Stop(args.ReplyText)) +holdout/MassTransit__MassTransit/src/Transports/MassTransit.RabbitMqTransport/RabbitMqTransport/RabbitMqChannelContext.cs:162 public class RabbitMqChannelContext : Task.Run(() => _agent.Stop($"Unrecoverable exception on {inputAddress. +holdout/OrchardCMS__OrchardCore/.agents/skills/orchardcore-video-producer/scripts/recorder/Scene.cs:233 public sealed class Scene : IAsyncDisposable _ = _cdp.SendAsync("Page.screencastFrameAck", new Dictionary +holdout/OrchardCMS__OrchardCore/src/OrchardCore/OrchardCore.DataPipelines.Core/Services/DataPipelineEdge.cs:100 internal sealed class DataPipelineEdge _ = Task.Run(PumpAsync, CancellationToken.None); +holdout/OrchardCMS__OrchardCore/src/OrchardCore.Modules/OrchardCore.DataPipelines/Services/DataPipelineRunDispatcher.cs:62 public sealed class DataPipelineRunDispatcher _ = Task.Run(() => ExecuteAsync(runId)); +holdout/Radarr__Radarr/src/NzbDrone.Common/Http/HttpClient.cs:315 public class HttpClient : IHttpClient Task.Run(() => DownloadFileAsync(url, fileName)).GetAwaiter().GetResul +holdout/Radarr__Radarr/src/NzbDrone.Core/RootFolders/RootFolderService.cs:217 public class RootFolderService : IRootFolderService Task.Run(() => +holdout/Radarr__Radarr/src/Radarr.Api.V3/System/SystemController.cs:116 public class SystemController : Controller Task.Factory.StartNew(() => _lifecycleService.Shutdown()); +holdout/Radarr__Radarr/src/Radarr.Api.V3/System/SystemController.cs:123 public class SystemController : Controller Task.Factory.StartNew(() => _lifecycleService.Restart()); +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.Kafka/AdminClient.cs:744 internal class AdminClient : IAdminClient Task.Run(() => +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.Kafka/AdminClient.cs:755 internal class AdminClient : IAdminClient Task.Run(() => +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.Kafka/AdminClient.cs:761 internal class AdminClient : IAdminClient Task.Run(() => +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.Kafka/AdminClient.cs:771 internal class AdminClient : IAdminClient Task.Run(() => +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.Kafka/AdminClient.cs:783 internal class AdminClient : IAdminClient Task.Run(() => +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.Kafka/AdminClient.cs:789 internal class AdminClient : IAdminClient Task.Run(() => +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.Kafka/AdminClient.cs:799 internal class AdminClient : IAdminClient Task.Run(() => +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.Kafka/AdminClient.cs:809 internal class AdminClient : IAdminClient Task.Run(() => +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.Kafka/AdminClient.cs:815 internal class AdminClient : IAdminClient Task.Run(() => +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.Kafka/AdminClient.cs:825 internal class AdminClient : IAdminClient Task.Run(() => +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.Kafka/AdminClient.cs:837 internal class AdminClient : IAdminClient Task.Run(() => +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.Kafka/AdminClient.cs:843 internal class AdminClient : IAdminClient Task.Run(() => +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.Kafka/AdminClient.cs:853 internal class AdminClient : IAdminClient Task.Run(() => +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.Kafka/AdminClient.cs:864 internal class AdminClient : IAdminClient Task.Run(() => +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.Kafka/AdminClient.cs:871 internal class AdminClient : IAdminClient Task.Run(() => +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.Kafka/AdminClient.cs:881 internal class AdminClient : IAdminClient Task.Run(() => +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.Kafka/AdminClient.cs:893 internal class AdminClient : IAdminClient Task.Run(() => +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.Kafka/AdminClient.cs:899 internal class AdminClient : IAdminClient Task.Run(() => +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.Kafka/AdminClient.cs:909 internal class AdminClient : IAdminClient Task.Run(() => +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.Kafka/AdminClient.cs:919 internal class AdminClient : IAdminClient Task.Run(() => +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.Kafka/AdminClient.cs:925 internal class AdminClient : IAdminClient Task.Run(() => +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.Kafka/AdminClient.cs:942 internal class AdminClient : IAdminClient Task.Run(() => +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.Kafka/AdminClient.cs:952 internal class AdminClient : IAdminClient Task.Run(() => +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.Kafka/AdminClient.cs:958 internal class AdminClient : IAdminClient Task.Run(() => +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.Kafka/AdminClient.cs:974 internal class AdminClient : IAdminClient Task.Run(() => +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.Kafka/AdminClient.cs:986 internal class AdminClient : IAdminClient Task.Run(() => +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.Kafka/AdminClient.cs:992 internal class AdminClient : IAdminClient Task.Run(() => +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.Kafka/AdminClient.cs:1001 internal class AdminClient : IAdminClient Task.Run(() => +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.Kafka/AdminClient.cs:1011 internal class AdminClient : IAdminClient Task.Run(() => +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.Kafka/AdminClient.cs:1021 internal class AdminClient : IAdminClient Task.Run(() => +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.Kafka/AdminClient.cs:1030 internal class AdminClient : IAdminClient Task.Run(() => +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.Kafka/AdminClient.cs:1040 internal class AdminClient : IAdminClient Task.Run(() => +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.Kafka/AdminClient.cs:1050 internal class AdminClient : IAdminClient Task.Run(() => +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.Kafka/AdminClient.cs:1060 internal class AdminClient : IAdminClient Task.Run(() => +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.Kafka/AdminClient.cs:1068 internal class AdminClient : IAdminClient Task.Run(() => +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.Kafka/AdminClient.cs:1074 internal class AdminClient : IAdminClient Task.Run(() => +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.Kafka/AdminClient.cs:1092 internal class AdminClient : IAdminClient Task.Run(() => +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.Kafka/AdminClient.cs:1105 internal class AdminClient : IAdminClient Task.Run(() => +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.Kafka/AdminClient.cs:1111 internal class AdminClient : IAdminClient Task.Run(() => +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.Kafka/AdminClient.cs:1126 internal class AdminClient : IAdminClient Task.Run(() => +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.Kafka/AdminClient.cs:1134 internal class AdminClient : IAdminClient Task.Run(() => +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.Kafka/AdminClient.cs:1140 internal class AdminClient : IAdminClient Task.Run(() => +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.Kafka/AdminClient.cs:1154 internal class AdminClient : IAdminClient Task.Run(() => +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.Kafka/AdminClient.cs:1162 internal class AdminClient : IAdminClient Task.Run(() => +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.Kafka/AdminClient.cs:1168 internal class AdminClient : IAdminClient Task.Run(() => +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.Kafka/AdminClient.cs:1180 internal class AdminClient : IAdminClient Task.Run(() => +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.Kafka/AdminClient.cs:1188 internal class AdminClient : IAdminClient Task.Run(() => +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.Kafka/AdminClient.cs:1194 internal class AdminClient : IAdminClient Task.Run(() => +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.Kafka/AdminClient.cs:1205 internal class AdminClient : IAdminClient Task.Run(() => +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.Kafka/AdminClient.cs:1213 internal class AdminClient : IAdminClient Task.Run(() => +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.Kafka/AdminClient.cs:1219 internal class AdminClient : IAdminClient Task.Run(() => +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.Kafka/AdminClient.cs:1231 internal class AdminClient : IAdminClient Task.Run(() => +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.Kafka/AdminClient.cs:1241 internal class AdminClient : IAdminClient Task.Run(() => +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.Kafka/AdminClient.cs:1247 internal class AdminClient : IAdminClient Task.Run(() => +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.Kafka/AdminClient.cs:1257 internal class AdminClient : IAdminClient Task.Run(() => +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.Kafka/AdminClient.cs:1265 internal class AdminClient : IAdminClient Task.Run(() => +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.Kafka/AdminClient.cs:1271 internal class AdminClient : IAdminClient Task.Run(() => +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.Kafka/AdminClient.cs:1282 internal class AdminClient : IAdminClient Task.Run(() => +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.Kafka/AdminClient.cs:1288 internal class AdminClient : IAdminClient Task.Run(() => +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.Kafka/AdminClient.cs:1296 internal class AdminClient : IAdminClient Task.Run(() => +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.Kafka/AdminClient.cs:1304 internal class AdminClient : IAdminClient Task.Run(() => +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.Kafka/AdminClient.cs:1311 internal class AdminClient : IAdminClient Task.Run(() => +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.Kafka/AdminClient.cs:1321 internal class AdminClient : IAdminClient Task.Run(() => +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.Kafka/AdminClient.cs:1329 internal class AdminClient : IAdminClient Task.Run(() => +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.Kafka/AdminClient.cs:1339 internal class AdminClient : IAdminClient Task.Run(() => +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.Kafka/Impl/SafeKafkaHandle.cs:1244 internal sealed class SafeKafkaHandle : SafeHandleZeroIsInvalid Task.Run(() => +holdout/confluentinc__confluent-kafka-dotnet/src/Confluent.SchemaRegistry/SchemaRegistrySerdeBuilder.cs:253 public abstract class SchemaRegistrySerdeBuilder Task.Run(() => init(serde)).GetAwaiter().GetResult(); +holdout/dnSpyEx__dnSpy/dnSpy/dnSpy/Documents/Tabs/Dialogs/OpenDocumentListVM.cs:134 sealed class OpenDocumentListVM : ViewModelBase, IDisposable { Task.Factory.StartNew(() => new DefaultDocumentListFinder(cancellation +holdout/dnSpyEx__dnSpy/dnSpy/dnSpy/Documents/Tabs/Dialogs/OpenFromGACVM.cs:118 sealed class OpenFromGACVM : ViewModelBase, IGACFileReceiver, IDisposable { Task.Factory.StartNew(() => new GACFileFinder(this, dispatcher, cancel +holdout/dnSpyEx__dnSpy/dnSpy/dnSpy/Documents/Tabs/SaveCommands.cs:158 sealed class ExportTask : IExportTask, IMSBuildProjectWriterLogger, IMSBuildPr Task.Factory.StartNew(() => { +holdout/dnSpyEx__dnSpy/dnSpy/dnSpy/Documents/Tabs/TabContentImpl.cs:345 sealed class AsyncShowContext : IAsyncShowContext { Task.Run(() => asyncTabContent.CreateContentAsync(asyncShowCtx), ctx.C +holdout/dnSpyEx__dnSpy/dnSpy/dnSpy/Documents/Tabs/TabContentImpl.cs:396 sealed class AsyncWorkerContext : IDisposable { Task.Factory.StartNew(() => asyncAction(), ctx.CancellationToken) +holdout/dnSpyEx__dnSpy/dnSpy/dnSpy/Hex/Editor/Search/HexViewSearchService.cs:1060 sealed class PositionInfo { Task.Run(() => asyncSearcher.Find(), asyncSearcher.CancellationToken); +holdout/dnSpyEx__dnSpy/dnSpy/dnSpy/MainApp/App.xaml.cs:208 sealed partial class App : Application { Task.Run(() => SaveMefStateAsync(config)).ContinueWith(t => { +holdout/dnSpyEx__dnSpy/dnSpy/dnSpy/MainApp/Settings/FontAppSettingsPage.cs:109 sealed class FontAppSettingsPage : AppSettingsPage { Task.Factory.StartNew(() => +holdout/dnSpyEx__dnSpy/dnSpy/dnSpy/MainApp/StartupUpdateCheck.cs:43 sealed class StartupUpdateCheck : IAutoLoaded { Task.Run(CheckForUpdate); +holdout/dnSpyEx__dnSpy/dnSpy/Roslyn/dnSpy.Roslyn/Optimizations/FirstUseOptimization.cs:90 sealed class C { Task.Run(() => InitializeAsync(buffer, tagger, docFactory)) +holdout/dnSpyEx__dnSpy/Extensions/dnSpy.Scripting.Roslyn/Common/ScriptControlVM.cs:263 sealed class ExecState { Task.Run(() => { +holdout/dnSpyEx__dnSpy/Extensions/dnSpy.Scripting.Roslyn/Common/ScriptControlVM.cs:380 sealed class ExecState { Task.Run(() => { +holdout/dnSpyEx__dnSpy/Extensions/dnSpy.StringSearcher/StringReferencesService.cs:179 sealed class StringReferencesService : IStringReferencesService { Task.Factory.StartNew(() => { +holdout/dotnet__eShop/src/EventBusRabbitMQ/RabbitMQEventBus.cs:229 public sealed class RabbitMQEventBus( _ = Task.Factory.StartNew(async () => +holdout/dotnet__eShop/src/WebhookClient/Services/HooksRepository.cs:18 public class HooksRepository _ = subscription.Key.NotifyAsync(); +holdout/files-community__Files/src/Files.App/Actions/FileSystem/CreateFileAction.cs:43 internal sealed partial class CreateFileAction : BaseUIAction, IAction _ = UIFilesystemHelpers.CreateFileFromDialogResultTypeAsync(AddItemDia +holdout/files-community__Files/src/Files.App/Actions/FileSystem/CreateFolderAction.cs:46 internal sealed partial class CreateFolderAction : BaseUIAction, IAction _ = UIFilesystemHelpers.CreateFileFromDialogResultTypeAsync(AddItemDia +holdout/files-community__Files/src/Files.App/App.xaml.cs:80 public partial class App : Application _ = ActivateAsync(); +holdout/files-community__Files/src/Files.App/App.xaml.cs:209 public partial class App : Application _ = MainWindow.Instance.InitializeApplicationAsync(appActivationArgume +holdout/files-community__Files/src/Files.App/Data/Factories/ContentPageContextFlyoutFactory.cs:717 public static class ContentPageContextFlyoutFactory _ = bitmap.SetSourceAsync(ms.AsRandomAccessStream()); +holdout/files-community__Files/src/Files.App/Data/Items/DriveItem.cs:275 public sealed partial class DriveItem : ExpandableSidebarItemBase, INavigationC _ = MainWindow.Instance.DispatcherQueue.EnqueueOrInvokeAsync(item.Upda +holdout/files-community__Files/src/Files.App/Data/Items/ExpandableSidebarItemBase.cs:35 public abstract partial class ExpandableSidebarItemBase : ObservableObject _ = LoadSubfoldersAsync(); +holdout/files-community__Files/src/Files.App/Data/Items/ExpandableSidebarItemBase.cs:65 public abstract partial class ExpandableSidebarItemBase : ObservableObject _ = LoadSubfoldersAsync(); +holdout/files-community__Files/src/Files.App/Data/Items/ExpandableSidebarItemBase.cs:71 public abstract partial class ExpandableSidebarItemBase : ObservableObject _ = ResyncSubfoldersAsync(); +holdout/files-community__Files/src/Files.App/Data/Items/ExpandableSidebarItemBase.cs:283 public abstract partial class ExpandableSidebarItemBase : ObservableObject _ = LocationItem.UpgradeIconsAsync(inserted, iconBytes, dispatcher); +holdout/files-community__Files/src/Files.App/Data/Items/ListedItem.cs:116 public partial class ListedItem : ObservableObject, IGroupableItem, IListedItem _ = FileTagsHelper.WriteFileTagAsync(path, value); +holdout/files-community__Files/src/Files.App/Data/Items/LocationItem.cs:142 public partial class LocationItem : ExpandableSidebarItemBase, INavigationContr _ = UpgradeIconsAsync(createdChildren, iconBytes, dispatcher); +holdout/files-community__Files/src/Files.App/Data/Items/LocationItem.cs:319 public sealed partial class RecycleBinLocationItem : LocationItem _ = RefreshSpaceUsedAsync(); +holdout/files-community__Files/src/Files.App/Data/Items/WidgetFileTagsContainerItem.cs:76 public sealed partial class WidgetFileTagsContainerItem : ObservableObject, IAs _ = LoadIconAsync(cardItem, item.Storable, linkedToken); +holdout/files-community__Files/src/Files.App/Data/Items/WidgetFileTagsContainerItem.cs:98 public sealed partial class WidgetFileTagsContainerItem : ObservableObject, IAs _ = LoadIconAsync(cardItem, item.Storable, linkedToken); +holdout/files-community__Files/src/Files.App/Data/Models/DirectoryPropertiesViewModel.cs:114 public sealed partial class StatusBarViewModel : ObservableObject, IDisposable _ = OnZipEncodingChangedAsync(value); +holdout/files-community__Files/src/Files.App/Data/Models/DirectoryPropertiesViewModel.cs:163 public sealed partial class StatusBarViewModel : ObservableObject, IDisposable _ = UpdateZipEncodingStateAsync(); +holdout/files-community__Files/src/Files.App/Data/Models/DirectoryPropertiesViewModel.cs:416 public sealed partial class StatusBarViewModel : ObservableObject, IDisposable _ = UpdateZipEncodingStateAsync(); +holdout/files-community__Files/src/Files.App/Data/Models/PinnedFoldersManager.cs:113 public sealed class PinnedFoldersManager _ = LoadIconForLocationItemAsync(locationItem, path, isFolder: false); +holdout/files-community__Files/src/Files.App/Data/Models/PinnedFoldersManager.cs:119 public sealed class PinnedFoldersManager _ = LoadIconForLocationItemAsync(locationItem, folder.Path); +holdout/files-community__Files/src/Files.App/Data/Models/PinnedFoldersManager.cs:125 public sealed class PinnedFoldersManager _ = LoadDefaultIconForLocationItemAsync(locationItem); +holdout/files-community__Files/src/Files.App/Helpers/Application/AppLifecycleHelper.cs:112 public static class AppLifecycleHelper _ = Task.Run(async () => +holdout/files-community__Files/src/Files.App/Helpers/Application/AppLifecycleHelper.cs:130 public static class AppLifecycleHelper _ = Task.Run(FileTagsHelper.UpdateTagsDb); +holdout/files-community__Files/src/Files.App/Helpers/Application/AppLifecycleHelper.cs:132 public static class AppLifecycleHelper _ = Task.Run(async () => +holdout/files-community__Files/src/Files.App/Helpers/Application/AppLifecycleHelper.cs:169 public static class AppLifecycleHelper _ = Task.Run(async () => +holdout/files-community__Files/src/Files.App/Helpers/Application/AppMemoryHelper.cs:45 public static class AppMemoryHelper _ = Task.Run(async () => +holdout/files-community__Files/src/Files.App/Helpers/Dialog/DynamicDialogFactory.cs:462 public static class DynamicDialogFactory _ = inputText.DispatcherQueue.EnqueueOrInvokeAsync(() => inputText.Foc +holdout/files-community__Files/src/Files.App/Helpers/MenuFlyout/FastContextFlyout.cs:438 public sealed class FastContextFlyout _ = PopulateAsync(); +holdout/files-community__Files/src/Files.App/Helpers/MenuFlyout/MenuFlyoutHelper.cs:64 public sealed class MenuFlyoutFactoryItemViewModel : IMenuFlyoutItemViewModel _ = SetupItemsAsync(menu); +holdout/files-community__Files/src/Files.App/Helpers/Win32/Win32Helper.Storage.cs:674 public static partial class Win32Helper Task.Run(async () => +holdout/files-community__Files/src/Files.App/MainWindow.xaml.cs:146 public sealed partial class MainWindow : WindowEx _ = EnsureContentHasKeyboardFocusAsync(); +holdout/files-community__Files/src/Files.App/Services/Settings/FileTagsSettingsService.cs:192 internal sealed class FileTagsSettingsService : BaseJsonSettings, IFileTagsSett _ = FileTagsHelper.WriteFileTagAsync( +holdout/files-community__Files/src/Files.App/Services/Storage/StorageDevicesService.cs:94 public sealed class RemovableDrivesService : IRemovableDrivesService _ = MainWindow.Instance.DispatcherQueue.EnqueueOrInvokeAsync(() => +holdout/files-community__Files/src/Files.App/Services/Windows/WindowsRecentItemsService.cs:308 public class WindowsRecentItemsService : IWindowsRecentItemsService _ = UpdateRecentFilesAsync(); +holdout/files-community__Files/src/Files.App/Services/Windows/WindowsRecentItemsService.cs:309 public class WindowsRecentItemsService : IWindowsRecentItemsService _ = UpdateRecentFoldersAsync(); +holdout/files-community__Files/src/Files.App/UserControls/FileIcon.xaml.cs:69 public sealed partial class FileIcon : UserControl _ = UpdateImageSourceAsync(); +holdout/files-community__Files/src/Files.App/UserControls/NavigationToolbar.xaml.cs:133 public sealed partial class NavigationToolbar : UserControl _ = LoadFlyoutItemIconAsync(flyoutItem, args.NavPathParam); +holdout/files-community__Files/src/Files.App/UserControls/Pane/ShelfPane.xaml.cs:65 public sealed partial class ShelfPane : UserControl _ = shelfItem.InitAsync(); +holdout/files-community__Files/src/Files.App/Utils/Cloud/CloudDrivesManager.cs:58 public static class CloudDrivesManager _ = LoadIconAsync(cloudProviderItem, provider); +holdout/files-community__Files/src/Files.App/Utils/Cloud/CloudDrivesManager.cs:72 public static class CloudDrivesManager _ = SetRootAndUpdatePropertiesAsync(cloudProviderItem); +holdout/files-community__Files/src/Files.App/Utils/Shell/LaunchHelper.cs:258 public static class LaunchHelper _ = Task.Run(async () => +holdout/files-community__Files/src/Files.App/Utils/Storage/Enumerators/UniversalStorageEnumerator.cs:113 public static class UniversalStorageEnumerator _ = folderSizeProvider.UpdateAsync(folderPath, cancellationToken); +holdout/files-community__Files/src/Files.App/Utils/Storage/Enumerators/Win32StorageEnumerator.cs:97 public static class Win32StorageEnumerator _ = folderSizeProvider.UpdateAsync(folderPath, cancellationToken); +holdout/files-community__Files/src/Files.App/Utils/Storage/Operations/FileOperationsHelpers.cs:1002 public sealed partial class FileOperationsHelpers _ = FileTagsHelper.WriteFileTagAsync(destination, tag); +holdout/files-community__Files/src/Files.App/Utils/Taskbar/SystemTrayIcon.cs:299 public sealed partial class SystemTrayIcon : IDisposable _ = Launcher.LaunchUriAsync(new Uri("files-dev:")); +holdout/files-community__Files/src/Files.App/ViewModels/Dialogs/CompressSkippedItemsDialogViewModel.cs:19 public sealed partial class CompressSkippedItemsDialogViewModel : ObservableObj _ = LoadItemsIconAsync(); +holdout/files-community__Files/src/Files.App/ViewModels/Layouts/BaseLayoutViewModel.cs:55 public sealed partial class BaseLayoutViewModel : IDisposable _ = UIFilesystemHelpers.CreateFileFromDialogResultTypeAsync(AddItemDia +holdout/files-community__Files/src/Files.App/ViewModels/Properties/Items/CombinedFileProperties.cs:186 internal sealed class CombinedFileProperties : CombinedProperties, IFilePropert _ = GetSystemFilePropertiesAsync(); +holdout/files-community__Files/src/Files.App/ViewModels/Properties/Items/FileProperties.cs:171 public sealed class FileProperties : BaseProperties, IFileProperties _ = GetOtherPropertiesAsync(file.Properties); +holdout/files-community__Files/src/Files.App/ViewModels/Properties/Items/FileProperties.cs:288 public sealed class FileProperties : BaseProperties, IFileProperties _ = GetSystemFilePropertiesAsync(); +holdout/files-community__Files/src/Files.App/ViewModels/Properties/Items/FolderProperties.cs:122 internal sealed class FolderProperties : BaseProperties _ = GetOtherPropertiesAsync(storageFolder.Properties); +holdout/files-community__Files/src/Files.App/ViewModels/Properties/Items/FolderProperties.cs:128 internal sealed class FolderProperties : BaseProperties _ = GetFolderSizeAsync(storageFolder.Path, TokenSource.Token); +holdout/files-community__Files/src/Files.App/ViewModels/Properties/Items/FolderProperties.cs:162 internal sealed class FolderProperties : BaseProperties _ = GetFolderSizeAsync(folderPath, TokenSource.Token); +holdout/files-community__Files/src/Files.App/ViewModels/Properties/Items/LibraryProperties.cs:27 internal sealed class LibraryProperties : BaseProperties _ = GetSpecialPropertiesAsync(); +holdout/files-community__Files/src/Files.App/ViewModels/Settings/AdvancedViewModel.cs:46 public sealed partial class AdvancedViewModel : ObservableObject _ = DetectOpenFilesAtStartupAsync(); +holdout/files-community__Files/src/Files.App/ViewModels/Settings/AdvancedViewModel.cs:47 public sealed partial class AdvancedViewModel : ObservableObject _ = UpdateCacheSizeAsync(); +holdout/files-community__Files/src/Files.App/ViewModels/ShellViewModel.cs:163 public sealed partial class ShellViewModel : ObservableObject, IDisposable _ = LoadGitPropertiesAsync(gitItem); +holdout/files-community__Files/src/Files.App/ViewModels/ShellViewModel.cs:251 public sealed partial class ShellViewModel : ObservableObject, IDisposable _ = Task.Run(() => jumpListService.AddFolderAsync(value)); +holdout/files-community__Files/src/Files.App/ViewModels/ShellViewModel.cs:1037 public sealed partial class ShellViewModel : ObservableObject, IDisposable _ = UpdateNetworkAvailabilityInfoBarAsync(workingDirectory, networkAva +holdout/files-community__Files/src/Files.App/ViewModels/ShellViewModel.cs:1528 public sealed partial class ShellViewModel : ObservableObject, IDisposable _ = Task.Run(async () => +holdout/files-community__Files/src/Files.App/ViewModels/ShellViewModel.cs:1773 public sealed partial class ShellViewModel : ObservableObject, IDisposable _ = LoadExtendedFilePropertiesInBackgroundAsync(item, matchingStorageF +holdout/files-community__Files/src/Files.App/ViewModels/ShellViewModel.cs:1886 public sealed partial class ShellViewModel : ObservableObject, IDisposable _ = Task.Run(async () => +holdout/files-community__Files/src/Files.App/ViewModels/ShellViewModel.cs:2101 public sealed partial class ShellViewModel : ObservableObject, IDisposable _ = RapidAddItemsToCollectionAsync(WorkingDirectory, previousDir, post +holdout/files-community__Files/src/Files.App/ViewModels/ShellViewModel.cs:2216 public sealed partial class ShellViewModel : ObservableObject, IDisposable _ = WatchForStorageFolderChangesAsync(currentStorageFolder?.Item); +holdout/files-community__Files/src/Files.App/ViewModels/ShellViewModel.cs:2382 public sealed partial class ShellViewModel : ObservableObject, IDisposable _ = PromptToUnlockBitlockerIfLockedAsync(path, pathRoot); +holdout/files-community__Files/src/Files.App/ViewModels/ShellViewModel.cs:2498 public sealed partial class ShellViewModel : ObservableObject, IDisposable _ = dispatcherQueue.EnqueueOrInvokeAsync(CheckForSolutionFile, Microso +holdout/files-community__Files/src/Files.App/ViewModels/UserControls/InfoPaneViewModel.cs:156 public sealed partial class InfoPaneViewModel : ObservableObject, IDisposable _ = MainWindow.Instance.DispatcherQueue.EnqueueOrInvokeAsync(() => +holdout/files-community__Files/src/Files.App/ViewModels/UserControls/InfoPaneViewModel.cs:196 public sealed partial class InfoPaneViewModel : ObservableObject, IDisposable _ = UpdateSelectedItemPreviewAsync(); +holdout/files-community__Files/src/Files.App/ViewModels/UserControls/NavigationToolbarViewModel.cs:770 public sealed partial class NavigationToolbarViewModel : ObservableObject, IAdd _ = LoadFlyoutItemIconAsync(flyoutItem, childPath); +holdout/files-community__Files/src/Files.App/ViewModels/UserControls/Previews/PDFPreviewViewModel.cs:40 public sealed partial class PDFPreviewViewModel : BasePreviewModel _ = TryLoadPagesAsync(pdf, fileStream); +holdout/files-community__Files/src/Files.App/ViewModels/UserControls/SidebarViewModel.cs:519 public sealed partial class SidebarViewModel : ObservableObject, IDisposable _ = ApplyTreeViewExpandabilityAsync(elem, section.Section); +holdout/files-community__Files/src/Files.App/ViewModels/UserControls/SidebarViewModel.cs:930 public sealed partial class SidebarViewModel : ObservableObject, IDisposable _ = QuickAccessService.PinToSidebarAsync([path]); +holdout/files-community__Files/src/Files.App/ViewModels/UserControls/SidebarViewModel.cs:941 public sealed partial class SidebarViewModel : ObservableObject, IDisposable _ = QuickAccessService.UnpinFromSidebarAsync(path); +holdout/files-community__Files/src/Files.App/ViewModels/UserControls/Widgets/BaseWidgetViewModel.cs:91 public abstract class BaseWidgetViewModel : ObservableObject _ = ShellContextFlyoutFactory.LoadShellMenuItemsAsync(_flyoutItemPath, +holdout/files-community__Files/src/Files.App/ViewModels/UserControls/Widgets/FileTagsWidgetViewModel.cs:86 public sealed partial class FileTagsWidgetViewModel : BaseWidgetViewModel, IWid _ = matchingItem.InitAsync(grouped[item.Uid], _updateCTS.Token); +holdout/files-community__Files/src/Files.App/ViewModels/UserControls/Widgets/FileTagsWidgetViewModel.cs:106 public sealed partial class FileTagsWidgetViewModel : BaseWidgetViewModel, IWid _ = container.InitAsync(preloadedItems); +holdout/files-community__Files/src/Files.App/ViewModels/UserControls/Widgets/RecentFilesWidgetViewModel.cs:56 public sealed partial class RecentFilesWidgetViewModel : BaseWidgetViewModel, I _ = RefreshWidgetAsync(); +holdout/files-community__Files/src/Files.App/ViewModels/UserControls/Widgets/RecentFilesWidgetViewModel.cs:225 public sealed partial class RecentFilesWidgetViewModel : BaseWidgetViewModel, I _ = recentItem.LoadRecentItemIconAsync() +holdout/files-community__Files/src/Files.App/Views/Layouts/BaseLayoutPage.cs:614 public abstract class BaseLayoutPage : Page, IBaseLayoutPage, INotifyPropertyCh _ = shellViewModel.SearchAsync(searchInstance); +holdout/files-community__Files/src/Files.App/Views/Layouts/BaseLayoutPage.cs:1312 public abstract class BaseLayoutPage : Page, IBaseLayoutPage, INotifyPropertyCh _ = Parallel.ForEachAsync(itemsToLoad, (item, _) => new ValueTask(Load +holdout/files-community__Files/src/Files.App/Views/Layouts/ColumnLayoutPage.xaml.cs:252 public sealed partial class ColumnLayoutPage : BaseGroupableLayoutPage _ = ReloadItemIconsAsync(); +holdout/files-community__Files/src/Files.App/Views/Layouts/DetailsLayoutPage.xaml.cs:208 public sealed partial class DetailsLayoutPage : BaseGroupableLayoutPage _ = ReloadItemIconsAsync(); +holdout/files-community__Files/src/Files.App/Views/Layouts/DetailsLayoutPage.xaml.cs:279 public sealed partial class DetailsLayoutPage : BaseGroupableLayoutPage _ = ReloadItemIconsAsync(); +holdout/files-community__Files/src/Files.App/Views/Layouts/DetailsLayoutPage.xaml.cs:485 public sealed partial class DetailsLayoutPage : BaseGroupableLayoutPage _ = ValidateItemNameInputTextAsync(textBox, args, (showError) => +holdout/files-community__Files/src/Files.App/Views/Layouts/DetailsLayoutPage.xaml.cs:873 public sealed partial class DetailsLayoutPage : BaseGroupableLayoutPage _ = Commands.AutoFitColumns.ExecuteAsync(); +holdout/files-community__Files/src/Files.App/Views/Layouts/GridLayoutPage.xaml.cs:252 public sealed partial class GridLayoutPage : BaseGroupableLayoutPage _ = ReloadItemIconsAsync(); +holdout/files-community__Files/src/Files.App/Views/Layouts/GridLayoutPage.xaml.cs:328 public sealed partial class GridLayoutPage : BaseGroupableLayoutPage _ = DispatcherQueue.EnqueueOrInvokeAsync(async () => +holdout/files-community__Files/src/Files.App/Views/Layouts/GridLayoutPage.xaml.cs:527 public sealed partial class GridLayoutPage : BaseGroupableLayoutPage _ = ValidateItemNameInputTextAsync(textBox, args, (showError) => +holdout/files-community__Files/src/Files.App/Views/Layouts/GridLayoutPage.xaml.cs:678 public sealed partial class GridLayoutPage : BaseGroupableLayoutPage _ = ReloadItemIconsAsync(); +holdout/files-community__Files/src/Files.App/Views/MainPage.xaml.cs:258 public sealed partial class MainPage : Page _ = ViewModel.OnNavigatedToAsync(e); +holdout/files-community__Files/src/Files.App/Views/MainPage.xaml.cs:618 public sealed partial class MainPage : Page _ = AnimateSettingsIconAsync(); +holdout/files-community__Files/src/Files.App/Views/Properties/GeneralPage.xaml.cs:134 public sealed partial class GeneralPage : BasePropertiesPage _ = MainWindow.Instance.DispatcherQueue.EnqueueOrInvokeAsync(async () +holdout/files-community__Files/src/Files.App/Views/Properties/GeneralPage.xaml.cs:172 public sealed partial class GeneralPage : BasePropertiesPage _ = MainWindow.Instance.DispatcherQueue.EnqueueOrInvokeAsync(async () +holdout/files-community__Files/src/Files.App/Views/Shells/BaseShellPage.cs:197 public abstract class BaseShellPage : Page, IShellPage, INotifyPropertyChanged _ = DisplayFilesystemConsentDialogAsync(); +holdout/files-community__Files/src/Files.Shared/Helpers/AsyncManualResetEvent.cs:44 public sealed class AsyncManualResetEvent Task.Factory.StartNew(s => ((TaskCompletionSource)s!).TrySetResu +holdout/gitextensions__gitextensions/src/app/GitExtUtils/GitUI/TaskManager.cs:82 public class TaskManager _ = JoinableTaskFactory.RunAsync(async () => +holdout/gitextensions__gitextensions/src/app/GitExtUtils/GitUI/TaskManager.cs:111 public class TaskManager _ = JoinableTaskFactory.RunAsync(() => +holdout/gitextensions__gitextensions/src/app/GitUI/CommandsDialogs/FormDiff.cs:152 public partial class FormDiff : GitModuleForm _ = DiffText.ViewChangesAsync(DiffFiles.SelectedItem, +holdout/gitextensions__gitextensions/src/app/GitUI/CommandsDialogs/FormFileHistory.cs:342 public sealed partial class FormFileHistory : GitModuleForm, IRevisionGridFileUp _ = Blame.LoadBlameAsync(revision, children, fileName, revisionGridInf +holdout/gitextensions__gitextensions/src/app/GitUI/CommandsDialogs/FormFileHistory.cs:354 public sealed partial class FormFileHistory : GitModuleForm, IRevisionGridFileUp _ = View.ViewGitItemAsync(file, revision.ObjectId, cancellationToken: +holdout/gitextensions__gitextensions/src/app/GitUI/CommandsDialogs/FormFileHistory.cs:369 public sealed partial class FormFileHistory : GitModuleForm, IRevisionGridFileUp _ = Diff.ViewChangesAsync(item, defaultText: TranslatedStrings.NoChang +holdout/gitextensions__gitextensions/src/app/GitUI/CommandsDialogs/FormLog.cs:48 public partial class FormLog : GitModuleForm _ = diffViewer.ViewChangesAsync(DiffFiles.SelectedItem, +holdout/gitextensions__gitextensions/src/app/GitUI/UserControls/RevisionGrid/Columns/CommitIdColumnProvider.cs:79 internal sealed class CommitIdColumnProvider : ColumnProvider Task.Run(async () => +holdout/gitextensions__gitextensions/src/plugins/BuildServerIntegration/AppVeyorIntegration/AppVeyorAdapter.cs:289 internal sealed class AppVeyorAdapter : IBuildServerAdapter Task.Run( +holdout/gitextensions__gitextensions/src/plugins/BuildServerIntegration/TeamCityIntegration/TeamCityAdapter.cs:181 internal sealed class TeamCityAdapter : IBuildServerAdapter Task.Run( +holdout/gitextensions__gitextensions/src/plugins/Statistics/GitStatistics/FormGitStatistics.cs:161 public partial class FormGitStatistics : GitExtensionsFormBase Task.Run(() => LoadLinesOfCode()); +holdout/grpc__grpc-dotnet/examples/Mailer/Server/MailQueue.cs:47 public class MailQueue _ = Task.Run(async () => +holdout/grpc__grpc-dotnet/perf/benchmarkapps/GrpcClient/Program.cs:215 class Program _ = Task.Run(async () => +holdout/grpc__grpc-dotnet/perf/benchmarkapps/QpsWorker/Infrastructure/ServerRunner.cs:69 public class ServerRunner _ = app.RunAsync(); +holdout/grpc__grpc-dotnet/src/Grpc.AspNetCore.Server/Internal/ServerCallDeadlineManager.cs:122 internal sealed class ServerCallDeadlineManager : IAsyncDisposable _ = manager.DeadlineExceededAsync(); +holdout/grpc__grpc-dotnet/src/Grpc.Net.Client/Balancer/Subchannel.cs:282 private sealed class StateChangedRegistration : IDisposable _ = Task.Run(ConnectTransportAsync); +holdout/grpc__grpc-dotnet/src/Grpc.Net.Client/Internal/HttpClientCallInvoker.cs:201 internal sealed class HttpClientCallInvoker : CallInvoker _ = call.GetResponseHeadersAsync(); +holdout/grpc__grpc-dotnet/src/Grpc.Net.Client/Internal/Retry/HedgingCall.cs:209 internal sealed partial class HedgingCall : RetryCallBase : RetryCallBase await task(default).ConfigureAwait(false)).GetAwa +holdout/linq2db__linq2db/Source/LinqToDB/Internal/Async/SafeAwaiter.cs:43 internal static class SafeAwaiter Task.Run(async () => await task(default).ConfigureAwait(false)).GetAwa +holdout/linq2db__linq2db/Source/LinqToDB/Internal/Async/SafeAwaiter.cs:48 internal static class SafeAwaiter Task.Run(async () => await task().ConfigureAwait(false)).GetAwaiter(). +holdout/linq2db__linq2db/Source/LinqToDB/Internal/Cache/CacheEntry.cs:241 internal sealed class CacheEntry : ICacheEntry _ = Task.Factory.StartNew(state => +holdout/linq2db__linq2db/Source/LinqToDB/Internal/Cache/CacheEntry.cs:270 internal sealed class CacheEntry : ICacheEntry _ = Task.Factory.StartNew(state => InvokeCallbacks((CacheEntry : IMemoryCache _ = Task.Factory.StartNew(state => ScanForExpiredItems((MemoryCache FlushTaskAsync()); +holdout/microsoft__garnet/libs/cluster/Server/Failover/FailoverManager.cs:94 internal sealed class FailoverManager : IDisposable _ = Task.Run(async () => +holdout/microsoft__garnet/libs/cluster/Server/Failover/FailoverManager.cs:126 internal sealed class FailoverManager : IDisposable _ = Task.Run(async () => +holdout/microsoft__garnet/libs/cluster/Server/Failover/ReplicaFailoverSession.cs:162 internal sealed partial class FailoverSession : IDisposable _ = clusterProvider.BumpAndWaitForEpochTransitionAsync().ConfigureAwai +holdout/microsoft__garnet/libs/cluster/Server/Gossip/Gossip.cs:111 internal sealed partial class ClusterManager : IDisposable _ = Task.Run(GossipMainAsync); +holdout/microsoft__garnet/libs/cluster/Server/Migration/MigrationDriver.cs:122 internal sealed partial class MigrateSession : IDisposable _ = BeginAsyncMigrationTaskAsync(); +holdout/microsoft__garnet/libs/cluster/Server/Replication/PrimaryOps/DisklessReplication/ReplicationSyncManager.cs:140 internal sealed class ReplicationSyncManager _ = Task.Run(() => MainStreamingSnapshotDriverAsync(signalCompletion)) +holdout/microsoft__garnet/libs/cluster/Server/Replication/PrimaryOps/ReplicationPrimaryAofSync.cs:73 internal sealed partial class ReplicationManager : IDisposable _ = Task.Run(() => aofSyncDriver.RunAsync()); +holdout/microsoft__garnet/libs/cluster/Server/Replication/ReplicaOps/AOFReplay/ReplicaReplayDriver.cs:90 internal sealed class ReplicaReplayDriver : IBulkLogEntryConsumer, IDisposable _ = Task.Run(() => replayTask.FullPageBasedBackgroundReplayAsync()); +holdout/microsoft__garnet/libs/cluster/Server/Replication/ReplicaOps/AOFReplay/ReplicaReplayDriver.cs:298 internal sealed class ReplicaReplayDriver : IBulkLogEntryConsumer, IDisposable _ = BackgroundReplayTaskAsync(); +holdout/microsoft__garnet/libs/cluster/Server/Replication/ReplicaOps/ReplicaDiskbasedSync.cs:62 internal sealed partial class ReplicationManager : IDisposable _ = ReplicaSyncAttachTaskAsync(options.UpgradeLock, forceAsync: true); +holdout/microsoft__garnet/libs/cluster/Server/Replication/ReplicaOps/ReplicaDisklessSync.cs:53 internal sealed partial class ReplicationManager : IDisposable _ = TryBeginReplicaSyncAsync(options.UpgradeLock, forceAsync: true); +holdout/microsoft__garnet/libs/cluster/Server/Replication/ReplicationManager.cs:261 internal sealed partial class ReplicationManager : IDisposable _ = Task.Run( +holdout/microsoft__garnet/libs/cluster/Session/RespClusterMigrateCommands.cs:98 internal sealed unsafe partial class ClusterSession : IClusterSession _ = Task.Run(() => Process(basicGarnetApi, buffer, replaceOption, vect +holdout/microsoft__garnet/libs/common/Networking/NetworkHandler.cs:262 public abstract partial class NetworkHandler : Netw _ = SslReaderAsync(result.AsTask(), cancellationTokenSource.Token); +holdout/microsoft__garnet/libs/common/Networking/NetworkHandler.cs:326 public abstract partial class NetworkHandler : Netw _ = SslReaderAsync(result.AsTask(), cancellationTokenSource.Token); +holdout/microsoft__garnet/libs/common/Networking/NetworkHandler.cs:608 public abstract partial class NetworkHandler : Netw _ = SslReaderAsync(result.AsTask(), cancellationTokenSource.Token); +holdout/microsoft__garnet/libs/common/Networking/NetworkHandler.cs:662 public abstract partial class NetworkHandler : Netw _ = SslReaderLoopAsync(retry, token); +holdout/microsoft__garnet/libs/common/Networking/TcpNetworkHandlerBase.cs:135 public abstract class TcpNetworkHandlerBase : Netwo _ = Task.Run(() => RecvEventArgCompletedWithTLS(null, receiveEventArgs +holdout/microsoft__garnet/libs/common/Networking/TcpNetworkHandlerBase.cs:137 public abstract class TcpNetworkHandlerBase : Netwo _ = Task.Run(() => RecvEventArgCompletedWithoutTLS(null, receiveEventA +holdout/microsoft__garnet/libs/common/Networking/TcpNetworkHandlerBase.cs:203 public abstract class TcpNetworkHandlerBase : Netwo _ = HandleReceiveWithTLSAsync(sender, e); +holdout/microsoft__garnet/libs/server/Metrics/GarnetServerMonitor.cs:99 internal sealed class GarnetServerMonitor _ = Task.Run(() => MainMonitorTaskAsync(cts.Token)); +holdout/microsoft__garnet/libs/server/PubSub/SubscribeBroker.cs:177 public sealed class SubscribeBroker : IDisposable, ILogEntryConsumer _ = Task.Run(() => StartAsync(cts.Token)); +holdout/microsoft__garnet/libs/server/Resp/AsyncProcessor.cs:65 internal sealed partial class RespServerSession : ServerSessionBase _ = AsyncGetProcessorAsync(_storageApi); +holdout/microsoft__garnet/libs/server/Resp/BasicCommands.cs:1922 internal sealed unsafe partial class RespServerSession : ServerSessionBase _ = Task.Run(() => ExecuteFlushDb(cmd, unsafeTruncateLog)); +holdout/microsoft__garnet/libs/server/Resp/Vector/VectorManager.Cleanup.cs:466 private sealed class PostDropCleanupFunctions : IScanIteratorFunctions _ = Task.Run(() => QueueCleanups(this)); +holdout/microsoft__garnet/libs/server/Servers/GarnetServerTcp.cs:372 public class GarnetServerTcp : GarnetServerBase, IServerHook _ = ObserveHandlerStartAsync(startTask, handler); +holdout/microsoft__garnet/libs/storage/Tsavorite/cs/src/core/Allocator/AllocatorBase.cs:2392 public abstract unsafe partial class AllocatorBase _ = Task.Run(FlushRunner); +holdout/microsoft__garnet/libs/storage/Tsavorite/cs/src/core/Allocator/WorkQueueFIFO.cs:70 internal sealed class WorkQueueFIFO : IDisposable _ = Task.Run(ProcessQueue); +holdout/microsoft__garnet/libs/storage/Tsavorite/cs/src/core/Device/ManagedLocalStorageDevice.cs:184 public sealed class ManagedLocalStorageDevice : StorageDeviceBase _ = Task.Run(async () => +holdout/microsoft__garnet/libs/storage/Tsavorite/cs/src/core/Device/ManagedLocalStorageDevice.cs:293 public sealed class ManagedLocalStorageDevice : StorageDeviceBase _ = Task.Run(async () => +holdout/microsoft__garnet/libs/storage/Tsavorite/cs/src/core/Device/RandomAccessLocalStorageDevice.cs:223 public sealed class RandomAccessLocalStorageDevice : StorageDeviceBase _ = ReadWorkerAsync(segmentId, sourceAddress, destinationAddress, read +holdout/microsoft__garnet/libs/storage/Tsavorite/cs/src/core/Device/RandomAccessLocalStorageDevice.cs:280 public sealed class RandomAccessLocalStorageDevice : StorageDeviceBase _ = WriteWorkerAsync(sourceAddress, segmentId, destinationAddress, num +holdout/microsoft__garnet/libs/storage/Tsavorite/cs/src/core/Index/Checkpointing/StateMachineDriver.cs:192 public class StateMachineDriver _ = Task.Run(async () => await RunStateMachine(token).ConfigureAwait(f +holdout/microsoft__garnet/libs/storage/Tsavorite/cs/src/core/Index/Recovery/IndexCheckpoint.cs:155 public partial class TsavoriteBase Task.Run(FlushRunner); +holdout/microsoft__garnet/libs/storage/Tsavorite/cs/src/core/Index/Tsavorite/Implementation/Revivification/CheckEmptyWorker.cs:48 internal struct State Task.Run(LaunchWorker); +holdout/microsoft__garnet/libs/storage/Tsavorite/cs/src/core/TsavoriteLog/LogCommitPolicy.cs:176 internal sealed class RateLimitLogCommitPolicy : LogCommitPolicy Task.Run(async () => +holdout/microsoft__garnet/libs/storage/Tsavorite/cs/src/devices/AzureStorageDevice/AzureStorageDevice.cs:461 struct RemoveRequestInfo _ = entry.CreateAsync(size, pageBlob); +holdout/microsoft__garnet/libs/storage/Tsavorite/cs/src/devices/AzureStorageDevice/AzureStorageDevice.cs:533 struct RemoveRequestInfo _ = entry.CreateAsync(size, pageBlob); +holdout/microsoft__garnet/libs/storage/Tsavorite/cs/src/devices/AzureStorageDevice/AzureStorageNamedDeviceFactory.cs:32 public class AzureStorageNamedDeviceFactory : INamedDeviceFactory _ = pageBlobContainer.WithRetries.CreateIfNotExistsAsync().GetAwaiter( +holdout/microsoft__garnet/playground/GarnetClientStress/TaskScaling.cs:170 public class TaskScaling Task.Run(async () => await ShortRunningTask(taskId, opts.DbSize, opts. +holdout/mongodb__mongo-csharp-driver/src/MongoDB.Driver/Core/Misc/TaskExtensions.cs:142 public struct YieldNoContextAwaiter : ICriticalNotifyCompletion Task.Factory.StartNew(continuation, default, TaskCreationOptions.Prefe +holdout/mongodb__mongo-csharp-driver/src/MongoDB.Driver/Core/Misc/TaskExtensions.cs:147 public struct YieldNoContextAwaiter : ICriticalNotifyCompletion Task.Factory.StartNew(continuation, default, TaskCreationOptions.Prefe +holdout/quartznet__quartznet/src/Quartz/Core/QuartzScheduler.cs:451 internal sealed class QuartzScheduler Task.Run(async () => +holdout/quartznet__quartznet/src/Quartz/Impl/TaskSchedulingThreadPool.cs:307 public abstract class TaskSchedulingThreadPool : IThreadPool _ = Task.Factory.StartNew(runWorkItem, new WorkItem(action, state), Ca +holdout/quartznet__quartznet/src/Quartz.Tests.Unit/Core/SchedulerLoopExecutionLimitWakeTest.cs:223 public sealed class SchedulerLoopExecutionLimitWakeTest _ = Task.Run(async () => +holdout/quartznet__quartznet/src/Quartz.Tests.Unit/QuartzHostedServiceTests.cs:354 private sealed class MockScheduler : IScheduler _ = Task.Run(async () => +holdout/rabbitmq__rabbitmq-dotnet-client/projects/Applications/CreateChannel/Program.cs:59 public static class Program _ = Task.Run(async () => +holdout/rabbitmq__rabbitmq-dotnet-client/projects/Applications/GH-1749/Program.cs:88 static class Program _ = CloseConnectionAsync(); +holdout/rabbitmq__rabbitmq-dotnet-client/projects/Applications/GH-1749/Program.cs:120 static class Program _ = CloseConnectionAsync(); +holdout/rabbitmq__rabbitmq-dotnet-client/projects/Applications/GH-1865/Program.cs:63 class Program _ = Task.Run(async () => +sweep/Flow-Launcher__Flow.Launcher/Flow.Launcher/App.xaml.cs:252 public partial class App : IDisposable, ISingleInstanceApp _ = API.StopwatchLogInfoAsync(ClassName, "Startup cost", async () => +sweep/Flow-Launcher__Flow.Launcher/Flow.Launcher/App.xaml.cs:311 public partial class App : IDisposable, ISingleInstanceApp _ = Task.Run(async () => +sweep/Flow-Launcher__Flow.Launcher/Flow.Launcher/App.xaml.cs:329 public partial class App : IDisposable, ISingleInstanceApp _ = Task.Run(async () => +sweep/Flow-Launcher__Flow.Launcher/Flow.Launcher/Helper/SingleInstance.cs:67 public static class SingleInstance where TApplication : Applicatio _ = CreateRemoteServiceAsync(channelName); +sweep/Flow-Launcher__Flow.Launcher/Flow.Launcher/Helper/SingleInstance.cs:72 public static class SingleInstance where TApplication : Applicatio _ = SignalFirstInstanceAsync(channelName); +sweep/Flow-Launcher__Flow.Launcher/Flow.Launcher/HotkeyControl.xaml.cs:245 public partial class HotkeyControl _ = OpenHotkeyDialogAsync(); +sweep/Flow-Launcher__Flow.Launcher/Flow.Launcher/MainWindow.xaml.cs:116 public partial class MainWindow : IDisposable _ = _theme.RefreshFrameAsync(); +sweep/Flow-Launcher__Flow.Launcher/Flow.Launcher/MainWindow.xaml.cs:220 public partial class MainWindow : IDisposable _ = _viewModel.ResetPreviewAsync().ContinueWith(static t => +sweep/Flow-Launcher__Flow.Launcher/Flow.Launcher/MainWindow.xaml.cs:273 public partial class MainWindow : IDisposable _ = _viewModel.ResetPreviewAsync().ContinueWith(static t => +sweep/Flow-Launcher__Flow.Launcher/Flow.Launcher/MessageBoxEx.xaml.cs:52 public partial class MessageBoxEx : Window _ = SetImageOfMessageBoxAsync(icon); +sweep/Flow-Launcher__Flow.Launcher/Flow.Launcher/Msg.xaml.cs:38 public partial class Msg : Window _ = LoadImageAsync(); +sweep/Flow-Launcher__Flow.Launcher/Flow.Launcher/MsgWithButton.xaml.cs:38 public partial class MsgWithButton : Window _ = LoadImageAsync(); +sweep/Flow-Launcher__Flow.Launcher/Flow.Launcher/SettingPages/ViewModels/SettingsPaneGeneralViewModel.cs:379 public class DialogJumpFileResultBehaviourData : DropdownDataGeneric { } _ = _theme.RefreshFrameAsync(); +sweep/Flow-Launcher__Flow.Launcher/Flow.Launcher/SettingPages/ViewModels/SettingsPaneThemeViewModel.cs:158 public class CodeHighlightThemeData : DropdownDataGeneric { _ = _theme.RefreshFrameAsync(); +sweep/Flow-Launcher__Flow.Launcher/Flow.Launcher/SettingPages/ViewModels/SettingsPaneThemeViewModel.cs:258 public class BackdropTypeData : DropdownDataGeneric { } _ = _theme.SetBlurForWindowAsync(); +sweep/Flow-Launcher__Flow.Launcher/Flow.Launcher/SettingPages/Views/SettingsPanePlugins.xaml.cs:35 public partial class SettingsPanePlugins _ = _viewModel.CheckForUpdatesSilentlyAsync(); +sweep/Flow-Launcher__Flow.Launcher/Flow.Launcher/ViewModel/MainViewModel.cs:195 private sealed record ResultsQuerySelection( _ = RegisterClockAndDateUpdateAsync(); +sweep/Flow-Launcher__Flow.Launcher/Flow.Launcher/ViewModel/MainViewModel.cs:215 private sealed record ResultsQuerySelection( Task.Run(UpdateActionAsync).ContinueWith(continueAction, +sweep/Flow-Launcher__Flow.Launcher/Flow.Launcher/ViewModel/MainViewModel.cs:267 private sealed record ResultsQuerySelection( Task.Run(UpdateActionAsync).ContinueWith(continueAction, CancellationT +sweep/Flow-Launcher__Flow.Launcher/Flow.Launcher/ViewModel/MainViewModel.cs:367 private sealed record ResultsQuerySelection( _ = QueryResultsAsync(false, isReQuery: true); +sweep/Flow-Launcher__Flow.Launcher/Flow.Launcher/ViewModel/MainViewModel.cs:375 private sealed record ResultsQuerySelection( _ = QueryResultsAsync(false, isReQuery: true, reSelect: reselect); +sweep/Flow-Launcher__Flow.Launcher/Flow.Launcher/ViewModel/MainViewModel.cs:430 private sealed record ResultsQuerySelection( _ = Task.Run(() => DialogJump.JumpToPathAsync(DialogWindowHandle, dial +sweep/Flow-Launcher__Flow.Launcher/Flow.Launcher/ViewModel/MainViewModel.cs:590 private sealed record ResultsQuerySelection( _ = Task.Run(() => DialogJump.JumpToPathAsync(DialogWindowHandle, dial +sweep/Flow-Launcher__Flow.Launcher/Flow.Launcher/ViewModel/MainViewModel.cs:1330 private sealed record ResultsQuerySelection( _ = QueryResultsAsync(false); +sweep/Flow-Launcher__Flow.Launcher/Flow.Launcher/ViewModel/MainViewModel.cs:1354 private sealed record ResultsQuerySelection( _ = QueryResultsAsync(searchDelay, isReQuery); +sweep/Flow-Launcher__Flow.Launcher/Flow.Launcher/ViewModel/MainViewModel.cs:2171 private sealed record ResultsQuerySelection( _ = ResetWindowAsync(); +sweep/Flow-Launcher__Flow.Launcher/Flow.Launcher/ViewModel/MainViewModel.cs:2191 private sealed record ResultsQuerySelection( _ = ResetWindowAsync(); +sweep/Flow-Launcher__Flow.Launcher/Flow.Launcher/ViewModel/MainViewModel.cs:2204 private sealed record ResultsQuerySelection( _ = Task.Run(() => +sweep/Flow-Launcher__Flow.Launcher/Flow.Launcher/ViewModel/MainViewModel.cs:2269 private sealed record ResultsQuerySelection( _ = ResetWindowAsync(); +sweep/Flow-Launcher__Flow.Launcher/Flow.Launcher/ViewModel/MainViewModel.cs:2273 private sealed record ResultsQuerySelection( _ = ResetWindowAsync(); +sweep/Flow-Launcher__Flow.Launcher/Flow.Launcher/ViewModel/PluginViewModel.cs:57 public partial class PluginViewModel : BaseModel _ = LoadIconAsync(); +sweep/Flow-Launcher__Flow.Launcher/Flow.Launcher/ViewModel/ResultViewModel.cs:173 public class ResultViewModel : BaseModel _ = LoadImageAsync(); +sweep/Flow-Launcher__Flow.Launcher/Flow.Launcher/ViewModel/ResultViewModel.cs:188 public class ResultViewModel : BaseModel _ = LoadBadgeImageAsync(); +sweep/Flow-Launcher__Flow.Launcher/Flow.Launcher/ViewModel/ResultViewModel.cs:203 public class ResultViewModel : BaseModel _ = LoadPreviewImageAsync(); +sweep/Flow-Launcher__Flow.Launcher/Flow.Launcher/ViewModel/ResultViewModel.cs:287 public class ResultViewModel : BaseModel _ = LoadPreviewImageAsync(); +sweep/Flow-Launcher__Flow.Launcher/Flow.Launcher.Core/Plugin/JsonRPCPluginV2.cs:64 internal abstract class JsonRPCPluginV2 : JsonRPCPluginBase, IAsyncDisposable, I _ = ReadErrorAsync(); +sweep/Flow-Launcher__Flow.Launcher/Flow.Launcher.Core/Plugin/PluginInstaller.cs:321 public static class PluginInstaller _ = UpdateAllPluginsFromNotificationAsync(updateAllPlugins, resultsFor +sweep/Flow-Launcher__Flow.Launcher/Flow.Launcher.Core/Resource/Internationalization.cs:162 public class Internationalization : IDisposable _ = ChangeLanguageAsync(language); +sweep/Flow-Launcher__Flow.Launcher/Flow.Launcher.Core/Resource/Theme.cs:135 public class Theme _ = RefreshFrameAsync(); +sweep/Flow-Launcher__Flow.Launcher/Flow.Launcher.Core/Resource/Theme.cs:434 public class Theme _ = RefreshFrameAsync(); +sweep/Flow-Launcher__Flow.Launcher/Flow.Launcher.Infrastructure/DialogJump/DialogJump.cs:471 public static class DialogJump _ = Task.Run(async () => +sweep/Flow-Launcher__Flow.Launcher/Flow.Launcher.Infrastructure/Image/ImageLoader.cs:68 public static class ImageLoader _ = Task.Run(async () => +sweep/Flow-Launcher__Flow.Launcher/Plugins/Flow.Launcher.Plugin.BrowserBookmark/Main.cs:76 public class Main : ISettingProvider, IPlugin, IReloadable, IPluginI18n, IContex _ = MonitorRefreshQueueAsync(); +sweep/Flow-Launcher__Flow.Launcher/Plugins/Flow.Launcher.Plugin.BrowserBookmark/Views/SettingsControl.xaml.cs:27 public partial class SettingsControl _ = Task.Run(() => Main.ReloadAllBookmarks()); +sweep/Flow-Launcher__Flow.Launcher/Plugins/Flow.Launcher.Plugin.BrowserBookmark/Views/SettingsControl.xaml.cs:37 public partial class SettingsControl _ = Task.Run(() => Main.ReloadAllBookmarks()); +sweep/Flow-Launcher__Flow.Launcher/Plugins/Flow.Launcher.Plugin.BrowserBookmark/Views/SettingsControl.xaml.cs:47 public partial class SettingsControl _ = Task.Run(() => Main.ReloadAllBookmarks()); +sweep/Flow-Launcher__Flow.Launcher/Plugins/Flow.Launcher.Plugin.BrowserBookmark/Views/SettingsControl.xaml.cs:73 public partial class SettingsControl _ = Task.Run(() => Main.ReloadAllBookmarks()); +sweep/Flow-Launcher__Flow.Launcher/Plugins/Flow.Launcher.Plugin.BrowserBookmark/Views/SettingsControl.xaml.cs:82 public partial class SettingsControl _ = Task.Run(() => Main.ReloadAllBookmarks()); +sweep/Flow-Launcher__Flow.Launcher/Plugins/Flow.Launcher.Plugin.BrowserBookmark/Views/SettingsControl.xaml.cs:114 public partial class SettingsControl _ = Task.Run(() => Main.ReloadAllBookmarks()); +sweep/Flow-Launcher__Flow.Launcher/Plugins/Flow.Launcher.Plugin.Explorer/ContextMenu.cs:203 internal class ContextMenu : IContextMenu _ = Task.Run(() => +sweep/Flow-Launcher__Flow.Launcher/Plugins/Flow.Launcher.Plugin.Explorer/ContextMenu.cs:251 internal class ContextMenu : IContextMenu _ = Task.Run(() => ShellCommand.RunAsDifferentUser(record.FullPath.Set +sweep/Flow-Launcher__Flow.Launcher/Plugins/Flow.Launcher.Plugin.Explorer/ContextMenu.cs:413 internal class ContextMenu : IContextMenu _ = Task.Run(() => +sweep/Flow-Launcher__Flow.Launcher/Plugins/Flow.Launcher.Plugin.Explorer/Search/ResultManager.cs:416 public static class ResultManager _ = Task.Run(() => Settings.EverythingManagerInstance.IncrementRunCoun +sweep/Flow-Launcher__Flow.Launcher/Plugins/Flow.Launcher.Plugin.Explorer/Views/PreviewPanel.xaml.cs:74 public partial class PreviewPanel : UserControl _ = Task.Run(() => +sweep/Flow-Launcher__Flow.Launcher/Plugins/Flow.Launcher.Plugin.Explorer/Views/PreviewPanel.xaml.cs:96 public partial class PreviewPanel : UserControl _ = LoadImageAsync(); +sweep/Flow-Launcher__Flow.Launcher/Plugins/Flow.Launcher.Plugin.PluginsManager/PluginsManager.cs:348 public class PluginsManager _ = Task.Run(async () => +sweep/Flow-Launcher__Flow.Launcher/Plugins/Flow.Launcher.Plugin.PluginsManager/PluginsManager.cs:595 public class PluginsManager _ = InstallOrUpdateAsync(plugin); +sweep/Flow-Launcher__Flow.Launcher/Plugins/Flow.Launcher.Plugin.PluginsManager/PluginsManager.cs:647 public class PluginsManager _ = InstallOrUpdateAsync(plugin); +sweep/Flow-Launcher__Flow.Launcher/Plugins/Flow.Launcher.Plugin.PluginsManager/PluginsManager.cs:706 public class PluginsManager _ = InstallOrUpdateAsync(x); // No need to wait +sweep/Flow-Launcher__Flow.Launcher/Plugins/Flow.Launcher.Plugin.Program/Main.cs:311 public class Main : ISettingProvider, IAsyncPlugin, IPluginI18n, IContextMenu, I _ = Task.Run(async () => +sweep/Flow-Launcher__Flow.Launcher/Plugins/Flow.Launcher.Plugin.Program/Main.cs:327 public class Main : ISettingProvider, IAsyncPlugin, IPluginI18n, IContextMenu, I _ = UWPPackage.WatchPackageChangeAsync(); +sweep/Flow-Launcher__Flow.Launcher/Plugins/Flow.Launcher.Plugin.Program/Main.cs:468 public class Main : ISettingProvider, IAsyncPlugin, IPluginI18n, IContextMenu, I _ = Task.Run(async () => +sweep/Flow-Launcher__Flow.Launcher/Plugins/Flow.Launcher.Plugin.Program/Main.cs:514 public class Main : ISettingProvider, IAsyncPlugin, IPluginI18n, IContextMenu, I _ = Task.Run(() => IndexUwpProgramsAsync(resetCache: false)); +sweep/Flow-Launcher__Flow.Launcher/Plugins/Flow.Launcher.Plugin.Program/Main.cs:532 public class Main : ISettingProvider, IAsyncPlugin, IPluginI18n, IContextMenu, I _ = Task.Run(() => IndexWin32ProgramsAsync(resetCache: false)); +sweep/Flow-Launcher__Flow.Launcher/Plugins/Flow.Launcher.Plugin.Program/Programs/UWPPackage.cs:458 public partial class UWPApp : IProgram _ = Task.Run(() => Launch(shouldRunElevated)).ConfigureAwait(false); +sweep/Flow-Launcher__Flow.Launcher/Plugins/Flow.Launcher.Plugin.Program/Programs/UWPPackage.cs:500 public partial class UWPApp : IProgram _ = Task.Run(() => Launch(true)).ConfigureAwait(false); +sweep/Flow-Launcher__Flow.Launcher/Plugins/Flow.Launcher.Plugin.Program/Programs/Win32.cs:206 public partial class Win32 : IProgram, IEquatable _ = Task.Run(() => Main.StartProcess(Process.Start, info)); +sweep/Flow-Launcher__Flow.Launcher/Plugins/Flow.Launcher.Plugin.Program/Programs/Win32.cs:230 public partial class Win32 : IProgram, IEquatable _ = Task.Run(() => Main.StartProcess(ShellCommand.RunAsDifferentUser, +sweep/Flow-Launcher__Flow.Launcher/Plugins/Flow.Launcher.Plugin.Program/Programs/Win32.cs:250 public partial class Win32 : IProgram, IEquatable _ = Task.Run(() => Main.StartProcess(Process.Start, info)); +sweep/Flow-Launcher__Flow.Launcher/Plugins/Flow.Launcher.Plugin.Program/Programs/Win32.cs:781 public partial class Win32 : IProgram, IEquatable _ = Task.Run(MonitorDirectoryChangeAsync); +sweep/Flow-Launcher__Flow.Launcher/Plugins/Flow.Launcher.Plugin.Shell/Main.cs:556 public class Main : IPlugin, ISettingProvider, IPluginI18n, IContextMenu, IDispo _ = Task.Run(async () => +sweep/HangfireIO__Hangfire/src/Hangfire.Core/Processing/BackgroundDispatcherAsync.cs:63 internal sealed class BackgroundDispatcherAsync : IBackgroundDispatcher Task.Factory.StartNew( +sweep/akkadotnet__akka.net/src/core/Akka/Actor/CoordinatedShutdown.cs:677 public class ClusterJoinUnsuccessfulReason : Reason Task.Run(() => +sweep/akkadotnet__akka.net/src/core/Akka/Actor/Scheduler/HashedWheelTimerScheduler.cs:166 public sealed class HashedWheelTimerScheduler : SchedulerBase, IDateTimeOffsetNo Task.Run(() => RunAsync(_cts.Token).ConfigureAwait(false)); // start t +sweep/akkadotnet__akka.net/src/core/Akka/IO/TcpConnection.cs:432 private readonly record struct WriteCommand(Write Cmd, IActorRef Sender); _ = MonitorReadPumpAsync(); +sweep/akkadotnet__akka.net/src/core/Akka/IO/TcpConnection.cs:433 private readonly record struct WriteCommand(Write Cmd, IActorRef Sender); _ = MonitorWritePumpAsync(); +sweep/akkadotnet__akka.net/src/core/Akka/IO/TcpConnection.cs:859 private readonly record struct WriteCommand(Write Cmd, IActorRef Sender); _ = AwaitPipeReadAsync(); +sweep/akkadotnet__akka.net/src/core/Akka/IO/TcpConnection.cs:1199 private readonly record struct WriteCommand(Write Cmd, IActorRef Sender); _ = AwaitFlushAsync(flush, Self); +sweep/akkadotnet__akka.net/src/core/Akka.Docs.Tests/Networking/IO/TelnetClient.cs:68 public class TelnetClient : UntypedActor Task.Factory.StartNew(self => Console.In.ReadLineAsync().PipeTo((ICanT +sweep/akkadotnet__akka.net/src/core/Akka.Persistence.Tests/ReceivePersistentActorAsyncAwaitSpec.cs:690 public class AsyncPipeToDelayActor : ReceivePersistentActor Task.Run(() => +sweep/akkadotnet__akka.net/src/core/Akka.Persistence.Tests/ReceivePersistentActorAsyncAwaitSpec.cs:715 public class AsyncReentrantActor : ReceivePersistentActor Task.Run(() => +sweep/akkadotnet__akka.net/src/core/Akka.Remote/Artery/ArteryInboundProcessingStage.cs:689 private sealed class Logic : GraphStageLogic, IInHandler, IOutHandler _ = Task.Run(() => RunLaneConsumer(reader, serialization, dispatch, lo +sweep/akkadotnet__akka.net/src/core/Akka.Remote.TestKit/Player.cs:709 internal class PlayerHandler : ChannelHandlerAdapter Task.Factory.StartNew(() => +sweep/akkadotnet__akka.net/src/core/Akka.Remote.Tests/Transport/DotNettyBatchWriterSpecs.cs:97 public class FlushLogger : ChannelHandlerAdapter _ = ch.WriteAndFlushAsync(Unpooled.Buffer(1).WriteInt(i)); +sweep/akkadotnet__akka.net/src/core/Akka.Remote.Tests/Transport/DotNettyBatchWriterSpecs.cs:134 public class FlushLogger : ChannelHandlerAdapter _ = ch.WriteAndFlushAsync(Unpooled.Buffer(1).WriteInt(i)); +sweep/akkadotnet__akka.net/src/core/Akka.Remote.Tests/Transport/DotNettyBatchWriterSpecs.cs:143 public class FlushLogger : ChannelHandlerAdapter _ = ch.CloseAsync(); +sweep/akkadotnet__akka.net/src/core/Akka.Remote.Tests/Transport/DotNettyGracefulCloseSpec.cs:258 public class DotNettyGracefulCloseSpec : AkkaSpec Task.Run(() => outbound.Disassociate("test", Log)), +sweep/akkadotnet__akka.net/src/core/Akka.Remote.Tests/Transport/DotNettyGracefulCloseSpec.cs:259 public class DotNettyGracefulCloseSpec : AkkaSpec Task.Run(() => inbound.Disassociate("test", Log))); +sweep/akkadotnet__akka.net/src/core/Akka.Streams.Tests/Dsl/FlowAskSpec.cs:77 sealed class RandomDelaysReplier : ReceiveActor Task.Run(async () => +sweep/akkadotnet__akka.net/src/core/Akka.Streams.Tests/Dsl/FlowSelectAsyncSpec.cs:420 public class FlowSelectAsyncSpec : AkkaSpec Task.Run(() => { throw new TestException("failure1"); return "";}), +sweep/akkadotnet__akka.net/src/core/Akka.Streams.Tests/Dsl/FlowSelectAsyncSpec.cs:421 public class FlowSelectAsyncSpec : AkkaSpec Task.Run(() => { throw new TestException("failure2"); return "";}), +sweep/akkadotnet__akka.net/src/core/Akka.Streams.Tests/Dsl/FlowSelectAsyncSpec.cs:422 public class FlowSelectAsyncSpec : AkkaSpec Task.Run(() => { throw new TestException("failure3"); return "";}), +sweep/akkadotnet__akka.net/src/core/Akka.Streams.Tests/Dsl/FlowSelectAsyncSpec.cs:423 public class FlowSelectAsyncSpec : AkkaSpec Task.Run(() => { throw new TestException("failure4"); return "";}), +sweep/akkadotnet__akka.net/src/core/Akka.Streams.Tests/Dsl/FlowSelectAsyncSpec.cs:424 public class FlowSelectAsyncSpec : AkkaSpec Task.Run(() => { throw new TestException("failure5"); return "";}), +sweep/akkadotnet__akka.net/src/core/Akka.Streams.Tests/Dsl/FlowSelectAsyncSpec.cs:601 public class FlowSelectAsyncSpec : AkkaSpec Task.Run(async () => +sweep/akkadotnet__akka.net/src/core/Akka.Streams.Tests/Dsl/FlowSelectAsyncUnorderedSpec.cs:229 public class FlowSelectAsyncUnorderedSpec : AkkaSpec Task.Run(() => { throw new TestException("failure1"); return "";}), +sweep/akkadotnet__akka.net/src/core/Akka.Streams.Tests/Dsl/FlowSelectAsyncUnorderedSpec.cs:230 public class FlowSelectAsyncUnorderedSpec : AkkaSpec Task.Run(() => { throw new TestException("failure2"); return "";}), +sweep/akkadotnet__akka.net/src/core/Akka.Streams.Tests/Dsl/FlowSelectAsyncUnorderedSpec.cs:231 public class FlowSelectAsyncUnorderedSpec : AkkaSpec Task.Run(() => { throw new TestException("failure3"); return "";}), +sweep/akkadotnet__akka.net/src/core/Akka.Streams.Tests/Dsl/FlowSelectAsyncUnorderedSpec.cs:232 public class FlowSelectAsyncUnorderedSpec : AkkaSpec Task.Run(() => { throw new TestException("failure4"); return "";}), +sweep/akkadotnet__akka.net/src/core/Akka.Streams.Tests/Dsl/FlowSelectAsyncUnorderedSpec.cs:233 public class FlowSelectAsyncUnorderedSpec : AkkaSpec Task.Run(() => { throw new TestException("failure5"); return "";}), +sweep/akkadotnet__akka.net/src/core/Akka.Streams.Tests/Dsl/FlowSelectAsyncUnorderedSpec.cs:341 public class FlowSelectAsyncUnorderedSpec : AkkaSpec Task.Run(async () => +sweep/akkadotnet__akka.net/src/core/Akka.Streams.Tests/Issue7794Spec.cs:40 public class Issue7794Spec: AkkaSpec _ = Task.Run(async () => +sweep/akkadotnet__akka.net/src/core/Akka.Tests/Actor/Dispatch/ActorModelSpec.cs:536 protected class MessageDispatcherInterceptorConfigurator : MessageDispatcherConf Task.Run(() => +sweep/akkadotnet__akka.net/src/core/Akka.Tests/Dispatch/AsyncAwaitSpec.cs:494 public class AsyncReentrantActor : ReceiveActor Task.Run(() => +sweep/akkadotnet__akka.net/src/core/Akka.Tests/Util/ResultSpec.cs:145 public class ResultSpec Task.Run(async () => +sweep/akkadotnet__akka.net/src/core/Akka.Tests/Util/ResultSpec.cs:157 public class ResultSpec Task.Run(async () => +sweep/akkadotnet__akka.net/src/core/Akka.Tests/Util/ResultSpec.cs:178 public class ResultSpec Task.Run(async () => +sweep/akkadotnet__akka.net/src/core/Akka.Tests.Performance/Actor/Scheduler/DefaultSchedulerPerformanceTests.cs:75 public class DefaultSchedulerPerformanceTests Task.Factory.StartNew(_eventLoop); +sweep/akkadotnet__akka.net/src/core/Akka.Tests.Performance/IO/TcpInboundOnlySpec.cs:103 private sealed class TestHandler : ReceiveActor Task.Run(async () => +sweep/bitwarden__server/src/Infrastructure.EntityFramework/EntityFrameworkCache.cs:274 public class EntityFrameworkCache : IDistributedCache Task.Run(_deleteExpiredCachedItemsDelegate); +sweep/dotnet__orleans/playground/DurableJobsJournaling/DurableJobsJournaling.Web/LoadDriver.cs:121 public sealed class LoadDriver(IClusterClient client, WorkflowMetrics metrics, I _ = RunWorkflowAsync(workflowId, settings, tracker, stoppingToken); +sweep/dotnet__orleans/src/Orleans.Clustering.TestKit/MembershipTableTestFixture.cs:142 public sealed class MembershipTableTestFixture : IAsyncDisposable _ = ObserveLateCleanupFailureAsync(operation, exception); +sweep/dotnet__orleans/src/Orleans.Clustering.TestKit/MembershipTableTestFixture.cs:193 public sealed class MembershipTableTestFixture : IAsyncDisposable _ = ObserveLateCleanupFailureAsync(operation, exception); +sweep/dotnet__orleans/src/Orleans.Clustering.TestKit/MembershipTableTestFixture.cs:297 public sealed class MembershipTableTestFixture : IAsyncDisposable _ = ObserveLateCleanupFailureAsync(operation, exception); +sweep/dotnet__orleans/src/Orleans.Clustering.TestKit/MembershipTableTestFixture.cs:350 public sealed class MembershipTableTestFixture : IAsyncDisposable _ = ObserveLateCleanupFailureAsync(operation, exception); +sweep/dotnet__orleans/src/Orleans.Clustering.TestKit/MembershipTableTestFixture.cs:426 public sealed class MembershipTableTestFixture : IAsyncDisposable _ = ObserveLateCleanupFailureAsync(completion, exception); +sweep/dotnet__orleans/src/Orleans.Core/Lifecycle/ServiceLifecycleNotificationStage.cs:85 internal sealed partial class ServiceLifecycleNotificationStage(ILogger logger, _ = Task.Run(() => ExecuteLateCallback(participant)); +sweep/dotnet__orleans/src/Orleans.Core/Messaging/ClientMessageCenter.cs:195 internal partial class ClientMessageCenter : IMessageCenter, IDisposable _ = SendAsync(connectionTask, msg); +sweep/dotnet__orleans/src/Orleans.Core/Messaging/ClientMessageCenter.cs:216 internal partial class ClientMessageCenter : IMessageCenter, IDisposable _ = Task.Factory.StartNew( +sweep/dotnet__orleans/src/Orleans.Core/Messaging/GatewayManager.cs:224 internal partial class GatewayManager : IDisposable _ = Task.Run(async () => +sweep/dotnet__orleans/src/Orleans.Core/Networking/Transport/Streams/MessageTransportStream.cs:149 internal sealed class MessageTransportStream(MessageTransport transport, MemoryP _ = CloseTransportAsync(transport, token); +sweep/dotnet__orleans/src/Orleans.Core/Runtime/OutsideRuntimeClient.cs:459 internal partial class OutsideRuntimeClient : IRuntimeClient, IDisposable, IClus _ = DisposeAfterDrainAsync(StopObserverInvocationsAsync()); +sweep/dotnet__orleans/src/Orleans.DurableJobs/ShardExecutor.cs:237 internal sealed partial class ShardExecutor _ = Task.Run(SlowStartRampUpAsync); +sweep/dotnet__orleans/src/Orleans.Runtime/Activation/ActivationDataActivatorProvider.cs:93 private partial class ActivationDataActivator : IGrainContextActivator _ = Task.Factory.StartNew( +sweep/dotnet__orleans/src/Orleans.Runtime/Catalog/ActivationData.cs:1627 private static class ActivityErrorEvents _ = OnCompleteAsync(this, message, task); +sweep/dotnet__orleans/src/Orleans.Runtime/Core/HostedClient.cs:232 internal sealed partial class HostedClient : IGrainContext, IGrainExtensionBinde _ = DisposeAfterDrainAsync(); +sweep/dotnet__orleans/src/Orleans.Runtime/Messaging/MessageCenter.cs:245 internal partial class MessageCenter : IMessageCenter, IAsyncDisposable _ = SendAsync(this, connectionTask, msg); +sweep/dotnet__orleans/src/Orleans.Runtime/Networking/SiloConnectionMaintainer.cs:49 internal partial class SiloConnectionMaintainer : ILifecycleParticipant this.CloseConnectionAsync(updatedSilo)); +sweep/dotnet__orleans/src/Orleans.Serialization.TestKit/FieldCodecTester.cs:201 public abstract class FieldCodecTester : SerializationTester whe _ = pipe.Writer.FlushAsync().AsTask().GetAwaiter().GetResult(); +sweep/dotnet__orleans/src/Orleans.Serialization.TestKit/FieldCodecTester.cs:875 public abstract class FieldCodecTester : SerializationTester whe _ = pipe.Writer.FlushAsync().AsTask().GetAwaiter().GetResult(); +sweep/dotnet__orleans/src/Orleans.Serialization.TestKit/FieldCodecTester.cs:921 public abstract class FieldCodecTester : SerializationTester whe _ = pipe.Writer.FlushAsync().AsTask().GetAwaiter().GetResult(); +sweep/dotnet__orleans/src/Orleans.Serialization.TestKit/ValueTypeFieldCodecTester.cs:76 public abstract class ValueTypeFieldCodecTester : FieldCodecTest _ = pipe.Writer.FlushAsync().AsTask().GetAwaiter().GetResult(); +sweep/dotnet__orleans/src/Orleans.TestingHost/StandaloneSiloHost.cs:110 public static class StandaloneSiloHost _ = Task.Factory.StartNew(async _ => +sweep/dotnet__orleans/src/Orleans.TestingHost/StandaloneSiloHost.cs:139 public static class StandaloneSiloHost _ = Task.Factory.StartNew(_ => +sweep/duplicati__duplicati/Duplicati/Agent/Program.cs:402 private sealed record CommandLineArguments( Task.Run(() => StartLocalServerAsync(agentConfig, applicationSettings, +sweep/duplicati__duplicati/Duplicati/GUI/Duplicati.GUI.TrayIcon/LinuxDBusNotifier.cs:94 public sealed class LinuxDBusNotifier : INativeNotifier Task.Run(() => NotifyCoreAsync(level, title, message)); +sweep/duplicati__duplicati/Duplicati/GUI/Duplicati.GUI.TrayIcon/MacOSRumpNotifier.cs:115 public sealed class MacOSRumpNotifier : INativeNotifier Task.Run(() => notificationCenter.RequestAuthorization()); +sweep/duplicati__duplicati/Duplicati/GUI/Duplicati.GUI.TrayIcon/MacOSRumpNotifier.cs:130 public sealed class MacOSRumpNotifier : INativeNotifier Task.Run(() => +sweep/duplicati__duplicati/Duplicati/Library/Logging/RepeatingLogScope.cs:63 public class RepeatingLogScope : ILogDestination, IDisposable Task.Run(() => RepeatedRunner()); +sweep/duplicati__duplicati/Duplicati/Library/Main/Controller.cs:581 public class Controller : IDisposable, IController Task.Run(() => +sweep/duplicati__duplicati/Duplicati/Library/Main/IPC/ControllerRpcProxy.cs:154 public class ControllerRpcProxy : IController, IDisposable, IControllerRpcCallba _ = Task.Run(ReadStderrAsync); +sweep/duplicati__duplicati/Duplicati/Library/Main/IPC/ControllerRpcProxy.cs:171 public class ControllerRpcProxy : IController, IDisposable, IControllerRpcCallba _ = Task.Run(async () => +sweep/duplicati__duplicati/Duplicati/Library/Main/Operation/Backup/FileBlockProcessor.cs:84 internal static class FileBlockProcessor Task.Run(async () => +sweep/duplicati__duplicati/Duplicati/Library/Main/ProcessController.cs:220 public class ProcessController : IDisposable Task.Run(async () => +sweep/duplicati__duplicati/Duplicati/Library/Modules/Builtin/RunScript.cs:579 private class ConsoleDataHandler Task.Run(async () => StandardOutput = await p.StandardOutput.ReadToEnd +sweep/duplicati__duplicati/Duplicati/Library/Modules/Builtin/RunScript.cs:580 private class ConsoleDataHandler Task.Run(async () => StandardError = await p.StandardError.ReadToEndAs +sweep/duplicati__duplicati/Duplicati/Library/RestAPI/Database/Connection.cs:445 public class Connection : IDisposable _ = currentTask.UpdateThrottleSpeedsAsync(ApplicationSettings.UploadSp +sweep/duplicati__duplicati/Duplicati/Library/RestAPI/Runner.cs:820 private class ProgressState : IProgressEventData Task.Run(async () => +sweep/duplicati__duplicati/Duplicati/Library/RestAPI/Runner.cs:867 private class ProgressState : IProgressEventData Task.Run(async () => +sweep/duplicati__duplicati/Duplicati/Library/SourceProvider/Builtin/BackendSourceFileEntry.cs:260 private class LengthReportingStream(Stream stream, long reportedLength) : Overri _ = Task.Run(async () => +sweep/duplicati__duplicati/Duplicati/Server/Program.cs:367 public class Program Task.Run(async () => DuplicatiWebserver?.StopAsync() ?? Task.Completed +sweep/duplicati__duplicati/Duplicati/Server/Program.cs:614 public class Program Task.Run(async () => +sweep/duplicati__duplicati/Duplicati/UnitTest/TrayStatusOrderTests.cs:92 public class TrayStatusOrderTests _ = Task.Run(async () => +sweep/duplicati__duplicati/Duplicati/WebserverCore/DuplicatiWebserver.cs:429 public record InitSettings( _ = Task.Run(() => app.Services.GetRequiredService +sweep/git-ecosystem__git-credential-manager/src/Core/UI/Dispatcher.cs:477 private class DispatcherJobQueue _ = RemoveWhenCompletedAsync(job); +sweep/git-ecosystem__git-credential-manager/src/Core.Tests/UI/DispatcherTests.cs:1077 public class DispatcherTests Task.Factory.StartNew( +sweep/jellyfin__jellyfin/Emby.Server.Implementations/IO/LibraryMonitor.cs:251 public sealed class LibraryMonitor : ILibraryMonitor, IDisposable Task.Run(() => +sweep/jellyfin__jellyfin/Emby.Server.Implementations/SystemManager.cs:133 public class SystemManager : ISystemManager Task.Run(async () => +sweep/jellyfin__jellyfin/Jellyfin.Api/Controllers/LibraryStructureController.cs:217 public class LibraryStructureController : BaseJellyfinApiController _ = Task.Run(() => RefreshAfterRenameAsync(newPath, refreshLibrary)); +sweep/jellyfin__jellyfin/Jellyfin.Api/Controllers/LibraryStructureController.cs:380 public class LibraryStructureController : BaseJellyfinApiController Task.Run(async () => +sweep/jellyfin__jellyfin/Jellyfin.Api/Controllers/LibraryStructureController.cs:447 public class LibraryStructureController : BaseJellyfinApiController Task.Run(async () => +sweep/jellyfin__jellyfin/Jellyfin.Server.Implementations/FullSystemBackup/BackupService.cs:80 public class BackupService : IBackupService _ = Task.Run(async () => +sweep/jellyfin__jellyfin/MediaBrowser.Common/Events/EventHelper.cs:24 public static class EventHelper Task.Run(() => +sweep/jellyfin__jellyfin/MediaBrowser.Common/Events/EventHelper.cs:50 public static class EventHelper Task.Run(() => +sweep/jellyfin__jellyfin/MediaBrowser.Controller/LibraryTaskScheduler/LimitedConcurrencyLibraryScheduler.cs:198 public sealed class LimitedConcurrencyLibraryScheduler : ILimitedConcurrencyLibr Task.Factory.StartNew( +sweep/jellyfin__jellyfin/MediaBrowser.Providers/Manager/ProviderManager.cs:1162 public class ProviderManager : IProviderManager, IDisposable Task.Run(StartProcessingRefreshQueue); +sweep/jellyfin__jellyfin/MediaBrowser.Providers/Trickplay/TrickplayProvider.cs:115 public class TrickplayProvider : ICustomMetadataProvider, _ = _trickplayManager.RefreshTrickplayDataAsync(video, replace, librar +sweep/lepoco__wpfui/src/Wpf.Ui/Controls/DynamicScrollBar/DynamicScrollBar.cs:84 public class DynamicScrollBar : System.Windows.Controls.Primitives.ScrollBar _ = UpdateScrollAsync(); +sweep/lepoco__wpfui/src/Wpf.Ui/Controls/DynamicScrollBar/DynamicScrollBar.cs:94 public class DynamicScrollBar : System.Windows.Controls.Primitives.ScrollBar _ = UpdateScrollAsync(); +sweep/lepoco__wpfui/src/Wpf.Ui/Controls/DynamicScrollBar/DynamicScrollBar.cs:134 public class DynamicScrollBar : System.Windows.Controls.Primitives.ScrollBar _ = bar.UpdateScrollAsync(); +sweep/lepoco__wpfui/src/Wpf.Ui/Controls/DynamicScrollBar/DynamicScrollBar.cs:151 public class DynamicScrollBar : System.Windows.Controls.Primitives.ScrollBar _ = bar.UpdateScrollAsync(); +sweep/lepoco__wpfui/src/Wpf.Ui/Controls/Snackbar/SnackbarPresenter.cs:80 public class SnackbarPresenter : System.Windows.Controls.ContentPresenter _ = ShowQueuedSnackbarsAsync(); // TODO: Fix detached process +sweep/lepoco__wpfui/src/Wpf.Ui.Gallery/Controllers/MonacoController.cs:78 public class MonacoController _ = Application.Current.Dispatcher.InvokeAsync(async () => +sweep/lepoco__wpfui/src/Wpf.Ui.Gallery/ViewModels/Pages/DesignGuidance/IconsViewModel.cs:57 public partial class IconsViewModel : ViewModel _ = Task.Run(() => +sweep/lepoco__wpfui/src/Wpf.Ui.Gallery/ViewModels/Pages/DesignGuidance/IconsViewModel.cs:134 public partial class IconsViewModel : ViewModel _ = Task.Run(() => +sweep/lepoco__wpfui/src/Wpf.Ui.Gallery/ViewModels/Windows/MonacoWindowViewModel.cs:57 "// This Source Code Form is subject to the terms of the MIT License. +// If a _ = DispatchAsync(InitializeEditorAsync); +sweep/nats-io__nats.net/examples/Example.Client/Program.cs:17 Task.Run(async () => +sweep/nats-io__nats.net/examples/Example.Client/Program.cs:25 Task.Run(async () => +sweep/nats-io__nats.net/examples/Example.Client/Program.cs:33 Task.Run(async () => +sweep/nats-io__nats.net/examples/Example.Client/Program.cs:44 Task.Run(async () => +sweep/nats-io__nats.net/examples/Example.Client/Program.cs:52 Task.Run(async () => +sweep/nats-io__nats.net/examples/Example.Client/Program.cs:64 Task.Run(async () => +sweep/nats-io__nats.net/examples/Example.NatsIODocs/BasicsSubscribe.cs:12 public class BasicsSubscribe(NatsServerFixture fixture, ITestOutputHelper output _ = Task.Run(async () => +sweep/nats-io__nats.net/examples/Example.NatsIODocs/LearnCoreNatsPublishSubscribeSubscribe.cs:18 public class LearnCoreNatsPublishSubscribeSubscribe(NatsServerFixture fixture, I _ = Task.Run(async () => +sweep/nats-io__nats.net/examples/Example.NatsIODocs/LearnCoreNatsQueueGroupsQueueSubscribe.cs:18 public class LearnCoreNatsQueueGroupsQueueSubscribe(NatsServerFixture fixture, I _ = Task.Run(async () => +sweep/nats-io__nats.net/examples/Example.NatsIODocs/LearnCoreNatsRequestReplyReplies.cs:22 public class LearnCoreNatsRequestReplyReplies(NatsServerFixture fixture, ITestOu _ = Task.Run(async () => +sweep/nats-io__nats.net/examples/Example.NatsIODocs/LearnCoreNatsRequestReplyRequest.cs:20 public class LearnCoreNatsRequestReplyRequest(NatsServerFixture fixture, ITestOu _ = Task.Run(async () => +sweep/nats-io__nats.net/examples/Example.NatsIODocs/LearnCoreNatsRequestReplyRespond.cs:18 public class LearnCoreNatsRequestReplyRespond(NatsServerFixture fixture, ITestOu _ = Task.Run(async () => +sweep/nats-io__nats.net/examples/Example.NatsIODocs/LearnCoreNatsScatterGatherGather.cs:22 public class LearnCoreNatsScatterGatherGather(NatsServerFixture fixture, ITestOu _ = Task.Run(async () => +sweep/nats-io__nats.net/examples/Example.NatsIODocs/LearnCoreNatsScatterGatherProvider.cs:18 public class LearnCoreNatsScatterGatherProvider(NatsServerFixture fixture, ITest _ = Task.Run(async () => +sweep/nats-io__nats.net/examples/Example.NatsIODocs/LearnCoreNatsSubjectsAndWildcardsWildcardMulti.cs:18 public class LearnCoreNatsSubjectsAndWildcardsWildcardMulti(NatsServerFixture fi _ = Task.Run(async () => +sweep/nats-io__nats.net/examples/Example.NatsIODocs/LearnCoreNatsSubjectsAndWildcardsWildcardSingle.cs:18 public class LearnCoreNatsSubjectsAndWildcardsWildcardSingle(NatsServerFixture f _ = Task.Run(async () => +sweep/nats-io__nats.net/examples/Example.NatsIODocs/QueueGroupsBasic.cs:15 public class QueueGroupsBasic(NatsServerFixture fixture, ITestOutputHelper outpu _ = Task.Run(async () => +sweep/nats-io__nats.net/examples/Example.NatsIODocs/QueueGroupsBasic.cs:23 public class QueueGroupsBasic(NatsServerFixture fixture, ITestOutputHelper outpu _ = Task.Run(async () => +sweep/nats-io__nats.net/examples/Example.NatsIODocs/QueueGroupsBasic.cs:31 public class QueueGroupsBasic(NatsServerFixture fixture, ITestOutputHelper outpu _ = Task.Run(async () => +sweep/nats-io__nats.net/examples/Example.NatsIODocs/QueueGroupsDynamicScaling.cs:22 public class QueueGroupsDynamicScaling(NatsServerFixture fixture, ITestOutputHel _ = Task.Run(async () => +sweep/nats-io__nats.net/examples/Example.NatsIODocs/QueueGroupsMixedSubscribers.cs:15 public class QueueGroupsMixedSubscribers(NatsServerFixture fixture, ITestOutputH _ = Task.Run(async () => +sweep/nats-io__nats.net/examples/Example.NatsIODocs/QueueGroupsMixedSubscribers.cs:24 public class QueueGroupsMixedSubscribers(NatsServerFixture fixture, ITestOutputH _ = Task.Run(async () => +sweep/nats-io__nats.net/examples/Example.NatsIODocs/QueueGroupsMixedSubscribers.cs:33 public class QueueGroupsMixedSubscribers(NatsServerFixture fixture, ITestOutputH _ = Task.Run(async () => +sweep/nats-io__nats.net/examples/Example.NatsIODocs/QueueGroupsMixedSubscribers.cs:41 public class QueueGroupsMixedSubscribers(NatsServerFixture fixture, ITestOutputH _ = Task.Run(async () => +sweep/nats-io__nats.net/examples/Example.NatsIODocs/QueueGroupsRequestReply.cs:19 public class QueueGroupsRequestReply(NatsServerFixture fixture, ITestOutputHelpe _ = Task.Run(async () => +sweep/nats-io__nats.net/examples/Example.NatsIODocs/RequestReplyBasic.cs:16 public class RequestReplyBasic(NatsServerFixture fixture, ITestOutputHelper outp _ = Task.Run(async () => +sweep/nats-io__nats.net/examples/Example.NatsIODocs/RequestReplyCalculator.cs:17 public class RequestReplyCalculator(NatsServerFixture fixture, ITestOutputHelper _ = Task.Run(async () => +sweep/nats-io__nats.net/examples/Example.NatsIODocs/RequestReplyHeaders.cs:15 public class RequestReplyHeaders(NatsServerFixture fixture, ITestOutputHelper ou _ = Task.Run(async () => +sweep/nats-io__nats.net/examples/Example.NatsIODocs/RequestReplyMultipleResponders.cs:15 public class RequestReplyMultipleResponders(NatsServerFixture fixture, ITestOutp _ = Task.Run(async () => +sweep/nats-io__nats.net/examples/Example.NatsIODocs/RequestReplyMultipleResponders.cs:23 public class RequestReplyMultipleResponders(NatsServerFixture fixture, ITestOutp _ = Task.Run(async () => +sweep/nats-io__nats.net/examples/Example.NatsIODocs/RequestReplyTimeout.cs:15 public class RequestReplyTimeout(NatsServerFixture fixture, ITestOutputHelper ou _ = Task.Run(async () => +sweep/nats-io__nats.net/examples/Example.NatsIODocs/SubjectsMonitoring.cs:13 public class SubjectsMonitoring(NatsServerFixture fixture, ITestOutputHelper out _ = Task.Run(async () => +sweep/nats-io__nats.net/examples/Example.NatsIODocs/SubjectsMultiWildcard.cs:15 public class SubjectsMultiWildcard(NatsServerFixture fixture, ITestOutputHelper _ = Task.Run(async () => +sweep/nats-io__nats.net/examples/Example.NatsIODocs/SubjectsMultiWildcard.cs:24 public class SubjectsMultiWildcard(NatsServerFixture fixture, ITestOutputHelper _ = Task.Run(async () => +sweep/nats-io__nats.net/examples/Example.NatsIODocs/SubjectsMultiWildcard.cs:33 public class SubjectsMultiWildcard(NatsServerFixture fixture, ITestOutputHelper _ = Task.Run(async () => +sweep/nats-io__nats.net/examples/Example.NatsIODocs/SubjectsSingleWildcard.cs:15 public class SubjectsSingleWildcard(NatsServerFixture fixture, ITestOutputHelper _ = Task.Run(async () => +sweep/nats-io__nats.net/examples/Example.NatsIODocs/SubjectsSingleWildcard.cs:23 public class SubjectsSingleWildcard(NatsServerFixture fixture, ITestOutputHelper _ = Task.Run(async () => +sweep/nats-io__nats.net/examples/Example.NatsIODocs/SubjectsSingleWildcard.cs:32 public class SubjectsSingleWildcard(NatsServerFixture fixture, ITestOutputHelper _ = Task.Run(async () => +sweep/nats-io__nats.net/sandbox/ConsoleApp/Program.cs:42 _ = Task.Run(async () => +sweep/nats-io__nats.net/sandbox/ConsoleApp/Program.cs:85 public class Runner : ConsoleAppBase _ = Task.Run(async () => +sweep/nats-io__nats.net/sandbox/MicroBenchmark/Subscribe.cs:111 public class Subscribe Task.Run(async () => +sweep/nats-io__nats.net/sandbox/MinimumWebApp/Program.cs:13 _ = Task.Run(async () => +sweep/nats-io__nats.net/src/NATS.Client.Core/NatsConnection.cs:1259 public partial class NatsConnection : INatsConnection _ = Task.Run(() => DisposeSocketComponentAsync(reader, "socket reader diff --git a/docs/evidence/n3-pilot-2026-10/data/g3/run.log b/docs/evidence/n3-pilot-2026-10/data/g3/run.log new file mode 100644 index 00000000..5ff04621 --- /dev/null +++ b/docs/evidence/n3-pilot-2026-10/data/g3/run.log @@ -0,0 +1,28 @@ +holdout/Jackett__Jackett 0 | n3poc: 301 files, 0 warnings, 8 request-bound types, 1 detached sites, 1 detached sites using only unknown-ownership fields +holdout/MassTransit__MassTransit 0 | n3poc: 5502 files, 0 warnings, 2 request-bound types, 0 detached sites, 0 detached sites using only unknown-ownership fields +holdout/OrchardCMS__OrchardCore 0 | n3poc: 6013 files, 0 warnings, 738 request-bound types, 0 detached sites, 0 detached sites using only unknown-ownership fields +holdout/Radarr__Radarr 0 | n3poc: 2509 files, 0 warnings, 81 request-bound types, 2 detached sites, 2 detached sites using only unknown-ownership fields +holdout/confluentinc__confluent-kafka-dotnet 0 | n3poc: 763 files, 0 warnings, 1 request-bound types, 0 detached sites, 0 detached sites using only unknown-ownership fields +NO FACTS holdout/dnSpyEx__dnSpy +holdout/dotnet__eShop 0 | n3poc: 547 files, 0 warnings, 14 request-bound types, 0 detached sites, 0 detached sites using only unknown-ownership fields +holdout/files-community__Files 0 | n3poc: 1144 files, 0 warnings, 0 request-bound types, 0 detached sites, 0 detached sites using only unknown-ownership fields +holdout/gitextensions__gitextensions 0 | n3poc: 1694 files, 0 warnings, 0 request-bound types, 0 detached sites, 0 detached sites using only unknown-ownership fields +holdout/grpc__grpc-dotnet 0 | n3poc: 829 files, 0 warnings, 4 request-bound types, 0 detached sites, 0 detached sites using only unknown-ownership fields +holdout/linq2db__linq2db 0 | n3poc: 5236 files, 0 warnings, 6 request-bound types, 0 detached sites, 0 detached sites using only unknown-ownership fields +holdout/microsoft__garnet 0 | n3poc: 1503 files, 0 warnings, 0 request-bound types, 0 detached sites, 0 detached sites using only unknown-ownership fields +holdout/mongodb__mongo-csharp-driver 0 | n3poc: 3099 files, 0 warnings, 0 request-bound types, 0 detached sites, 0 detached sites using only unknown-ownership fields +holdout/quartznet__quartznet 0 | n3poc: 1881 files, 0 warnings, 13 request-bound types, 0 detached sites, 0 detached sites using only unknown-ownership fields +holdout/rabbitmq__rabbitmq-dotnet-client 0 | n3poc: 363 files, 0 warnings, 0 request-bound types, 0 detached sites, 0 detached sites using only unknown-ownership fields +sweep/Flow-Launcher__Flow.Launcher 0 | n3poc: 390 files, 0 warnings, 0 request-bound types, 0 detached sites, 0 detached sites using only unknown-ownership fields +sweep/HangfireIO__Hangfire 0 | n3poc: 498 files, 0 warnings, 0 request-bound types, 0 detached sites, 0 detached sites using only unknown-ownership fields +sweep/MessagePack-CSharp__MessagePack-CSharp 0 | n3poc: 578 files, 0 warnings, 0 request-bound types, 0 detached sites, 0 detached sites using only unknown-ownership fields +sweep/akkadotnet__akka.net 0 | n3poc: 2832 files, 0 warnings, 2 request-bound types, 0 detached sites, 0 detached sites using only unknown-ownership fields +sweep/bitwarden__server 0 | n3poc: 5835 files, 0 warnings, 501 request-bound types, 0 detached sites, 0 detached sites using only unknown-ownership fields +sweep/dotnet__orleans 0 | n3poc: 4244 files, 0 warnings, 40 request-bound types, 0 detached sites, 0 detached sites using only unknown-ownership fields +sweep/duplicati__duplicati 0 | n3poc: 1574 files, 0 warnings, 0 request-bound types, 0 detached sites, 0 detached sites using only unknown-ownership fields +sweep/git-ecosystem__git-credential-manager 0 | n3poc: 411 files, 0 warnings, 0 request-bound types, 0 detached sites, 0 detached sites using only unknown-ownership fields +sweep/jellyfin__jellyfin 0 | n3poc: 2251 files, 0 warnings, 96 request-bound types, 4 detached sites, 4 detached sites using only unknown-ownership fields +sweep/lepoco__wpfui 0 | n3poc: 556 files, 0 warnings, 0 request-bound types, 0 detached sites, 0 detached sites using only unknown-ownership fields +sweep/nats-io__nats.net 0 | n3poc: 591 files, 0 warnings, 1 request-bound types, 0 detached sites, 0 detached sites using only unknown-ownership fields +sweep/nopSolutions__nopCommerce 0 | n3poc: 3661 files, 0 warnings, 422 request-bound types, 0 detached sites, 0 detached sites using only unknown-ownership fields +sweep/npgsql__npgsql 0 | n3poc: 475 files, 0 warnings, 0 request-bound types, 0 detached sites, 0 detached sites using only unknown-ownership fields diff --git a/docs/evidence/n3-pilot-2026-10/data/g3/summary.tsv b/docs/evidence/n3-pilot-2026-10/data/g3/summary.tsv new file mode 100644 index 00000000..e0fd55a6 --- /dev/null +++ b/docs/evidence/n3-pilot-2026-10/data/g3/summary.tsv @@ -0,0 +1,28 @@ +sample repo registrations test_registrations_dropped scoped_names mixed_names warnings poc +holdout Jackett__Jackett 0 0 0 0 0 n3poc: 301 files, 0 warnings, 8 request-bound types, 1 detached sites, 1 detached sites using only unknown-ownership fields +holdout MassTransit__MassTransit 214 167 5 0 0 n3poc: 5502 files, 0 warnings, 2 request-bound types, 0 detached sites, 0 detached sites using only unknown-ownership fields +holdout OrchardCMS__OrchardCore 1199 15 261 23 0 n3poc: 6013 files, 0 warnings, 738 request-bound types, 0 detached sites, 0 detached sites using only unknown-ownership fields +holdout Radarr__Radarr 9 0 5 0 0 n3poc: 2509 files, 0 warnings, 81 request-bound types, 2 detached sites, 2 detached sites using only unknown-ownership fields +holdout confluentinc__confluent-kafka-dotnet 3 0 0 0 0 n3poc: 763 files, 0 warnings, 1 request-bound types, 0 detached sites, 0 detached sites using only unknown-ownership fields +holdout dotnet__eShop 66 0 9 2 0 n3poc: 547 files, 0 warnings, 14 request-bound types, 0 detached sites, 0 detached sites using only unknown-ownership fields +holdout files-community__Files 76 0 0 0 0 n3poc: 1144 files, 0 warnings, 0 request-bound types, 0 detached sites, 0 detached sites using only unknown-ownership fields +holdout gitextensions__gitextensions 0 0 0 0 0 n3poc: 1694 files, 0 warnings, 0 request-bound types, 0 detached sites, 0 detached sites using only unknown-ownership fields +holdout grpc__grpc-dotnet 66 1 3 3 0 n3poc: 829 files, 0 warnings, 4 request-bound types, 0 detached sites, 0 detached sites using only unknown-ownership fields +holdout linq2db__linq2db 9 2 1 0 0 n3poc: 5236 files, 0 warnings, 6 request-bound types, 0 detached sites, 0 detached sites using only unknown-ownership fields +holdout microsoft__garnet 0 0 0 0 0 n3poc: 1503 files, 0 warnings, 0 request-bound types, 0 detached sites, 0 detached sites using only unknown-ownership fields +holdout mongodb__mongo-csharp-driver 0 0 0 0 0 n3poc: 3099 files, 0 warnings, 0 request-bound types, 0 detached sites, 0 detached sites using only unknown-ownership fields +holdout quartznet__quartznet 175 1 8 1 0 n3poc: 1881 files, 0 warnings, 13 request-bound types, 0 detached sites, 0 detached sites using only unknown-ownership fields +holdout rabbitmq__rabbitmq-dotnet-client 0 0 0 0 0 n3poc: 363 files, 0 warnings, 0 request-bound types, 0 detached sites, 0 detached sites using only unknown-ownership fields +sweep Flow-Launcher__Flow.Launcher 18 0 0 0 0 n3poc: 390 files, 0 warnings, 0 request-bound types, 0 detached sites, 0 detached sites using only unknown-ownership fields +sweep HangfireIO__Hangfire 4 0 0 0 0 n3poc: 498 files, 0 warnings, 0 request-bound types, 0 detached sites, 0 detached sites using only unknown-ownership fields +sweep MessagePack-CSharp__MessagePack-CSharp 0 0 0 0 0 n3poc: 578 files, 0 warnings, 0 request-bound types, 0 detached sites, 0 detached sites using only unknown-ownership fields +sweep akkadotnet__akka.net 25 14 1 0 0 n3poc: 2832 files, 0 warnings, 2 request-bound types, 0 detached sites, 0 detached sites using only unknown-ownership fields +sweep bitwarden__server 806 118 310 6 0 n3poc: 5835 files, 0 warnings, 501 request-bound types, 0 detached sites, 0 detached sites using only unknown-ownership fields +sweep dotnet__orleans 952 29 26 11 0 n3poc: 4244 files, 0 warnings, 40 request-bound types, 0 detached sites, 0 detached sites using only unknown-ownership fields +sweep duplicati__duplicati 29 0 0 0 0 n3poc: 1574 files, 0 warnings, 0 request-bound types, 0 detached sites, 0 detached sites using only unknown-ownership fields +sweep git-ecosystem__git-credential-manager 0 0 0 0 0 n3poc: 411 files, 0 warnings, 0 request-bound types, 0 detached sites, 0 detached sites using only unknown-ownership fields +sweep jellyfin__jellyfin 169 9 7 0 0 n3poc: 2251 files, 0 warnings, 96 request-bound types, 4 detached sites, 4 detached sites using only unknown-ownership fields +sweep lepoco__wpfui 46 0 0 0 0 n3poc: 556 files, 0 warnings, 0 request-bound types, 0 detached sites, 0 detached sites using only unknown-ownership fields +sweep nats-io__nats.net 18 18 0 0 0 n3poc: 591 files, 0 warnings, 1 request-bound types, 0 detached sites, 0 detached sites using only unknown-ownership fields +sweep nopSolutions__nopCommerce 537 226 258 2 0 n3poc: 3661 files, 0 warnings, 422 request-bound types, 0 detached sites, 0 detached sites using only unknown-ownership fields +sweep npgsql__npgsql 0 0 0 0 0 n3poc: 475 files, 0 warnings, 0 request-bound types, 0 detached sites, 0 detached sites using only unknown-ownership fields