@eldrforge/kodrdriv 1.2.26 → 1.2.28
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/AI-FRIENDLY-LOGGING-GUIDE.md +237 -0
- package/AI-LOGGING-MIGRATION-COMPLETE.md +371 -0
- package/ALREADY-PUBLISHED-PACKAGES-FIX.md +264 -0
- package/AUDIT-BRANCHES-PROGRESS-FIX.md +90 -0
- package/AUDIT-EXAMPLE-OUTPUT.md +113 -0
- package/CHECKPOINT-RECOVERY-FIX.md +450 -0
- package/LOGGING-MIGRATION-STATUS.md +186 -0
- package/PARALLEL-PUBLISH-FIXES-IMPLEMENTED.md +405 -0
- package/PARALLEL-PUBLISH-IMPROVEMENTS-IMPLEMENTED.md +439 -0
- package/PARALLEL-PUBLISH-QUICK-REFERENCE.md +375 -0
- package/PARALLEL_EXECUTION_FIX.md +2 -2
- package/PUBLISH_IMPROVEMENTS_IMPLEMENTED.md +294 -0
- package/VERSION-AUDIT-FIX.md +333 -0
- package/dist/application.js +6 -6
- package/dist/application.js.map +1 -1
- package/dist/arguments.js +43 -13
- package/dist/arguments.js.map +1 -1
- package/dist/commands/audio-commit.js +18 -18
- package/dist/commands/audio-commit.js.map +1 -1
- package/dist/commands/audio-review.js +32 -32
- package/dist/commands/audio-review.js.map +1 -1
- package/dist/commands/clean.js +9 -9
- package/dist/commands/clean.js.map +1 -1
- package/dist/commands/commit.js +20 -20
- package/dist/commands/commit.js.map +1 -1
- package/dist/commands/development.js +91 -90
- package/dist/commands/development.js.map +1 -1
- package/dist/commands/link.js +36 -36
- package/dist/commands/link.js.map +1 -1
- package/dist/commands/publish.js +345 -225
- package/dist/commands/publish.js.map +1 -1
- package/dist/commands/release.js +14 -14
- package/dist/commands/release.js.map +1 -1
- package/dist/commands/review.js +15 -17
- package/dist/commands/review.js.map +1 -1
- package/dist/commands/select-audio.js +5 -5
- package/dist/commands/select-audio.js.map +1 -1
- package/dist/commands/tree.js +75 -34
- package/dist/commands/tree.js.map +1 -1
- package/dist/commands/unlink.js +39 -39
- package/dist/commands/unlink.js.map +1 -1
- package/dist/commands/updates.js +150 -14
- package/dist/commands/updates.js.map +1 -1
- package/dist/commands/versions.js +14 -13
- package/dist/commands/versions.js.map +1 -1
- package/dist/constants.js +1 -1
- package/dist/content/diff.js +5 -5
- package/dist/content/diff.js.map +1 -1
- package/dist/content/files.js +2 -2
- package/dist/content/files.js.map +1 -1
- package/dist/content/log.js +3 -3
- package/dist/content/log.js.map +1 -1
- package/dist/execution/CommandValidator.js +6 -6
- package/dist/execution/CommandValidator.js.map +1 -1
- package/dist/execution/DynamicTaskPool.js +33 -10
- package/dist/execution/DynamicTaskPool.js.map +1 -1
- package/dist/execution/RecoveryManager.js +99 -21
- package/dist/execution/RecoveryManager.js.map +1 -1
- package/dist/execution/TreeExecutionAdapter.js +65 -48
- package/dist/execution/TreeExecutionAdapter.js.map +1 -1
- package/dist/main.js +2 -2
- package/dist/main.js.map +1 -1
- package/dist/util/checkpointManager.js +4 -4
- package/dist/util/checkpointManager.js.map +1 -1
- package/dist/util/dependencyGraph.js +2 -2
- package/dist/util/dependencyGraph.js.map +1 -1
- package/dist/util/fileLock.js +1 -1
- package/dist/util/fileLock.js.map +1 -1
- package/dist/util/general.js +148 -15
- package/dist/util/general.js.map +1 -1
- package/dist/util/interactive.js +2 -2
- package/dist/util/interactive.js.map +1 -1
- package/dist/util/performance.js.map +1 -1
- package/dist/util/safety.js +13 -13
- package/dist/util/safety.js.map +1 -1
- package/dist/utils/branchState.js +567 -0
- package/dist/utils/branchState.js.map +1 -0
- package/package.json +1 -1
- package/scripts/update-test-log-assertions.js +73 -0
package/dist/commands/commit.js
CHANGED
|
@@ -109,12 +109,12 @@ async function handleInteractiveCommitFeedback(commitMessage, runConfig, promptC
|
|
|
109
109
|
// Show configuration status
|
|
110
110
|
if (senditEnabled) {
|
|
111
111
|
if (willActuallyCommit) {
|
|
112
|
-
logger.info('\
|
|
112
|
+
logger.info('\nSENDIT_MODE_ACTIVE: SendIt mode enabled | Action: Commit choice will execute git commit automatically | Staged Changes: Available');
|
|
113
113
|
} else {
|
|
114
|
-
logger.info('\
|
|
114
|
+
logger.info('\nSENDIT_MODE_NO_CHANGES: SendIt mode configured but no staged changes | Action: Only message save available | Staged Changes: None');
|
|
115
115
|
}
|
|
116
116
|
} else {
|
|
117
|
-
logger.info('\
|
|
117
|
+
logger.info('\nSENDIT_MODE_INACTIVE: SendIt mode not active | Action: Accept choice will only save message | Commit: Manual');
|
|
118
118
|
}
|
|
119
119
|
// Get user choice
|
|
120
120
|
const userChoice = await getUserChoice('\nWhat would you like to do with this commit message?', [
|
|
@@ -239,7 +239,7 @@ const saveCommitMessage = async (outputDirectory, summary, storage, logger)=>{
|
|
|
239
239
|
try {
|
|
240
240
|
const outputRootPath = getOutputPath('output', timestampedFilename);
|
|
241
241
|
await storage.writeFile(outputRootPath, summary, 'utf-8');
|
|
242
|
-
logger.info('Saved commit message to
|
|
242
|
+
logger.info('COMMIT_MESSAGE_SAVED_FALLBACK: Saved commit message to fallback location | Path: %s | Purpose: Preserve message for later use', outputRootPath);
|
|
243
243
|
return;
|
|
244
244
|
} catch (outputError) {
|
|
245
245
|
logger.warn('Failed to save to output directory fallback: %s', outputError.message);
|
|
@@ -265,11 +265,11 @@ const executeInternal = async (runConfig)=>{
|
|
|
265
265
|
let userSkippedCommit = false;
|
|
266
266
|
if ((_runConfig_commit = runConfig.commit) === null || _runConfig_commit === void 0 ? void 0 : _runConfig_commit.add) {
|
|
267
267
|
if (isDryRun) {
|
|
268
|
-
logger.info('Would
|
|
268
|
+
logger.info('GIT_ADD_DRY_RUN: Would stage all changes | Mode: dry-run | Command: git add -A');
|
|
269
269
|
} else {
|
|
270
|
-
logger.info('
|
|
270
|
+
logger.info('GIT_ADD_STAGING: Adding all changes to index | Command: git add -A | Scope: all files | Purpose: Stage for commit');
|
|
271
271
|
await run('git add -A');
|
|
272
|
-
logger.info('
|
|
272
|
+
logger.info('GIT_ADD_SUCCESS: Successfully staged all changes | Command: git add -A | Status: completed');
|
|
273
273
|
}
|
|
274
274
|
}
|
|
275
275
|
// Determine cached state with single, clear logic
|
|
@@ -295,10 +295,10 @@ const executeInternal = async (runConfig)=>{
|
|
|
295
295
|
const criticalChanges = await hasCriticalExcludedChanges();
|
|
296
296
|
if (criticalChanges.hasChanges) {
|
|
297
297
|
var _runConfig_commit10;
|
|
298
|
-
logger.info('No changes
|
|
298
|
+
logger.info('CRITICAL_FILES_DETECTED: No changes with exclusion patterns, but critical files modified | Files: %s | Action: May need to include critical files', criticalChanges.files.join(', '));
|
|
299
299
|
if (((_runConfig_commit10 = runConfig.commit) === null || _runConfig_commit10 === void 0 ? void 0 : _runConfig_commit10.sendit) && !isDryRun) {
|
|
300
300
|
// In sendit mode, automatically include critical files
|
|
301
|
-
logger.info('SendIt mode
|
|
301
|
+
logger.info('SENDIT_INCLUDING_CRITICAL: SendIt mode including critical files in diff | Purpose: Ensure all important changes are captured');
|
|
302
302
|
var _runConfig_excludedPatterns1;
|
|
303
303
|
const minimalPatterns = getMinimalExcludedPatterns((_runConfig_excludedPatterns1 = runConfig.excludedPatterns) !== null && _runConfig_excludedPatterns1 !== void 0 ? _runConfig_excludedPatterns1 : DEFAULT_EXCLUDED_PATTERNS);
|
|
304
304
|
const updatedOptions = {
|
|
@@ -308,7 +308,7 @@ const executeInternal = async (runConfig)=>{
|
|
|
308
308
|
const updatedDiff = await create(updatedOptions);
|
|
309
309
|
diffContent = await updatedDiff.get();
|
|
310
310
|
if (diffContent.trim().length > 0) {
|
|
311
|
-
logger.info('Successfully
|
|
311
|
+
logger.info('CRITICAL_FILES_INCLUDED: Successfully added critical files to diff | Status: ready for commit message generation');
|
|
312
312
|
// Update hasActualChanges since we now have content after including critical files
|
|
313
313
|
hasActualChanges = true;
|
|
314
314
|
} else {
|
|
@@ -330,12 +330,12 @@ const executeInternal = async (runConfig)=>{
|
|
|
330
330
|
} else {
|
|
331
331
|
var _runConfig_commit11;
|
|
332
332
|
// No changes at all - try fallback to file content for new repositories
|
|
333
|
-
logger.info('No changes
|
|
333
|
+
logger.info('NO_CHANGES_DETECTED: No changes found in working directory | Status: clean | Action: Nothing to commit');
|
|
334
334
|
if (((_runConfig_commit11 = runConfig.commit) === null || _runConfig_commit11 === void 0 ? void 0 : _runConfig_commit11.sendit) && !isDryRun) {
|
|
335
335
|
logger.warn('No changes detected to commit. Skipping commit operation.');
|
|
336
336
|
return 'No changes to commit.';
|
|
337
337
|
} else {
|
|
338
|
-
logger.info('No diff content available
|
|
338
|
+
logger.info('NO_DIFF_FALLBACK: No diff content available | Action: Attempting to generate commit message from file content | Strategy: fallback');
|
|
339
339
|
var _runConfig_excludedPatterns3;
|
|
340
340
|
// Create file content collector as fallback
|
|
341
341
|
const fileOptions = {
|
|
@@ -346,17 +346,17 @@ const executeInternal = async (runConfig)=>{
|
|
|
346
346
|
const files = await create$1(fileOptions);
|
|
347
347
|
const fileContent = await files.get();
|
|
348
348
|
if (fileContent && fileContent.trim().length > 0) {
|
|
349
|
-
logger.info('Using file content for commit message generation
|
|
349
|
+
logger.info('FILE_CONTENT_USING: Using file content for commit message generation | Content Length: %d characters | Source: file content', fileContent.length);
|
|
350
350
|
diffContent = fileContent;
|
|
351
351
|
isUsingFileContent = true;
|
|
352
352
|
hasActualChanges = true; // We have content to work with
|
|
353
353
|
} else {
|
|
354
354
|
var _runConfig_commit12;
|
|
355
355
|
if ((_runConfig_commit12 = runConfig.commit) === null || _runConfig_commit12 === void 0 ? void 0 : _runConfig_commit12.sendit) {
|
|
356
|
-
logger.info('Skipping commit operation
|
|
356
|
+
logger.info('COMMIT_SKIPPED: Skipping commit operation | Reason: No changes detected | Action: None');
|
|
357
357
|
return 'No changes to commit.';
|
|
358
358
|
} else {
|
|
359
|
-
logger.info('
|
|
359
|
+
logger.info('COMMIT_TEMPLATE_GENERATING: Creating commit message template for future use | Reason: No changes | Purpose: Provide template');
|
|
360
360
|
}
|
|
361
361
|
}
|
|
362
362
|
}
|
|
@@ -435,7 +435,7 @@ const executeInternal = async (runConfig)=>{
|
|
|
435
435
|
// Create retry callback that reduces diff size on token limit errors
|
|
436
436
|
const createRetryCallback = (originalDiffContent)=>async (attempt)=>{
|
|
437
437
|
var _runConfig_commit;
|
|
438
|
-
logger.info('Retrying with reduced diff size
|
|
438
|
+
logger.info('COMMIT_RETRY: Retrying with reduced diff size | Attempt: %d | Strategy: Truncate diff | Reason: Previous attempt failed', attempt);
|
|
439
439
|
// Progressively reduce the diff size on retries
|
|
440
440
|
const reductionFactor = Math.pow(0.5, attempt - 1); // 50% reduction per retry
|
|
441
441
|
const reducedMaxDiffBytes = Math.max(512, Math.floor(maxDiffBytes * reductionFactor));
|
|
@@ -506,8 +506,8 @@ const executeInternal = async (runConfig)=>{
|
|
|
506
506
|
requireTTY('Interactive mode requires a terminal. Use --sendit or --dry-run instead.');
|
|
507
507
|
const interactiveResult = await handleInteractiveCommitFeedback(summary, runConfig, promptConfig, promptContext, outputDirectory, storage, diffContent, hasActualChanges, cached);
|
|
508
508
|
if (interactiveResult.action === 'skip') {
|
|
509
|
-
logger.info('
|
|
510
|
-
logger.info('
|
|
509
|
+
logger.info('COMMIT_ABORTED: User aborted commit operation | Reason: User choice | Action: No commit performed');
|
|
510
|
+
logger.info('COMMIT_NO_ACTION: No commit will be performed | Status: aborted | Next: User can retry or modify changes');
|
|
511
511
|
userSkippedCommit = true;
|
|
512
512
|
return interactiveResult.finalMessage;
|
|
513
513
|
}
|
|
@@ -517,7 +517,7 @@ const executeInternal = async (runConfig)=>{
|
|
|
517
517
|
if (willActuallyCommit) {
|
|
518
518
|
var _runConfig_commit15;
|
|
519
519
|
const commitAction = ((_runConfig_commit15 = runConfig.commit) === null || _runConfig_commit15 === void 0 ? void 0 : _runConfig_commit15.amend) ? 'amending last commit' : 'committing';
|
|
520
|
-
logger.info('
|
|
520
|
+
logger.info('SENDIT_EXECUTING: SendIt enabled, executing commit action | Action: %s | Message Length: %d | Final Message: \n\n%s\n\n', commitAction.charAt(0).toUpperCase() + commitAction.slice(1), interactiveResult.finalMessage.length, interactiveResult.finalMessage);
|
|
521
521
|
try {
|
|
522
522
|
var _runConfig_commit16, _runConfig_commit17;
|
|
523
523
|
const validatedSummary = validateString(interactiveResult.finalMessage, 'commit summary');
|
|
@@ -526,7 +526,7 @@ const executeInternal = async (runConfig)=>{
|
|
|
526
526
|
]);
|
|
527
527
|
const commitCommand = ((_runConfig_commit16 = runConfig.commit) === null || _runConfig_commit16 === void 0 ? void 0 : _runConfig_commit16.amend) ? `git commit --amend -m ${escapedSummary}` : `git commit -m ${escapedSummary}`;
|
|
528
528
|
await run(commitCommand);
|
|
529
|
-
logger.info('
|
|
529
|
+
logger.info('COMMIT_SUCCESS: Commit operation completed successfully | Status: committed | Action: Changes saved to repository');
|
|
530
530
|
// Push if requested
|
|
531
531
|
await pushCommit((_runConfig_commit17 = runConfig.commit) === null || _runConfig_commit17 === void 0 ? void 0 : _runConfig_commit17.push, logger, isDryRun);
|
|
532
532
|
} catch (error) {
|