fix(ck): address Greptile + CodeRabbit review bugs

- Fix read-after-write in session-start.mjs: read prevSession BEFORE
  overwriting current-session.json so unsaved-session detection fires
- Fix shell injection in resume.mjs: replace execSync shell string with
  fs.existsSync for directory existence check
- Fix shell injection in shared.mjs gitSummary: replace nested \$(git ...)
  subshell with a separate runGit() call to get rev count
- Fix displayName never shown: render functions now use ctx.displayName
  ?? ctx.name so user-supplied names show instead of the slug
- Fix renderListTable: uses context.displayName ?? entry.name
- Fix init.mjs: use path.basename() instead of cwd.split('/').pop()
- Fix save.mjs confirmation: show original name, not contextDir slug

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Sreedhara GS
2026-03-27 16:44:11 +09:00
parent 1e226ba556
commit 17f6f95090
5 changed files with 23 additions and 24 deletions

View File

@@ -8,8 +8,8 @@
* exit 0: success exit 1: not found
*/
import { existsSync } from 'fs';
import { resolveContext, renderBriefingBox } from './shared.mjs';
import { execSync } from 'child_process';
const arg = process.argv[2];
const cwd = process.env.PWD || process.cwd();
@@ -25,16 +25,11 @@ const { context, projectPath } = resolved;
// Attempt to cd to the project path
if (projectPath && projectPath !== cwd) {
try {
const exists = execSync(`test -d "${projectPath}" && echo yes || echo no`, {
stdio: 'pipe', encoding: 'utf8', timeout: 2000,
}).trim();
if (exists === 'yes') {
console.log(`→ cd ${projectPath}`);
} else {
console.log(`⚠ Path not found: ${projectPath}`);
}
} catch { /* non-fatal */ }
if (existsSync(projectPath)) {
console.log(`→ cd ${projectPath}`);
} else {
console.log(`⚠ Path not found: ${projectPath}`);
}
}
console.log('');