<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Atharva Panegai</title>
    <description>The latest articles on DEV Community by Atharva Panegai (@atharvapanegai).</description>
    <link>https://dev.to/atharvapanegai</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1976335%2F8caa0e2b-b613-44c1-9970-7a361429474f.jpg</url>
      <title>DEV Community: Atharva Panegai</title>
      <link>https://dev.to/atharvapanegai</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/atharvapanegai"/>
    <language>en</language>
    <item>
      <title>We ran Pinaka on an open, unresolved Prisma bug. No ground truth. Here's what it found.</title>
      <dc:creator>Atharva Panegai</dc:creator>
      <pubDate>Mon, 06 Jul 2026 12:23:41 +0000</pubDate>
      <link>https://dev.to/atharvapanegai/we-ran-pinaka-on-an-open-unresolved-prisma-bug-no-ground-truth-heres-what-it-found-494d</link>
      <guid>https://dev.to/atharvapanegai/we-ran-pinaka-on-an-open-unresolved-prisma-bug-no-ground-truth-heres-what-it-found-494d</guid>
      <description>&lt;p&gt;The BullMQ benchmark we published last week had a clean scoring mechanism: a real merged PR, a real maintainer comment confirming the bug, and a known correct fix to compare against. This one doesn't have that.&lt;/p&gt;

&lt;p&gt;Prisma issue &lt;a href="https://github.com/prisma/prisma/issues/29480" rel="noopener noreferrer"&gt;#29480&lt;/a&gt; is open. It has persisted through four minor releases — 7.5.0, 7.6.0, 7.7.0, 7.8.0 — unresolved as of the time we ran this benchmark. There is no merged fix to score against. So we had to validate Pinaka's diagnosis differently: against behavioral evidence in the codebase itself, not a known-correct answer. That's a different kind of benchmark, and it's worth being precise about what it does and doesn't prove.&lt;/p&gt;




&lt;h2&gt;
  
  
  The bug
&lt;/h2&gt;

&lt;p&gt;When using the &lt;code&gt;PrismaPg&lt;/code&gt; driver adapter, filtering nullable &lt;code&gt;String?&lt;/code&gt; fields for null values throws a &lt;code&gt;PrismaClientValidationError&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// These all throw:&lt;/span&gt;
&lt;span class="nx"&gt;prisma&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;user&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;findMany&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;where&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt;
&lt;span class="nx"&gt;prisma&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;user&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;findMany&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;where&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;equals&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt;
&lt;span class="nx"&gt;prisma&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;user&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;findMany&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;where&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;not&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt;

&lt;span class="c1"&gt;// This works fine (same syntax, different field type):&lt;/span&gt;
&lt;span class="nx"&gt;prisma&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;user&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;findMany&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;where&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;createdAt&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt; &lt;span class="c1"&gt;// DateTime? — no error&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The error:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;PrismaClientValidationError:
Invalid `prisma.user.findMany()` invocation:
{
  where: {
    name: null
          ~~~~
  }
}
Argument `name`: Invalid value provided.
Expected StringNullableFilter or String, provided Null.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The bug is reproducible, consistent, and type-specific — it only fires on &lt;code&gt;String?&lt;/code&gt; fields, not &lt;code&gt;DateTime?&lt;/code&gt; or integer fields with identical null filter syntax. It has been open and unresolved across four Prisma minor releases.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Pinaka was working with
&lt;/h2&gt;

