Does Claude Fable 5.1 know better-auth 1?

Partly: in 3 runs, Claude Fable 5.1's better-auth attribution reaches 1.3.0 (2025-07-19) and 1.4.0 (2025-11-22), inside better-auth 1, and stops there — better-auth was at 1.7.3 when this index last verified against it (2026-09-06). That is ~7 to ~11 months below the training cutoff the subject stated in those runs (2026-06). 3 findings are currently charged against Claude Fable 5.1 on better-auth (2x S2 silently-wrong, 1x S3 deprecated), each reproduced in a published run and checked against better-auth's own release notes. Read the boundary precisely: it is the newest release whose contents the model can correctly attribute to that release, not the newest better-auth feature it can use. Past it a model often writes working code with a newer API while naming the wrong release for it.

Answer class inside, decided by one rule applied to every page of this kind: every measured boundary is at or above the first release of the major named in the question. Every figure below is read from the dataset at build time; nothing on this page is written by hand.

The measurements

BatteryNewest release it can placeOldest it cannotLag vs stated cutoff
v6 2026-09-06 1.3.0
2025-07-19
1.4.0
2025-11-22
~11 months
v7-c 2026-09-06 1.4.0
2025-11-22
1.5.0
2026-03-01
~7 months
v7-d 2026-09-06 1.3.0
2025-07-19
1.4.0
2025-11-22
~11 months

How repeatable is this?

3 measurements of this pair, giving 2 different boundaries — 126 days apart, one release apart. No two of them were drawn from an identical prompt, so the spread mixes prompt differences with draw variance.

better-auth published 4 minor or major releases in the twelve months before this model’s stated cutoff, which is the scale a spread should be read against.

What Claude Fable 5.1 gets wrong about better-auth

“Chargeable” means the change was published before this model’s own stated cutoff, so it had the opportunity to know it.

SeverityBeliefChanged inChargeableProof
S2silently-wrong Denies the email-OTP plugin has a resend-reuse option and rebuilds it out of generateOTP plus a Redis cache — under storeOTP: 'hashed', which is the one configuration in which the real option refuses to reuse
emailOTP({ resendStrategy })
1.5.6
2026-03-22
yes run · source
S2silently-wrong Predicts the freshness check passes for a 30-hour-old session that was used two minutes ago, and names updatedAt as the anchor — the pre-1.6.0 semantics, held consistently across two tasks
session.freshAge (measured from session.createdAt)
1.6.0
2026-04-06
yes run · source
S3deprecated Denies the two-factor client plugin takes a page option, names twoFactorPage correctly, and dates it to the pre-1.0 releases as something since removed
twoFactorClient({ twoFactorPage })
1.5.6
2026-03-22
yes run · source

What to do about it

The better-auth correction pack states what is true now for each corrected fact, with a primary-source citation, as markdown you can paste into a rules file (raw). What a correction pack measurably changed when one was tested — a pre-registered run on zod — is on the benchmark page, including where it changed nothing.

Runs

The same question, asked of the others

All of them at once: Which Claude model knows better-auth 1 best?

Other subjects on better-auth:

Claude Fable 5.1 on the other libraries: