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 acrosssrc/,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/pathsremoved) — 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/nodepinned 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.