@holmes-lab/holmes-kit 0.3.10 → 0.3.11

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.
package/CHANGELOG.md CHANGED
@@ -4,6 +4,16 @@ All notable changes to this project will be documented in this file.
4
4
 
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+ <!-- @implements A-SPEC-209 -->
8
+ ## [0.3.11] - 2026-09-01
9
+
10
+ ### Fixed
11
+
12
+ - **push gate: tag refs are names, not baselines** (dogfooded): pushing `--tags` sends
13
+ `refs/tags` lines whose shas are usually ancestors of the evidenced tip, and the exact-head
14
+ rule refused the release-tag push of the very version that shipped the gate. Only
15
+ `refs/heads` lines are judged now — a tag merely names an existing commit.
16
+
7
17
  <!-- @implements A-SPEC-209 -->
8
18
  ## [0.3.10] - 2026-09-01
9
19
 
package/dist/.build-id CHANGED
@@ -1 +1 @@
1
- 1085a02-mti0yut3
1
+ 3d14357-mti358ve
@@ -32,6 +32,9 @@ export declare function judgePush(input: PushJudgeInput): PushVerdict;
32
32
  /**
33
33
  * The pre-push stdin format: `<local ref> <local sha> <remote ref> <remote sha>` per line.
34
34
  * A deletion push (all-zero local sha) deletes a remote ref — there is nothing to vouch for.
35
+ * Only BRANCH refs (refs/heads/) are judged: the gate guards the moment a code line becomes
36
+ * someone's baseline, and a tag merely NAMES an existing commit — dogfooded 2026-09-01, pushing
37
+ * v0.3.9 (an ancestor of the evidenced tip) was refused by the exact-head rule until this line.
35
38
  */
36
39
  export declare function parsePushLines(stdinText: string): Array<{
37
40
  localSha: string;
@@ -50,6 +50,9 @@ function flatSubject(s) {
50
50
  /**
51
51
  * The pre-push stdin format: `<local ref> <local sha> <remote ref> <remote sha>` per line.
52
52
  * A deletion push (all-zero local sha) deletes a remote ref — there is nothing to vouch for.
53
+ * Only BRANCH refs (refs/heads/) are judged: the gate guards the moment a code line becomes
54
+ * someone's baseline, and a tag merely NAMES an existing commit — dogfooded 2026-09-01, pushing
55
+ * v0.3.9 (an ancestor of the evidenced tip) was refused by the exact-head rule until this line.
53
56
  */
54
57
  function parsePushLines(stdinText) {
55
58
  const out = [];
@@ -57,7 +60,9 @@ function parsePushLines(stdinText) {
57
60
  const parts = line.trim().split(/\s+/);
58
61
  if (parts.length !== 4)
59
62
  continue;
60
- const [, localSha, , remoteSha] = parts;
63
+ const [localRef, localSha, , remoteSha] = parts;
64
+ if (!localRef.startsWith('refs/heads/'))
65
+ continue; // tags/notes: names, not baselines
61
66
  if (!/^[0-9a-f]{40}$/.test(localSha))
62
67
  continue;
63
68
  if (/^0{40}$/.test(localSha))
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "//": "@implements A-SPEC-209",
3
3
  "name": "@holmes-lab/holmes-kit",
4
- "version": "0.3.10",
4
+ "version": "0.3.11",
5
5
  "description": "Holmes-Kit — deterministic Agentic Software Engineering (ASE) harness with causal traceability (spec chain + D-CPG + RTM + phase guardrail)",
6
6
  "main": "dist/holmes/mcp/server.js",
7
7
  "types": "dist/holmes/mcp/server.d.ts",