Commit graph

212 commits

Author SHA1 Message Date
Aaron Bockelie
8bb580cc56 fix: .mcpignore semantics, TLS 1.3 startup, rename extension (#250, #252, #253)
Bundles the three reported bugs plus an unreported under-blocking bug found
while writing the tests for #250, and adds the coverage tooling that would
have caught all four.

#250 — .mcpignore negation was inverted
The parser stripped the leading '!' before Minimatch saw it, so .negate was
always false and the branch reading it was dead code. '!folder/*' compiled
into a positive exclusion: negation did not merely fail, it inverted.

Under-blocking (found while testing the above, not reported)
Patterns were handed to Minimatch raw, so two gitignore rules were never
implemented: a slash-less pattern matches at any depth ('*.secret' must hide
'a/b/creds.secret'), and a directory match covers its contents ('private/'
must hide 'private/notes.md'). No consumer of isExcluded() checks ancestors —
every caller passes a full file path — so nothing compensated downstream. The
plugin's own shipped .mcpignore template promises both behaviours, so a user
following it believed private files were hidden while they were being served
to the model. Patterns are now translated into the globs that implement
gitignore semantics, and negation is interpreted here rather than by Minimatch.

#252 — min TLS 1.3 crashed the server
secureProtocol mapped 1.3 to 'TLSv1_3_method', which OpenSSL never shipped, so
context creation threw "Unknown method: TLSv1_3_method". Switched to minVersion,
which also fixes a second latent bug: secureProtocol PINS one version, so
"minimum TLS 1.2" was silently refusing TLS 1.3 clients. The setting now
behaves as the floor it is labelled.

#253 — rename dropped the extension
'newName' was concatenated onto the source directory verbatim, so renaming
'note.md' to 'renamed' produced an extension-less file that drops out of
markdown views. The source extension is now carried over when newName omits
one, before the overwrite guard so it checks the right path.

Coverage + test contract
All four bugs shipped through code paths with zero coverage. Adds `make
coverage` / `coverage-map` / `coverage-gate`, a ratcheting coverageThreshold
(security boundary held to a far higher floor than global, since a hole there
leaks vault content), and tests/test-contract.test.ts enforcing that a green
run means something: no .only, no .skip, every file asserts, no tautologies.
The contract immediately caught an `expect(true).toBe(true)` placeholder in the
path-validator suite, now replaced with real assertions.

BREAKING (.mcpignore, both intended):
- The double-'!' workaround for #250 now correctly parses as a double negation
  (net exclude) and will stop working.
- A bare '*' now excludes at every depth, per gitignore, rather than top-level
  only. This is what makes the '*' + '!keep/**' whitelist idiom work.
2026-07-13 17:46:50 -05:00
Aaron Bockelie
2349a2b13d chore: Bump version to 0.11.40 2026-07-05 13:15:57 -05:00
Aaron Bockelie
f58c66fdd6 fix(manifest): drop "Obsidian" from plugin description
Obsidian's portal review (0.11.39 scan, 2026-07-04) flagged the
description as a gating Error: it must not contain the word "Obsidian"
— redundant in the plugin-directory context. Reword via the SoT
(package.json → sync to manifest.json), keeping the "built-in MCP
server, no external server to run" framing without naming Obsidian.

Claude-Session: https://claude.ai/code/session_01DgYBhBUkeLzqm6BLrnWL6t
2026-07-05 13:15:41 -05:00
Aaron Bockelie
df9b913ee1 chore: Bump version to 0.11.39 2026-07-04 00:05:17 -05:00
Aaron Bockelie
b6a54dae04 chore: Bump version to 0.11.38 2026-07-03 23:31:34 -05:00
Aaron Bockelie
4f697dd7a9 docs: rewrite community-directory short description — verbs + native edge, drop "semantic"
The short description is the one-liner shown in Obsidian's in-app community
browser search — the highest-leverage line for cold discovery, and where the
install base actually comes from. The old copy led with "semantic access" and
spelled out "Model Context Protocol (MCP)" — jargon in the most valuable
150 chars. New copy matches the repositioned README: concrete verbs first, the
native/no-external-server edge stated, MCP-explainer dropped.

Set via `make set-description` (SoT: package.json → synced to manifest.json).
2026-07-03 23:29:43 -05:00
Aaron Bockelie
88f0ce5efd chore: Bump version to 0.11.37 2026-07-03 21:30:21 -05:00
Aaron Bockelie
fc47349e18 chore(deps): upgrade dev toolchain — eslint 10, typescript 6, and grouped bumps
Incorporates the open dependabot dev-dependency PRs as one coherent, tightly
verified upgrade rather than five separate rebase/CI cycles, since they interact
across the build/lint toolchain:

- eslint 9.39.2 → 10.5.0 and @eslint/js 9.39.2 → 10.0.1 (#235 + #236 — these are
  coupled: @eslint/js@10 peer-requires eslint@10, so #236 could only ever resolve
  alongside #235; neither lands alone)
- typescript 5.9.3 → 6.0.3 (#237)
- typescript-eslint / @typescript-eslint/utils 8.60.1 → 8.62.0, esbuild
  0.28.0 → 0.28.1, globals 17.6.0 → 17.7.0, obsidian 1.13.0 → 1.13.1 (#246,
  which also subsumes the standalone esbuild bump in #233)
- actions/checkout v6 → v7 across all workflows (#240)

TypeScript 6 turns two tsconfig deprecations into errors. Fixed by modernizing
the config, not suppressing — Obsidian's community-plugin source review forbids
`ignoreDeprecations`-style escape hatches and rewards tight configs:

- dropped `baseUrl: "."` (TS5101) — unused; every local import is relative
- `moduleResolution: "node"` → `"bundler"` (TS5107) — the correct modern value
  for an esbuild-bundled project with extensionless imports (node16/nodenext
  would force `.js` extensions and break every relative import)

Also ran `npm audit fix` (security fixes are hold-exempt) clearing two dev/test
transitive advisories (@babel/core file-read, js-yaml merge-key DoS) that were
pre-existing on main via the jest/istanbul chain — `npm audit` now reports 0.

Verified tight: `npm run build && npm run lint && npm test` all green, 352/352
tests pass, no rule suppressions added.
2026-07-03 21:13:32 -05:00
Aaron Bockelie
6e1e7b6137 chore: Bump version to 0.11.36 2026-06-24 10:50:54 -05:00
Aaron Bockelie
9dc74f063f chore: Bump version to 0.11.35 2026-06-24 10:08:42 -05:00
Aaron Bockelie
d8860751fb chore: Bump version to 0.11.34 2026-06-24 09:27:19 -05:00
Aaron Bockelie
dc6f476856 chore: Bump version to 0.11.33 2026-06-09 11:16:22 -05:00
Aaron Bockelie
ac8946aa95 chore(deps-dev): bump development-dependencies group
Supersedes #217 (dependabot). Brings the dev toolchain current:
@types/node 25.3→25.9, @typescript-eslint/utils + typescript-eslint
8.56→8.60, esbuild 0.27→0.28, globals 17.3→17.6, jest 30.2→30.4,
jiti 2.6→2.7, obsidian 1.12.2→1.13.0, ts-jest 29.1→29.4.

The typescript-eslint 8.60 and obsidian 1.13.0 type bumps surface new
lint findings; cleared in the follow-up commit.
2026-06-09 11:06:05 -05:00
Aaron Bockelie
7b6dd03367 chore: Bump version to 0.11.32 2026-06-05 17:42:50 -05:00
dependabot[bot]
43786033a2
chore(deps): bump yaml
Bumps the production-dependencies group with 1 update in the / directory: [yaml](https://github.com/eemeli/yaml).


Updates `yaml` from 2.8.4 to 2.9.0
- [Release notes](https://github.com/eemeli/yaml/releases)
- [Commits](https://github.com/eemeli/yaml/compare/v2.8.4...v2.9.0)

---
updated-dependencies:
- dependency-name: yaml
  dependency-version: 2.9.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: production-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-02 03:25:15 +00:00
Aaron Bockelie
37dd230b85 chore: Bump version to 0.11.31 2026-05-25 14:58:16 -05:00
Aaron Bockelie
4fddaab955 chore: Bump version to 0.11.30 2026-05-24 17:08:33 -05:00
Aaron Bockelie
759ad09a9d chore: Bump version to 0.11.29 2026-05-18 22:50:53 -05:00
Aaron Bockelie
bf1aa6319a chore(worker): remove dormant worker-offload path (ADR-105, closes #197)
The worker-thread pool ratified/extended by ADR-104 has never executed a
single request since introduction (v0.5.8b, 22742bd): ConnectionPool's
action-level workerOps gate (tool.vault.search, …) never matched the
operation-level method strings the pool emits (tool.vault, tool.edit, …),
so processWithWorker was unreachable. Independently, the worker built to
dist/workers/workers/semantic-worker.js while WorkerManager loaded
dist/workers/semantic-worker.js — load would have failed anyway.

Verified dead against current main; no CPU-starvation field reports.
Fixing forward was rejected: it would ship an untested concurrency path
that widens the #139 parallel-edit race via a new TOCTOU window for an
unproven perf need (see #197 analysis).

- delete src/workers/semantic-worker.ts, src/utils/worker-manager.ts,
  build-worker.js; drop build:worker + the build-worker.js build step
- strip worker wiring from ConnectionPool (retained as a main-thread
  bounded queue — the only behaviour that ever ran) and the dead
  prepareWorkerContext/workerScript from mcp-server.ts
- ADR-105 records the removal as a partial reversal of ADR-104; ADR-104
  stays Accepted (SSE-route deconfliction half, shipped #196, still
  governs) with a banner pointing to ADR-105

Behaviour-preserving by construction: the deleted path never ran.
make check green (build + lint 0 errors + 225/225 tests).
2026-05-18 22:26:14 -05:00
Aaron Bockelie
7f41399752 chore: Bump version to 0.11.28 2026-05-18 21:55:41 -05:00
Aaron Bockelie
3598294749 chore: Bump version to 0.11.27 2026-05-18 21:25:06 -05:00
Aaron Bockelie
c46d5e13b2 chore: Bump version to 0.11.26 2026-05-16 23:51:53 -05:00
Aaron Bockelie
b9d99edfd7 feat(bases): replace new Function with expression-eval (ADR-201)
PR2 of 2 for #180 (ADR-201). Closes the arbitrary-code-execution vector
reachable through a synced/shared `.base` file.

- Drop `new Function('context', 'with(context){return ${expr}}')` (and its
  no-implied-eval eslint-disable) from expression-evaluator.ts.
- Parse with expression-eval@5.0.1 (jsep grammar: no eval/Function/new, no
  global scope; member denylist built in). Pinned exact; jsep 0.3.5 is its
  audited transitive parser. Both >7d old; npm audit 0 vulns.
- Defense-in-depth AST pre-walk (assertNoForbiddenAccess): rejects
  constructor/__proto__/prototype member access (Identifier AND computed
  ["constructor"] forms) and ThisExpression, independent of the library's
  internal list — ADR-201's explicit, tested no-globals property lives in
  our code, not a transitive dep.
- createEvalContext and all helpers untouched → behavioural parity.

Differential corpus (tests/bases-expression-evaluator.test.ts, from PR1):
57 EVAL_CASES still green = expression-eval == old new Function for every
realistic Bases construct; the formerly-executing escapes (2/42/99 under
new Function) now fail closed; SECURITY set never reaches a function, the
real global, or a value.

No behavioural change for legitimate `.base` expressions. Breaking only by
design: the RCE vectors, `this`, and prototype-chain access are now
refused. Clears the Obsidian "Dynamic Code Execution" finding.

209/209 tests; build + lint clean. Refs #180, ADR-201
2026-05-16 22:57:43 -05:00
Aaron Bockelie
aa346d4c9a chore: Bump version to 0.11.25 2026-05-16 14:23:03 -05:00
Aaron Bockelie
366d329140 refactor(bases): migrate js-yaml → maintained yaml package
Closes #174. Obsidian source-code review flagged js-yaml (unmaintained) for
replacement. Rewire bases-api.ts's 5 call sites onto yaml-bridge; drop
js-yaml + @types/js-yaml. yaml pinned to 2.8.4 (published 2026-05-02, clears
the project's 7-day supply-chain hold; 2.9.0 was 5 days old). Existing
overrides.yaml reconciled to $yaml so the direct dep governs transitive
resolution. Behaviour-equivalence proven by the differential corpus.
2026-05-16 14:08:46 -05:00
Aaron Bockelie
164e44bf0b chore: Bump version to 0.11.24 2026-05-16 13:43:43 -05:00
Aaron Bockelie
abaa9106fb build: replace builtin-modules with native node:module builtinModules
Obsidian source-code review flags builtin-modules as a package to replace.
node:module has exposed builtinModules natively since Node 6.x; esbuild only
used it to externalize Node builtins from the bundle. Behavior-equivalent
swap, devDependency removed.
2026-05-16 12:45:28 -05:00
Aaron Bockelie
7a0051d301 chore: Bump version to 0.11.23 2026-05-16 12:26:28 -05:00
Aaron Bockelie
70884bbcad chore: Bump version to 0.11.22 2026-05-16 12:15:51 -05:00
Aaron Bockelie
46ed67361a chore(meta): make pattern for plugin description; rewrite copy
package.json is now the single source of truth for the plugin description
(as it already effectively is for version). sync-version.mjs propagates it
into manifest.json; mcpb/manifest.json keeps its Claude-Desktop-specific
description and is intentionally not synced.

Adds scripts/set-description.mjs + 'make set-description DESC=...' so neither
JSON file is hand-edited (250-char Obsidian limit enforced).

Rewrites the word-salad description to reality-based copy naming the actual
client and mechanism:
  'Give Claude Desktop and other AI assistants semantic access to your notes
   through a built-in Model Context Protocol (MCP) server.'
2026-05-16 12:07:52 -05:00
Aaron Bockelie
3608eac37b chore(release): bump version to 0.11.21 and raise minAppVersion to 1.6.6
The plugin code already calls APIs introduced in newer Obsidian versions
(FileManager.trashFile in 1.6.6, Workspace.getLeaf in 0.16.0,
Vault.createFolder in 1.4.0, ToggleComponent.setDisabled in 1.2.3,
AbstractTextComponent.setDisabled in 1.2.3, ButtonComponent.setTooltip
in 1.1.0). Declaring minAppVersion 0.15.0 was misleading — anyone
between 0.15 and 1.5 would have the plugin load and then crash at
runtime. Set the floor to 1.6.6 to match the highest API actually used.
2026-05-15 15:01:29 -05:00
Aaron Bockelie
1c6fae133f chore(deps-dev): bump eslint-plugin-obsidianmd to ^0.3.0
Matches the version Dependabot is proposing in #153 so the lint-config
support below lands in main ahead of the broader dev-deps bundle merging.
2026-05-15 15:00:44 -05:00
Aaron Bockelie
dfa5affad7 chore: Bump version to 0.11.20 2026-05-15 13:58:25 -05:00
Aaron Bockelie
61417387d3 chore: Bump version to 0.11.19 2026-05-15 13:42:45 -05:00
Aaron Bockelie
6e8b6f2a3e chore: Bump version to 0.11.18 2026-05-15 13:20:32 -05:00
Aaron Bockelie
b79ca5fdb9 chore(deps): Clear residual audit vulnerabilities + pin yaml
After merging the dependabot batch, npm audit still flagged 5
transitive vulns (4 high, 1 moderate). Running npm audit fix lifts
deep deps to patched ranges and resolves all of them — except it
tries to land yaml@2.9.0 which was published 2026-05-11, inside the
7-day hold window.

Added a package.json override to pin yaml to ~2.8.4 (published
2026-05-02, 13 days aged). 2.8.4 already fixes the CVE-flagged
"Stack Overflow via deeply nested YAML collections" (range
2.0.0-2.8.2), and we get the safety of an aged release.

Final state: 0 vulnerabilities, 127/127 tests still green, all
upgrades respect the 7-day rule.
2026-05-15 13:08:53 -05:00
dependabot[bot]
71f0856c32
chore(deps): Bump the production-dependencies group across 1 directory with 5 updates
Bumps the production-dependencies group with 5 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [@modelcontextprotocol/sdk](https://github.com/modelcontextprotocol/typescript-sdk) | `1.26.0` | `1.29.0` |
| [minimatch](https://github.com/isaacs/minimatch) | `10.2.2` | `10.2.5` |
| [node-forge](https://github.com/digitalbazaar/forge) | `1.3.3` | `1.4.0` |
| [turndown](https://github.com/mixmark-io/turndown) | `7.2.2` | `7.2.4` |
| [zod](https://github.com/colinhacks/zod) | `4.3.6` | `4.4.3` |



Updates `@modelcontextprotocol/sdk` from 1.26.0 to 1.29.0
- [Release notes](https://github.com/modelcontextprotocol/typescript-sdk/releases)
- [Commits](https://github.com/modelcontextprotocol/typescript-sdk/compare/v1.26.0...v1.29.0)

Updates `minimatch` from 10.2.2 to 10.2.5
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/minimatch/compare/v10.2.2...v10.2.5)

Updates `node-forge` from 1.3.3 to 1.4.0
- [Changelog](https://github.com/digitalbazaar/forge/blob/main/CHANGELOG.md)
- [Commits](https://github.com/digitalbazaar/forge/compare/v1.3.3...v1.4.0)

Updates `turndown` from 7.2.2 to 7.2.4
- [Release notes](https://github.com/mixmark-io/turndown/releases)
- [Commits](https://github.com/mixmark-io/turndown/compare/v7.2.2...v7.2.4)

Updates `zod` from 4.3.6 to 4.4.3
- [Release notes](https://github.com/colinhacks/zod/releases)
- [Commits](https://github.com/colinhacks/zod/compare/v4.3.6...v4.4.3)

---
updated-dependencies:
- dependency-name: "@modelcontextprotocol/sdk"
  dependency-version: 1.29.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: production-dependencies
- dependency-name: minimatch
  dependency-version: 10.2.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
- dependency-name: node-forge
  dependency-version: 1.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: production-dependencies
- dependency-name: turndown
  dependency-version: 7.2.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
- dependency-name: zod
  dependency-version: 4.4.3
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: production-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-15 18:00:34 +00:00
Aaron Bockelie
b26dada3e2 chore: Bump version to 0.11.17 2026-05-15 11:53:14 -05:00
Aaron Bockelie
1093939901 fix: Correct author name to Aaron Bockelie
package.json had a stale "Aaron Blumenfeld" that propagated into
mcpb/manifest.json when sync-version ran. The top-level manifest.json
already had the right value (Aaron Bockelie, matching git author).
2026-05-15 11:45:43 -05:00
Aaron Bockelie
647135bb76 chore: Bump version to 0.11.16 2026-03-26 11:08:32 -05:00
Aaron Bockelie
55d403ae3b chore: Bump version to 0.11.15 2026-03-19 08:51:57 -05:00
Aaron Bockelie
0458b4f612 chore: Bump version to 0.11.14 2026-03-14 21:10:16 -05:00
Aaron Bockelie
cfc0c3cd08 chore: Bump version to 0.11.13 2026-03-14 20:49:48 -05:00
Aaron Bockelie
87e2b4c08c
Merge pull request #92 from aaronsb/dependabot/npm_and_yarn/development-dependencies-0b2a745730
chore(deps-dev): Bump the development-dependencies group across 1 directory with 6 updates
2026-03-14 20:40:04 -05:00
dependabot[bot]
ac5a392f68
chore(deps-dev): Bump the development-dependencies group across 1 directory with 6 updates
Bumps the development-dependencies group with 6 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `25.0.10` | `25.2.3` |
| [@typescript-eslint/utils](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/utils) | `8.53.1` | `8.55.0` |
| [esbuild](https://github.com/evanw/esbuild) | `0.27.2` | `0.27.3` |
| [globals](https://github.com/sindresorhus/globals) | `17.0.0` | `17.3.0` |
| [obsidian](https://github.com/obsidianmd/obsidian-api) | `1.11.4` | `1.12.0` |
| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.53.1` | `8.55.0` |



Updates `@types/node` from 25.0.10 to 25.2.3
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Updates `@typescript-eslint/utils` from 8.53.1 to 8.55.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/utils/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.55.0/packages/utils)

Updates `esbuild` from 0.27.2 to 0.27.3
- [Release notes](https://github.com/evanw/esbuild/releases)
- [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md)
- [Commits](https://github.com/evanw/esbuild/compare/v0.27.2...v0.27.3)

Updates `globals` from 17.0.0 to 17.3.0
- [Release notes](https://github.com/sindresorhus/globals/releases)
- [Commits](https://github.com/sindresorhus/globals/compare/v17.0.0...v17.3.0)

Updates `obsidian` from 1.11.4 to 1.12.0
- [Changelog](https://github.com/obsidianmd/obsidian-api/blob/master/CHANGELOG.md)
- [Commits](https://github.com/obsidianmd/obsidian-api/commits)

Updates `typescript-eslint` from 8.53.1 to 8.55.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.55.0/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 25.2.3
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development-dependencies
- dependency-name: "@typescript-eslint/utils"
  dependency-version: 8.55.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development-dependencies
- dependency-name: esbuild
  dependency-version: 0.27.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development-dependencies
- dependency-name: globals
  dependency-version: 17.3.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development-dependencies
- dependency-name: obsidian
  dependency-version: 1.12.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development-dependencies
- dependency-name: typescript-eslint
  dependency-version: 8.55.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-23 09:44:22 +00:00
dependabot[bot]
009ec6e2f2
chore(deps): Bump the production-dependencies group across 1 directory with 4 updates
Bumps the production-dependencies group with 4 updates in the / directory: [@modelcontextprotocol/sdk](https://github.com/modelcontextprotocol/typescript-sdk), [cors](https://github.com/expressjs/cors), [minimatch](https://github.com/isaacs/minimatch) and [zod](https://github.com/colinhacks/zod).


Updates `@modelcontextprotocol/sdk` from 1.25.3 to 1.26.0
- [Release notes](https://github.com/modelcontextprotocol/typescript-sdk/releases)
- [Commits](https://github.com/modelcontextprotocol/typescript-sdk/compare/v1.25.3...v1.26.0)

Updates `cors` from 2.8.5 to 2.8.6
- [Release notes](https://github.com/expressjs/cors/releases)
- [Changelog](https://github.com/expressjs/cors/blob/master/HISTORY.md)
- [Commits](https://github.com/expressjs/cors/compare/v2.8.5...v2.8.6)

Updates `minimatch` from 10.1.1 to 10.1.2
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/minimatch/compare/v10.1.1...v10.1.2)

Updates `zod` from 4.3.5 to 4.3.6
- [Release notes](https://github.com/colinhacks/zod/releases)
- [Commits](https://github.com/colinhacks/zod/compare/v4.3.5...v4.3.6)

---
updated-dependencies:
- dependency-name: "@modelcontextprotocol/sdk"
  dependency-version: 1.26.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: production-dependencies
- dependency-name: cors
  dependency-version: 2.8.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
- dependency-name: minimatch
  dependency-version: 10.1.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
- dependency-name: zod
  dependency-version: 4.3.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-23 09:43:57 +00:00
Aaron Bockelie
92f98a71cc fix: Remove last async-no-await in processRequest, bump to 0.11.12 2026-02-06 09:39:12 -06:00
Aaron Bockelie
f6897da6a2 fix: Address all review bot required issues - async, directives, globals
- Remove async from ~30 methods with no await expressions
- Remove stale await calls at all affected call sites
- Add descriptions to all eslint-disable directive comments
- Replace eslint-disable no-restricted-globals with globalThis.fetch
- Fix sentence case in UI text ("Read-only mode")
- Retain no-deprecated disables with descriptions for MCP SDK Server class
- Bump version to 0.11.11
2026-02-04 17:08:43 -06:00
Aaron Bockelie
f118594278 fix: Remove unnecessary async keywords and no-console disables
Fix optional review bot warnings: remove async from methods with no
await expressions, remove await from their call sites, and replace
direct console usage in debug utility with indirect globalThis
reference to avoid no-console eslint-disable comments.

Bump version to 0.11.10.
2026-02-04 11:57:35 -06:00
Aaron Bockelie
22614b5e4b fix: Eliminate all eslint any-type violations for Obsidian plugin review
Remove eslint config overrides that were masking 1,822 strict type errors
flagged by the ObsidianReviewBot. Replace all `any` types with proper
TypeScript interfaces, type guards, and narrowed types across 40 files.

- Strip eslint.config.mts overrides for no-explicit-any, no-unsafe-*
- Add proper interfaces for MCP protocol, Obsidian internals, workers
- Add paramStr/paramNum/paramBool helpers in semantic router
- Fix recursive-copy test expectations
- Remove unused dotenv dependency
- Bump version to 0.11.9
2026-02-03 21:51:55 -06:00