The #782 titles threading added title to the sessions JSON row shape but missed this emitter test's key list; caught by the first full-suite run since the merge. Co-authored-by: reviewer <review@local>
compare --format json: list mode (aggregateModelStats for pickers) + full mode via --model-a/--model-b, emitting {period, modelA, modelB, metrics, categories, workingStyle}. Reuses computeComparison/computeCategoryComparison/computeWorkingStyle/ scanSelfCorrections; TUI path unchanged. sessions --format json: new src/sessions-report.ts, uncapped flat SessionRow[] (id, project, provider, models, cost, tokens, turns, duration) via aggregateSessions; table + json formats. Enables the desktop app's Sessions + Compare screens (Phase 3b).