From 708a8fd715804b812e5ef61b5ff751edcfa20fb2 Mon Sep 17 00:00:00 2001 From: Affaan Mustafa Date: Thu, 30 Apr 2026 06:21:21 -0400 Subject: [PATCH] fix: clarify loop status empty output --- scripts/loop-status.js | 4 +++- tests/scripts/loop-status.test.js | 11 +++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/scripts/loop-status.js b/scripts/loop-status.js index 454ef6b0..98844590 100644 --- a/scripts/loop-status.js +++ b/scripts/loop-status.js @@ -551,7 +551,9 @@ function formatText(payload) { if (payload.sessions.length === 0) { const lines = [ `ECC loop status (${payload.generatedAt})`, - `No Claude transcript JSONL files found under ${payload.source.transcriptRoot}.`, + skippedLines.length > 0 + ? 'No readable Claude transcript JSONL files were found.' + : `No Claude transcript JSONL files found under ${payload.source.transcriptRoot}.`, ]; if (skippedLines.length > 0) { lines.push('Skipped transcript errors:'); diff --git a/tests/scripts/loop-status.test.js b/tests/scripts/loop-status.test.js index 4da04a4c..82449d32 100644 --- a/tests/scripts/loop-status.test.js +++ b/tests/scripts/loop-status.test.js @@ -313,6 +313,17 @@ function runTests() { assert.strictEqual(payload.errors[0].transcriptPath, missingTranscript); })) passed++; else failed++; + if (test('text output distinguishes explicit transcript read failures from empty discovery', () => { + const missingTranscript = path.join(os.tmpdir(), `missing-loop-status-text-${Date.now()}.jsonl`); + + const result = run(['--transcript', missingTranscript, '--now', NOW]); + + assert.strictEqual(result.code, 0, result.stderr); + assert.match(result.stdout, /No readable Claude transcript JSONL files were found/); + assert.match(result.stdout, /Skipped transcript errors/); + assert.ok(!result.stdout.includes('No Claude transcript JSONL files found under')); + })) passed++; else failed++; + if (test('continues when one transcript directory cannot be read', () => { const homeDir = createTempHome(); const blockedDir = path.join(homeDir, '.claude', 'projects', '-blocked-project');