From efbe6fe77f051e5691a14bc14bd33d4940a39a3c Mon Sep 17 00:00:00 2001 From: Bill Ballou Date: Sat, 31 Jan 2026 20:32:57 -0500 Subject: [PATCH] chore: bump version to 1.2.0 Breaking change: update_sections now requires ifMatch parameter New features: withLineNumbers option, force parameter --- CHANGELOG.md | 24 +++++++++++++++++++++++- manifest.json | 2 +- package-lock.json | 4 ++-- package.json | 2 +- 4 files changed, 27 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 272291b..adb7b24 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,7 +6,29 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), --- -## [Unreleased] +## [1.2.0] - 2026-01-31 + +### Added +- **Line Numbers for `read_note`**: New `withLineNumbers` option prefixes each line with its 1-indexed line number (e.g., `1→# Title`, `2→Content`) + - Returns `totalLines` count for easy reference + - Designed for use with `update_sections` to ensure accurate line-based edits + - Example: `read_note("note.md", { withLineNumbers: true })` returns numbered content + +- **Force Parameter for `update_sections`**: New `force` parameter allows bypassing the version check + - Use `force: true` to skip the `ifMatch` requirement (not recommended for normal use) + - Intended for scenarios where you intentionally want to overwrite without checking + +### Changed +- **`read_note` Always Returns `versionId`**: The response now always includes `versionId` for concurrency control + - Previously only returned when `parseFrontmatter: true` + - Enables safe `update_sections` workflows by providing the ETag upfront + +### Breaking Changes +- **`update_sections` Now Requires `ifMatch`**: The `ifMatch` parameter is now required by default + - Prevents accidental overwrites when file content has changed since reading + - Get `versionId` from `read_note` response and pass it as `ifMatch` + - To opt-out, pass `force: true` (not recommended) + - Error message guides users on proper usage workflow --- diff --git a/manifest.json b/manifest.json index 4427ba1..9a86f84 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "id": "mcp-server", "name": "MCP Server", - "version": "1.1.4", + "version": "1.2.0", "minAppVersion": "0.15.0", "description": "Exposes vault operations via Model Context Protocol (MCP) over HTTP.", "author": "William Ballou", diff --git a/package-lock.json b/package-lock.json index 909548b..f23a1ab 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "mcp-server", - "version": "1.0.1", + "version": "1.1.4", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "mcp-server", - "version": "1.0.1", + "version": "1.1.4", "license": "MIT", "dependencies": { "cors": "^2.8.5", diff --git a/package.json b/package.json index dd63beb..f7ecb2f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "mcp-server", - "version": "1.1.4", + "version": "1.2.0", "description": "MCP (Model Context Protocol) server plugin - exposes vault operations via HTTP", "main": "main.js", "scripts": {