&lt;p&gt;This run had live SDK runtime context — real logs, real stack trace, real request context captured at crash time via &lt;code&gt;@pinaka/sdk&lt;/code&gt;. The logs included something important:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;[DEBUG] Executing prisma.user.findMany with where: { name: null }
[ERROR] PrismaClientValidationError thrown
[DEBUG] Retried with { name: { equals: null } } - same error
[DEBUG] Tried { createdAt: null } on DateTime? field - works fine
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Those last two lines — the retry attempt and the DateTime contrast — are what made this diagnosis possible. Without them, a static-code-only RCA would have seen the error message and stopped at "user passed wrong type." The logs proved it wasn't user error by documenting what was already tried.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pipeline stats for this run:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Vector search: 25 candidates&lt;/li&gt;
&lt;li&gt;Direct stack trace file fetch: 3 files force-included&lt;/li&gt;
&lt;li&gt;Total reranker candidates: 45 (25 vector + 20 direct fetch)&lt;/li&gt;
&lt;li&gt;Final context passed to LLM: 8 chunks&lt;/li&gt;
&lt;li&gt;Reranker: Voyage rerank-2, no fallback triggered&lt;/li&gt;
&lt;li&gt;Time to RCA from job pickup: ~3 seconds&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  What Pinaka diagnosed
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Failure class:&lt;/strong&gt; Logic error in the PrismaPg adapter's SQL generation layer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Root cause:&lt;/strong&gt; The &lt;code&gt;PrismaPg&lt;/code&gt; adapter incorrectly generates &lt;code&gt;WHERE "name" = NULL&lt;/code&gt; instead of &lt;code&gt;WHERE "name" IS NULL&lt;/code&gt; for &lt;code&gt;findMany&lt;/code&gt; operations on nullable &lt;code&gt;String?&lt;/code&gt; fields. In PostgreSQL, &lt;code&gt;= NULL&lt;/code&gt; always evaluates to false — &lt;code&gt;IS NULL&lt;/code&gt; is the correct predicate. This explains why validation fails before the query even reaches the database.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How Pinaka isolated it:&lt;/strong&gt; By contrasting three cases found in retrieved test evidence:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Case&lt;/th&gt;
&lt;th&gt;Field type&lt;/th&gt;
&lt;th&gt;Operation&lt;/th&gt;
&lt;th&gt;Result&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;findMany({ where: { team_id: null } })&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Integer&lt;/td&gt;
&lt;td&gt;findMany&lt;/td&gt;
&lt;td&gt;✅ Works&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;updateMany({ where: { name: null } })&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;String?&lt;/td&gt;
&lt;td&gt;updateMany&lt;/td&gt;
&lt;td&gt;✅ Works&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;findMany({ where: { resale: null } })&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;String?&lt;/td&gt;
&lt;td&gt;findMany&lt;/td&gt;
&lt;td&gt;❌ Fails&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The intersection of those three data points isolates the bug to &lt;code&gt;findMany&lt;/code&gt; + &lt;code&gt;String?&lt;/code&gt; specifically — not a general null handling problem, not a schema problem, not a DMMF problem.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fault ownership:&lt;/strong&gt; Framework bug in the PrismaPg adapter, not user error. Any application-side workaround is exactly that — a workaround. The correct fix belongs upstream in Prisma.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key hypotheses eliminated:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;"The field isn't nullable"&lt;/em&gt; — ruled out: null records can be created successfully, and the error is client-side validation, not a DB constraint&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;"Prisma doesn't support null filtering at all"&lt;/em&gt; — ruled out by the &lt;code&gt;DateTime?&lt;/code&gt; working case with identical syntax&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;"The fix lives in the client runtime"&lt;/em&gt; — ruled out: the error originates in &lt;code&gt;@prisma/client/runtime/library.js&lt;/code&gt;, but behavioral evidence points to adapter-level SQL generation as the deeper cause&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Directional fix:&lt;/strong&gt; Change &lt;code&gt;= NULL&lt;/code&gt; to &lt;code&gt;IS NULL&lt;/code&gt; in the adapter's SQL generation path for &lt;code&gt;findMany&lt;/code&gt; + &lt;code&gt;String?&lt;/code&gt; cases. Pinaka did not invent API syntax or a specific line-level fix it couldn't confirm from retrieved code — it stated this directionally without overreaching.&lt;/p&gt;




&lt;h2&gt;
  
  
  Where Pinaka was appropriately uncertain
&lt;/h2&gt;

&lt;p&gt;The adapter's actual source (&lt;code&gt;packages/adapter-pg/&lt;/code&gt;) was not retrieved. The exact file and line of the SQL generation fault was not pinpointed.&lt;/p&gt;

&lt;p&gt;Confidence was flagged as HIGH in the output, but the caveat correctly noted the adapter source was missing — this is a known limitation of how retrieval works: the ticket framing pulled vector search toward client runtime files rather than adapter internals. An adapter-focused ticket would likely have surfaced the SQL generation code directly.&lt;/p&gt;

&lt;p&gt;We're saying this in the body of the post, not buried in footnotes.&lt;/p&gt;




&lt;h2&gt;
  
  
  What the SDK actually contributed here
&lt;/h2&gt;

&lt;p&gt;The SDK-captured log lines did more diagnostic work than the entire codebase read. Specifically:&lt;/p&gt;

&lt;p&gt;The line &lt;code&gt;"Tried { createdAt: null } on DateTime? field - works fine"&lt;/code&gt; — captured automatically because the engineer's retry attempt happened in the same request context — is what enabled asymmetric behavior diagnosis. Without that log line, the investigation would have stayed focused on the error message alone, which points to client-side validation, not adapter-level SQL generation.&lt;/p&gt;

&lt;p&gt;Static code reading tells you what the code says it should do. Runtime context tells you what actually happened when someone tried it three different ways and got three different results. Those aren't redundant — they're complementary, and in this case the runtime evidence was the lever.&lt;/p&gt;




&lt;h2&gt;
  
  
  What this proves — and what it doesn't
&lt;/h2&gt;

