feat(cli): scan progress protocol, incremental cache saves, --no-timeline

- CODEBURN_PROGRESS=1 emits newline-JSON progress on stderr (provider
  list, per-provider start/done, per-file ticks) for GUI first-run
  loaders; plain CLI output untouched
- parseAllSessions saves the session cache atomically every 5s during
  hydration and after each provider group, so an interrupted cold scan
  leaves a warm partial cache instead of nothing
- status --no-timeline skips the granular timeline computation
  (~300-450ms per call) for clients that never render it; default
  unchanged for the menubar
This commit is contained in:
iamtoruk 2026-07-16 10:51:18 -07:00
parent 3163ccb5c4
commit ded4e4e844
5 changed files with 179 additions and 10 deletions

View file

@ -776,6 +776,7 @@ program
.option('--to <date>', 'End date (YYYY-MM-DD) for custom range')
.option('--days <dates>', 'Comma-separated dates (YYYY-MM-DD) for multi-day selection')
.option('--no-optimize', 'Skip optimize findings (menubar-json only, faster)')
.option('--no-timeline', 'Skip the granular timeline (menubar-json only, faster)')
.addOption(new Option('--claude-config-source <id>').hideHelp())
.action(async (opts) => {
assertFormat(opts.format, ['terminal', 'menubar-json', 'json'], 'status')
@ -826,6 +827,7 @@ program
exclude: opts.exclude,
daysSelection,
optimize: opts.optimize !== false,
timeline: opts.timeline !== false,
claudeConfigSourceId: opts.claudeConfigSource,
})
if (opts.scope === 'combined') {