claudemd-cli 0.23.14 → 0.23.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -8,6 +8,22 @@ All notable changes to the `claudemd` plugin. This changelog tracks plugin artif
8
8
  - **Canonical spec version source**: `spec/CLAUDE.md` top-line title (`# AI-CODING-SPEC vX.Y.Z — Core`) + `spec/CLAUDE-changelog.md` top `##` entry.
9
9
  - **Plugin semver vs spec semver** are independent: plugin patch (0.2.0 → 0.2.1) may ship when spec is unchanged (this release); plugin minor (0.1.9 → 0.2.0) ships when spec minor updates (v0.2.0 shipped spec v6.10.0).
10
10
 
11
+ ## [0.23.16] - 2026-06-10
12
+
13
+ **Patch — cwd→projects-dir encoding silently no-op'd the §11 gate (and 3 more hooks) for paths with a space / `+` / `@`.** Spec content unchanged (stays v6.14.1). Continues the end-to-end user-test sweep.
14
+
15
+ ### Fixed — narrow `tr '/._'` cwd encoding mis-located the per-project dir
16
+
17
+ - `hooks/memory-read-check.sh`, `hooks/memory-prompt-hint.sh`, `hooks/banned-vocab-check.sh`, `hooks/lib/rule-hits.sh`: all four derive `~/.claude/projects/<encoded>/` from the cwd, and all used `tr '/._' '-'`. But Claude Code replaces **every** char outside `[a-zA-Z0-9-]` with `-` (the code comments and `feedback_cc_cwd_encoding_dots` both say so). The narrow three-char transform left a space / `+` / `@` / etc. intact, so for any project path containing one (e.g. a macOS path under `Application Support`), the derived dir was wrong → the memory index / transcript was not found → fail-open. Concretely: the HARD §11 memory-read gate silently no-op'd, the §11 memory-hint went dark, the §10-V transcript-vocab scan mis-located the transcript, and `rule-hits` telemetry attributed rows to the wrong project. Fix: all four now use `tr -c 'a-zA-Z0-9-' '-'`, the exact CC transform. For `/._`-only paths the two forms are byte-identical, so this is a strict superset with no behavior change for common paths. Added memory-read-check Case 8b (space-in-cwd → correct encoding → deny); a `/._`-only fixture passes under both the bug and the fix, so the new fixture deliberately uses a space.
18
+
19
+ ## [0.23.15] - 2026-06-10
20
+
21
+ **Patch — ship-baseline false-positive: a commit message quoting `&& git push` was denied on red CI.** Spec content unchanged (stays v6.14.1). Continues the end-to-end user-test sweep into the PreToolUse hooks.
22
+
23
+ ### Fixed — inline `-m "..."` commit-message prose tripped the push trigger
24
+
25
+ - `hooks/ship-baseline-check.sh`: v0.23.1 stripped heredoc bodies before the `git push` segment-anchor match so commit-message prose quoting `&& git push` would not trip the CI gate — but only for heredocs. The far more common inline form `git commit -m "fix && git push in docs"` (a pure commit, no push at all) still matched the trigger and was denied on red CI, with a deny message telling the user to add a `known-red baseline:` push-bypass marker — nonsensical for a command that never pushes. Fix: also strip `"..."` and `'...'` quoted bodies (after the heredoc strip + flatten) before the trigger match. A real push is always unquoted, so this removes the false positive without a false negative — `git commit -m "x" && git push` keeps its outside-quote `&& git push` and still gates. The `known-red baseline:` marker check reads the raw command, so the override inside a quoted `-m` payload is unaffected. Added Cases 25–26 (`&&` and `;` inside an inline `-m` quote → pass) alongside the existing non-regression case 21 (real chained push → deny).
26
+
11
27
  ## [0.23.14] - 2026-06-10
12
28
 
13
29
  **Patch — SessionStart emitted invalid JSON when two banners fired together, dropping both.** Spec content unchanged (stays v6.14.1). Continues the end-to-end user-test sweep into the SessionStart / UserPromptSubmit hooks.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claudemd-cli",
3
- "version": "0.23.14",
3
+ "version": "0.23.16",
4
4
  "description": "Standalone CLI for §10-V banned-vocab + transcript scanning. Companion to the claudemd Claude Code plugin (github.com/sdsrss/claudemd) for use in git pre-commit hooks, GitHub Actions, and other agents.",
5
5
  "type": "module",
6
6
  "bin": {