Skip to content

Add PR Merge Conflict Repair daemon - #350

Merged
chrisdoc merged 1 commit into
mainfrom
charlie/daemon-installs/pr-merge-conflict-repair
Jun 16, 2026
Merged

Add PR Merge Conflict Repair daemon#350
chrisdoc merged 1 commit into
mainfrom
charlie/daemon-installs/pr-merge-conflict-repair

Conversation

@charliecreates

@charliecreates charliecreates Bot commented Jun 16, 2026

Copy link
Copy Markdown
Contributor

Summary

This PR installs the pr-merge-conflict-repair Charlie daemon to .agents/daemons/pr-merge-conflict-repair/DAEMON.md. It was generated by Charlie from the pr-merge-conflict-repair example.

The daemon won't start working until it's merged to the repo's default branch.

What Charlie daemons are

Charlie is an async engineering teammate that works in the tools your team already uses. In GitHub, Charlie can inspect code, review changes, propose patches, open PRs, and comment with findings. With connected integrations, Charlie can also use Linear, Slack, and Sentry context to understand issues, conversations, alerts, and follow-up work.

A daemon is a recurring role for Charlie. Instead of waiting for someone to mention Charlie every time the same kind of maintenance work appears, the repo contains a small role definition that tells Charlie when to wake up and what job to do.

This PR adds that role at .agents/daemons/pr-merge-conflict-repair/DAEMON.md. The file controls:

  • when Charlie can activate, through watch conditions or a schedule
  • what work Charlie should perform, through purpose and routines
  • what Charlie should avoid, through deny rules and body guidance

After this PR is merged and Charlie ingests the default-branch version, the daemon can start handling that recurring work inside the limits defined in DAEMON.md.

Learn more: https://docs.charlielabs.ai/daemons

What this daemon does

DAEMON.md purpose:

Resolve merge conflicts on non-draft pull requests found after repository branch changes.

This daemon’s configured routines are:

  • Run bun .agents/daemons/pr-merge-conflict-repair/scripts/find-conflicted-pulls.ts to find open non-draft PRs with mergeability state CONFLICTING.
  • Re-fetch the current remote PR head and the PR's current base branch before editing each conflicted PR.
  • Resolve the conflict and push to the existing PR branch when repo context, tests, and PR intent make the resolution clear.
  • Run focused verification after conflict resolution when feasible.

When this daemon can activate

This PR only installs daemon files. The daemon becomes eligible for live activations after both are true:

  1. this PR is merged to the repo's default branch
  2. Charlie ingests the merged default-branch version of DAEMON.md

Watch conditions

Charlie may wake this daemon when these watch conditions match:

  • A GitHub push updates the repository default branch.

Integrations and setup

This daemon requires these integrations to work as intended:

  • github

Set up or configure integrations here:

https://dash.charlielabs.ai/organizations/chrisdoc/integrations

Review and iterate before merging

Before merging, review the installed DAEMON.md and confirm that:

  • the purpose matches the recurring work you want Charlie to own
  • the watch conditions and/or schedule are narrow enough for initial rollout
  • the routines are concrete and bounded
  • the deny rules cover actions Charlie should not take
  • any required integrations above are connected for this organization

You can ask Charlie on this PR to adjust the daemon before merging. Just leave a comment mentioning @CharlieHelps.

For rollout and iteration guidance:

https://docs.charlielabs.ai/daemons/testing-and-iterating-on-daemons

Activity and future tuning

After this daemon is merged and ingested, you can review daemon activity here:

https://dash.charlielabs.ai/organizations/chrisdoc/activity?daemonId=pr-merge-conflict-repair

To browse more daemon examples:

https://github.com/charlie-labs/daemons/blob/master/README.md

✨ PR Description

Purpose: Introduce PR merge conflict detection daemon with discovery script to identify and track conflicted pull requests across repository branches.

Main changes:

  • Created find-conflicted-pulls.ts script querying GitHub GraphQL API to fetch open non-draft PRs with mergeable status tracking
  • Added DAEMON.md defining conflict repair workflow, discovery policies, repair decision logic, and commenting constraints for maintainer automation

Generated by LinearB AI and added by gitStream.
AI-generated content may contain inaccuracies. Please verify before using.
💡 Tip: You can customize your AI Description using Guidelines Learn how

@chrisdoc
chrisdoc merged commit 2ce2fba into main Jun 16, 2026
9 of 10 checks passed

@gitstream-cm gitstream-cm Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✨ PR Review

LGTM

Generated by LinearB AI and added by gitStream.
AI-generated content may contain inaccuracies. Please verify before using.
💡 Tip: You can customize your AI Review using Guidelines Learn how

@greptile-apps

greptile-apps Bot commented Jun 16, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR installs a Charlie daemon (pr-merge-conflict-repair) that monitors default-branch pushes and automatically resolves merge conflicts on open, non-draft PRs when the resolution is unambiguous. It adds two files: a DAEMON.md configuration and a read-only TypeScript discovery script that queries GitHub's GraphQL API for conflicted PRs.

  • DAEMON.md defines the trigger (default-branch push), routines (discover → re-fetch → resolve → verify → push), and a thorough set of deny rules (no draft PRs, no force-push, no new PRs/issues, no product/security decisions).
  • find-conflicted-pulls.ts is a well-typed, defensive script using gh api graphql with pagination, UNKNOWN-mergeability retries, and strict runtime validation of the GraphQL response shape.
  • The routine hard-codes bun to run the TypeScript script directly; this will fail if Charlie's execution environment does not have bun available, since the project's declared runtime is npm/Node.js v24+.

Confidence Score: 4/5

Safe to merge with low risk — only new files in .agents/daemons/ are added and no existing project code is modified.

The daemon won't activate until merged and ingested by Charlie, so there is no immediate production impact. The one notable concern is that the routine instructs Charlie to run the script with bun, which is not the project's declared runtime; if Charlie's environment lacks bun, every daemon activation will fail before doing any work. The PR title also misses the required conventional commit prefix, which could affect semantic-release versioning on squash-merge.

.agents/daemons/pr-merge-conflict-repair/DAEMON.md — confirm bun is available in Charlie's runtime before merging.

Important Files Changed

Filename Overview
.agents/daemons/pr-merge-conflict-repair/DAEMON.md New daemon configuration defining the purpose, watch triggers, routines, and deny rules for automatic merge-conflict repair; well-structured with clear guard clauses.
.agents/daemons/pr-merge-conflict-repair/scripts/find-conflicted-pulls.ts Read-only TypeScript discovery script using gh api graphql to enumerate open non-draft PRs with CONFLICTING mergeability; well-typed with defensive JSON parsing and retry logic for UNKNOWN state.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[Default branch push detected] --> B[Run find-conflicted-pulls.ts]
    B --> C{Any CONFLICTING\nnon-draft PRs?}
    C -- No --> D[No-op / silent stop]
    C -- Yes --> E[For each conflicted PR]
    E --> F[Re-fetch remote PR head\n& current base branch]
    F --> G{Remote head\nchanged?}
    G -- Yes --> H[Stop / no-op for this PR]
    G -- No --> I{Resolution clear\nfrom context?}
    I -- No --> J[Comment with\nblocking reason]
    I -- Yes --> K[Resolve conflict]
    K --> L[Run focused verification]
    L --> M[Push to existing PR branch]
    M --> N{More PRs?}
    N -- Yes --> E
    N -- No --> O[Done]
Loading
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
flowchart TD
    A[Default branch push detected] --> B[Run find-conflicted-pulls.ts]
    B --> C{Any CONFLICTING\nnon-draft PRs?}
    C -- No --> D[No-op / silent stop]
    C -- Yes --> E[For each conflicted PR]
    E --> F[Re-fetch remote PR head\n& current base branch]
    F --> G{Remote head\nchanged?}
    G -- Yes --> H[Stop / no-op for this PR]
    G -- No --> I{Resolution clear\nfrom context?}
    I -- No --> J[Comment with\nblocking reason]
    I -- Yes --> K[Resolve conflict]
    K --> L[Run focused verification]
    L --> M[Push to existing PR branch]
    M --> N{More PRs?}
    N -- Yes --> E
    N -- No --> O[Done]
Loading

Reviews (1): Last reviewed commit: "Install pr-merge-conflict-repair daemon" | Re-trigger Greptile

Comment on lines +1 to +2
---
id: pr-merge-conflict-repair

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 PR title doesn't follow the required conventional commit format

CLAUDE.md and AGENTS.md both require all PRs and AI-generated commits to use conventional commit format (e.g. feat: add PR merge conflict repair daemon). The current title "Add PR Merge Conflict Repair daemon" will not be parsed correctly by semantic-release if squash-merged, potentially skipping a version bump or release note entry.

Context Used: CLAUDE.md (source)

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

watch:
- A GitHub push updates the repository default branch.
routines:
- Run `bun .agents/daemons/pr-merge-conflict-repair/scripts/find-conflicted-pulls.ts` to find open non-draft PRs with mergeability state `CONFLICTING`.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 bun runtime assumed but not guaranteed in this project

The project's CLAUDE.md declares npm and Node.js v24+ as the runtime. The routine hard-codes bun to execute the TypeScript script directly. If the environment where Charlie runs does not have bun installed, the daemon will fail immediately on every activation. Consider confirming that bun is available in Charlie's execution environment, or add a node --import tsx / npx tsx fallback if the intent is to align with the project's existing runtime.

