perplexed

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 Model union, lazily-parsed tool-input stream events, new tool_change events breaking exhaustive switches — turned out to touch nothing in our claudeService: the upgrade compiled clean with zero code changes. The new model_context_window_exceeded stop 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 activeWindow timer calls it now wants as window.*. 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/node pinned 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 main while development sat behind — backwards, per the Lossless tier model. development is fast-forwarded to main, and the campaign work lands on development where 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

  • --fix sweep for the 21 auto-fixable window.* timer warnings

  • Consider handling the new model_context_window_exceeded stop reason explicitly in claudeService.ts