&lt;p&gt;Unlike the BullMQ benchmark, there is no merged PR to score against. We cannot tell you "Pinaka's diagnosis matches the correct fix" because no correct fix exists yet.&lt;/p&gt;

&lt;p&gt;What we can tell you: the diagnosis is consistent with all behavioral evidence available — the asymmetric behavior across field types, the error message origin, the test file contrast cases — and the reasoning chain is transparent enough to evaluate independently.&lt;/p&gt;

&lt;p&gt;The harder demonstration here isn't scoring accuracy. It's that Pinaka can reason from behavioral contrast evidence across test files, not just trace a known stack to a known answer. Those are different capabilities, and the second one matters more in the cases where no one has found the answer yet.&lt;/p&gt;

&lt;p&gt;If Prisma ships a fix for #29480 that differs from what Pinaka diagnosed, we'll update this post.&lt;/p&gt;




&lt;h2&gt;
  
  
  Honest limitations
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;No ground truth&lt;/strong&gt; — diagnosis validated against behavioral evidence only, not a merged fix&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Adapter source not retrieved&lt;/strong&gt; — exact fault line not pinpointed&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Single bug, single repo&lt;/strong&gt; — not statistically powered&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ticket framing affects retrieval&lt;/strong&gt; — an adapter-focused ticket would likely have surfaced the SQL generation code directly&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;We're continuing to run this across more repositories. We'll publish what we find — including results that don't look as clean as this one.&lt;/p&gt;




&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

&lt;p&gt;If you want to see what Pinaka finds on your own codebase, Join waitlist at &lt;a href="https://getpinaka.com" rel="noopener noreferrer"&gt;getpinaka.com&lt;/a&gt;. We're building this in public — benchmarks like this one are how we're deciding what to build next, not just what to put in a launch post.&lt;/p&gt;

&lt;p&gt;Previously: &lt;a href="https://dev.to/atharvapanegai/can-ai-actually-find-the-root-cause-of-a-bug-or-does-it-just-sound-confident-5e0"&gt;Can AI actually find the root cause of a bug, or does it just sound confident?&lt;/a&gt; (BullMQ benchmark)&lt;/p&gt;

</description>
      <category>ai</category>
      <category>debugging</category>
      <category>prisma</category>
      <category>rootcauseanalysis</category>
    </item>
    <item>
      <title>Can AI actually find the root cause of a bug, or does it just sound confident?</title>
      <dc:creator>Atharva Panegai</dc:creator>
      <pubDate>Sat, 20 Jun 2026 14:14:06 +0000</pubDate>
      <link>https://dev.to/atharvapanegai/can-ai-actually-find-the-root-cause-of-a-bug-or-does-it-just-sound-confident-5e0</link>
      <guid>https://dev.to/atharvapanegai/can-ai-actually-find-the-root-cause-of-a-bug-or-does-it-just-sound-confident-5e0</guid>
      <description>&lt;p&gt;We built Pinaka to write root cause analyses automatically — read a Jira ticket, search the codebase, trace the failure, post the RCA as a comment. Before putting that in front of real teams, we needed an honest answer to one question: &lt;strong&gt;does it actually find the right bug, or does it just sound right?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;"Sound right" is the trap with every AI tool that explains why something broke. LLMs are extremely good at producing a plausible-sounding root cause. Plausible and correct are not the same thing, and the gap between them is exactly where a team loses trust in a tool — usually after the first time it sends someone chasing the wrong file for an hour.&lt;/p&gt;

&lt;p&gt;So we picked a real bug, in a real production codebase, with a real human-written root cause already on record — and tested two versions of Pinaka against it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The test setup
&lt;/h2&gt;

&lt;p&gt;We used BullMQ (github.com/taskforcesh/bullmq), a Redis-based job queue library for Node.js with thousands of GitHub stars and heavy production use. It's also part of our own stack, which meant we could judge the RCA quality ourselves, not just trust the AI's confidence score.&lt;/p&gt;

&lt;p&gt;The bug: issue #2487 — when a job has stackTraceLimit set and fails multiple times on retry, the stack trace shown never updates. It always shows the first failure, even on the third or fourth retry. A real BullMQ maintainer confirmed it as a genuine bug, and it was fixed in v5.4.6.&lt;/p&gt;

&lt;p&gt;We indexed the BullMQ repo into Pinaka, then ran two separate RCA passes:&lt;/p&gt;

&lt;p&gt;Run A — code only. A realistically vague Jira ticket, the way an engineer would actually file it — no file names, no hypotheses, just "the stack trace doesn't update after retries." Pinaka had to find the bug using semantic search over the codebase alone.&lt;/p&gt;

