Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .agents/plugins/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"plugins": [
{
"name": "apple-notes",
"version": "2.6.15",
"version": "2.6.16",
"source": {
"source": "local",
"path": "./codex"
Expand Down
2 changes: 1 addition & 1 deletion .antigravity-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"plugins": [
{
"name": "apple-notes",
"version": "2.6.15",
"version": "2.6.16",
"description": "Manage Apple Notes through natural language - create, search, read, update, delete, organize folders, inspect metadata, run diagnostics, and work with attachments (macOS only).",
"source": {
"source": "local",
Expand Down
2 changes: 1 addition & 1 deletion .antigravity-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "apple-notes",
"version": "2.6.15",
"version": "2.6.16",
"description": "Manage Apple Notes through natural language - create, search, read, update, delete, organize folders, inspect metadata, run diagnostics, and work with attachments (macOS only).",
"author": {
"name": "Rob Sweet",
Expand Down
2 changes: 1 addition & 1 deletion .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
{
"name": "apple-notes",
"description": "Manage Apple Notes through natural language - create, search, read, update, delete, and organize notes and folders",
"version": "2.6.15",
"version": "2.6.16",
"author": {
"name": "Rob Sweet",
"email": "rob@superiortech.io"
Expand Down
2 changes: 1 addition & 1 deletion .claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "apple-notes",
"version": "2.6.15",
"version": "2.6.16",
"description": "Manage Apple Notes through natural language - create, search, read, update, delete, and organize notes and folders (macOS only)",
"author": {
"name": "Rob Sweet",
Expand Down
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
## [Unreleased]

## [2.6.16] - 2026-08-06

### Fixed
- **Every tool advertised an output schema that rejected undeclared keys, discarding otherwise-correct results.** The MCP **client** validates a result's `structuredContent` against the JSON Schema the server *advertised*, not against the server's own zod object — and a bare zod raw shape renders as `additionalProperties: false`. So any field a handler emits that its schema doesn't enumerate is a hard client-side `-32602 … data must NOT have additional properties`, throwing away a payload the handler computed correctly. The server never notices, because zod's own parse silently *strips* unknown keys instead of failing, which is exactly why the `registerTool`/`outputSchema` migration's "all fields optional, no `.strict()`" read as permissive: it covered optionality, not undeclared keys. All **36 tools** in this repo were advertising `additionalProperties: false`. Every tool now registers through a wrapper applying `.passthrough()`, advertising `additionalProperties: true` — the contract that migration intended. Found while fixing the same defect in the sibling apple-mail-mcp (sweetrb/apple-mail-mcp#135), where it was not latent: it broke `get-mail-stats` on every call for anyone with IMAP configured.

### Added
- **The outputSchema contract test now asserts that every tool tolerates undeclared keys.** The existing checks — every tool has an `outputSchema`, none requires a field — could not see this class, because they inspect the advertised schema and round-trip only the diagnostic tools; a tool whose payload carries an undeclared key passes CI and fails in the user's client. The suite now fails any tool advertising `additionalProperties: false`, so this cannot silently return.

## [2.6.15] - 2026-08-05
### Changed
- Dependency bump via Dependabot; committed bundle rebuilt. (automated)
Expand Down
80 changes: 44 additions & 36 deletions build/index.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion codex/.codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "apple-notes",
"version": "2.6.15",
"version": "2.6.16",
"description": "Manage Apple Notes through natural language - create, search, read, update, delete, organize folders, inspect metadata, run diagnostics, and work with attachments (macOS only).",
"author": {
"name": "Rob Sweet",
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "apple-notes-mcp",
"version": "2.6.15",
"version": "2.6.16",
"packageManager": "pnpm@11.9.0",
"description": "MCP server for Apple Notes - create, search, update, and manage notes via Claude and other AI assistants",
"type": "module",
Expand Down
Loading