23 versions of Anthropic SDK in one hop — and the branch tiers snap back into line
Perplexed jumps @anthropic-ai/sdk 0.92 → 0.115 without a single code change, picks up Obsidian's 0.4 lint ruleset, and development catches up to the 0.3.0 release that had run ahead of it.
Why Care?
Perplexed talks to frontier-model APIs for a living — Perplexica, Perplexity, and Claude itself. SDK drift on that surface is real risk: the Anthropic SDK moved 23 releases (0.92 → 0.115) while we shipped research templates, accumulating middleware reworks, stream-event changes, and retired-model-ID removals along the way. Better to cross that gap deliberately, with the release notes read, than be forced across it by a breakage.
What's New?
@anthropic-ai/sdk 0.92.0 → 0.115.0. The researched risk list — retired model IDs dropped from the
Modelunion, lazily-parsed tool-input stream events, newtool_changeevents breaking exhaustive switches — turned out to touch nothing in ourclaudeService: the upgrade compiled clean with zero code changes. The newmodel_context_window_exceededstop reason is now available to handle when we want it.eslint-plugin-obsidianmd 0.2.9 → 0.4.1 — Obsidian's own ruleset, which promptly flagged 29 warnings (0 errors), mostly
activeWindowtimer calls it now wants aswindow.*. Logged as a follow-up sweep; 21 of 29 are auto-fixable.Routine currency: ESLint 10.7, typescript-eslint 8.65, globals 17.7, esbuild 0.28.1.
@types/nodepinned down 25 → 22 to match Obsidian's Electron 39 / Node 22 runtime — the types now describe the APIs the plugin actually has at runtime.Branch hygiene: the 0.3.0 release work had landed on
mainwhiledevelopmentsat behind — backwards, per the Lossless tier model.developmentis fast-forwarded tomain, and the campaign work lands ondevelopmentwhere it belongs.
Verified: full pnpm build green — ESLint (0 errors), tsc -noEmit on
TypeScript 6.0.3, esbuild production bundle.
Part of the family-wide dependency campaign:
content-farm/context-v/plans/Dependency-Upgrades-Across-Plugin-Family.md.
Follow-ups
--fixsweep for the 21 auto-fixablewindow.*timer warningsConsider handling the new
model_context_window_exceededstop reason explicitly inclaudeService.ts