orcommit 1.2.16 → 1.2.18

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.
@@ -11,7 +11,7 @@ import { maybeShowPromo } from './promo.js';
11
11
  import { secretScanner } from './secret-scanner.js';
12
12
  import { confirm, isCancel, text } from '@clack/prompts';
13
13
  import chalk from 'chalk';
14
- import { wrapInstructions, wrapRules, wrapContext, wrapUserFeedback, wrapDiffContent, wrapInBlock, cleanText, parseAIResponse } from '../utils/formatting.js';
14
+ import { wrapInstructions, wrapRules, wrapContext, wrapUserFeedback, wrapDiffContent, wrapInBlock, parseAIResponse, COMMIT_RESPONSE_FORMAT } from '../utils/formatting.js';
15
15
  import { createAIThinkingSpinner, createProcessingSpinner } from './spinner.js';
16
16
  export class CoreOrchestrator {
17
17
  config;
@@ -318,10 +318,12 @@ export class CoreOrchestrator {
318
318
  logger.debug('Added git context to prompt', { contextLength: gitContext.length });
319
319
  }
320
320
  const model = this.getModel(provider);
321
+ // Repository-scoped cache key prevents cross-project collisions
322
+ const cacheScope = await gitManager.getCacheScope();
321
323
  // Check cache first (unless disabled or regenerating with feedback)
322
324
  if (!options.noCache && !userFeedback) {
323
325
  const cachedMessage = await cacheManager.get(rawDiffContent, // Use raw content for cache key
324
- model, provider, this.config.preferences.temperature);
326
+ model, provider, this.config.preferences.temperature, cacheScope);
325
327
  if (cachedMessage) {
326
328
  spinner.succeed('Retrieved from cache');
327
329
  return {
@@ -347,6 +349,7 @@ export class CoreOrchestrator {
347
349
  ],
348
350
  maxTokens: this.config.preferences.maxTokens,
349
351
  temperature: this.config.preferences.temperature,
352
+ responseFormat: COMMIT_RESPONSE_FORMAT,
350
353
  };
351
354
  const result = await apiManager.generateCommitMessage(request, provider);
352
355
  if (!result.success || !result.data) {
@@ -358,12 +361,14 @@ export class CoreOrchestrator {
358
361
  const parsed = parseAIResponse(rawMessage);
359
362
  logger.debug('Parsed response:', { hasAssessment: !!parsed.assessment, messageLength: parsed.commitMessage.length });
360
363
  spinner.update('Polishing the message');
361
- // Stage 2: Finalize and clean the commit message part (with user context)
362
- const finalMessage = await this.finalizeCommitMessage(parsed.commitMessage, provider, options, userFeedback);
364
+ // Clean the commit message locally no second LLM round-trip needed.
365
+ // The model already returns the message inside structured JSON; we just
366
+ // strip artifacts (prefixes, quotes, code fences) deterministically.
367
+ const finalMessage = this.cleanCommitMessage(parsed.commitMessage);
363
368
  // Cache the finalized result (skip if regenerating with feedback)
364
369
  if (!options.noCache && !userFeedback) {
365
370
  await cacheManager.set(rawDiffContent, // Use raw content for cache key
366
- model, provider, this.config.preferences.temperature, finalMessage);
371
+ model, provider, this.config.preferences.temperature, finalMessage, cacheScope);
367
372
  }
368
373
  spinner.succeed('Commit message generated');
369
374
  return {
@@ -385,6 +390,7 @@ export class CoreOrchestrator {
385
390
  maxTokens: this.config.preferences.maxTokens,
386
391
  temperature: this.config.preferences.temperature,
387
392
  systemPrompt,
393
+ responseFormat: COMMIT_RESPONSE_FORMAT,
388
394
  };
389
395
  const result = await apiManager.processChunks(chunks, baseRequest, provider);
390
396
  if (!result.success || !result.data) {
@@ -397,8 +403,8 @@ export class CoreOrchestrator {
397
403
  const parsed = parseAIResponse(rawMessage);
398
404
  logger.debug('Parsed response (chunks):', { hasAssessment: !!parsed.assessment, messageLength: parsed.commitMessage.length });
399
405
  spinner.update('Polishing the message');
400
- // Stage 2: Finalize and clean the commit message part (with user context)
401
- const finalMessage = await this.finalizeCommitMessage(parsed.commitMessage, provider, options, userFeedback);
406
+ // Clean locally (see single-request path above) no extra LLM call.
407
+ const finalMessage = this.cleanCommitMessage(parsed.commitMessage);
402
408
  spinner.succeed('Commit message generated');
403
409
  return {
404
410
  commitMessage: finalMessage,
@@ -429,15 +435,19 @@ export class CoreOrchestrator {
429
435
  // Main instructions
430
436
  const mainInstructions = `You are a senior software engineer and Git commit message expert with deep understanding of software architecture and code quality.
431
437
 
432
- YOUR MISSION: Analyze the git diff carefully and generate a professional, comprehensive commit message that accurately captures ALL significant changes.
438
+ YOUR MISSION: Describe ONLY the changes present in the [DIFF_CONTENT] block below. The commit message must be derived EXCLUSIVELY from the actual diff — the literal added/removed lines and the files they touch.
433
439
 
434
- ANALYSIS REQUIREMENTS:
435
- 1. THINK DEEPLY about what the code changes actually do
436
- 2. Identify the PRIMARY purpose of the changes (feature, fix, refactor, etc.)
437
- 3. Notice ALL important modifications - don't miss secondary changes
438
- 4. Understand the INTENT behind the changes, not just the syntax
439
- 5. Consider the IMPACT on the codebase (breaking changes, new features, bug fixes)
440
- 6. Recognize patterns: new files, deletions, refactoring, configuration changes`;
440
+ ABSOLUTE RULES (these override stylistic preferences):
441
+ - Ground EVERY claim in a concrete line or file from the diff. If it is not in the diff, it does not go in the message.
442
+ - NEVER invent, assume, or pattern-match a change that is not literally shown (e.g. do not say "migrate to JWT", "refactor auth", "add tests" unless those exact changes appear in the diff).
443
+ - If the diff is small or trivial, write a small, literal message. Do NOT inflate it into something grander than the actual change.
444
+ - Use the real file paths, function names, and symbols from the diff. Generic boilerplate is a failure.
445
+
446
+ ANALYSIS STEPS:
447
+ 1. Read the actual added/removed lines per file.
448
+ 2. Identify the PRIMARY change and its concrete effect.
449
+ 3. Capture meaningful secondary changes that are actually present.
450
+ 4. Choose the conventional-commit type that matches what the lines literally do.`;
441
451
  sections.push(wrapInstructions(mainInstructions));
442
452
  // Quality standards and rules
443
453
  let rules = `- Be SPECIFIC about what changed (mention key functions, components, files when relevant)
@@ -447,13 +457,14 @@ ANALYSIS REQUIREMENTS:
447
457
  - Use technical terminology appropriately
448
458
  - Write in ${language === 'en' ? 'English' : language}
449
459
  - Follow ${format === 'conventional' ? 'Conventional Commits format strictly' : 'simple descriptive format'}
460
+ - Describe ONLY what the diff shows — no speculation, no generic filler
450
461
 
451
- THINK STEP BY STEP:
452
- 1. What is the main change? (new feature, bug fix, refactor, etc.)
453
- 2. What files/components are affected?
454
- 3. Are there any breaking changes?
455
- 4. Are there secondary important changes?
456
- 5. What's the overall impact?`;
462
+ THINK STEP BY STEP (about THIS diff, not commits in general):
463
+ 1. Which specific files and symbols changed, per the diff?
464
+ 2. What do the added/removed lines literally do?
465
+ 3. Are there breaking changes visible in the diff?
466
+ 4. Which secondary changes are actually present?
467
+ 5. What is the smallest accurate description of all of the above?`;
457
468
  // Add formatting constraints to rules
458
469
  if (options.oneLine) {
459
470
  rules += `\n- Generate a single-line commit message only`;
@@ -515,79 +526,63 @@ ${userFeedback ? '⚠️ CRITICAL: The [IMPORTANT_USER_FEEDBACK] block above con
515
526
  - Add detailed body if changes are complex
516
527
  - Include BREAKING CHANGE footer if applicable
517
528
 
518
- CRITICAL: Return ONLY a valid JSON object matching the RESPONSE_SCHEMA above.
519
- ⚠️ DO NOT wrap in markdown code blocks (no \`\`\`json)
520
- ⚠️ DO NOT add explanations before or after
521
- ⚠️ START your response with { and END with }
522
- ⚠️ This is REQUIRED - the response MUST be parseable JSON
523
-
524
- CORRECT Example:
525
- {"codeAssessment": "Ah yes, another 'quick fix' that touches 47 files", "commitMessage": "refactor: restructure authentication flow\\n\\nMigrate from session-based to JWT authentication"}
529
+ Return a JSON object matching the RESPONSE_SCHEMA above (two fields: codeAssessment, commitMessage).
526
530
 
527
- WRONG Examples:
528
- - \`\`\`json {"codeAssessment": "..."} \`\`\`
529
- - Here is the JSON: {...} ❌
530
- - Just plain text without JSON ❌`;
531
+ ⚠️ MOST IMPORTANT RULE: the commitMessage must describe ONLY what the [DIFF_CONTENT] literally shows.
532
+ Never emit a generic, memorized message (e.g. "restructure X", "migrate from A to B", "implement authentication") unless those exact changes appear in the diff. If the diff is tiny, write a tiny literal message. Grounding every word in the actual diff is more important than sounding impressive.`;
531
533
  sections.push(wrapInstructions(finalInstructions));
532
534
  return sections.join('\n\n');
533
535
  }
534
536
  /**
535
- * Finalize and clean up the commit message (Stage 2)
536
- * Takes the raw AI-generated message and ensures it's perfectly formatted
537
+ * Clean up a commit message locally (no LLM round-trip).
538
+ *
539
+ * The message arrives already extracted from structured JSON, so cleaning is
540
+ * purely deterministic: strip leftover prefixes/quotes/code-fences, normalize
541
+ * whitespace and line endings, and enforce the configured max length. This
542
+ * replaces the old "Stage 2" finalization LLM call, removing ~half the token
543
+ * cost and latency plus a failure point, with identical end results.
537
544
  */
538
- async finalizeCommitMessage(rawMessage, provider, options, userFeedback) {
539
- const format = this.config.preferences.commitFormat;
545
+ cleanCommitMessage(rawMessage) {
546
+ let message = (rawMessage || '').replace(/\r\n/g, '\n').trim();
547
+ // Strip surrounding markdown code fences (```...``` or ```lang ... ```)
548
+ const fenceMatch = message.match(/^```(?:[a-zA-Z]+)?\n([\s\S]*?)\n```$/);
549
+ if (fenceMatch && fenceMatch[1]) {
550
+ message = fenceMatch[1].trim();
551
+ }
552
+ // Remove common AI-generated lead-ins
553
+ const prefixPatterns = [
554
+ /^commit message:\s*/i,
555
+ /^here is the commit message:\s*/i,
556
+ /^here's the commit message:\s*/i,
557
+ /^the commit message is:\s*/i,
558
+ /^this is the commit message:\s*/i,
559
+ /^suggested commit:\s*/i,
560
+ /^commit:\s*/i,
561
+ ];
562
+ for (const pattern of prefixPatterns) {
563
+ message = message.replace(pattern, '');
564
+ }
565
+ // Remove wrapping quotes around the whole message
566
+ message = message.replace(/^"([\s\S]+)"$/, '$1').replace(/^'([\s\S]+)'$/, '$1');
567
+ // Collapse excessive blank lines, trim trailing spaces per line
568
+ message = message
569
+ .replace(/[ \t]+\n/g, '\n')
570
+ .replace(/\n{3,}/g, '\n\n')
571
+ .trim();
572
+ // Enforce configured max length as a final safety net
540
573
  const maxLength = this.config.preferences.maxCommitLength;
541
- // Create finalization prompt with structured blocks
542
- const instructions = `You are a commit message quality control expert.
543
-
544
- YOUR TASK: Clean and perfect the commit message below. Remove ANY explanatory text, prefixes, or formatting artifacts.
545
- ${userFeedback ? '\n⚠️ CRITICAL: User provided feedback. You MUST preserve the language and style they requested!' : ''}`;
546
- const rules = `1. Output ONLY the final commit message - nothing else
547
- 2. Remove prefixes like "commit message:", "here is", "this is", etc.
548
- 3. Remove surrounding quotes, backticks, or markdown
549
- 4. Remove any explanations or comments
550
- 5. Keep the message structure intact (subject + body + footer if present)
551
- 6. Start directly with the commit type or message
552
- 7. Preserve ${format === 'conventional' ? 'conventional commits format (type(scope): description)' : 'simple format'}
553
- 8. Preserve line breaks for multi-line messages
554
- 9. Ensure subject line is under 72 characters
555
- ${maxLength && maxLength > 0 ? `10. ⚠️ MANDATORY LENGTH: Final message MUST be ≤${maxLength} chars total. Cut content if needed, but stay within limit.` : '10. No strict length limit on full message'}
556
- 11. NO additional text, NO commentary, NO explanations
557
- ${userFeedback ? `12. CRITICAL: Preserve the EXACT language used in the message below (user requested specific changes)` : ''}`;
558
- const finalizationPrompt = `${wrapInstructions(instructions)}
559
-
560
- ${wrapRules(rules)}
561
-
562
- [RAW_MESSAGE_TO_CLEAN]
563
- ${cleanText(rawMessage)}
564
- [/RAW_MESSAGE_TO_CLEAN]
565
-
566
- OUTPUT ONLY THE CLEANED COMMIT MESSAGE:`;
567
- try {
568
- const model = this.getModel(provider);
569
- const result = await apiManager.generateCommitMessage({
570
- provider,
571
- model,
572
- maxTokens: this.config.preferences.maxTokens,
573
- temperature: 0.3, // Lower temperature for more consistent cleaning
574
- messages: [
575
- { role: 'system', content: finalizationPrompt },
576
- { role: 'user', content: 'Clean this message now.' }
577
- ],
578
- }, provider);
579
- if (!result.success || !result.data) {
580
- // If finalization fails, return original message
581
- logger.warn('Finalization failed, using original message');
582
- return rawMessage;
583
- }
584
- return result.data.trim();
585
- }
586
- catch (error) {
587
- // If finalization fails, return original message
588
- logger.warn('Finalization error, using original message');
589
- return rawMessage;
574
+ if (maxLength && maxLength > 0 && message.length > maxLength) {
575
+ const lines = message.split('\n');
576
+ const subject = lines[0] || '';
577
+ if (subject.length > maxLength) {
578
+ message = subject.substring(0, maxLength - 3) + '...';
579
+ }
580
+ else {
581
+ message = message.substring(0, maxLength - 3) + '...';
582
+ }
583
+ logger.debug(`Commit message trimmed to ${maxLength} chars`);
590
584
  }
585
+ return message;
591
586
  }
592
587
  /**
593
588
  * Prepare diff content for API consumption
@@ -596,26 +591,41 @@ OUTPUT ONLY THE CLEANED COMMIT MESSAGE:`;
596
591
  const sections = [];
597
592
  // Add summary
598
593
  sections.push(`Summary: ${diff.files.length} files changed, ${diff.totalLines} lines modified\n`);
599
- // Get adaptive line limit based on commit size
594
+ // Adaptive per-file line budget: keep small commits fully intact, only
595
+ // trim genuinely huge diffs so the prompt stays within token limits.
596
+ // Token-based chunking downstream is the real overflow guard; this is a
597
+ // soft cap to avoid pathologically large single files dominating context.
600
598
  const lineLimit = this.getAdaptiveLineLimit(diff.files[0] || {}, diff.files.length);
601
- // Add file changes
599
+ // Add file changes as a real unified-diff-style block per file, preserving
600
+ // surrounding context lines and hunk headers. The model needs to SEE what
601
+ // the code does, not a stripped list of +/- lines — that's what made it
602
+ // fall back to memorized clichés on thin input.
602
603
  for (const file of diff.files) {
603
604
  if (file.isBinary) {
604
- sections.push(`File: ${file.path} (${file.status}) - Binary file`);
605
+ sections.push(`--- ${file.path} (${file.status}) binary file`);
605
606
  continue;
606
607
  }
607
- sections.push(`File: ${file.path} (${file.status})`);
608
+ sections.push(`--- ${file.path} (${file.status})`);
608
609
  for (const chunk of file.chunks) {
609
- if (chunk.context) {
610
- sections.push(`Context: ${chunk.context}`);
610
+ // Hunk header gives the model location/structure context
611
+ if (chunk.header) {
612
+ sections.push(chunk.header);
613
+ }
614
+ const renderedLines = [];
615
+ let truncated = false;
616
+ for (const line of chunk.lines) {
617
+ if (renderedLines.length >= lineLimit) {
618
+ truncated = true;
619
+ break;
620
+ }
621
+ const prefix = line.type === 'added' ? '+' : line.type === 'removed' ? '-' : ' ';
622
+ renderedLines.push(`${prefix}${line.content}`);
623
+ }
624
+ if (renderedLines.length > 0) {
625
+ sections.push(renderedLines.join('\n'));
611
626
  }
612
- const relevantLines = chunk.lines
613
- .filter(line => line.type === 'added' || line.type === 'removed')
614
- .slice(0, lineLimit) // Use adaptive limit instead of hardcoded 20
615
- .map(line => `${line.type === 'added' ? '+' : '-'}${line.content}`)
616
- .join('\n');
617
- if (relevantLines) {
618
- sections.push(relevantLines);
627
+ if (truncated) {
628
+ sections.push(`… (hunk truncated at ${lineLimit} lines)`);
619
629
  }
620
630
  }
621
631
  sections.push(''); // Empty line between files
@@ -669,10 +679,11 @@ OUTPUT ONLY THE CLEANED COMMIT MESSAGE:`;
669
679
  if (configuredModel) {
670
680
  return configuredModel;
671
681
  }
672
- // Default models
682
+ // Default models. Gemini Flash Lite is cheap, fast, and supports strict
683
+ // json_schema structured output — a good default for commit generation.
673
684
  return provider === 'openrouter'
674
- ? 'anthropic/claude-3-haiku:beta'
675
- : 'gpt-3.5-turbo';
685
+ ? 'google/gemini-2.0-flash-lite-001'
686
+ : 'gpt-4o-mini';
676
687
  }
677
688
  /**
678
689
  * Confirm commit with user (unless auto-confirm is enabled)
@@ -905,20 +916,19 @@ OUTPUT ONLY THE CLEANED COMMIT MESSAGE:`;
905
916
  * Larger commits get smaller preview per file to stay within token limits
906
917
  */
907
918
  getAdaptiveLineLimit(file, totalFiles) {
908
- // For very small commits, show almost everything
919
+ // Per-hunk soft cap. Generous on purpose: token-based chunking is the real
920
+ // overflow guard, so here we only protect against a single pathological hunk
921
+ // swallowing the whole prompt. Small/medium commits are sent essentially in full.
909
922
  if (totalFiles <= 5) {
910
- return 200;
923
+ return 1000;
911
924
  }
912
- // For small-medium commits, show a lot
913
925
  if (totalFiles <= 20) {
914
- return 100;
926
+ return 500;
915
927
  }
916
- // For medium-large commits, show moderate amount
917
928
  if (totalFiles <= 50) {
918
- return 50;
929
+ return 200;
919
930
  }
920
- // For large commits, show minimum meaningful context
921
- return 30;
931
+ return 100;
922
932
  }
923
933
  }
924
934
  // Singleton instance
@@ -1 +1 @@
1
- {"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/modules/core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/modules/core.ts"],"names":[],"mappings":"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"}
@@ -39,6 +39,12 @@ export declare class GitManager {
39
39
  * Get repository root directory
40
40
  */
41
41
  getRepositoryRoot(): Promise<string>;
42
+ /**
43
+ * Stable identifier for the current repository + branch, used to namespace
44
+ * the commit-message cache so unrelated projects never collide on the same
45
+ * cache key. Falls back to the process cwd if git metadata is unavailable.
46
+ */
47
+ getCacheScope(): Promise<string>;
42
48
  private parseDiff;
43
49
  private splitDiffIntoFiles;
44
50
  private parseFileSection;
@@ -1 +1 @@
1
- {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/modules/git.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAwC,aAAa,EAAE,sBAAsB,EAAgB,kBAAkB,EAAsB,MAAM,mBAAmB,CAAC;AAW/K,qBAAa,UAAU;IACrB;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IASzC;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IASrC;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAiBhD;;OAEG;IACG,aAAa,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAyBhF;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,aAAa,CAAA;KAAE,CAAC,CAAC;IAsB/E;;OAEG;IACG,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAoBpD;;OAEG;IACG,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC;IAY/C;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;IAYzC;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC;IAc1C,OAAO,CAAC,SAAS;IAoBjB,OAAO,CAAC,kBAAkB;IAsB1B,OAAO,CAAC,gBAAgB;IA8BxB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,mBAAmB;IAa3B,OAAO,CAAC,WAAW;IAwCnB,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,oBAAoB;IAW5B,OAAO,CAAC,gBAAgB;IAgBxB,OAAO,CAAC,gBAAgB;IAqCxB,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,iBAAiB;IAQzB;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IASrC;;;OAGG;IACG,YAAY,CAAC,WAAW,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BtD;;OAEG;IACG,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC;IAe5C;;OAEG;IACG,wBAAwB,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAiE7D,OAAO,CAAC,uBAAuB;IA+C/B,OAAO,CAAC,kBAAkB;IAoC1B,OAAO,CAAC,6BAA6B;IAgDrC;;;;OAIG;IACG,gBAAgB,CAAC,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAiB5D;;;;OAIG;IACG,kBAAkB,CAAC,YAAY,GAAE,MAAU,GAAG,OAAO,CAAC,MAAM,CAAC;CAsBpE;AAGD,eAAO,MAAM,UAAU,YAAmB,CAAC"}
1
+ {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/modules/git.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAwC,aAAa,EAAE,sBAAsB,EAAgB,kBAAkB,EAAsB,MAAM,mBAAmB,CAAC;AAW/K,qBAAa,UAAU;IACrB;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IASzC;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IASrC;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAiBhD;;OAEG;IACG,aAAa,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAyBhF;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,aAAa,CAAA;KAAE,CAAC,CAAC;IAsB/E;;OAEG;IACG,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAoBpD;;OAEG;IACG,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC;IAY/C;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;IAYzC;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC;IAY1C;;;;OAIG;IACG,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;IAkBtC,OAAO,CAAC,SAAS;IAoBjB,OAAO,CAAC,kBAAkB;IAsB1B,OAAO,CAAC,gBAAgB;IA8BxB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,mBAAmB;IAa3B,OAAO,CAAC,WAAW;IAwCnB,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,oBAAoB;IAW5B,OAAO,CAAC,gBAAgB;IAgBxB,OAAO,CAAC,gBAAgB;IAqCxB,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,iBAAiB;IAQzB;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IASrC;;;OAGG;IACG,YAAY,CAAC,WAAW,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BtD;;OAEG;IACG,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC;IAe5C;;OAEG;IACG,wBAAwB,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAiE7D,OAAO,CAAC,uBAAuB;IA+C/B,OAAO,CAAC,kBAAkB;IAoC1B,OAAO,CAAC,6BAA6B;IAgDrC;;;;OAIG;IACG,gBAAgB,CAAC,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAiB5D;;;;OAIG;IACG,kBAAkB,CAAC,YAAY,GAAE,MAAU,GAAG,OAAO,CAAC,MAAM,CAAC;CAsBpE;AAGD,eAAO,MAAM,UAAU,YAAmB,CAAC"}
@@ -148,6 +148,28 @@ export class GitManager {
148
148
  throw new GitError(`Failed to get repository root: ${error instanceof Error ? error.message : 'Unknown error'}`, error instanceof Error ? error : undefined);
149
149
  }
150
150
  }
151
+ /**
152
+ * Stable identifier for the current repository + branch, used to namespace
153
+ * the commit-message cache so unrelated projects never collide on the same
154
+ * cache key. Falls back to the process cwd if git metadata is unavailable.
155
+ */
156
+ async getCacheScope() {
157
+ let root = '';
158
+ let branch = '';
159
+ try {
160
+ root = await this.getRepositoryRoot();
161
+ }
162
+ catch {
163
+ root = process.cwd();
164
+ }
165
+ try {
166
+ branch = await this.getCurrentBranch();
167
+ }
168
+ catch {
169
+ branch = '';
170
+ }
171
+ return `${root}#${branch}`;
172
+ }
151
173
  // Private methods
152
174
  parseDiff(diffOutput, options) {
153
175
  const files = [];