@vibe-validate/git 0.19.0-rc.4 → 0.19.0-rc.6

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.
@@ -20,7 +20,7 @@ import type { TreeHash, TreeHashResult } from './types.js';
20
20
  * 3. Mark untracked files with --intent-to-add in temp index
21
21
  * 4. Calculate tree hash with git write-tree using temp index
22
22
  * 5. Detect and process git submodules (recursive)
23
- * 6. Compute composite hash from main repo + submodule hashes
23
+ * 6. Return parent hash + optional submodule hashes
24
24
  * 7. Clean up temp index file
25
25
  *
26
26
  * Why this is better than git stash create:
@@ -30,29 +30,39 @@ import type { TreeHash, TreeHashResult } from './types.js';
30
30
  * Submodule Support (Issue #120):
31
31
  * - Detects submodules via `git submodule status`
32
32
  * - Recursively calculates tree hash for each submodule
33
- * - Combines all hashes into composite SHA-256 hash
33
+ * - Returns TreeHashResult with parent hash + submodule hashes
34
34
  * - Working tree changes in submodules invalidate cache
35
+ * - Git notes store full result for state reconstruction
36
+ *
37
+ * IMPORTANT: This function returns a structured result object, NOT a composite hash.
38
+ * Git notes store the TreeHashResult as-is. The hash field is the parent repo's
39
+ * standard Git SHA-1 hash (40 hex characters). The optional submoduleHashes field
40
+ * records each submodule's tree hash separately.
41
+ *
42
+ * Cache key format in git notes (v0.19.0+):
43
+ * - Parent-only repos: Use parent hash directly (backward compatible)
44
+ * - Repos with submodules: Use parent hash + submodule metadata
45
+ * - Result structure stored in git notes for state reconstruction
35
46
  *
36
47
  * CRITICAL: Uses GIT_INDEX_FILE to avoid corrupting real index during git commit hooks
37
48
  *
38
49
  * @returns TreeHashResult containing:
39
- * - hash: Composite SHA-256 hash (or single repo hash if no submodules)
40
- * - components: Array of { path, treeHash } for main repo and each submodule
50
+ * - hash: Parent repository tree hash (Git SHA-1, 40 hex chars)
51
+ * - submoduleHashes: Optional record of submodule paths to tree hashes
41
52
  *
42
53
  * @example
43
- * // Repository without submodules
54
+ * // Repository without submodules (0.18.x compatible)
44
55
  * const result = await getGitTreeHash();
45
- * // { hash: 'abc123...', components: [{ path: '.', treeHash: 'abc123...' }] }
56
+ * // { hash: 'abc123...' }
46
57
  *
47
58
  * @example
48
- * // Repository with submodules
59
+ * // Repository with submodules (v0.19.0+)
49
60
  * const result = await getGitTreeHash();
50
61
  * // {
51
- * // hash: 'def456...', // Composite SHA-256
52
- * // components: [
53
- * // { path: '.', treeHash: 'abc123...' },
54
- * // { path: 'libs/auth', treeHash: 'xyz789...' }
55
- * // ]
62
+ * // hash: 'abc123...', // Parent repo hash
63
+ * // submoduleHashes: {
64
+ * // 'libs/auth': 'xyz789...'
65
+ * // }
56
66
  * // }
57
67
  *
58
68
  * @throws Error if not in a git repository or git command fails
@@ -118,31 +128,4 @@ export declare function getSubmodules(): SubmoduleInfo[];
118
128
  * @internal Exported for testing
119
129
  */
120
130
  export declare function getSubmoduleTreeHash(submodulePath: string): Promise<TreeHashResult>;
121
- /**
122
- * Compute composite hash from multiple tree hash components
123
- *
124
- * Creates deterministic SHA-256 hash by:
125
- * 1. Sorting components by path (lexicographic order)
126
- * 2. Building string: "path:hash+path:hash+..."
127
- * 3. Hashing with SHA-256
128
- *
129
- * This ensures same content always produces same hash regardless of input order.
130
- *
131
- * @param components - Array of path and tree hash pairs
132
- * @returns Composite SHA-256 hash (64 hex characters)
133
- *
134
- * @example
135
- * const components = [
136
- * { path: '.', treeHash: 'abc123' },
137
- * { path: 'libs/auth', treeHash: 'def456' }
138
- * ];
139
- * const composite = computeCompositeHash(components);
140
- * // Returns SHA-256('.:abc123+libs/auth:def456')
141
- *
142
- * @internal Exported for testing
143
- */
144
- export declare function computeCompositeHash(components: Array<{
145
- path: string;
146
- treeHash: TreeHash;
147
- }>): TreeHash;
148
131
  //# sourceMappingURL=tree-hash.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tree-hash.d.ts","sourceRoot":"","sources":["../src/tree-hash.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AASH,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AA+G3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AAEH,wBAAsB,cAAc,IAAI,OAAO,CAAC,cAAc,CAAC,CAsI9D;AAED;;;;;;;GAOG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,QAAQ,CAAC,CAUzD;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC,CAS9D;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,kFAAkF;IAClF,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,aAAa,IAAI,aAAa,EAAE,CA2B/C;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,oBAAoB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CASzF;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,QAAQ,CAAA;CAAE,CAAC,GACtD,QAAQ,CAgBV"}
1
+ {"version":3,"file":"tree-hash.d.ts","sourceRoot":"","sources":["../src/tree-hash.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAQH,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AA+G3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AAEH,wBAAsB,cAAc,IAAI,OAAO,CAAC,cAAc,CAAC,CA6H9D;AAED;;;;;;;GAOG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,QAAQ,CAAC,CAUzD;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC,CAS9D;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,kFAAkF;IAClF,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,aAAa,IAAI,aAAa,EAAE,CA2B/C;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,oBAAoB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CASzF"}
package/dist/tree-hash.js CHANGED
@@ -10,7 +10,6 @@
10
10
  * git stash create includes timestamps, making hashes non-deterministic.
11
11
  * git write-tree produces content-based hashes only (no timestamps).
12
12
  */
13
- import { createHash } from 'node:crypto';
14
13
  import { copyFileSync, existsSync, unlinkSync, readdirSync, statSync } from 'node:fs';
15
14
  import { join } from 'node:path';
16
15
  import { isProcessRunning } from '@vibe-validate/utils';
@@ -126,7 +125,7 @@ function cleanupStaleIndexes(gitDir) {
126
125
  * 3. Mark untracked files with --intent-to-add in temp index
127
126
  * 4. Calculate tree hash with git write-tree using temp index
128
127
  * 5. Detect and process git submodules (recursive)
129
- * 6. Compute composite hash from main repo + submodule hashes
128
+ * 6. Return parent hash + optional submodule hashes
130
129
  * 7. Clean up temp index file
131
130
  *
132
131
  * Why this is better than git stash create:
@@ -136,29 +135,39 @@ function cleanupStaleIndexes(gitDir) {
136
135
  * Submodule Support (Issue #120):
137
136
  * - Detects submodules via `git submodule status`
138
137
  * - Recursively calculates tree hash for each submodule
139
- * - Combines all hashes into composite SHA-256 hash
138
+ * - Returns TreeHashResult with parent hash + submodule hashes
140
139
  * - Working tree changes in submodules invalidate cache
140
+ * - Git notes store full result for state reconstruction
141
+ *
142
+ * IMPORTANT: This function returns a structured result object, NOT a composite hash.
143
+ * Git notes store the TreeHashResult as-is. The hash field is the parent repo's
144
+ * standard Git SHA-1 hash (40 hex characters). The optional submoduleHashes field
145
+ * records each submodule's tree hash separately.
146
+ *
147
+ * Cache key format in git notes (v0.19.0+):
148
+ * - Parent-only repos: Use parent hash directly (backward compatible)
149
+ * - Repos with submodules: Use parent hash + submodule metadata
150
+ * - Result structure stored in git notes for state reconstruction
141
151
  *
142
152
  * CRITICAL: Uses GIT_INDEX_FILE to avoid corrupting real index during git commit hooks
143
153
  *
144
154
  * @returns TreeHashResult containing:
145
- * - hash: Composite SHA-256 hash (or single repo hash if no submodules)
146
- * - components: Array of { path, treeHash } for main repo and each submodule
155
+ * - hash: Parent repository tree hash (Git SHA-1, 40 hex chars)
156
+ * - submoduleHashes: Optional record of submodule paths to tree hashes
147
157
  *
148
158
  * @example
149
- * // Repository without submodules
159
+ * // Repository without submodules (0.18.x compatible)
150
160
  * const result = await getGitTreeHash();
151
- * // { hash: 'abc123...', components: [{ path: '.', treeHash: 'abc123...' }] }
161
+ * // { hash: 'abc123...' }
152
162
  *
153
163
  * @example
154
- * // Repository with submodules
164
+ * // Repository with submodules (v0.19.0+)
155
165
  * const result = await getGitTreeHash();
156
166
  * // {
157
- * // hash: 'def456...', // Composite SHA-256
158
- * // components: [
159
- * // { path: '.', treeHash: 'abc123...' },
160
- * // { path: 'libs/auth', treeHash: 'xyz789...' }
161
- * // ]
167
+ * // hash: 'abc123...', // Parent repo hash
168
+ * // submoduleHashes: {
169
+ * // 'libs/auth': 'xyz789...'
170
+ * // }
162
171
  * // }
163
172
  *
164
173
  * @throws Error if not in a git repository or git command fails
@@ -218,13 +227,15 @@ export async function getGitTreeHash() {
218
227
  env: tempIndexEnv
219
228
  }).stdout.trim();
220
229
  // Calculate main repo tree hash
221
- const mainTreeHash = treeHash;
230
+ const parentHash = treeHash;
222
231
  // Detect submodules
223
232
  const submodules = getSubmodules();
224
- // Build components array
225
- const components = [
226
- { path: '.', treeHash: mainTreeHash }
227
- ];
233
+ // No submodules - simple case (0.18.x compatible)
234
+ if (submodules.length === 0) {
235
+ return { hash: parentHash };
236
+ }
237
+ // Build submodule hashes record
238
+ const submoduleHashes = {};
228
239
  // Add submodule hashes (sorted by path for determinism)
229
240
  const sortedSubmodules = submodules.toSorted((a, b) => a.path.localeCompare(b.path));
230
241
  for (const sub of sortedSubmodules) {
@@ -234,8 +245,8 @@ export async function getGitTreeHash() {
234
245
  }
235
246
  try {
236
247
  const subResult = await getSubmoduleTreeHash(sub.path);
237
- // Use the submodule's composite hash (handles nested submodules)
238
- components.push({ path: sub.path, treeHash: subResult.hash });
248
+ // Store the submodule's hash in the record
249
+ submoduleHashes[sub.path] = subResult.hash;
239
250
  }
240
251
  catch (error) {
241
252
  // Log warning but continue with other submodules
@@ -243,18 +254,9 @@ export async function getGitTreeHash() {
243
254
  console.warn(`⚠️ Failed to hash submodule ${sub.path}: ${errorMsg}`);
244
255
  }
245
256
  }
246
- // If no submodules, return main hash directly (optimization)
247
- if (components.length === 1) {
248
- return {
249
- hash: mainTreeHash,
250
- components
251
- };
252
- }
253
- // Compute composite hash from all components
254
- const compositeHash = computeCompositeHash(components);
255
257
  return {
256
- hash: compositeHash,
257
- components
258
+ hash: parentHash,
259
+ submoduleHashes,
258
260
  };
259
261
  }
260
262
  finally {
@@ -276,8 +278,7 @@ export async function getGitTreeHash() {
276
278
  if (errorMessage.includes('not a git repository')) {
277
279
  // Not in git repo - return "unknown" (caller should skip caching)
278
280
  return {
279
- hash: 'unknown',
280
- components: [{ path: '.', treeHash: 'unknown' }]
281
+ hash: 'unknown'
281
282
  };
282
283
  }
283
284
  // Other git errors
@@ -388,39 +389,4 @@ export async function getSubmoduleTreeHash(submodulePath) {
388
389
  process.chdir(originalCwd);
389
390
  }
390
391
  }
391
- /**
392
- * Compute composite hash from multiple tree hash components
393
- *
394
- * Creates deterministic SHA-256 hash by:
395
- * 1. Sorting components by path (lexicographic order)
396
- * 2. Building string: "path:hash+path:hash+..."
397
- * 3. Hashing with SHA-256
398
- *
399
- * This ensures same content always produces same hash regardless of input order.
400
- *
401
- * @param components - Array of path and tree hash pairs
402
- * @returns Composite SHA-256 hash (64 hex characters)
403
- *
404
- * @example
405
- * const components = [
406
- * { path: '.', treeHash: 'abc123' },
407
- * { path: 'libs/auth', treeHash: 'def456' }
408
- * ];
409
- * const composite = computeCompositeHash(components);
410
- * // Returns SHA-256('.:abc123+libs/auth:def456')
411
- *
412
- * @internal Exported for testing
413
- */
414
- export function computeCompositeHash(components) {
415
- // Sort by path for deterministic ordering
416
- const sorted = [...components].sort((a, b) => a.path.localeCompare(b.path));
417
- // Build deterministic string: "path:hash+path:hash+..."
418
- const parts = sorted.map(c => `${c.path}:${c.treeHash}`);
419
- const combined = parts.join('+');
420
- // SHA-256 hash for consistent length (64 hex chars)
421
- const hash = createHash('sha256')
422
- .update(combined)
423
- .digest('hex');
424
- return hash;
425
- }
426
392
  //# sourceMappingURL=tree-hash.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tree-hash.js","sourceRoot":"","sources":["../src/tree-hash.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tree-hash.js","sourceRoot":"","sources":["../src/tree-hash.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -45,36 +45,24 @@ export type NotesRef = string & {
45
45
  /**
46
46
  * Result of git tree hash calculation with submodule support
47
47
  *
48
- * Contains both the composite hash (for cache lookups) and individual
49
- * component hashes (for git operations and debugging).
50
- *
51
48
  * @example
52
49
  * // Single repo (no submodules)
53
- * {
54
- * hash: 'abc123...',
55
- * components: [{ path: '.', treeHash: 'abc123...' }]
56
- * }
50
+ * { hash: 'abc123...' }
57
51
  *
58
52
  * @example
59
53
  * // Repo with submodules
60
54
  * {
61
- * hash: 'd4e5f6...', // SHA256(.:abc + libs/auth:def + vendor:789)
62
- * components: [
63
- * { path: '.', treeHash: 'abc123...' },
64
- * { path: 'libs/auth', treeHash: 'def456...' },
65
- * { path: 'vendor/foo', treeHash: '789ghi...' }
66
- * ]
55
+ * hash: 'abc123...',
56
+ * submoduleHashes: {
57
+ * 'libs/auth': 'def456...',
58
+ * 'vendor/foo': '789ghi...'
59
+ * }
67
60
  * }
68
61
  */
69
62
  export interface TreeHashResult {
70
- /** Composite hash for cache key (SHA-256 of all components) */
63
+ /** Root repository tree hash (40-char SHA-1, git object) */
71
64
  hash: TreeHash;
72
- /** Individual tree hashes for each repo/submodule */
73
- components: Array<{
74
- /** Path relative to main repo ("." for main, "libs/auth" for submodule) */
75
- path: string;
76
- /** Git tree hash for this component */
77
- treeHash: TreeHash;
78
- }>;
65
+ /** Submodule tree hashes (path tree hash mapping). Only present when submodules exist. */
66
+ submoduleHashes?: Record<string, TreeHash>;
79
67
  }
80
68
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH;;;;;;;GAOG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAA;CAAE,CAAC;AAEjE;;;;;GAKG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAA;CAAE,CAAC;AAEnE;;;;;GAKG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAA;CAAE,CAAC;AAEjE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,WAAW,cAAc;IAC7B,+DAA+D;IAC/D,IAAI,EAAE,QAAQ,CAAC;IAEf,qDAAqD;IACrD,UAAU,EAAE,KAAK,CAAC;QAChB,2EAA2E;QAC3E,IAAI,EAAE,MAAM,CAAC;QACb,uCAAuC;QACvC,QAAQ,EAAE,QAAQ,CAAC;KACpB,CAAC,CAAC;CACJ"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH;;;;;;;GAOG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAA;CAAE,CAAC;AAEjE;;;;;GAKG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAA;CAAE,CAAC;AAEnE;;;;;GAKG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAA;CAAE,CAAC;AAEjE;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,cAAc;IAC7B,4DAA4D;IAC5D,IAAI,EAAE,QAAQ,CAAC;IAEf,4FAA4F;IAC5F,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;CAC5C"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibe-validate/git",
3
- "version": "0.19.0-rc.4",
3
+ "version": "0.19.0-rc.6",
4
4
  "description": "Git utilities for vibe-validate - tree hash calculation, branch sync, and post-merge cleanup",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -39,7 +39,7 @@
39
39
  },
40
40
  "dependencies": {
41
41
  "yaml": "^2.8.2",
42
- "@vibe-validate/utils": "0.19.0-rc.4"
42
+ "@vibe-validate/utils": "0.19.0-rc.6"
43
43
  },
44
44
  "devDependencies": {
45
45
  "@types/node": "^22.19.2",