Skip to content

Commit 882c2f8

Browse files
Your Nameclaude
andcommitted
fix(ci): dogfood calm-guard-dogfood against this commit, not stale npm
Root cause of the real CI failure on 887c2f0: action.yml's default `version: latest` installs whatever's last published to npm (0.5.0), but `guard` landed in 9773d41 -- AFTER that npm tag -- so the dogfood job 404'd on `error: unrecognized subcommand 'guard'`. Any external user following README's one-line-CI instructions right now hits the same wall; this only fixes the CI symptom, not that underlying gap (tracked by not yet cutting a new release -- see below). calm-guard-dogfood now builds calm-cli from source and aliases it as `calm-mcp` on PATH (skip-install: true), so it dogfoods the actual commit's own wiring instead of a release that may not contain it yet. action.yml gains a `skip-install` input for this exact pattern. Also bumps workspace version 0.5.0 -> 0.6.0 (Cargo.toml, plugins/calm/.claude-plugin/plugin.json) in preparation for the next release -- this commit does NOT tag or trigger release.yml. Release is intentionally deferred: `calm fitness-check`'s hotspot_risk gate fails on this exact commit (crates/calm-server/src/tools/common.rs, 0.95 vs 0.80 max -- same file split once before at 81f7315 for the same gate, since regrown). A same-session attempt to re-split it hit this repo's own high-risk edit-safety gate (>10-caller hub, requires a live elicitation approval); the elicitation round-trip was tested twice this session and both times auto-declined fail-closed (no approval UI in this environment) -- confirmed not a timing issue by retrying with elicit_timeout_secs raised to 120s. Splitting common.rs properly is left for a session with real human-reviewed-PR capability rather than routing around the gate. Full workspace verification (fmt --check, clippy --workspace --all-targets -D warnings, cargo test --workspace incl. calm-server --lib 341/341) green on this exact commit. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
1 parent b5b91ab commit 882c2f8

5 files changed

Lines changed: 41 additions & 6 deletions

File tree

.github/workflows/ci.yml

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ jobs:
4040
# it's run clean across enough real PRs.
4141
calm-guard-dogfood:
4242
runs-on: ubuntu-latest
43-
timeout-minutes: 10
43+
timeout-minutes: 15
4444
continue-on-error: true
4545
steps:
4646
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
@@ -51,7 +51,30 @@ jobs:
5151
# fallback it's meant to be testing.
5252
fetch-depth: 0
5353

54+
- uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8 # stable
55+
56+
- uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2
57+
58+
# Dogfooding must exercise THIS commit's own calm-cli, not whatever
59+
# was last published to npm -- action.yml's default `version: latest`
60+
# install can lag a real subcommand by days (found for real: `guard`
61+
# landed in 9773d41, after the v0.5.0 npm tag, so the plain npm-install
62+
# path 404'd on `error: unrecognized subcommand 'guard'` here until
63+
# this fix). Building from source and aliasing it as `calm-mcp` on
64+
# PATH, then passing skip-install: true, tests the actual wiring this
65+
# PR/push is changing instead of a stale release.
66+
- name: Build calm-cli from source (this commit, not the last npm release)
67+
run: cargo build -p calm-cli
68+
69+
- name: Alias the freshly built binary as calm-mcp on PATH
70+
run: |
71+
mkdir -p "$HOME/.local/bin"
72+
ln -sf "$GITHUB_WORKSPACE/target/debug/calm" "$HOME/.local/bin/calm-mcp"
73+
echo "$HOME/.local/bin" >> "$GITHUB_PATH"
74+
5475
- uses: ./
76+
with:
77+
skip-install: true
5578
# No `base`/`commits` input -- exercises action.yml's own
5679
# pull_request/push auto-detection, not an explicit override.
5780

Cargo.lock

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ members = [
1717
# version against the downloaded release binary's real `--version` output
1818
# and treats any mismatch as a corrupted/wrong download, so a stale value
1919
# here silently defeats the verified-download fast path for everyone.
20-
version = "0.5.0"
20+
version = "0.6.0"
2121
edition = "2024"
2222
license = "MIT"
2323
rust-version = "1.85"

action.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,23 @@ inputs:
4545
description: 'Which @eilodon/calm-mcp npm version to install. Defaults to the latest published release.'
4646
required: false
4747
default: 'latest'
48+
skip-install:
49+
description: >-
50+
Skip the npm install step and use whatever `calm-mcp` is already on
51+
PATH. For dogfooding this action against a not-yet-released commit
52+
(build calm-cli from source, put a `calm-mcp`-named symlink to it on
53+
PATH, then call this action with skip-install: true) -- see
54+
.github/workflows/ci.yml's calm-guard-dogfood job for the pattern.
55+
Most callers should leave this false and let npm install a real
56+
published release.
57+
required: false
58+
default: 'false'
4859

4960
runs:
5061
using: 'composite'
5162
steps:
5263
- name: Install calm
64+
if: inputs.skip-install != 'true'
5365
shell: bash
5466
env:
5567
CALM_VERSION: ${{ inputs.version }}

plugins/calm/.claude-plugin/plugin.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "calm",
33
"description": "CALM (Coding Agent Liveness Map) MCP server — call-graph-aware locate/source/edit_symbol/diff_impact and 37 tools total, backed by a multi-tier resolver (syntactic -> Stack Graphs -> SCIP) instead of grep. Bundles a SessionStart bootstrap (scaffolds the CALM tool-workflow hook + AGENTS.md into your project on first use, via `calm init --hooks --agents-md`) and a calm-guide Skill.",
4-
"version": "0.5.0",
4+
"version": "0.6.0",
55
"author": {
66
"name": "Eilodon"
77
},

0 commit comments

Comments
 (0)