Comment on lines +338 to +350
endCursor: string | null;
}> {
const parsed: unknown = JSON.parse(raw);
const root = expectRecord(parsed, "response");

const errors = root.errors;
if (Array.isArray(errors) && errors.length > 0) {
throw new TypeError(`GitHub GraphQL errors: ${JSON.stringify(errors)}`);
}

const data = expectRecord(root.data, "response.data");
const repository = expectRecord(data.repository, "response.data.repository");
const defaultBranchRef = expectRecord(

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 pagesFetched: 1 in parseGraphqlResponse is a dead value

parseGraphqlResponse returns a type that extends FetchResult (which requires pagesFetched), so it hard-codes pagesFetched: 1. However, fetchOpenPullRequests never reads page.pagesFetched — it tracks the count independently with its own pagesFetched counter. The field silently satisfies the type but is misleading; a reader might assume the returned value is meaningful. Returning pagesFetched: 0 or splitting the return type to omit the field would make the intent clearer.

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

aaearon added a commit to aaearon/hevy-mcp that referenced this pull request Jun 24, 2026
* chore(deps-dev): bump the development-dependencies group across 1 directory with 8 updates (chrisdoc#335)

Bumps the development-dependencies group with 8 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [@commitlint/cli](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli) | `21.0.1` | `21.0.2` |
| [@commitlint/config-conventional](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional) | `21.0.1` | `21.0.2` |
| [@commitlint/prompt-cli](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/prompt-cli) | `21.0.1` | `21.0.2` |
| [lefthook](https://github.com/evilmartians/lefthook) | `2.1.8` | `2.1.9` |
| [oxfmt](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt) | `0.51.0` | `0.53.0` |
| [oxlint](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint) | `1.66.0` | `1.68.0` |
| [tsdown](https://github.com/rolldown/tsdown) | `0.22.0` | `0.22.2` |
| [tsx](https://github.com/privatenumber/tsx) | `4.22.3` | `4.22.4` |



Updates `@commitlint/cli` from 21.0.1 to 21.0.2
- [Release notes](https://github.com/conventional-changelog/commitlint/releases)
- [Changelog](https://github.com/conventional-changelog/commitlint/blob/master/@commitlint/cli/CHANGELOG.md)
- [Commits](https://github.com/conventional-changelog/commitlint/commits/v21.0.2/@commitlint/cli)

Updates `@commitlint/config-conventional` from 21.0.1 to 21.0.2
- [Release notes](https://github.com/conventional-changelog/commitlint/releases)
- [Changelog](https://github.com/conventional-changelog/commitlint/blob/master/@commitlint/config-conventional/CHANGELOG.md)
- [Commits](https://github.com/conventional-changelog/commitlint/commits/v21.0.2/@commitlint/config-conventional)

Updates `@commitlint/prompt-cli` from 21.0.1 to 21.0.2
- [Release notes](https://github.com/conventional-changelog/commitlint/releases)
- [Changelog](https://github.com/conventional-changelog/commitlint/blob/master/@commitlint/prompt-cli/CHANGELOG.md)
- [Commits](https://github.com/conventional-changelog/commitlint/commits/v21.0.2/@commitlint/prompt-cli)

Updates `lefthook` from 2.1.8 to 2.1.9
- [Release notes](https://github.com/evilmartians/lefthook/releases)
- [Changelog](https://github.com/evilmartians/lefthook/blob/master/CHANGELOG.md)
- [Commits](evilmartians/lefthook@v2.1.8...v2.1.9)

Updates `oxfmt` from 0.51.0 to 0.53.0
- [Release notes](https://github.com/oxc-project/oxc/releases)
- [Changelog](https://github.com/oxc-project/oxc/blob/main/npm/oxfmt/CHANGELOG.md)
- [Commits](https://github.com/oxc-project/oxc/commits/oxfmt_v0.53.0/npm/oxfmt)

Updates `oxlint` from 1.66.0 to 1.68.0
- [Release notes](https://github.com/oxc-project/oxc/releases)
- [Changelog](https://github.com/oxc-project/oxc/blob/main/npm/oxlint/CHANGELOG.md)
- [Commits](https://github.com/oxc-project/oxc/commits/oxlint_v1.68.0/npm/oxlint)

Updates `tsdown` from 0.22.0 to 0.22.2
- [Release notes](https://github.com/rolldown/tsdown/releases)
- [Commits](rolldown/tsdown@v0.22.0...v0.22.2)

Updates `tsx` from 4.22.3 to 4.22.4
- [Release notes](https://github.com/privatenumber/tsx/releases)
- [Changelog](https://github.com/privatenumber/tsx/blob/master/release.config.cjs)
- [Commits](privatenumber/tsx@v4.22.3...v4.22.4)

---
updated-dependencies:
- dependency-name: "@commitlint/cli"
  dependency-version: 21.0.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development-dependencies
- dependency-name: "@commitlint/config-conventional"
  dependency-version: 21.0.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development-dependencies
- dependency-name: "@commitlint/prompt-cli"
  dependency-version: 21.0.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development-dependencies
- dependency-name: lefthook
  dependency-version: 2.1.9
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development-dependencies
- dependency-name: oxfmt
  dependency-version: 0.53.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development-dependencies
- dependency-name: oxlint
  dependency-version: 1.68.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development-dependencies
- dependency-name: tsdown
  dependency-version: 0.22.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development-dependencies
- dependency-name: tsx
  dependency-version: 4.22.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(release): 1.23.17 [skip ci]

## [1.23.17](chrisdoc/hevy-mcp@v1.23.16...v1.23.17) (2026-06-04)

* chore(deps): bump hono from 4.12.18 to 4.12.23 (chrisdoc#336)

Bumps [hono](https://github.com/honojs/hono) from 4.12.18 to 4.12.23.
- [Release notes](https://github.com/honojs/hono/releases)
- [Commits](honojs/hono@v4.12.18...v4.12.23)

---
updated-dependencies:
- dependency-name: hono
  dependency-version: 4.12.23
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(release): 1.23.18 [skip ci]

## [1.23.18](chrisdoc/hevy-mcp@v1.23.17...v1.23.18) (2026-06-04)

* chore(deps): bump codecov/codecov-action (chrisdoc#337)

Bumps the observability-actions group with 1 update: [codecov/codecov-action](https://github.com/codecov/codecov-action).


Updates `codecov/codecov-action` from 6 to 7
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](codecov/codecov-action@v6...v7)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: observability-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(release): 1.23.19 [skip ci]

## [1.23.19](chrisdoc/hevy-mcp@v1.23.18...v1.23.19) (2026-06-09)

* chore(deps): bump the production-dependencies group with 7 updates (chrisdoc#338)

Bumps the production-dependencies group with 7 updates:

| Package | From | To |
| --- | --- | --- |
| [@kubb/cli](https://github.com/kubb-labs/kubb/tree/HEAD/packages/cli) | `4.37.9` | `4.37.12` |
| [@kubb/core](https://github.com/kubb-labs/kubb/tree/HEAD/packages/core) | `4.37.9` | `4.37.12` |
| [@kubb/plugin-client](https://github.com/kubb-labs/kubb/tree/HEAD/packages/plugin-client) | `4.37.9` | `4.37.12` |
| [@kubb/plugin-faker](https://github.com/kubb-labs/kubb/tree/HEAD/packages/plugin-faker) | `4.37.9` | `4.37.12` |
| [@kubb/plugin-oas](https://github.com/kubb-labs/kubb/tree/HEAD/packages/plugin-oas) | `4.37.9` | `4.37.12` |
| [@kubb/plugin-ts](https://github.com/kubb-labs/kubb/tree/HEAD/packages/plugin-ts) | `4.37.9` | `4.37.12` |
| [@kubb/plugin-zod](https://github.com/kubb-labs/kubb/tree/HEAD/packages/plugin-zod) | `4.37.9` | `4.37.12` |


Updates `@kubb/cli` from 4.37.9 to 4.37.12
- [Release notes](https://github.com/kubb-labs/kubb/releases)
- [Changelog](https://github.com/kubb-labs/kubb/blob/@kubb/cli@4.37.12/packages/cli/CHANGELOG.md)
- [Commits](https://github.com/kubb-labs/kubb/commits/@kubb/cli@4.37.12/packages/cli)

Updates `@kubb/core` from 4.37.9 to 4.37.12
- [Release notes](https://github.com/kubb-labs/kubb/releases)
- [Changelog](https://github.com/kubb-labs/kubb/blob/@kubb/core@4.37.12/packages/core/CHANGELOG.md)
- [Commits](https://github.com/kubb-labs/kubb/commits/@kubb/core@4.37.12/packages/core)

Updates `@kubb/plugin-client` from 4.37.9 to 4.37.12
- [Release notes](https://github.com/kubb-labs/kubb/releases)
- [Changelog](https://github.com/kubb-labs/kubb/blob/@kubb/plugin-client@4.37.12/packages/plugin-client/CHANGELOG.md)
- [Commits](https://github.com/kubb-labs/kubb/commits/@kubb/plugin-client@4.37.12/packages/plugin-client)

Updates `@kubb/plugin-faker` from 4.37.9 to 4.37.12
- [Release notes](https://github.com/kubb-labs/kubb/releases)
- [Changelog](https://github.com/kubb-labs/kubb/blob/@kubb/plugin-faker@4.37.12/packages/plugin-faker/CHANGELOG.md)
- [Commits](https://github.com/kubb-labs/kubb/commits/@kubb/plugin-faker@4.37.12/packages/plugin-faker)

Updates `@kubb/plugin-oas` from 4.37.9 to 4.37.12
- [Release notes](https://github.com/kubb-labs/kubb/releases)
- [Changelog](https://github.com/kubb-labs/kubb/blob/@kubb/plugin-oas@4.37.12/packages/plugin-oas/CHANGELOG.md)
- [Commits](https://github.com/kubb-labs/kubb/commits/@kubb/plugin-oas@4.37.12/packages/plugin-oas)

Updates `@kubb/plugin-ts` from 4.37.9 to 4.37.12
- [Release notes](https://github.com/kubb-labs/kubb/releases)
- [Changelog](https://github.com/kubb-labs/kubb/blob/@kubb/plugin-ts@4.37.12/packages/plugin-ts/CHANGELOG.md)
- [Commits](https://github.com/kubb-labs/kubb/commits/@kubb/plugin-ts@4.37.12/packages/plugin-ts)

Updates `@kubb/plugin-zod` from 4.37.9 to 4.37.12
- [Release notes](https://github.com/kubb-labs/kubb/releases)
- [Changelog](https://github.com/kubb-labs/kubb/blob/@kubb/plugin-zod@4.37.12/packages/plugin-zod/CHANGELOG.md)
- [Commits](https://github.com/kubb-labs/kubb/commits/@kubb/plugin-zod@4.37.12/packages/plugin-zod)

---
updated-dependencies:
- dependency-name: "@kubb/cli"
  dependency-version: 4.37.12
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
- dependency-name: "@kubb/core"
  dependency-version: 4.37.12
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
- dependency-name: "@kubb/plugin-client"
  dependency-version: 4.37.12
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
- dependency-name: "@kubb/plugin-faker"
  dependency-version: 4.37.12
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
- dependency-name: "@kubb/plugin-oas"
  dependency-version: 4.37.12
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
- dependency-name: "@kubb/plugin-ts"
  dependency-version: 4.37.12
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
- dependency-name: "@kubb/plugin-zod"
  dependency-version: 4.37.12
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(release): 1.23.20 [skip ci]

## [1.23.20](chrisdoc/hevy-mcp@v1.23.19...v1.23.20) (2026-06-09)

* chore(deps-dev): bump the development-dependencies group with 3 updates (chrisdoc#339)

Bumps the development-dependencies group with 3 updates: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node), [oxfmt](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt) and [oxlint](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint).


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

Updates `oxfmt` from 0.53.0 to 0.54.0
- [Release notes](https://github.com/oxc-project/oxc/releases)
- [Changelog](https://github.com/oxc-project/oxc/blob/main/npm/oxfmt/CHANGELOG.md)
- [Commits](https://github.com/oxc-project/oxc/commits/oxfmt_v0.54.0/npm/oxfmt)

Updates `oxlint` from 1.68.0 to 1.69.0
- [Release notes](https://github.com/oxc-project/oxc/releases)
- [Changelog](https://github.com/oxc-project/oxc/blob/main/npm/oxlint/CHANGELOG.md)
- [Commits](https://github.com/oxc-project/oxc/commits/oxlint_v1.69.0/npm/oxlint)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 25.9.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development-dependencies
- dependency-name: oxfmt
  dependency-version: 0.54.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development-dependencies
- dependency-name: oxlint
  dependency-version: 1.69.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(release): 1.23.21 [skip ci]

## [1.23.21](chrisdoc/hevy-mcp@v1.23.20...v1.23.21) (2026-06-09)

* chore(deps): bump shell-quote from 1.8.3 to 1.8.4 (chrisdoc#340)

Bumps [shell-quote](https://github.com/ljharb/shell-quote) from 1.8.3 to 1.8.4.
- [Changelog](https://github.com/ljharb/shell-quote/blob/main/CHANGELOG.md)
- [Commits](ljharb/shell-quote@v1.8.3...v1.8.4)

---
updated-dependencies:
- dependency-name: shell-quote
  dependency-version: 1.8.4
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(release): 1.23.22 [skip ci]

## [1.23.22](chrisdoc/hevy-mcp@v1.23.21...v1.23.22) (2026-06-10)

* chore(deps-dev): bump esbuild from 0.28.0 to 0.28.1 (chrisdoc#343)

Bumps [esbuild](https://github.com/evanw/esbuild) from 0.28.0 to 0.28.1.
- [Release notes](https://github.com/evanw/esbuild/releases)
- [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md)
- [Commits](evanw/esbuild@v0.28.0...v0.28.1)

---
updated-dependencies:
- dependency-name: esbuild
  dependency-version: 0.28.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(release): 1.23.23 [skip ci]

## [1.23.23](chrisdoc/hevy-mcp@v1.23.22...v1.23.23) (2026-06-13)

* Add tool annotations and fix body measurement payload handling (chrisdoc#342)

* fix: move dev-only kubb packages to devDependencies

Six @kubb/* packages were declared as runtime dependencies but are only
used by `npm run build:client` (kubb generate). Keeping them in
dependencies made `npx hevy-mcp` installs resolve their caret ranges
directly, which broke whenever an unpublished @kubb version was
referenced (chrisdoc#322). Only @kubb/plugin-client is imported at runtime by
the generated client, so it stays in dependencies.

Also syncs package-lock.json, which was missing yaml@2.9.0.

Fixes chrisdoc#322

https://claude.ai/code/session_01CuJWqXKY94msBi4cUgn1D8

* fix: accept partial body measurement inputs

Two bugs prevented valid body measurement writes (chrisdoc#341):

- Measurement fields used strict z.number(), rejecting numeric strings
  like "81.5" that some MCP clients send. They now use
  z.coerce.number() like the other tools, while null/undefined still
  short-circuit before coercion.
- buildMeasurementPayload() forwarded every omitted field as null,
  which the Hevy API rejects. Nullish fields are now omitted from the
  payload entirely, for both create and update.

Fixes chrisdoc#341

https://claude.ai/code/session_01CuJWqXKY94msBi4cUgn1D8

* feat: add get-user-info tool

Exposes the Hevy API's GET /v1/user/info endpoint, which existed in the
generated client but had no MCP tool. Returns the authenticated user's
ID, display name, and public profile URL — useful for verifying which
account an API key belongs to.

Also refreshes the README tools table, which was stale
(get-routine-by-id, missing body measurement and exercise template
tools).

https://claude.ai/code/session_01CuJWqXKY94msBi4cUgn1D8

* feat: add MCP tool annotations to all tools

Every tool now declares title, readOnlyHint, destructiveHint,
idempotentHint, and openWorldHint so MCP clients can render tools
properly and decide when calls are safe to auto-approve:

- get-*/search-* tools are marked read-only
- create-* tools are non-destructive, non-idempotent writes
- update-* tools are destructive (PUT-style overwrites) and idempotent
- delete-webhook-subscription is destructive and idempotent
- openWorldHint is false everywhere since the Hevy API is a closed
  domain limited to the authenticated user's data

Shared annotation factories live in src/utils/tool-annotations.ts and a
new annotations.test.ts asserts the policy for all 26 tools. Test
helpers now extract handlers position-independently so the added
registration argument doesn't break them.

https://claude.ai/code/session_01CuJWqXKY94msBi4cUgn1D8

* fix: harden body measurement input edge cases

Addresses PR chrisdoc#342 review feedback:

- Empty strings are treated as omitted instead of being coerced to 0
  by z.coerce.number().
- update-body-measurement now rejects calls without at least one
  non-null measurement field instead of sending an empty PUT body.
- Tool descriptions document that null values are treated as omitted,
  since the Hevy API rejects nulls and has no way to clear individual
  fields.

https://claude.ai/code/session_01CuJWqXKY94msBi4cUgn1D8

---------

Co-authored-by: Claude <noreply@anthropic.com>

* Hash Sentry user ID from Hevy API key (chrisdoc#345)

* fix: hash sentry user identifiers

* fix: avoid CodeQL API key hash alert

---------

Co-authored-by: CharlieHelps <charlie@charlielabs.ai>

* ci: add commitlint check to github workflow and unify agent instructions

* chore: trigger release

* chore(release): 1.23.24 [skip ci]

## [1.23.24](chrisdoc/hevy-mcp@v1.23.23...v1.23.24) (2026-06-15)

* chore: update dependencies

* feat: fix sentry

* chore(release): 1.24.0 [skip ci]

# [1.24.0](chrisdoc/hevy-mcp@v1.23.24...v1.24.0) (2026-06-15)

### Features

* fix sentry ([728d9a0](chrisdoc@728d9a0))

* build: rebuild package with correct version on publish

* chore(deps): bump form-data from 4.0.5 to 4.0.6 (chrisdoc#346)

Bumps [form-data](https://github.com/form-data/form-data) from 4.0.5 to 4.0.6.
- [Release notes](https://github.com/form-data/form-data/releases)
- [Changelog](https://github.com/form-data/form-data/blob/master/CHANGELOG.md)
- [Commits](form-data/form-data@v4.0.5...v4.0.6)

---
updated-dependencies:
- dependency-name: form-data
  dependency-version: 4.0.6
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(release): 1.24.1 [skip ci]

## [1.24.1](chrisdoc/hevy-mcp@v1.24.0...v1.24.1) (2026-06-15)

* fix: align sentry release name with project@version pattern

* chore(release): 1.24.2 [skip ci]

## [1.24.2](chrisdoc/hevy-mcp@v1.24.1...v1.24.2) (2026-06-15)

### Bug Fixes

* align sentry release name with project@version pattern ([fa9613f](chrisdoc@fa9613f))

* feat: add MCP lifecycle and stdio parse observability (chrisdoc#348)

Co-authored-by: CharlieHelps <charlie@charlielabs.ai>

* chore(release): 1.25.0 [skip ci]

# [1.25.0](chrisdoc/hevy-mcp@v1.24.2...v1.25.0) (2026-06-16)

### Features

* add MCP lifecycle and stdio parse observability ([chrisdoc#348](chrisdoc#348)) ([f7a816b](chrisdoc@f7a816b))

* Install docs-drift-maintainer daemon (chrisdoc#349)

Co-authored-by: charliecreates[bot] <198680274+charliecreates[bot]@users.noreply.github.com>

* Install pr-merge-conflict-repair daemon (chrisdoc#350)

Co-authored-by: charliecreates[bot] <198680274+charliecreates[bot]@users.noreply.github.com>

* Install pr-metadata daemon (chrisdoc#352)

Co-authored-by: charliecreates[bot] <198680274+charliecreates[bot]@users.noreply.github.com>

* Install pr-check-repair daemon (chrisdoc#351)

Co-authored-by: charliecreates[bot] <198680274+charliecreates[bot]@users.noreply.github.com>

* chore: ignore .agents directory in oxlint and oxfmt

* chore(release): 1.25.1 [skip ci]

## [1.25.1](chrisdoc/hevy-mcp@v1.25.0...v1.25.1) (2026-06-17)

* build: upgrade Node.js requirement to 26

* docs: document recent sentry observability changes (chrisdoc#353)

* docs: document recent sentry observability changes

* build: include .agents files in project checks

* Revert "build: include .agents files in project checks"

This reverts commit e8211d4.

---------

Co-authored-by: CharlieHelps <charlie@charlielabs.ai>

* chore(release): 1.25.2 [skip ci]

## [1.25.2](chrisdoc/hevy-mcp@v1.25.1...v1.25.2) (2026-06-17)

* chore(deps): bump hono from 4.12.23 to 4.12.25 (chrisdoc#354)

Bumps [hono](https://github.com/honojs/hono) from 4.12.23 to 4.12.25.
- [Release notes](https://github.com/honojs/hono/releases)
- [Commits](honojs/hono@v4.12.23...v4.12.25)

---
updated-dependencies:
- dependency-name: hono
  dependency-version: 4.12.25
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(release): 1.25.3 [skip ci]

## [1.25.3](chrisdoc/hevy-mcp@v1.25.2...v1.25.3) (2026-06-17)

* fix: remove kubb plugin-client from runtime deps (chrisdoc#356)

* chore(release): 1.25.4 [skip ci]

## [1.25.4](chrisdoc/hevy-mcp@v1.25.3...v1.25.4) (2026-06-19)

### Bug Fixes

* remove kubb plugin-client from runtime deps ([chrisdoc#356](chrisdoc#356)) ([61077ae](chrisdoc@61077ae))

* chore(deps-dev): bump undici from 6.24.1 to 6.27.0 (chrisdoc#357)

Bumps [undici](https://github.com/nodejs/undici) from 6.24.1 to 6.27.0.
- [Release notes](https://github.com/nodejs/undici/releases)
- [Commits](nodejs/undici@v6.24.1...v6.27.0)

---
updated-dependencies:
- dependency-name: undici
  dependency-version: 6.27.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(release): 1.25.5 [skip ci]

## [1.25.5](chrisdoc/hevy-mcp@v1.25.4...v1.25.5) (2026-06-19)

* Add triage-sentry-issues daemon (chrisdoc#359)

* feat(agents): add triage-sentry-issues daemon

* fix(daemon): watch for new sentry issues

* Apply suggestions from code review

Co-authored-by: gitstream-cm[bot] <111687743+gitstream-cm[bot]@users.noreply.github.com>

---------

Co-authored-by: CharlieHelps <charlie@charlielabs.ai>
Co-authored-by: Christoph Kieslich <c.kieslich@gmail.com>
Co-authored-by: gitstream-cm[bot] <111687743+gitstream-cm[bot]@users.noreply.github.com>

* chore(deps): bump actions/checkout in the github-core-actions group (chrisdoc#362)

Bumps the github-core-actions group with 1 update: [actions/checkout](https://github.com/actions/checkout).


Updates `actions/checkout` from 6 to 7
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v6...v7)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-core-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(release): 1.25.6 [skip ci]

## [1.25.6](chrisdoc/hevy-mcp@v1.25.5...v1.25.6) (2026-06-23)

* chore(deps): bump the production-dependencies group with 2 updates (chrisdoc#363)

Bumps the production-dependencies group with 2 updates: [@sentry/node](https://github.com/getsentry/sentry-javascript) and [axios](https://github.com/axios/axios).


Updates `@sentry/node` from 10.58.0 to 10.59.0
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md)
- [Commits](getsentry/sentry-javascript@10.58.0...10.59.0)

Updates `axios` from 1.18.0 to 1.18.1
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](axios/axios@v1.18.0...v1.18.1)

---
updated-dependencies:
- dependency-name: "@sentry/node"
  dependency-version: 10.59.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: production-dependencies
- dependency-name: axios
  dependency-version: 1.18.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(release): 1.25.7 [skip ci]

## [1.25.7](chrisdoc/hevy-mcp@v1.25.6...v1.25.7) (2026-06-23)

* chore(deps-dev): bump the development-dependencies group with 11 updates (chrisdoc#364)

Bumps the development-dependencies group with 11 updates:

| Package | From | To |
| --- | --- | --- |
| [@kubb/cli](https://github.com/kubb-labs/kubb/tree/HEAD/packages/cli) | `4.38.0` | `4.39.1` |
| [@kubb/core](https://github.com/kubb-labs/kubb/tree/HEAD/packages/core) | `4.38.0` | `4.39.1` |
| [@kubb/plugin-client](https://github.com/kubb-labs/kubb/tree/HEAD/packages/plugin-client) | `4.38.0` | `4.39.1` |
| [@kubb/plugin-faker](https://github.com/kubb-labs/kubb/tree/HEAD/packages/plugin-faker) | `4.38.0` | `4.39.1` |
| [@kubb/plugin-oas](https://github.com/kubb-labs/kubb/tree/HEAD/packages/plugin-oas) | `4.38.0` | `4.39.1` |
| [@kubb/plugin-ts](https://github.com/kubb-labs/kubb/tree/HEAD/packages/plugin-ts) | `4.38.0` | `4.39.1` |
| [@kubb/plugin-zod](https://github.com/kubb-labs/kubb/tree/HEAD/packages/plugin-zod) | `4.38.0` | `4.39.1` |
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `25.9.3` | `26.0.0` |
| [oxfmt](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt) | `0.55.0` | `0.56.0` |
| [oxlint](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint) | `1.70.0` | `1.71.0` |
| [tsdown](https://github.com/rolldown/tsdown) | `0.22.2` | `0.22.3` |


Updates `@kubb/cli` from 4.38.0 to 4.39.1
- [Release notes](https://github.com/kubb-labs/kubb/releases)
- [Changelog](https://github.com/kubb-labs/kubb/blob/@kubb/cli@4.39.1/packages/cli/CHANGELOG.md)
- [Commits](https://github.com/kubb-labs/kubb/commits/@kubb/cli@4.39.1/packages/cli)

Updates `@kubb/core` from 4.38.0 to 4.39.1
- [Release notes](https://github.com/kubb-labs/kubb/releases)
- [Changelog](https://github.com/kubb-labs/kubb/blob/@kubb/core@4.39.1/packages/core/CHANGELOG.md)
- [Commits](https://github.com/kubb-labs/kubb/commits/@kubb/core@4.39.1/packages/core)

Updates `@kubb/plugin-client` from 4.38.0 to 4.39.1
- [Release notes](https://github.com/kubb-labs/kubb/releases)
- [Changelog](https://github.com/kubb-labs/kubb/blob/@kubb/plugin-client@4.39.1/packages/plugin-client/CHANGELOG.md)
- [Commits](https://github.com/kubb-labs/kubb/commits/@kubb/plugin-client@4.39.1/packages/plugin-client)

Updates `@kubb/plugin-faker` from 4.38.0 to 4.39.1
- [Release notes](https://github.com/kubb-labs/kubb/releases)
- [Changelog](https://github.com/kubb-labs/kubb/blob/@kubb/plugin-faker@4.39.1/packages/plugin-faker/CHANGELOG.md)
- [Commits](https://github.com/kubb-labs/kubb/commits/@kubb/plugin-faker@4.39.1/packages/plugin-faker)

Updates `@kubb/plugin-oas` from 4.38.0 to 4.39.1
- [Release notes](https://github.com/kubb-labs/kubb/releases)
- [Changelog](https://github.com/kubb-labs/kubb/blob/@kubb/plugin-oas@4.39.1/packages/plugin-oas/CHANGELOG.md)
- [Commits](https://github.com/kubb-labs/kubb/commits/@kubb/plugin-oas@4.39.1/packages/plugin-oas)

Updates `@kubb/plugin-ts` from 4.38.0 to 4.39.1
- [Release notes](https://github.com/kubb-labs/kubb/releases)
- [Changelog](https://github.com/kubb-labs/kubb/blob/@kubb/plugin-ts@4.39.1/packages/plugin-ts/CHANGELOG.md)
- [Commits](https://github.com/kubb-labs/kubb/commits/@kubb/plugin-ts@4.39.1/packages/plugin-ts)

Updates `@kubb/plugin-zod` from 4.38.0 to 4.39.1
- [Release notes](https://github.com/kubb-labs/kubb/releases)
- [Changelog](https://github.com/kubb-labs/kubb/blob/@kubb/plugin-zod@4.39.1/packages/plugin-zod/CHANGELOG.md)
- [Commits](https://github.com/kubb-labs/kubb/commits/@kubb/plugin-zod@4.39.1/packages/plugin-zod)

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

Updates `oxfmt` from 0.55.0 to 0.56.0
- [Release notes](https://github.com/oxc-project/oxc/releases)
- [Changelog](https://github.com/oxc-project/oxc/blob/main/npm/oxfmt/CHANGELOG.md)
- [Commits](https://github.com/oxc-project/oxc/commits/oxfmt_v0.56.0/npm/oxfmt)

Updates `oxlint` from 1.70.0 to 1.71.0
- [Release notes](https://github.com/oxc-project/oxc/releases)
- [Changelog](https://github.com/oxc-project/oxc/blob/main/npm/oxlint/CHANGELOG.md)
- [Commits](https://github.com/oxc-project/oxc/commits/oxlint_v1.71.0/npm/oxlint)

Updates `tsdown` from 0.22.2 to 0.22.3
- [Release notes](https://github.com/rolldown/tsdown/releases)
- [Commits](rolldown/tsdown@v0.22.2...v0.22.3)

---
updated-dependencies:
- dependency-name: "@kubb/cli"
  dependency-version: 4.39.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development-dependencies
- dependency-name: "@kubb/core"
  dependency-version: 4.39.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development-dependencies
- dependency-name: "@kubb/plugin-client"
  dependency-version: 4.39.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development-dependencies
- dependency-name: "@kubb/plugin-faker"
  dependency-version: 4.39.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development-dependencies
- dependency-name: "@kubb/plugin-oas"
  dependency-version: 4.39.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development-dependencies
- dependency-name: "@kubb/plugin-ts"
  dependency-version: 4.39.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development-dependencies
- dependency-name: "@kubb/plugin-zod"
  dependency-version: 4.39.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development-dependencies
- dependency-name: "@types/node"
  dependency-version: 26.0.0
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: development-dependencies
- dependency-name: oxfmt
  dependency-version: 0.56.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development-dependencies
- dependency-name: oxlint
  dependency-version: 1.71.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development-dependencies
- dependency-name: tsdown
  dependency-version: 0.22.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(release): 1.25.8 [skip ci]

## [1.25.8](chrisdoc/hevy-mcp@v1.25.7...v1.25.8) (2026-06-23)

* chore: simplify dependabot grouping and weekly schedule (chrisdoc#366)

* chore(release): 1.25.9 [skip ci]

## [1.25.9](chrisdoc/hevy-mcp@v1.25.8...v1.25.9) (2026-06-23)

* chore(deps): bump @sentry/node in the production-dependencies group (chrisdoc#367)

Bumps the production-dependencies group with 1 update: [@sentry/node](https://github.com/getsentry/sentry-javascript).


Updates `@sentry/node` from 10.59.0 to 10.60.0
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md)
- [Commits](getsentry/sentry-javascript@10.59.0...10.60.0)

---
updated-dependencies:
- dependency-name: "@sentry/node"
  dependency-version: 10.60.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: production-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps-dev): bump the development-dependencies group with 10 updates (chrisdoc#368)

Bumps the development-dependencies group with 10 updates:

| Package | From | To |
| --- | --- | --- |
| [@commitlint/cli](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli) | `21.0.2` | `21.1.0` |
| [@commitlint/config-conventional](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional) | `21.0.2` | `21.1.0` |
| [@commitlint/prompt-cli](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/prompt-cli) | `21.0.2` | `21.1.0` |
| [@kubb/cli](https://github.com/kubb-labs/kubb/tree/HEAD/packages/cli) | `4.39.1` | `4.39.2` |
| [@kubb/core](https://github.com/kubb-labs/kubb/tree/HEAD/packages/core) | `4.39.1` | `4.39.2` |
| [@kubb/plugin-client](https://github.com/kubb-labs/kubb/tree/HEAD/packages/plugin-client) | `4.39.1` | `4.39.2` |
| [@kubb/plugin-faker](https://github.com/kubb-labs/kubb/tree/HEAD/packages/plugin-faker) | `4.39.1` | `4.39.2` |
| [@kubb/plugin-oas](https://github.com/kubb-labs/kubb/tree/HEAD/packages/plugin-oas) | `4.39.1` | `4.39.2` |
| [@kubb/plugin-ts](https://github.com/kubb-labs/kubb/tree/HEAD/packages/plugin-ts) | `4.39.1` | `4.39.2` |
| [@kubb/plugin-zod](https://github.com/kubb-labs/kubb/tree/HEAD/packages/plugin-zod) | `4.39.1` | `4.39.2` |


Updates `@commitlint/cli` from 21.0.2 to 21.1.0
- [Release notes](https://github.com/conventional-changelog/commitlint/releases)
- [Changelog](https://github.com/conventional-changelog/commitlint/blob/master/@commitlint/cli/CHANGELOG.md)
- [Commits](https://github.com/conventional-changelog/commitlint/commits/v21.1.0/@commitlint/cli)

Updates `@commitlint/config-conventional` from 21.0.2 to 21.1.0
- [Release notes](https://github.com/conventional-changelog/commitlint/releases)
- [Changelog](https://github.com/conventional-changelog/commitlint/blob/master/@commitlint/config-conventional/CHANGELOG.md)
- [Commits](https://github.com/conventional-changelog/commitlint/commits/v21.1.0/@commitlint/config-conventional)

Updates `@commitlint/prompt-cli` from 21.0.2 to 21.1.0
- [Release notes](https://github.com/conventional-changelog/commitlint/releases)
- [Changelog](https://github.com/conventional-changelog/commitlint/blob/master/@commitlint/prompt-cli/CHANGELOG.md)
- [Commits](https://github.com/conventional-changelog/commitlint/commits/v21.1.0/@commitlint/prompt-cli)

Updates `@kubb/cli` from 4.39.1 to 4.39.2
- [Release notes](https://github.com/kubb-labs/kubb/releases)
- [Changelog](https://github.com/kubb-labs/kubb/blob/@kubb/cli@4.39.2/packages/cli/CHANGELOG.md)
- [Commits](https://github.com/kubb-labs/kubb/commits/@kubb/cli@4.39.2/packages/cli)

Updates `@kubb/core` from 4.39.1 to 4.39.2
- [Release notes](https://github.com/kubb-labs/kubb/releases)
- [Changelog](https://github.com/kubb-labs/kubb/blob/@kubb/core@4.39.2/packages/core/CHANGELOG.md)
- [Commits](https://github.com/kubb-labs/kubb/commits/@kubb/core@4.39.2/packages/core)

Updates `@kubb/plugin-client` from 4.39.1 to 4.39.2
- [Release notes](https://github.com/kubb-labs/kubb/releases)
- [Changelog](https://github.com/kubb-labs/kubb/blob/@kubb/plugin-client@4.39.2/packages/plugin-client/CHANGELOG.md)
- [Commits](https://github.com/kubb-labs/kubb/commits/@kubb/plugin-client@4.39.2/packages/plugin-client)

Updates `@kubb/plugin-faker` from 4.39.1 to 4.39.2
- [Release notes](https://github.com/kubb-labs/kubb/releases)
- [Changelog](https://github.com/kubb-labs/kubb/blob/@kubb/plugin-faker@4.39.2/packages/plugin-faker/CHANGELOG.md)
- [Commits](https://github.com/kubb-labs/kubb/commits/@kubb/plugin-faker@4.39.2/packages/plugin-faker)

Updates `@kubb/plugin-oas` from 4.39.1 to 4.39.2
- [Release notes](https://github.com/kubb-labs/kubb/releases)
- [Changelog](https://github.com/kubb-labs/kubb/blob/@kubb/plugin-oas@4.39.2/packages/plugin-oas/CHANGELOG.md)
- [Commits](https://github.com/kubb-labs/kubb/commits/@kubb/plugin-oas@4.39.2/packages/plugin-oas)

Updates `@kubb/plugin-ts` from 4.39.1 to 4.39.2
- [Release notes](https://github.com/kubb-labs/kubb/releases)
- [Changelog](https://github.com/kubb-labs/kubb/blob/@kubb/plugin-ts@4.39.2/packages/plugin-ts/CHANGELOG.md)
- [Commits](https://github.com/kubb-labs/kubb/commits/@kubb/plugin-ts@4.39.2/packages/plugin-ts)

Updates `@kubb/plugin-zod` from 4.39.1 to 4.39.2
- [Release notes](https://github.com/kubb-labs/kubb/releases)
- [Changelog](https://github.com/kubb-labs/kubb/blob/@kubb/plugin-zod@4.39.2/packages/plugin-zod/CHANGELOG.md)
- [Commits](https://github.com/kubb-labs/kubb/commits/@kubb/plugin-zod@4.39.2/packages/plugin-zod)

---
updated-dependencies:
- dependency-name: "@commitlint/cli"
  dependency-version: 21.1.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development-dependencies
- dependency-name: "@commitlint/config-conventional"
  dependency-version: 21.1.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development-dependencies
- dependency-name: "@commitlint/prompt-cli"
  dependency-version: 21.1.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development-dependencies
- dependency-name: "@kubb/cli"
  dependency-version: 4.39.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development-dependencies
- dependency-name: "@kubb/core"
  dependency-version: 4.39.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development-dependencies
- dependency-name: "@kubb/plugin-client"
  dependency-version: 4.39.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development-dependencies
- dependency-name: "@kubb/plugin-faker"
  dependency-version: 4.39.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development-dependencies
- dependency-name: "@kubb/plugin-oas"
  dependency-version: 4.39.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development-dependencies
- dependency-name: "@kubb/plugin-ts"
  dependency-version: 4.39.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development-dependencies
- dependency-name: "@kubb/plugin-zod"
  dependency-version: 4.39.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(release): 1.25.10 [skip ci]

## [1.25.10](chrisdoc/hevy-mcp@v1.25.9...v1.25.10) (2026-06-23)

* docs: add add-mcp setup instructions to README (chrisdoc#361)

Co-authored-by: CharlieHelps <charlie@charlielabs.ai>

* chore(release): 1.25.11 [skip ci]

## [1.25.11](chrisdoc/hevy-mcp@v1.25.10...v1.25.11) (2026-06-23)

* chore(release): include all semantic commit types in notes (chrisdoc#370)

Co-authored-by: CharlieHelps <charlie@charlielabs.ai>

* chore(release): 1.25.12 [skip ci]

## [1.25.12](chrisdoc/hevy-mcp@v1.25.11...v1.25.12) (2026-06-24)

* feat: make Sentry telemetry opt-in via SENTRY_DSN

Sentry only initializes when SENTRY_DSN is set, so neither the published
package nor this fork sends telemetry by default. Removes the hardcoded
upstream DSN (which sent fork users' errors/usage to upstream's project).

Add SENTRY_RELEASE and SENTRY_TRACES_SAMPLE_RATE overrides, tests for the
opt-in behavior, and docs in README/AGENTS.md.

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: semantic-release-bot <semantic-release-bot@martynus.net>
Co-authored-by: Christoph Kieslich <c.kieslich@gmail.com>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: charliecreates[bot] <198680274+charliecreates[bot]@users.noreply.github.com>
Co-authored-by: CharlieHelps <charlie@charlielabs.ai>
Co-authored-by: gitstream-cm[bot] <111687743+gitstream-cm[bot]@users.noreply.github.com>
aaearon added a commit to aaearon/hevy-mcp that referenced this pull request Jun 24, 2026
* chore(deps-dev): bump the development-dependencies group across 1 directory with 8 updates (chrisdoc#335)

Bumps the development-dependencies group with 8 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [@commitlint/cli](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli) | `21.0.1` | `21.0.2` |
| [@commitlint/config-conventional](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional) | `21.0.1` | `21.0.2` |
| [@commitlint/prompt-cli](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/prompt-cli) | `21.0.1` | `21.0.2` |
| [lefthook](https://github.com/evilmartians/lefthook) | `2.1.8` | `2.1.9` |
| [oxfmt](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt) | `0.51.0` | `0.53.0` |
| [oxlint](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint) | `1.66.0` | `1.68.0` |
| [tsdown](https://github.com/rolldown/tsdown) | `0.22.0` | `0.22.2` |
| [tsx](https://github.com/privatenumber/tsx) | `4.22.3` | `4.22.4` |



Updates `@commitlint/cli` from 21.0.1 to 21.0.2
- [Release notes](https://github.com/conventional-changelog/commitlint/releases)
- [Changelog](https://github.com/conventional-changelog/commitlint/blob/master/@commitlint/cli/CHANGELOG.md)
- [Commits](https://github.com/conventional-changelog/commitlint/commits/v21.0.2/@commitlint/cli)

Updates `@commitlint/config-conventional` from 21.0.1 to 21.0.2
- [Release notes](https://github.com/conventional-changelog/commitlint/releases)
- [Changelog](https://github.com/conventional-changelog/commitlint/blob/master/@commitlint/config-conventional/CHANGELOG.md)
- [Commits](https://github.com/conventional-changelog/commitlint/commits/v21.0.2/@commitlint/config-conventional)

Updates `@commitlint/prompt-cli` from 21.0.1 to 21.0.2
- [Release notes](https://github.com/conventional-changelog/commitlint/releases)
- [Changelog](https://github.com/conventional-changelog/commitlint/blob/master/@commitlint/prompt-cli/CHANGELOG.md)
- [Commits](https://github.com/conventional-changelog/commitlint/commits/v21.0.2/@commitlint/prompt-cli)

Updates `lefthook` from 2.1.8 to 2.1.9
- [Release notes](https://github.com/evilmartians/lefthook/releases)
- [Changelog](https://github.com/evilmartians/lefthook/blob/master/CHANGELOG.md)
- [Commits](evilmartians/lefthook@v2.1.8...v2.1.9)

Updates `oxfmt` from 0.51.0 to 0.53.0
- [Release notes](https://github.com/oxc-project/oxc/releases)
- [Changelog](https://github.com/oxc-project/oxc/blob/main/npm/oxfmt/CHANGELOG.md)
- [Commits](https://github.com/oxc-project/oxc/commits/oxfmt_v0.53.0/npm/oxfmt)

Updates `oxlint` from 1.66.0 to 1.68.0
- [Release notes](https://github.com/oxc-project/oxc/releases)
- [Changelog](https://github.com/oxc-project/oxc/blob/main/npm/oxlint/CHANGELOG.md)
- [Commits](https://github.com/oxc-project/oxc/commits/oxlint_v1.68.0/npm/oxlint)

Updates `tsdown` from 0.22.0 to 0.22.2
- [Release notes](https://github.com/rolldown/tsdown/releases)
- [Commits](rolldown/tsdown@v0.22.0...v0.22.2)

Updates `tsx` from 4.22.3 to 4.22.4
- [Release notes](https://github.com/privatenumber/tsx/releases)
- [Changelog](https://github.com/privatenumber/tsx/blob/master/release.config.cjs)
- [Commits](privatenumber/tsx@v4.22.3...v4.22.4)

---
updated-dependencies:
- dependency-name: "@commitlint/cli"
  dependency-version: 21.0.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development-dependencies
- dependency-name: "@commitlint/config-conventional"
  dependency-version: 21.0.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development-dependencies
- dependency-name: "@commitlint/prompt-cli"
  dependency-version: 21.0.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development-dependencies
- dependency-name: lefthook
  dependency-version: 2.1.9
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development-dependencies
- dependency-name: oxfmt
  dependency-version: 0.53.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development-dependencies
- dependency-name: oxlint
  dependency-version: 1.68.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development-dependencies
- dependency-name: tsdown
  dependency-version: 0.22.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development-dependencies
- dependency-name: tsx
  dependency-version: 4.22.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(release): 1.23.17 [skip ci]

## [1.23.17](chrisdoc/hevy-mcp@v1.23.16...v1.23.17) (2026-06-04)

* chore(deps): bump hono from 4.12.18 to 4.12.23 (chrisdoc#336)

Bumps [hono](https://github.com/honojs/hono) from 4.12.18 to 4.12.23.
- [Release notes](https://github.com/honojs/hono/releases)
- [Commits](honojs/hono@v4.12.18...v4.12.23)

---
updated-dependencies:
- dependency-name: hono
  dependency-version: 4.12.23
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(release): 1.23.18 [skip ci]

## [1.23.18](chrisdoc/hevy-mcp@v1.23.17...v1.23.18) (2026-06-04)

* chore(deps): bump codecov/codecov-action (chrisdoc#337)

Bumps the observability-actions group with 1 update: [codecov/codecov-action](https://github.com/codecov/codecov-action).


Updates `codecov/codecov-action` from 6 to 7
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](codecov/codecov-action@v6...v7)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: observability-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(release): 1.23.19 [skip ci]

## [1.23.19](chrisdoc/hevy-mcp@v1.23.18...v1.23.19) (2026-06-09)

* chore(deps): bump the production-dependencies group with 7 updates (chrisdoc#338)

Bumps the production-dependencies group with 7 updates:

| Package | From | To |
| --- | --- | --- |
| [@kubb/cli](https://github.com/kubb-labs/kubb/tree/HEAD/packages/cli) | `4.37.9` | `4.37.12` |
| [@kubb/core](https://github.com/kubb-labs/kubb/tree/HEAD/packages/core) | `4.37.9` | `4.37.12` |
| [@kubb/plugin-client](https://github.com/kubb-labs/kubb/tree/HEAD/packages/plugin-client) | `4.37.9` | `4.37.12` |
| [@kubb/plugin-faker](https://github.com/kubb-labs/kubb/tree/HEAD/packages/plugin-faker) | `4.37.9` | `4.37.12` |
| [@kubb/plugin-oas](https://github.com/kubb-labs/kubb/tree/HEAD/packages/plugin-oas) | `4.37.9` | `4.37.12` |
| [@kubb/plugin-ts](https://github.com/kubb-labs/kubb/tree/HEAD/packages/plugin-ts) | `4.37.9` | `4.37.12` |
| [@kubb/plugin-zod](https://github.com/kubb-labs/kubb/tree/HEAD/packages/plugin-zod) | `4.37.9` | `4.37.12` |


Updates `@kubb/cli` from 4.37.9 to 4.37.12
- [Release notes](https://github.com/kubb-labs/kubb/releases)
- [Changelog](https://github.com/kubb-labs/kubb/blob/@kubb/cli@4.37.12/packages/cli/CHANGELOG.md)
- [Commits](https://github.com/kubb-labs/kubb/commits/@kubb/cli@4.37.12/packages/cli)

Updates `@kubb/core` from 4.37.9 to 4.37.12
- [Release notes](https://github.com/kubb-labs/kubb/releases)
- [Changelog](https://github.com/kubb-labs/kubb/blob/@kubb/core@4.37.12/packages/core/CHANGELOG.md)
- [Commits](https://github.com/kubb-labs/kubb/commits/@kubb/core@4.37.12/packages/core)

Updates `@kubb/plugin-client` from 4.37.9 to 4.37.12
- [Release notes](https://github.com/kubb-labs/kubb/releases)
- [Changelog](https://github.com/kubb-labs/kubb/blob/@kubb/plugin-client@4.37.12/packages/plugin-client/CHANGELOG.md)
- [Commits](https://github.com/kubb-labs/kubb/commits/@kubb/plugin-client@4.37.12/packages/plugin-client)

Updates `@kubb/plugin-faker` from 4.37.9 to 4.37.12
- [Release notes](https://github.com/kubb-labs/kubb/releases)
- [Changelog](https://github.com/kubb-labs/kubb/blob/@kubb/plugin-faker@4.37.12/packages/plugin-faker/CHANGELOG.md)
- [Commits](https://github.com/kubb-labs/kubb/commits/@kubb/plugin-faker@4.37.12/packages/plugin-faker)

Updates `@kubb/plugin-oas` from 4.37.9 to 4.37.12
- [Release notes](https://github.com/kubb-labs/kubb/releases)
- [Changelog](https://github.com/kubb-labs/kubb/blob/@kubb/plugin-oas@4.37.12/packages/plugin-oas/CHANGELOG.md)
- [Commits](https://github.com/kubb-labs/kubb/commits/@kubb/plugin-oas@4.37.12/packages/plugin-oas)

Updates `@kubb/plugin-ts` from 4.37.9 to 4.37.12
- [Release notes](https://github.com/kubb-labs/kubb/releases)
- [Changelog](https://github.com/kubb-labs/kubb/blob/@kubb/plugin-ts@4.37.12/packages/plugin-ts/CHANGELOG.md)
- [Commits](https://github.com/kubb-labs/kubb/commits/@kubb/plugin-ts@4.37.12/packages/plugin-ts)

Updates `@kubb/plugin-zod` from 4.37.9 to 4.37.12
- [Release notes](https://github.com/kubb-labs/kubb/releases)
- [Changelog](https://github.com/kubb-labs/kubb/blob/@kubb/plugin-zod@4.37.12/packages/plugin-zod/CHANGELOG.md)
- [Commits](https://github.com/kubb-labs/kubb/commits/@kubb/plugin-zod@4.37.12/packages/plugin-zod)

---
updated-dependencies:
- dependency-name: "@kubb/cli"
  dependency-version: 4.37.12
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
- dependency-name: "@kubb/core"
  dependency-version: 4.37.12
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
- dependency-name: "@kubb/plugin-client"
  dependency-version: 4.37.12
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
- dependency-name: "@kubb/plugin-faker"
  dependency-version: 4.37.12
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
- dependency-name: "@kubb/plugin-oas"
  dependency-version: 4.37.12
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
- dependency-name: "@kubb/plugin-ts"
  dependency-version: 4.37.12
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
- dependency-name: "@kubb/plugin-zod"
  dependency-version: 4.37.12
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(release): 1.23.20 [skip ci]

## [1.23.20](chrisdoc/hevy-mcp@v1.23.19...v1.23.20) (2026-06-09)

* chore(deps-dev): bump the development-dependencies group with 3 updates (chrisdoc#339)

Bumps the development-dependencies group with 3 updates: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node), [oxfmt](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt) and [oxlint](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint).


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

Updates `oxfmt` from 0.53.0 to 0.54.0
- [Release notes](https://github.com/oxc-project/oxc/releases)
- [Changelog](https://github.com/oxc-project/oxc/blob/main/npm/oxfmt/CHANGELOG.md)
- [Commits](https://github.com/oxc-project/oxc/commits/oxfmt_v0.54.0/npm/oxfmt)

Updates `oxlint` from 1.68.0 to 1.69.0
- [Release notes](https://github.com/oxc-project/oxc/releases)
- [Changelog](https://github.com/oxc-project/oxc/blob/main/npm/oxlint/CHANGELOG.md)
- [Commits](https://github.com/oxc-project/oxc/commits/oxlint_v1.69.0/npm/oxlint)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 25.9.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development-dependencies
- dependency-name: oxfmt
  dependency-version: 0.54.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development-dependencies
- dependency-name: oxlint
  dependency-version: 1.69.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(release): 1.23.21 [skip ci]

## [1.23.21](chrisdoc/hevy-mcp@v1.23.20...v1.23.21) (2026-06-09)

* chore(deps): bump shell-quote from 1.8.3 to 1.8.4 (chrisdoc#340)

Bumps [shell-quote](https://github.com/ljharb/shell-quote) from 1.8.3 to 1.8.4.
- [Changelog](https://github.com/ljharb/shell-quote/blob/main/CHANGELOG.md)
- [Commits](ljharb/shell-quote@v1.8.3...v1.8.4)

---
updated-dependencies:
- dependency-name: shell-quote
  dependency-version: 1.8.4
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(release): 1.23.22 [skip ci]

## [1.23.22](chrisdoc/hevy-mcp@v1.23.21...v1.23.22) (2026-06-10)

* chore(deps-dev): bump esbuild from 0.28.0 to 0.28.1 (chrisdoc#343)

Bumps [esbuild](https://github.com/evanw/esbuild) from 0.28.0 to 0.28.1.
- [Release notes](https://github.com/evanw/esbuild/releases)
- [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md)
- [Commits](evanw/esbuild@v0.28.0...v0.28.1)

---
updated-dependencies:
- dependency-name: esbuild
  dependency-version: 0.28.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(release): 1.23.23 [skip ci]

## [1.23.23](chrisdoc/hevy-mcp@v1.23.22...v1.23.23) (2026-06-13)

* Add tool annotations and fix body measurement payload handling (chrisdoc#342)

* fix: move dev-only kubb packages to devDependencies

Six @kubb/* packages were declared as runtime dependencies but are only
used by `npm run build:client` (kubb generate). Keeping them in
dependencies made `npx hevy-mcp` installs resolve their caret ranges
directly, which broke whenever an unpublished @kubb version was
referenced (chrisdoc#322). Only @kubb/plugin-client is imported at runtime by
the generated client, so it stays in dependencies.

Also syncs package-lock.json, which was missing yaml@2.9.0.

Fixes chrisdoc#322

https://claude.ai/code/session_01CuJWqXKY94msBi4cUgn1D8

* fix: accept partial body measurement inputs

Two bugs prevented valid body measurement writes (chrisdoc#341):

- Measurement fields used strict z.number(), rejecting numeric strings
  like "81.5" that some MCP clients send. They now use
  z.coerce.number() like the other tools, while null/undefined still
  short-circuit before coercion.
- buildMeasurementPayload() forwarded every omitted field as null,
  which the Hevy API rejects. Nullish fields are now omitted from the
  payload entirely, for both create and update.

Fixes chrisdoc#341

https://claude.ai/code/session_01CuJWqXKY94msBi4cUgn1D8

* feat: add get-user-info tool

Exposes the Hevy API's GET /v1/user/info endpoint, which existed in the
generated client but had no MCP tool. Returns the authenticated user's
ID, display name, and public profile URL — useful for verifying which
account an API key belongs to.

Also refreshes the README tools table, which was stale
(get-routine-by-id, missing body measurement and exercise template
tools).

https://claude.ai/code/session_01CuJWqXKY94msBi4cUgn1D8

* feat: add MCP tool annotations to all tools

Every tool now declares title, readOnlyHint, destructiveHint,
idempotentHint, and openWorldHint so MCP clients can render tools
properly and decide when calls are safe to auto-approve:

- get-*/search-* tools are marked read-only
- create-* tools are non-destructive, non-idempotent writes
- update-* tools are destructive (PUT-style overwrites) and idempotent
- delete-webhook-subscription is destructive and idempotent
- openWorldHint is false everywhere since the Hevy API is a closed
  domain limited to the authenticated user's data

Shared annotation factories live in src/utils/tool-annotations.ts and a
new annotations.test.ts asserts the policy for all 26 tools. Test
helpers now extract handlers position-independently so the added
registration argument doesn't break them.

https://claude.ai/code/session_01CuJWqXKY94msBi4cUgn1D8

* fix: harden body measurement input edge cases

Addresses PR chrisdoc#342 review feedback:

- Empty strings are treated as omitted instead of being coerced to 0
  by z.coerce.number().
- update-body-measurement now rejects calls without at least one
  non-null measurement field instead of sending an empty PUT body.
- Tool descriptions document that null values are treated as omitted,
  since the Hevy API rejects nulls and has no way to clear individual
  fields.

https://claude.ai/code/session_01CuJWqXKY94msBi4cUgn1D8

---------

Co-authored-by: Claude <noreply@anthropic.com>

* Hash Sentry user ID from Hevy API key (chrisdoc#345)

* fix: hash sentry user identifiers

* fix: avoid CodeQL API key hash alert

---------

Co-authored-by: CharlieHelps <charlie@charlielabs.ai>

* ci: add commitlint check to github workflow and unify agent instructions

* chore: trigger release

* chore(release): 1.23.24 [skip ci]

## [1.23.24](chrisdoc/hevy-mcp@v1.23.23...v1.23.24) (2026-06-15)

* chore: update dependencies

* feat: fix sentry

* chore(release): 1.24.0 [skip ci]

# [1.24.0](chrisdoc/hevy-mcp@v1.23.24...v1.24.0) (2026-06-15)

### Features

* fix sentry ([728d9a0](chrisdoc@728d9a0))

* build: rebuild package with correct version on publish

* chore(deps): bump form-data from 4.0.5 to 4.0.6 (chrisdoc#346)

Bumps [form-data](https://github.com/form-data/form-data) from 4.0.5 to 4.0.6.
- [Release notes](https://github.com/form-data/form-data/releases)
- [Changelog](https://github.com/form-data/form-data/blob/master/CHANGELOG.md)
- [Commits](form-data/form-data@v4.0.5...v4.0.6)

---
updated-dependencies:
- dependency-name: form-data
  dependency-version: 4.0.6
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(release): 1.24.1 [skip ci]

## [1.24.1](chrisdoc/hevy-mcp@v1.24.0...v1.24.1) (2026-06-15)

* fix: align sentry release name with project@version pattern

* chore(release): 1.24.2 [skip ci]

## [1.24.2](chrisdoc/hevy-mcp@v1.24.1...v1.24.2) (2026-06-15)

### Bug Fixes

* align sentry release name with project@version pattern ([fa9613f](chrisdoc@fa9613f))

* feat: add MCP lifecycle and stdio parse observability (chrisdoc#348)

Co-authored-by: CharlieHelps <charlie@charlielabs.ai>

* chore(release): 1.25.0 [skip ci]

# [1.25.0](chrisdoc/hevy-mcp@v1.24.2...v1.25.0) (2026-06-16)

### Features

* add MCP lifecycle and stdio parse observability ([chrisdoc#348](chrisdoc#348)) ([f7a816b](chrisdoc@f7a816b))

* Install docs-drift-maintainer daemon (chrisdoc#349)

Co-authored-by: charliecreates[bot] <198680274+charliecreates[bot]@users.noreply.github.com>

* Install pr-merge-conflict-repair daemon (chrisdoc#350)

Co-authored-by: charliecreates[bot] <198680274+charliecreates[bot]@users.noreply.github.com>

* Install pr-metadata daemon (chrisdoc#352)

Co-authored-by: charliecreates[bot] <198680274+charliecreates[bot]@users.noreply.github.com>

* Install pr-check-repair daemon (chrisdoc#351)

Co-authored-by: charliecreates[bot] <198680274+charliecreates[bot]@users.noreply.github.com>

* chore: ignore .agents directory in oxlint and oxfmt

* chore(release): 1.25.1 [skip ci]

## [1.25.1](chrisdoc/hevy-mcp@v1.25.0...v1.25.1) (2026-06-17)

* build: upgrade Node.js requirement to 26

* docs: document recent sentry observability changes (chrisdoc#353)

* docs: document recent sentry observability changes

* build: include .agents files in project checks

* Revert "build: include .agents files in project checks"

This reverts commit e8211d4.

---------

Co-authored-by: CharlieHelps <charlie@charlielabs.ai>

* chore(release): 1.25.2 [skip ci]

## [1.25.2](chrisdoc/hevy-mcp@v1.25.1...v1.25.2) (2026-06-17)

* chore(deps): bump hono from 4.12.23 to 4.12.25 (chrisdoc#354)

Bumps [hono](https://github.com/honojs/hono) from 4.12.23 to 4.12.25.
- [Release notes](https://github.com/honojs/hono/releases)
- [Commits](honojs/hono@v4.12.23...v4.12.25)

---
updated-dependencies:
- dependency-name: hono
  dependency-version: 4.12.25
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(release): 1.25.3 [skip ci]

## [1.25.3](chrisdoc/hevy-mcp@v1.25.2...v1.25.3) (2026-06-17)

* fix: remove kubb plugin-client from runtime deps (chrisdoc#356)

* chore(release): 1.25.4 [skip ci]

## [1.25.4](chrisdoc/hevy-mcp@v1.25.3...v1.25.4) (2026-06-19)

### Bug Fixes

* remove kubb plugin-client from runtime deps ([chrisdoc#356](chrisdoc#356)) ([61077ae](chrisdoc@61077ae))

* chore(deps-dev): bump undici from 6.24.1 to 6.27.0 (chrisdoc#357)

Bumps [undici](https://github.com/nodejs/undici) from 6.24.1 to 6.27.0.
- [Release notes](https://github.com/nodejs/undici/releases)
- [Commits](nodejs/undici@v6.24.1...v6.27.0)

---
updated-dependencies:
- dependency-name: undici
  dependency-version: 6.27.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(release): 1.25.5 [skip ci]

## [1.25.5](chrisdoc/hevy-mcp@v1.25.4...v1.25.5) (2026-06-19)

* Add triage-sentry-issues daemon (chrisdoc#359)

* feat(agents): add triage-sentry-issues daemon

* fix(daemon): watch for new sentry issues

* Apply suggestions from code review

Co-authored-by: gitstream-cm[bot] <111687743+gitstream-cm[bot]@users.noreply.github.com>

---------

Co-authored-by: CharlieHelps <charlie@charlielabs.ai>
Co-authored-by: Christoph Kieslich <c.kieslich@gmail.com>
Co-authored-by: gitstream-cm[bot] <111687743+gitstream-cm[bot]@users.noreply.github.com>

* chore(deps): bump actions/checkout in the github-core-actions group (chrisdoc#362)

Bumps the github-core-actions group with 1 update: [actions/checkout](https://github.com/actions/checkout).


Updates `actions/checkout` from 6 to 7
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v6...v7)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-core-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(release): 1.25.6 [skip ci]

## [1.25.6](chrisdoc/hevy-mcp@v1.25.5...v1.25.6) (2026-06-23)

* chore(deps): bump the production-dependencies group with 2 updates (chrisdoc#363)

Bumps the production-dependencies group with 2 updates: [@sentry/node](https://github.com/getsentry/sentry-javascript) and [axios](https://github.com/axios/axios).


Updates `@sentry/node` from 10.58.0 to 10.59.0
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md)
- [Commits](getsentry/sentry-javascript@10.58.0...10.59.0)

Updates `axios` from 1.18.0 to 1.18.1
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](axios/axios@v1.18.0...v1.18.1)

---
updated-dependencies:
- dependency-name: "@sentry/node"
  dependency-version: 10.59.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: production-dependencies
- dependency-name: axios
  dependency-version: 1.18.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(release): 1.25.7 [skip ci]

## [1.25.7](chrisdoc/hevy-mcp@v1.25.6...v1.25.7) (2026-06-23)

* chore(deps-dev): bump the development-dependencies group with 11 updates (chrisdoc#364)

Bumps the development-dependencies group with 11 updates:

| Package | From | To |
| --- | --- | --- |
| [@kubb/cli](https://github.com/kubb-labs/kubb/tree/HEAD/packages/cli) | `4.38.0` | `4.39.1` |
| [@kubb/core](https://github.com/kubb-labs/kubb/tree/HEAD/packages/core) | `4.38.0` | `4.39.1` |
| [@kubb/plugin-client](https://github.com/kubb-labs/kubb/tree/HEAD/packages/plugin-client) | `4.38.0` | `4.39.1` |
| [@kubb/plugin-faker](https://github.com/kubb-labs/kubb/tree/HEAD/packages/plugin-faker) | `4.38.0` | `4.39.1` |
| [@kubb/plugin-oas](https://github.com/kubb-labs/kubb/tree/HEAD/packages/plugin-oas) | `4.38.0` | `4.39.1` |
| [@kubb/plugin-ts](https://github.com/kubb-labs/kubb/tree/HEAD/packages/plugin-ts) | `4.38.0` | `4.39.1` |
| [@kubb/plugin-zod](https://github.com/kubb-labs/kubb/tree/HEAD/packages/plugin-zod) | `4.38.0` | `4.39.1` |
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `25.9.3` | `26.0.0` |
| [oxfmt](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt) | `0.55.0` | `0.56.0` |
| [oxlint](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint) | `1.70.0` | `1.71.0` |
| [tsdown](https://github.com/rolldown/tsdown) | `0.22.2` | `0.22.3` |


Updates `@kubb/cli` from 4.38.0 to 4.39.1
- [Release notes](https://github.com/kubb-labs/kubb/releases)
- [Changelog](https://github.com/kubb-labs/kubb/blob/@kubb/cli@4.39.1/packages/cli/CHANGELOG.md)
- [Commits](https://github.com/kubb-labs/kubb/commits/@kubb/cli@4.39.1/packages/cli)

Updates `@kubb/core` from 4.38.0 to 4.39.1
- [Release notes](https://github.com/kubb-labs/kubb/releases)
- [Changelog](https://github.com/kubb-labs/kubb/blob/@kubb/core@4.39.1/packages/core/CHANGELOG.md)
- [Commits](https://github.com/kubb-labs/kubb/commits/@kubb/core@4.39.1/packages/core)

Updates `@kubb/plugin-client` from 4.38.0 to 4.39.1
- [Release notes](https://github.com/kubb-labs/kubb/releases)
- [Changelog](https://github.com/kubb-labs/kubb/blob/@kubb/plugin-client@4.39.1/packages/plugin-client/CHANGELOG.md)
- [Commits](https://github.com/kubb-labs/kubb/commits/@kubb/plugin-client@4.39.1/packages/plugin-client)

Updates `@kubb/plugin-faker` from 4.38.0 to 4.39.1
- [Release notes](https://github.com/kubb-labs/kubb/releases)
- [Changelog](https://github.com/kubb-labs/kubb/blob/@kubb/plugin-faker@4.39.1/packages/plugin-faker/CHANGELOG.md)
- [Commits](https://github.com/kubb-labs/kubb/commits/@kubb/plugin-faker@4.39.1/packages/plugin-faker)

Updates `@kubb/plugin-oas` from 4.38.0 to 4.39.1
- [Release notes](https://github.com/kubb-labs/kubb/releases)
- [Changelog](https://github.com/kubb-labs/kubb/blob/@kubb/plugin-oas@4.39.1/packages/plugin-oas/CHANGELOG.md)
- [Commits](https://github.com/kubb-labs/kubb/commits/@kubb/plugin-oas@4.39.1/packages/plugin-oas)

Updates `@kubb/plugin-ts` from 4.38.0 to 4.39.1
- [Release notes](https://github.com/kubb-labs/kubb/releases)
- [Changelog](https://github.com/kubb-labs/kubb/blob/@kubb/plugin-ts@4.39.1/packages/plugin-ts/CHANGELOG.md)
- [Commits](https://github.com/kubb-labs/kubb/commits/@kubb/plugin-ts@4.39.1/packages/plugin-ts)

Updates `@kubb/plugin-zod` from 4.38.0 to 4.39.1
- [Release notes](https://github.com/kubb-labs/kubb/releases)
- [Changelog](https://github.com/kubb-labs/kubb/blob/@kubb/plugin-zod@4.39.1/packages/plugin-zod/CHANGELOG.md)
- [Commits](https://github.com/kubb-labs/kubb/commits/@kubb/plugin-zod@4.39.1/packages/plugin-zod)

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

Updates `oxfmt` from 0.55.0 to 0.56.0
- [Release notes](https://github.com/oxc-project/oxc/releases)
- [Changelog](https://github.com/oxc-project/oxc/blob/main/npm/oxfmt/CHANGELOG.md)
- [Commits](https://github.com/oxc-project/oxc/commits/oxfmt_v0.56.0/npm/oxfmt)

Updates `oxlint` from 1.70.0 to 1.71.0
- [Release notes](https://github.com/oxc-project/oxc/releases)
- [Changelog](https://github.com/oxc-project/oxc/blob/main/npm/oxlint/CHANGELOG.md)
- [Commits](https://github.com/oxc-project/oxc/commits/oxlint_v1.71.0/npm/oxlint)

Updates `tsdown` from 0.22.2 to 0.22.3
- [Release notes](https://github.com/rolldown/tsdown/releases)
- [Commits](rolldown/tsdown@v0.22.2...v0.22.3)

---
updated-dependencies:
- dependency-name: "@kubb/cli"
  dependency-version: 4.39.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development-dependencies
- dependency-name: "@kubb/core"
  dependency-version: 4.39.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development-dependencies
- dependency-name: "@kubb/plugin-client"
  dependency-version: 4.39.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development-dependencies
- dependency-name: "@kubb/plugin-faker"
  dependency-version: 4.39.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development-dependencies
- dependency-name: "@kubb/plugin-oas"
  dependency-version: 4.39.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development-dependencies
- dependency-name: "@kubb/plugin-ts"
  dependency-version: 4.39.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development-dependencies
- dependency-name: "@kubb/plugin-zod"
  dependency-version: 4.39.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development-dependencies
- dependency-name: "@types/node"
  dependency-version: 26.0.0
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: development-dependencies
- dependency-name: oxfmt
  dependency-version: 0.56.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development-dependencies
- dependency-name: oxlint
  dependency-version: 1.71.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development-dependencies
- dependency-name: tsdown
  dependency-version: 0.22.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(release): 1.25.8 [skip ci]

## [1.25.8](chrisdoc/hevy-mcp@v1.25.7...v1.25.8) (2026-06-23)

* chore: simplify dependabot grouping and weekly schedule (chrisdoc#366)

* chore(release): 1.25.9 [skip ci]

## [1.25.9](chrisdoc/hevy-mcp@v1.25.8...v1.25.9) (2026-06-23)

* chore(deps): bump @sentry/node in the production-dependencies group (chrisdoc#367)

Bumps the production-dependencies group with 1 update: [@sentry/node](https://github.com/getsentry/sentry-javascript).


Updates `@sentry/node` from 10.59.0 to 10.60.0
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md)
- [Commits](getsentry/sentry-javascript@10.59.0...10.60.0)

---
updated-dependencies:
- dependency-name: "@sentry/node"
  dependency-version: 10.60.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: production-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps-dev): bump the development-dependencies group with 10 updates (chrisdoc#368)

Bumps the development-dependencies group with 10 updates:

| Package | From | To |
| --- | --- | --- |
| [@commitlint/cli](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli) | `21.0.2` | `21.1.0` |
| [@commitlint/config-conventional](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional) | `21.0.2` | `21.1.0` |
| [@commitlint/prompt-cli](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/prompt-cli) | `21.0.2` | `21.1.0` |
| [@kubb/cli](https://github.com/kubb-labs/kubb/tree/HEAD/packages/cli) | `4.39.1` | `4.39.2` |
| [@kubb/core](https://github.com/kubb-labs/kubb/tree/HEAD/packages/core) | `4.39.1` | `4.39.2` |
| [@kubb/plugin-client](https://github.com/kubb-labs/kubb/tree/HEAD/packages/plugin-client) | `4.39.1` | `4.39.2` |
| [@kubb/plugin-faker](https://github.com/kubb-labs/kubb/tree/HEAD/packages/plugin-faker) | `4.39.1` | `4.39.2` |
| [@kubb/plugin-oas](https://github.com/kubb-labs/kubb/tree/HEAD/packages/plugin-oas) | `4.39.1` | `4.39.2` |
| [@kubb/plugin-ts](https://github.com/kubb-labs/kubb/tree/HEAD/packages/plugin-ts) | `4.39.1` | `4.39.2` |
| [@kubb/plugin-zod](https://github.com/kubb-labs/kubb/tree/HEAD/packages/plugin-zod) | `4.39.1` | `4.39.2` |


Updates `@commitlint/cli` from 21.0.2 to 21.1.0
- [Release notes](https://github.com/conventional-changelog/commitlint/releases)
- [Changelog](https://github.com/conventional-changelog/commitlint/blob/master/@commitlint/cli/CHANGELOG.md)
- [Commits](https://github.com/conventional-changelog/commitlint/commits/v21.1.0/@commitlint/cli)

Updates `@commitlint/config-conventional` from 21.0.2 to 21.1.0
- [Release notes](https://github.com/conventional-changelog/commitlint/releases)
- [Changelog](https://github.com/conventional-changelog/commitlint/blob/master/@commitlint/config-conventional/CHANGELOG.md)
- [Commits](https://github.com/conventional-changelog/commitlint/commits/v21.1.0/@commitlint/config-conventional)

Updates `@commitlint/prompt-cli` from 21.0.2 to 21.1.0
- [Release notes](https://github.com/conventional-changelog/commitlint/releases)
- [Changelog](https://github.com/conventional-changelog/commitlint/blob/master/@commitlint/prompt-cli/CHANGELOG.md)
- [Commits](https://github.com/conventional-changelog/commitlint/commits/v21.1.0/@commitlint/prompt-cli)

Updates `@kubb/cli` from 4.39.1 to 4.39.2
- [Release notes](https://github.com/kubb-labs/kubb/releases)
- [Changelog](https://github.com/kubb-labs/kubb/blob/@kubb/cli@4.39.2/packages/cli/CHANGELOG.md)
- [Commits](https://github.com/kubb-labs/kubb/commits/@kubb/cli@4.39.2/packages/cli)

Updates `@kubb/core` from 4.39.1 to 4.39.2
- [Release notes](https://github.com/kubb-labs/kubb/releases)
- [Changelog](https://github.com/kubb-labs/kubb/blob/@kubb/core@4.39.2/packages/core/CHANGELOG.md)
- [Commits](https://github.com/kubb-labs/kubb/commits/@kubb/core@4.39.2/packages/core)

Updates `@kubb/plugin-client` from 4.39.1 to 4.39.2
- [Release notes](https://github.com/kubb-labs/kubb/releases)
- [Changelog](https://github.com/kubb-labs/kubb/blob/@kubb/plugin-client@4.39.2/packages/plugin-client/CHANGELOG.md)
- [Commits](https://github.com/kubb-labs/kubb/commits/@kubb/plugin-client@4.39.2/packages/plugin-client)

Updates `@kubb/plugin-faker` from 4.39.1 to 4.39.2
- [Release notes](https://github.com/kubb-labs/kubb/releases)
- [Changelog](https://github.com/kubb-labs/kubb/blob/@kubb/plugin-faker@4.39.2/packages/plugin-faker/CHANGELOG.md)
- [Commits](https://github.com/kubb-labs/kubb/commits/@kubb/plugin-faker@4.39.2/packages/plugin-faker)

Updates `@kubb/plugin-oas` from 4.39.1 to 4.39.2
- [Release notes](https://github.com/kubb-labs/kubb/releases)
- [Changelog](https://github.com/kubb-labs/kubb/blob/@kubb/plugin-oas@4.39.2/packages/plugin-oas/CHANGELOG.md)
- [Commits](https://github.com/kubb-labs/kubb/commits/@kubb/plugin-oas@4.39.2/packages/plugin-oas)

Updates `@kubb/plugin-ts` from 4.39.1 to 4.39.2
- [Release notes](https://github.com/kubb-labs/kubb/releases)
- [Changelog](https://github.com/kubb-labs/kubb/blob/@kubb/plugin-ts@4.39.2/packages/plugin-ts/CHANGELOG.md)
- [Commits](https://github.com/kubb-labs/kubb/commits/@kubb/plugin-ts@4.39.2/packages/plugin-ts)

Updates `@kubb/plugin-zod` from 4.39.1 to 4.39.2
- [Release notes](https://github.com/kubb-labs/kubb/releases)
- [Changelog](https://github.com/kubb-labs/kubb/blob/@kubb/plugin-zod@4.39.2/packages/plugin-zod/CHANGELOG.md)
- [Commits](https://github.com/kubb-labs/kubb/commits/@kubb/plugin-zod@4.39.2/packages/plugin-zod)

---
updated-dependencies:
- dependency-name: "@commitlint/cli"
  dependency-version: 21.1.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development-dependencies
- dependency-name: "@commitlint/config-conventional"
  dependency-version: 21.1.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development-dependencies
- dependency-name: "@commitlint/prompt-cli"
  dependency-version: 21.1.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development-dependencies
- dependency-name: "@kubb/cli"
  dependency-version: 4.39.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development-dependencies
- dependency-name: "@kubb/core"
  dependency-version: 4.39.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development-dependencies
- dependency-name: "@kubb/plugin-client"
  dependency-version: 4.39.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development-dependencies
- dependency-name: "@kubb/plugin-faker"
  dependency-version: 4.39.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development-dependencies
- dependency-name: "@kubb/plugin-oas"
  dependency-version: 4.39.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development-dependencies
- dependency-name: "@kubb/plugin-ts"
  dependency-version: 4.39.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development-dependencies
- dependency-name: "@kubb/plugin-zod"
  dependency-version: 4.39.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(release): 1.25.10 [skip ci]

## [1.25.10](chrisdoc/hevy-mcp@v1.25.9...v1.25.10) (2026-06-23)

* docs: add add-mcp setup instructions to README (chrisdoc#361)

Co-authored-by: CharlieHelps <charlie@charlielabs.ai>

* chore(release): 1.25.11 [skip ci]

## [1.25.11](chrisdoc/hevy-mcp@v1.25.10...v1.25.11) (2026-06-23)

* chore(release): include all semantic commit types in notes (chrisdoc#370)

Co-authored-by: CharlieHelps <charlie@charlielabs.ai>

* chore(release): 1.25.12 [skip ci]

## [1.25.12](chrisdoc/hevy-mcp@v1.25.11...v1.25.12) (2026-06-24)

* feat: declare outputSchema and return structuredContent for tools

Migrate all JSON-returning MCP tools from server.tool to server.registerTool
with a declared outputSchema, and return structuredContent alongside the text
content. Modern MCP clients (e.g. claude.ai Connectors) get a typed, validated
structured channel.

- formatters.ts: Zod schemas are now the source of truth; FormattedX types are
  derived via z.infer, so formatter/schema drift fails at compile time.
- response-formatter.ts: createJsonResponse also emits structuredContent for
  object payloads (arrays/primitives unchanged for back-compat).
- Each tool wraps its payload in a named key matching its outputSchema key;
  empty lists return the wrapped empty array; not-found/failure paths throw
  (becoming isError responses the SDK does not output-validate); plain-text
  tools keep no outputSchema.
- Add src/tools/output-schema-validation.test.ts: drives every schema-bearing
  tool's success path and asserts structuredContent validates against its
  declared outputSchema (the SDK check that per-tool unit tests skip).
- Docs: AGENTS.md tool-implementation pattern updated.

270 unit tests pass; check:types, oxlint/oxfmt, and build all green.

* test(integration): assert wrapped get-workouts shape and structuredContent

get-workouts now returns { workouts: [...] } with a matching outputSchema; the
integration test (real McpServer + InMemoryTransport) validates the workouts
array and that structuredContent mirrors the text content. Verified against the
live Hevy API.

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: semantic-release-bot <semantic-release-bot@martynus.net>
Co-authored-by: Christoph Kieslich <c.kieslich@gmail.com>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: charliecreates[bot] <198680274+charliecreates[bot]@users.noreply.github.com>
Co-authored-by: CharlieHelps <charlie@charlielabs.ai>
Co-authored-by: gitstream-cm[bot] <111687743+gitstream-cm[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant