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

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,15 @@ jobs:
`server.json name: expected ${process.env.MCP_SERVER_NAME}, received ${String(server.name)}`,
);
}
if (
typeof server.description !== "string" ||
server.description.trim().length === 0 ||
server.description.length > 100
) {
errors.push(
`server.json description must contain 1-100 characters; received ${String(server.description).length}`,
);
}

const npmPackage = server.packages?.find(
(entry) =>
Expand Down
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,13 @@

All notable changes to FixMap are documented here.

## 0.6.1 - 2026-07-22

### Fixed

- Shortened the MCP Registry description to its 100-character limit so the official registry publication can complete.
- Added a repository CI check and release preflight validation for MCP server metadata, preventing registry-only constraints from failing after npm packages have already published.

## 0.6.0 - 2026-07-22

### Added
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ jobs:
with:
fetch-depth: 0
- id: fixmap
uses: aryamthecodebreaker/FixMap@v0.6.0
uses: aryamthecodebreaker/FixMap@v0.6.1
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
```
Expand Down
14 changes: 7 additions & 7 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 3 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "fixmap-workspace",
"version": "0.6.0",
"version": "0.6.1",
"private": true,
"description": "Local-first repo context for coding agents: paste a GitHub issue URL to get ranked files, test routes, and risks.",
"license": "MIT",
Expand Down Expand Up @@ -43,9 +43,10 @@
"build:web": "npm run build -w @fixmap/web",
"check:action-bundle": "npm run build:action && git diff --exit-code packages/action/dist/index.mjs",
"check:action-metadata": "node scripts/check-action-metadata.mjs",
"check:server-manifest": "node scripts/check-server-manifest.mjs",
"benchmark:scan": "npm run build:core && node scripts/benchmark-scan.mjs",
"benchmark:check": "npm run build:core && node scripts/benchmark-scan.mjs --tier 1000 --check",
"ci": "npm run typecheck && npm test && npm run lint && npm run build && npm run check:action-metadata && npm run check:action-bundle && npm run smoke && npm run evaluate && npm run benchmark:check",
"ci": "npm run typecheck && npm test && npm run lint && npm run build && npm run check:action-metadata && npm run check:server-manifest && npm run check:action-bundle && npm run smoke && npm run evaluate && npm run benchmark:check",
"evaluate": "npm run build:core && node scripts/evaluate.mjs",
"evaluate:external": "npm run build:core && node scripts/evaluate-external.mjs",
"evaluate:external:record": "npm run build:core && node scripts/evaluate-external.mjs --record",
Expand Down
4 changes: 2 additions & 2 deletions packages/action/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@fixmap/action",
"version": "0.6.0",
"version": "0.6.1",
"description": "GitHub Action wrapper for FixMap pull request reports.",
"private": true,
"license": "MIT",
Expand All @@ -10,6 +10,6 @@
"typecheck": "tsc -p tsconfig.json --noEmit"
},
"dependencies": {
"@aryam/fixmap-core": "0.6.0"
"@aryam/fixmap-core": "0.6.1"
}
}
4 changes: 2 additions & 2 deletions packages/cli/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@aryam/fixmap",
"version": "0.6.0",
"version": "0.6.1",
"mcpName": "io.github.aryamthecodebreaker/fixmap",
"description": "Local-first CLI and MCP server mapping GitHub issue URLs, tasks, and diffs to ranked files, tests, and risks.",
"license": "MIT",
Expand Down Expand Up @@ -40,7 +40,7 @@
"typecheck": "tsc -p tsconfig.json --noEmit"
},
"dependencies": {
"@aryam/fixmap-core": "0.6.0",
"@aryam/fixmap-core": "0.6.1",
"@modelcontextprotocol/sdk": "^1.29.0"
},
"engines": {
Expand Down
2 changes: 1 addition & 1 deletion packages/core/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@aryam/fixmap-core",
"version": "0.6.0",
"version": "0.6.1",
"description": "Deterministic local-first repository scanner, context ranker, and report renderer for coding agents.",
"license": "MIT",
"repository": {
Expand Down
50 changes: 50 additions & 0 deletions scripts/check-server-manifest.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
import { readFileSync } from "node:fs";

const readJson = (path) => JSON.parse(readFileSync(path, "utf8"));

const server = readJson("server.json");
const cli = readJson("packages/cli/package.json");
const errors = [];

if (server.name !== cli.mcpName) {
errors.push(`server name must match CLI mcpName (${cli.mcpName})`);
}

if (
typeof server.description !== "string" ||
server.description.trim().length === 0 ||
server.description.length > 100
) {
errors.push(
`server description must contain 1-100 characters; received ${String(server.description).length}`
);
}

if (server.version !== cli.version) {
errors.push(`server version ${server.version} must match CLI version ${cli.version}`);
}

const npmPackage = server.packages?.find(
(entry) =>
entry.registryType === "npm" &&
entry.identifier === cli.name
);

if (!npmPackage) {
errors.push(`server packages must include npm package ${cli.name}`);
} else if (npmPackage.version !== cli.version) {
errors.push(
`server npm package version ${npmPackage.version} must match CLI version ${cli.version}`
);
}

if (errors.length > 0) {
for (const error of errors) {
console.error(`Server manifest check failed: ${error}`);
}
process.exit(1);
}

console.log(
`Server manifest is valid: ${server.name}@${server.version} (${server.description.length}/100 description characters).`
);
6 changes: 3 additions & 3 deletions server.json
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
{
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"name": "io.github.aryamthecodebreaker/fixmap",
"description": "Deterministic local-first repo context for coding agents, including one-command public GitHub issue analysis.",
"description": "Deterministic local-first repo context for coding agents with one-command GitHub issue analysis.",
"repository": {
"url": "https://github.com/aryamthecodebreaker/FixMap",
"source": "github"
},
"version": "0.6.0",
"version": "0.6.1",
"packages": [
{
"registryType": "npm",
"identifier": "@aryam/fixmap",
"version": "0.6.0",
"version": "0.6.1",
"transport": {
"type": "stdio"
},
Expand Down