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

@@ -9,7 +9,7 @@
*/
import { readFileSync, existsSync } from 'fs';
import { resolve } from 'path';
import { resolve, basename } from 'path';
import { readProjects } from './shared.mjs';
const cwd = process.env.PWD || process.cwd();
@@ -137,7 +137,7 @@ if (readme && !output.description) {
// ── Name fallback: directory name ─────────────────────────────────────────────
if (!output.name) {
output.name = cwd.split('/').pop().toLowerCase().replace(/\s+/g, '-');
output.name = basename(cwd).toLowerCase().replace(/\s+/g, '-');
}
console.log(JSON.stringify(output, null, 2));