Tags

Tags give the ability to mark specific points in history as being important
  • 2026.7.0

    ---
    
    - Added `Title` annotations to each tool, providing cleaner display names for MCP clients that surface tool metadata.
  • 2026.6.1

    - **MCP read/write tool annotations**: All tools are now annotated with MCP `ToolAnnotations`, allowing MCP clients to distinguish read-only operations from write operations. This enables clients to apply appropriate confirmation prompts or permission guards based on the nature of each tool.
  • 2026.6.0

    ---
    
    - **Local SQLite cache** — All read tools (accounts, payees, categories, months, transactions, scheduled transactions, plan settings) now serve data from a local SQLite cache instead of making live API calls on every request.
    - **Delta sync** — A lazy-TTL delta syncer keeps the cache fresh with per-plan locking, minimizing redundant API traffic.
    - **Short-code plan IDs** — Plans are now identified by short codes in addition to full UUIDs, making them easier to reference in tool calls.
    - **Write tools resolve short codes** — Write/mutation tools can now resolve short codes to UUIDs before submitting requests to the YNAB API.
    - **Cache management tools** — New tools to force a sync (`sync`) and rebuild the cache from scratch (`rebuild`).
    
    - Guard against nil `Transaction` in create response before dereferencing the ID.
    - Safe type assertion and fixed double date parse in transaction handling.
    - Properly distinguish `ErrNotFound` from other errors.
    - Propagate `rows.Err` in `loadNameBook` and scope sub-transaction queries correctly.
    - Propagate DB errors from `Month`, `MonthCategory`, `queryEntityByCode`, and time/JSON marshal errors in `apply`.
    - Double-checked TTL in `EnsureFresh` to prevent redundant syncs.
    - Set FK and `busy_timeout` pragmas via DSN; wrap migrations in a transaction.
    - Move `RegisterPlanCode` to `apply.go` and strengthen plan settings test.
    
    - Removed unused `TransactionListItem` type and helpers.
    - Fixed indentation in the batch handler loop.
    - Added optional `--tag` flag to the `docker:build` mise task.
  • 2026.3.5

    Let me start by checking the git log for changes since the last tag.
    There are no commits between `2026.3.4` and `HEAD` — the tag `2026.3.4` points to the current HEAD. Let me verify this and also look at what `2026.3.4` itself contained (in case the release notes should cover that tag's changes).
    There are **no new commits** since the `2026.3.4` tag — HEAD and `2026.3.4` are different commits (HEAD is `8e03f96`, tag is `7c11fde`). Wait, they actually differ. Let me check if the tag is annotated.
    The tag is annotated and its underlying commit *is* HEAD (`8e03f96`). That confirms there are no commits after `2026.3.4`. Since the task says to prepare release notes for `2026.3.5`, there's nothing new to document yet. Let me tell you what I found and look at slightly more history to provide useful context.
    There are **no commits after the `2026.3.4` tag** — HEAD points to the same commit as `2026.3.4`. There is nothing new to include in `2026.3.5` release notes yet.
    
    If you intended to write release notes for the *current* tag (`2026.3.4`), here's what that release contained:
    
    ---
    
    - Exclude transfers from uncategorized transaction listings by default, reducing noise when reviewing uncategorized spending.
    
    - Updated README to reflect recent changes.
  • 2026.3.3

    **Bug Fixes**
    
    - Fixed handling of HTTP 200 responses from the batch update transactions endpoint, ensuring transaction updates are processed correctly.
  • 2026.3.2

    - **Batch Transaction Updates** — Added `ynab_transactions_batch_update` tool, enabling multiple YNAB transactions to be updated in a single request.
  • 2026.3.1

    ---
    
    - Fixed output schema inference issue by using `any` as the `Out` type in `ToolHandlerFor`, preventing incorrect schema generation.
    
    - Migrated CLI flags to [Cobra](https://github.com/spf13/cobra) with dedicated `stdio` and `http` subcommands for cleaner command structure.
    
    - Renamed Go module to `code.nkcmr.net/ynab-mcp`.
    - Added `.gitignore` and untracked the compiled binary from version control.
    - Added release task to `mise.toml` with datever versioning and automated release notes support.
    - Added vendor directory to `.gitignore`.