lmstud-yo

Four dead dependencies removed, zero left — lmstud-yo slims to a pure Obsidian plugin

fastify, the MCP SDK, zod, and a mystery package literally named 'dev' were riding along from the starter template with zero imports. All gone, along with the Dependabot noise they generate. Toolchain bumped to TypeScript 6 + ESLint 10 in the same pass.

Why Care?

Every dependency in package.json is something Dependabot scans, npm audits, and a reader of the repo assumes you use. lmstud-yo — the bridge that lets Obsidian commands call your local LM Studio models — was declaring four runtime dependencies it never imported: fastify, @modelcontextprotocol/sdk, zod, and a package literally named dev (almost certainly a typo'd install that stuck). All starter-template lineage; all dead weight; all a standing source of vulnerability-alert noise about code paths that never execute.

Cite-wide purged the same trio back in May. This pass extends that precedent to lmstud-yo: zero runtime dependencies, matching what the plugin actually is — a thin, esbuild-bundled bridge.

What's New?

  • Removed: fastify, @modelcontextprotocol/sdk, zod, dev — verified zero imports across src/, main.ts, and build scripts before removal. No functionality change is possible from deleting never-imported code.

  • TypeScript 5.8.3 → 6.0.3 with the tsconfig migrated off the deprecated options properly (moduleResolution: "node""bundler", baseUrl/paths removed) — clean on 6 with no escape hatches, which is the paid-up ticket for the eventual native TypeScript 7.

  • ESLint 9.32 → 10.7, typescript-eslint 8.65, esbuild 0.25.8 → 0.28.1, builtin-modules 5.3.

  • @types/node pinned down 24 → 22 — Obsidian ships Electron 39 / Node 22; the types now match the plugin's real runtime.

Verified: tsc -noEmit clean on TS 6, esbuild production bundle at 12 KB.

Part of the family-wide dependency campaign: content-farm/context-v/plans/Dependency-Upgrades-Across-Plugin-Family.md.