&lt;p&gt;Run B — code plus runtime context. Same indexed repo, but this time Pinaka also received the kind of execution-time data our SDK is built to capture automatically — real option values, job state, and the actual sequence of events as they occur in a live Redis instance.&lt;/p&gt;

&lt;p&gt;We graded both outputs against the real fix the BullMQ team shipped.&lt;/p&gt;

&lt;h2&gt;
  
  
  What code-only RCA found
&lt;/h2&gt;

&lt;p&gt;Pinaka correctly identified the exact file (job.ts) and exact method (moveToFailed()), and gave a coherent step-by-step trace of how the bug manifested across retries. It even ran through three plausible alternative explanations and ruled each one out with specific evidence from the test suite — which is the kind of reasoning you'd want from a senior engineer doing this by hand.&lt;/p&gt;

&lt;p&gt;What it didn't get: the precise line-level cause. It described the bug correctly in behavior but proposed a fix that was functionally valid but more complicated than what BullMQ's maintainers actually shipped. It also had no way of seeing that a closely related, deeper bug existed one layer down — inside the Redis Lua script BullMQ uses for atomic job updates, not in the TypeScript code at all.&lt;/p&gt;

&lt;p&gt;Against the human ground truth, we'd score this run roughly 6.5 out of 10 — right neighborhood, not quite the exact fix.&lt;/p&gt;

&lt;h2&gt;
  
  
  What runtime context found
&lt;/h2&gt;

&lt;p&gt;The second run, with real execution-time data included, didn't just refine the same answer — it surfaced a different, deeper bug entirely: what happens when stackTraceLimit is explicitly set to 0. This turned out to be a real follow-up issue BullMQ's own maintainers filed after the first fix shipped.&lt;/p&gt;

&lt;p&gt;The root cause lived in the Lua script's trim condition, which only fired when the limit was greater than zero — so a limit of exactly zero silently skipped the trim step and let stale stack traces leak into Redis. Pinaka named the exact condition (ARGV[4] &amp;gt; 0) and proposed a fix that matched the structure of what the maintainers actually merged.&lt;/p&gt;

&lt;p&gt;Against the same ground truth, this run scored closer to 9.2 out of 10.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this matters more than the score
&lt;/h2&gt;

&lt;p&gt;The interesting part isn't really "9.2 beats 6.5." It's what kind of mistake runtime context fixed. Static code reading can tell you what the code says it should do. It cannot tell you what's actually sitting in Redis at the moment of failure, or that a boolean condition silently short-circuits when a value is zero, or that the real bug spans two different layers of the system — application code and the Lua script running atomically inside the database. That's not a knowledge gap an LLM can read its way out of. It's a visibility gap, and the only fix for a visibility gap is actually capturing what happened at runtime.&lt;/p&gt;

&lt;p&gt;That's the whole bet behind shipping @getpinaka/sdk instead of building a tool that only reads your GitHub repo: a lot of real production bugs don't live in the code you can see. They live in the gap between what the code says and what actually happened.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where we'd push back on our own result
&lt;/h2&gt;

&lt;p&gt;A few things we don't want to bury in fine print:&lt;/p&gt;

&lt;p&gt;Run A's input was more informative than real production logs usually are. We wrote the simulated logs to explicitly state facts an engineer would have to dig for in practice. If anything, this means the 6.5 score is generous to the code-only condition — the real-world gap between code-only and SDK-instrumented RCA is probably larger than what we measured here.&lt;/p&gt;

&lt;p&gt;Run A and Run B technically targeted two related but different bugs, not a strict apples-to-apples test on one bug with and without context. They're both part of the same GitHub issue thread, and the second was filed as a direct follow-up to the first — but a tighter version of this test would hold the bug constant and vary only the context.&lt;/p&gt;

&lt;p&gt;This is one bug, on one repo, run once per condition. It's a real qualitative case study, not a statistically powered benchmark. We're running the same methodology against issues in TypeORM and Prisma next, and we'll publish what we find — including if it doesn't look as clean as this one.&lt;/p&gt;

&lt;p&gt;Run B's runtime context was constructed, not captured live by the SDK. The next version of this test uses a real instrumented service and a real crash, end to end.&lt;/p&gt;

&lt;p&gt;We'd rather tell you where this benchmark is thin than have you find it yourself in the GitHub issue thread — which, if you're the kind of engineer who reads root cause analyses for a living, you probably will anyway.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

&lt;p&gt;If you want to see what Pinaka does on your own codebase join the waitlist at &lt;a href="https://getpinaka.com" rel="noopener noreferrer"&gt;getpinaka.com&lt;/a&gt; We're a small team building this in public, and benchmarks like this one are how we're deciding what to build next, not just what to put in a launch post.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>productivity</category>
      <category>automation</category>
    </item>
  </channel>
</rss>
