fix(distribution): cut GitHub Releases on tag push (Glama tracking gap)#45
Merged
Merged
Conversation
Chrome verification on Glama (2026-05-17, ~24h after Sprint 1 merge) showed Glama still on 'Latest release: v1.0.0' with the Tool Definition cache at 11 tools and maintenance grade C. Sprint 1 made tags cascade to MCP Registry but did not cut GitHub Releases. Findings: - 5 git tags on freightutils-mcp (v1.0.4, v1.0.5, v1.1.0, v2.0.0, v2.1.0). - 0 GitHub Releases ever cut on the repo. - v2.1.1 (current npm latest, current MCP Registry isLatest) has no git tag — Sprint 1 catch-up used workflow_dispatch + package.json read. - Glama specifically scrapes GitHub Releases API. Tag push without Release publish is invisible to Glama. This is the missing signal. Sprint 1's 'scrape-based, days-of-lag' architecture was correct; the corollary 'Glama reads Releases specifically' wasn't drawn. This amendment captures the gap, the backfill priority order, and the Phase 3 workflow design for cutting Releases on tag push idempotently. Also flags two Glama Quality Checklist items as informational (Try-in-Browser usage seed, Related Servers) — not actioned, Soap decision. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sprint 2 — distribution-cascade-glama-release-gap — encoded forward.
Chrome verification on Glama (2026-05-17, ~24h after Sprint 1's
cascade fix) revealed the cascade was still broken for Glama: 'Latest
release v1.0.0', Tool Definition cache at 11 tools, Maintenance grade
C. Diagnosed that Glama scrapes the GitHub Releases API specifically;
freightutils-mcp had zero Releases ever cut.
This commit lands the main-repo doc + release-hygiene piece:
- CLAUDE.md 'Distribution cascade' section amended:
* MCP Registry bullet: notes the publish step is now idempotent.
* NEW: GitHub Releases bullet explains the workflow's final step
cuts Releases on tag push with CHANGELOG notes + --latest flag.
* Glama bullet: corrected to specify Glama scrapes the GitHub
Releases API (not git tags, not MCP Registry).
* 'Things that DO NOT cascade' bullet updated: a git tag without
a Release is invisible to Glama.
- STATE.md distribution surfaces table refreshed (17 May, post-sprint):
* MCP Registry row: notes idempotent publish behaviour.
* NEW GitHub Releases row: v2.1.1 Latest + v2.1.0/v2.0.0/v1.1.0
backfilled 2026-05-17.
* Glama row: 'tracks the GitHub Releases API specifically';
addressed by this sprint; re-scrape pending.
* Sprint cadence bumped 19 -> 20 with PR #45 entry.
Release hygiene:
- CHANGELOG.md gets a 2026-05-17 Distribution entry at the top.
- lib/changelog-data.ts gets a 2026-05-17 MCP Update entry.
- Lint passes: 103 title literals scanned, no double-brand, ADR fixtures
contain 'ADR 2025'.
- Smoke test green against prod (40/40).
Companion changes (out-of-tree):
- SoapyRED/freightutils-mcp#3 (workflow update) MERGED.
- 4 GitHub Releases backfilled on freightutils-mcp via workflow_dispatch.
- Skills-Claude/freightutils-distribution.md amended.
Audit: docs/audit/distribution-cascade-2026-05-16.md (2026-05-17 amendment).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
19 tasks
SoapyRED
added a commit
that referenced
this pull request
May 18, 2026
#46) Phase 1 (audit-only): docs/audit/tool-count-standardise-2026-05-17.md landed in a prior commit on the branch before any copy was changed. Phase 2 — copy edits: - lib/constants/siteStats.ts: toolCount 18→19, mcpToolCount 18→19 - FREIGHTUTILS_STRATEGY.md: mcp.directory bullet "live v2.1.0 / 18 tools" → "live v2.1.1 / 19 tools" - Historical "11"/"18" mentions in changelog entries, STATE.md PR-#45 record, and the distribution-cascade audit doc's forensic record were intentionally LEFT (see Phase 1 audit doc for the inventory). Phase 3 — cascade-doc amendments: - CLAUDE.md "Distribution cascade" Glama bullet rewritten to encode Chrome-verified auto-publish behaviour + new "verify Glama behaviour, do not predict it" one-liner. - STATE.md Glama row: Maintenance grade C → B (post-publish); wording implying manual maintainer publish step removed. - docs/audit/distribution-cascade-2026-05-16.md: third amendment "Amendment 2026-05-17 (afternoon): Glama auto-publishes on successful build" appended; recurring-lesson table documents three cascade drifts in three days. External follow-ups listed in PR body — Soap-manual edits to SoapyRED/freightutils-mcp README + server.json (≤100 char) + npm package.json descriptions, and the Glama dashboard description. tsc clean. next build green. Static HTML verified for /, /about, /api- docs, /changelog — all render 19 / new entry.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Closes the Release-gap leg of the distribution cascade. Chrome verification on Glama (2026-05-17, ~24 hours after Sprint 1's cascade-fix landed) showed Glama still on "Latest release: v1.0.0" with the Tool Definition cache stuck at 11 tools (current is 19) and Maintenance grade C. Diagnosed that Glama scrapes the GitHub Releases API specifically — and
freightutils-mcphad zero Releases ever cut.Companion: SoapyRED/freightutils-mcp#3 (workflow update) MERGED. Audit amendment at
docs/audit/distribution-cascade-2026-05-16.md— 2026-05-17 section.Phase 1 — Diagnosis (committed before any fix)
5 tags, 0 Releases. Plus: v2.1.1 (current npm latest, current MCP Registry isLatest) had no git tag — Sprint 1's catch-up used
workflow_dispatch+package.jsonread, bypassing tag creation.Sprint 1 corrected the "GH Action cascades to Smithery + Glama auto-sync" myth (they scrape independently) but didn't draw the corollary that Glama scrapes the GitHub Releases API specifically. A tag push without a Release publish is invisible to Glama. That's why Glama remained on its first-ever-scrape value (v1.0.0) even after Sprint 1 made the Registry catch up.
Phase 2 — Backfill (in-sprint)
Created the missing
v2.1.1tag at commit7236c42(the npm-publish snapshot), then ranworkflow_dispatchper version. Workflow's new idempotent guard correctly skipped the MCP Registry publish step on all four runs (versions already in Registry history) and fell through to the new Release-cut step.v1.0.5 / v1.0.4 historical tags deferred — no CHANGELOG entries; backfill is Soap-manual if ever wanted.
Phase 3 — Workflow extension (companion PR, MERGED)
SoapyRED/freightutils-mcp#3 adds two things:
freightutils-mcp/CHANGELOG.mdvia awk (between## VERSIONand the next##heading). Falls back to a pointer line when no entry exists.--latest=truewhen version matches MCP Registry isLatest;--latest=falsefor historical backfills. Idempotent — skips if Release already exists.if: registry_check.outputs.already_published != 'true'. Without this, re-runs on already-published versions would error atmcp-publisher publish. This made the Phase 2 backfill possible without manual hacks.Walkthrough — next routine release
Phase 4 — Encode forward (this PR)
CLAUDE.md"Distribution cascade" section:--latestflag.STATE.mddistribution surfaces table refreshed (17 May, post-sprint):Skills-Claude/freightutils-distribution.md(external skill) amended in two sections — "Active surfaces" table and "When a surface looks out of date" troubleshooting.CHANGELOG.md+lib/changelog-data.tscarry a 2026-05-17 entry.Test plan
gh release list --repo SoapyRED/freightutils-mcpshows 4 Releases — v2.1.1 Latest + v2.1.0/v2.0.0/v1.1.0gh release view v2.1.1 --repo SoapyRED/freightutils-mcpconfirms notes pulled from CHANGELOG.md (Smithery serverInfo fix + tighter Zod + .strict() — verified body preview matches CHANGELOG content)npm run lint:seo-titlespasses (103 title literals scanned, no double-brand)Exit criteria
68abca3)FAULT 5
CI/docs sprint, most items N/A:
/changelogpage (lib/changelog-data.ts) — entry added, Rule A still passesSoapyRED/freightutils-mcpREADME — n/a (tool count unchanged)🤖 Generated with Claude Code