Skip to content

Commit fcd643b

Browse files
chore: establish npm beta prerelease channel (#581)
* chore: establish beta release packages * ci: support Mergify prerelease queue checks --------- Co-authored-by: CharlieHelps <charlie@charlielabs.ai>
1 parent e29d5b7 commit fcd643b

9 files changed

Lines changed: 103 additions & 33 deletions

File tree

.changeset/pre.json

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
{
2+
"mode": "pre",
3+
"tag": "beta",
4+
"initialVersions": {
5+
"hevy-mcp": "1.28.0"
6+
},
7+
"changesets": [
8+
"bright-lions-exercise",
9+
"bright-otters-guide",
10+
"calm-lions-report",
11+
"calm-tools-guide",
12+
"flat-experts-scream",
13+
"gate-release-workflow",
14+
"gitstream-approve-lgtm",
15+
"gitstream-review-status-labels",
16+
"goofy-parks-repair",
17+
"graceful-stdio-shutdown",
18+
"lovely-candles-smash",
19+
"quiet-lions-debug",
20+
"tasty-waves-smoke",
21+
"thin-views-smash"
22+
]
23+
}

.changeset/tasty-waves-smoke.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
---
2+
---

.changeset/thin-views-smash.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
---
2+
---

.github/workflows/build-and-test.yml

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,16 @@ jobs:
6565
run: npx commitlint --from ${{ github.event.pull_request.base.sha }} --to ${{ github.event.pull_request.head.sha }} --verbose
6666

6767
- name: Check for changeset
68-
if: github.event_name == 'pull_request' && matrix.node-version == '24.x' && github.actor != 'dependabot[bot]' && github.head_ref != 'changeset-release/main'
68+
if: >-
69+
github.event_name == 'pull_request' &&
70+
matrix.node-version == '24.x' &&
71+
github.actor != 'dependabot[bot]' &&
72+
github.head_ref != 'changeset-release/main' &&
73+
!(
74+
github.event.pull_request.head.repo.full_name == github.repository &&
75+
github.event.pull_request.user.login == 'mergify[bot]' &&
76+
startsWith(github.head_ref, 'mergify/merge-queue/')
77+
)
6978
run: npx changeset status --since=origin/${{ github.base_ref }}
7079

7180
- name: Run Check

CHANGELOG.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,26 @@
1+
## 1.28.1-beta.0
2+
3+
### Patch Changes
4+
5+
- [#574](https://github.com/chrisdoc/hevy-mcp/pull/574) [`0a26ed0`](https://github.com/chrisdoc/hevy-mcp/commit/0a26ed09f5fe536870412ece125deb4f07a38d86) Thanks [@charliecreates](https://github.com/apps/charliecreates)! - Expose MCP registry metadata through the package `mcpName` field and a synchronized `server.json` manifest.
6+
7+
- [#563](https://github.com/chrisdoc/hevy-mcp/pull/563) [`4c80e87`](https://github.com/chrisdoc/hevy-mcp/commit/4c80e87d8b6cbf82c11cd194d642a33bc1995980) Thanks [@charliecreates](https://github.com/apps/charliecreates)! - Provide MCP clients with concise server-level guidance for safe tool selection,
8+
recommended workout workflows, pagination, retries, and API-key setup.
9+
10+
- [#569](https://github.com/chrisdoc/hevy-mcp/pull/569) [`209a7d4`](https://github.com/chrisdoc/hevy-mcp/commit/209a7d45535de6da63d8e376bf7f230b0498cab7) Thanks [@charliecreates](https://github.com/apps/charliecreates)! - Print the CLI version with the package name to stderr.
11+
12+
- [#567](https://github.com/chrisdoc/hevy-mcp/pull/567) [`23cb9af`](https://github.com/chrisdoc/hevy-mcp/commit/23cb9af1c485afdbe2ce70188059ff3cf54f0b84) Thanks [@charliecreates](https://github.com/apps/charliecreates)! - Improve MCP tool descriptions with aliases, use-case guidance, side-effect classification, and operational constraints for more reliable LLM tool selection.
13+
14+
- [#575](https://github.com/chrisdoc/hevy-mcp/pull/575) [`fc4dd6f`](https://github.com/chrisdoc/hevy-mcp/commit/fc4dd6f934a0a7581b0d03464961618b154fa1d1) Thanks [@charliecreates](https://github.com/apps/charliecreates)! - Report privacy-safe malformed stdin diagnostics while continuing to process later MCP messages.
15+
16+
- [#570](https://github.com/chrisdoc/hevy-mcp/pull/570) [`d4b6872`](https://github.com/chrisdoc/hevy-mcp/commit/d4b6872bb9d0d5d1dd336b2baa14e9f05eaa5f00) Thanks [@charliecreates](https://github.com/apps/charliecreates)! - Gracefully close and flush the stdio transport on SIGINT or SIGTERM, with a
17+
bounded forced-exit fallback when shutdown stalls or other handles remain open.
18+
19+
- [#562](https://github.com/chrisdoc/hevy-mcp/pull/562) [`e29d5b7`](https://github.com/chrisdoc/hevy-mcp/commit/e29d5b793088788d771c0665986e61463442fd76) Thanks [@charliecreates](https://github.com/apps/charliecreates)! - Notify users on stderr about newer major releases or when they are more than
20+
two minor versions behind, using package-manager-neutral guidance.
21+
22+
- [#572](https://github.com/chrisdoc/hevy-mcp/pull/572) [`d1f629e`](https://github.com/chrisdoc/hevy-mcp/commit/d1f629ee2b2b5221d259676f453cbfb74242dbf3) Thanks [@charliecreates](https://github.com/apps/charliecreates)! - Add opt-in, privacy-bounded stderr diagnostics for tool invocations and Hevy API responses.
23+
124
## 1.28.0
225

326
### Minor Changes

README.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,25 @@ HEVY_API_KEY=your_hevy_api_key_here npx -y hevy-mcp
7070
HEVY_API_KEY=your_hevy_api_key_here bunx hevy-mcp@latest
7171
```
7272

73+
### Prerelease channel
74+
75+
Install `hevy-mcp@beta` to opt into changes merged to `main` that have not yet
76+
reached a stable release:
77+
78+
```bash
79+
npm install hevy-mcp@beta
80+
81+
# npx launcher
82+
npx -y hevy-mcp@beta
83+
84+
# bun launcher
85+
bunx hevy-mcp@beta
86+
```
87+
88+
Beta builds may be less stable and can change before their stable release.
89+
`npm install hevy-mcp@latest` remains the stable channel. To switch back from
90+
beta, install `hevy-mcp@latest` again.
91+
7392
### Manual Installation
7493

7594
```bash

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "hevy-mcp",
3-
"version": "1.28.0",
3+
"version": "1.28.1-beta.0",
44
"description": "A Model Context Protocol (MCP) server implementation that interfaces with the Hevy fitness tracking app and its API.",
55
"keywords": [
66
"api",

server.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,12 @@
77
"url": "https://github.com/chrisdoc/hevy-mcp",
88
"source": "github"
99
},
10-
"version": "1.28.0",
10+
"version": "1.28.1-beta.0",
1111
"packages": [
1212
{
1313
"registryType": "npm",
1414
"identifier": "hevy-mcp",
15-
"version": "1.28.0",
15+
"version": "1.28.1-beta.0",
1616
"transport": {
1717
"type": "stdio"
1818
},

tests/unit/server-manifest.test.ts

Lines changed: 21 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -250,9 +250,6 @@ describe("server manifest metadata", () => {
250250
const packageJson = JSON.parse(
251251
await readFile(join(rootDir, "package.json"), "utf8"),
252252
);
253-
const nextVersion = packageJson.version.replace(/\d+$/, (patch: string) =>
254-
String(Number(patch) + 1),
255-
);
256253
const fixturePackageJson = {
257254
name: packageJson.name,
258255
version: packageJson.version,
@@ -295,36 +292,31 @@ describe("server manifest metadata", () => {
295292
},
296293
});
297294

298-
const [
299-
updatedPackageJson,
300-
updatedManifest,
301-
committedFiles,
302-
head,
303-
tag,
304-
status,
305-
] = await Promise.all([
306-
readFile(join(fixtureDir, "package.json"), "utf8").then(JSON.parse),
307-
readFile(join(fixtureDir, "server.json"), "utf8").then(JSON.parse),
308-
execFileAsync(
309-
"git",
310-
["show", "--name-only", "--pretty=format:", "HEAD"],
311-
{ cwd: fixtureDir },
312-
),
313-
execFileAsync("git", ["rev-parse", "HEAD"], { cwd: fixtureDir }),
314-
execFileAsync("git", ["rev-list", "-n", "1", `v${nextVersion}`], {
315-
cwd: fixtureDir,
316-
}),
317-
execFileAsync("git", ["status", "--porcelain"], { cwd: fixtureDir }),
318-
]);
319-
320-
expect(updatedPackageJson.version).toBe(nextVersion);
321-
expect(updatedManifest.version).toBe(nextVersion);
322-
expect(updatedManifest.packages[0].version).toBe(nextVersion);
295+
const [updatedPackageJson, updatedManifest, committedFiles, tag, status] =
296+
await Promise.all([
297+
readFile(join(fixtureDir, "package.json"), "utf8").then(JSON.parse),
298+
readFile(join(fixtureDir, "server.json"), "utf8").then(JSON.parse),
299+
execFileAsync(
300+
"git",
301+
["show", "--name-only", "--pretty=format:", "HEAD"],
302+
{ cwd: fixtureDir },
303+
),
304+
execFileAsync("git", ["tag", "--points-at", "HEAD"], {
305+
cwd: fixtureDir,
306+
}),
307+
execFileAsync("git", ["status", "--porcelain"], { cwd: fixtureDir }),
308+
]);
309+
310+
expect(updatedPackageJson.version).not.toBe(packageJson.version);
311+
expect(updatedManifest.version).toBe(updatedPackageJson.version);
312+
expect(updatedManifest.packages[0].version).toBe(
313+
updatedPackageJson.version,
314+
);
323315
expect(committedFiles.stdout.trim().split("\n")).toEqual([
324316
"package.json",
325317
"server.json",
326318
]);
327-
expect(tag.stdout.trim()).toBe(head.stdout.trim());
319+
expect(tag.stdout.trim()).toBe(`v${updatedPackageJson.version}`);
328320
expect(status.stdout).toBe("");
329321
});
330322

0 commit comments

Comments
 (0)