@indigoai-us/hq-cloud 6.14.28 → 6.14.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/dist/bin/sync-runner-company.d.ts +4 -0
  2. package/dist/bin/sync-runner-company.d.ts.map +1 -1
  3. package/dist/bin/sync-runner-company.js +3 -0
  4. package/dist/bin/sync-runner-company.js.map +1 -1
  5. package/dist/bin/sync-runner-planning.d.ts +7 -6
  6. package/dist/bin/sync-runner-planning.d.ts.map +1 -1
  7. package/dist/bin/sync-runner-planning.js +1 -1
  8. package/dist/bin/sync-runner-planning.js.map +1 -1
  9. package/dist/bin/sync-runner-planning.test.js +23 -0
  10. package/dist/bin/sync-runner-planning.test.js.map +1 -1
  11. package/dist/bin/sync-runner-rollup.d.ts.map +1 -1
  12. package/dist/bin/sync-runner-rollup.js +3 -1
  13. package/dist/bin/sync-runner-rollup.js.map +1 -1
  14. package/dist/bin/sync-runner-rollup.test.d.ts +2 -0
  15. package/dist/bin/sync-runner-rollup.test.d.ts.map +1 -0
  16. package/dist/bin/sync-runner-rollup.test.js +24 -0
  17. package/dist/bin/sync-runner-rollup.test.js.map +1 -0
  18. package/dist/bin/sync-runner-watch-loop.d.ts.map +1 -1
  19. package/dist/bin/sync-runner-watch-loop.js +15 -1
  20. package/dist/bin/sync-runner-watch-loop.js.map +1 -1
  21. package/dist/bin/sync-runner.d.ts +11 -7
  22. package/dist/bin/sync-runner.d.ts.map +1 -1
  23. package/dist/bin/sync-runner.js +51 -9
  24. package/dist/bin/sync-runner.js.map +1 -1
  25. package/dist/bin/sync-runner.test.js +97 -0
  26. package/dist/bin/sync-runner.test.js.map +1 -1
  27. package/dist/cli/doctor.d.ts.map +1 -1
  28. package/dist/cli/doctor.js +3 -1
  29. package/dist/cli/doctor.js.map +1 -1
  30. package/dist/cli/reindex.d.ts.map +1 -1
  31. package/dist/cli/reindex.js +24 -13
  32. package/dist/cli/reindex.js.map +1 -1
  33. package/dist/cli/rescue-core.js +3 -1
  34. package/dist/cli/rescue-core.js.map +1 -1
  35. package/dist/cli/share.d.ts +35 -0
  36. package/dist/cli/share.d.ts.map +1 -1
  37. package/dist/cli/share.js +29 -11
  38. package/dist/cli/share.js.map +1 -1
  39. package/dist/cli/share.test.js +46 -0
  40. package/dist/cli/share.test.js.map +1 -1
  41. package/dist/ignore.d.ts.map +1 -1
  42. package/dist/ignore.js +5 -0
  43. package/dist/ignore.js.map +1 -1
  44. package/dist/ignore.test.js +9 -0
  45. package/dist/ignore.test.js.map +1 -1
  46. package/dist/outcome-telemetry.d.ts +167 -0
  47. package/dist/outcome-telemetry.d.ts.map +1 -0
  48. package/dist/outcome-telemetry.js +479 -0
  49. package/dist/outcome-telemetry.js.map +1 -0
  50. package/dist/outcome-telemetry.test.d.ts +9 -0
  51. package/dist/outcome-telemetry.test.d.ts.map +1 -0
  52. package/dist/outcome-telemetry.test.js +412 -0
  53. package/dist/outcome-telemetry.test.js.map +1 -0
  54. package/dist/qmd-reindex.d.ts +48 -35
  55. package/dist/qmd-reindex.d.ts.map +1 -1
  56. package/dist/qmd-reindex.js +188 -60
  57. package/dist/qmd-reindex.js.map +1 -1
  58. package/dist/qmd-reindex.test.d.ts +3 -3
  59. package/dist/qmd-reindex.test.js +203 -41
  60. package/dist/qmd-reindex.test.js.map +1 -1
  61. package/dist/telemetry.d.ts +5 -4
  62. package/dist/telemetry.d.ts.map +1 -1
  63. package/dist/telemetry.js +187 -13
  64. package/dist/telemetry.js.map +1 -1
  65. package/dist/telemetry.test.js +157 -0
  66. package/dist/telemetry.test.js.map +1 -1
  67. package/dist/vault-client.d.ts +34 -0
  68. package/dist/vault-client.d.ts.map +1 -1
  69. package/dist/vault-client.js +23 -0
  70. package/dist/vault-client.js.map +1 -1
  71. package/package.json +1 -1
  72. package/src/bin/sync-runner-company.ts +4 -0
  73. package/src/bin/sync-runner-planning.test.ts +26 -0
  74. package/src/bin/sync-runner-planning.ts +8 -7
  75. package/src/bin/sync-runner-rollup.test.ts +37 -0
  76. package/src/bin/sync-runner-rollup.ts +3 -1
  77. package/src/bin/sync-runner-watch-loop.ts +22 -1
  78. package/src/bin/sync-runner.test.ts +111 -0
  79. package/src/bin/sync-runner.ts +62 -17
  80. package/src/cli/doctor.ts +3 -1
  81. package/src/cli/reindex.ts +24 -12
  82. package/src/cli/rescue-core.ts +3 -1
  83. package/src/cli/share.test.ts +60 -0
  84. package/src/cli/share.ts +29 -11
  85. package/src/ignore.test.ts +10 -0
  86. package/src/ignore.ts +5 -0
  87. package/src/outcome-telemetry.test.ts +498 -0
  88. package/src/outcome-telemetry.ts +639 -0
  89. package/src/qmd-reindex.test.ts +226 -40
  90. package/src/qmd-reindex.ts +209 -61
  91. package/src/telemetry.test.ts +194 -0
  92. package/src/telemetry.ts +233 -14
  93. package/src/vault-client.ts +55 -0
package/dist/telemetry.js CHANGED
@@ -7,9 +7,8 @@
7
7
  * (`hq-sync-runner`, `hq-cli`, mobile wrappers) emits telemetry uniformly.
8
8
  *
9
9
  * What it does: after each successful sync (`all-complete` arm of
10
- * `bin/sync-runner.ts`), walks `~/.claude/projects/**\/*.jsonl`, diffs each
11
- * file against a persisted byte-offset cursor at `~/.hq/telemetry-cursor.json`,
12
- * sanitizes new rows through a tight allowlist that matches the server's
10
+ * `bin/sync-runner.ts`), walks Claude session logs plus live and archived Codex
11
+ * rollouts, then diffs each file against the persisted byte-offset cursor at `~/.hq/telemetry-cursor.json`, sanitizes new rows through a tight allowlist that matches the server's
13
12
  * KEEP_FIELDS set in `apps/hq-pro/src/vault-service/handlers/usage.ts`,
14
13
  * batches into server-sized POST bodies, and ships them to `/v1/usage`.
15
14
  *
@@ -22,6 +21,7 @@
22
21
  * sync. The cursor is only advanced for batches the server 2xx'd, so a
23
22
  * transient outage retries automatically on the next sync.
24
23
  */
24
+ import { createHash } from "node:crypto";
25
25
  import { promises as fs } from "node:fs";
26
26
  import * as os from "node:os";
27
27
  import * as path from "node:path";
@@ -34,7 +34,13 @@ async function loadCursor(cursorPath) {
34
34
  const raw = await fs.readFile(cursorPath, "utf-8");
35
35
  const parsed = JSON.parse(raw);
36
36
  if (parsed && typeof parsed === "object" && parsed.files && typeof parsed.files === "object") {
37
- return { version: parsed.version ?? "1", files: parsed.files };
37
+ return {
38
+ version: parsed.version ?? "1",
39
+ files: parsed.files,
40
+ ...(typeof parsed.codex_next_rollout === "string"
41
+ ? { codex_next_rollout: parsed.codex_next_rollout }
42
+ : {}),
43
+ };
38
44
  }
39
45
  }
40
46
  catch {
@@ -274,6 +280,144 @@ async function listJsonlFiles(root) {
274
280
  await walk(root);
275
281
  return out;
276
282
  }
283
+ // ── Codex rollout adapter ────────────────────────────────────────────────────
284
+ const MAX_ID_BYTES = 256;
285
+ const MAX_TIMESTAMP_BYTES = 128;
286
+ const MAX_PATH_BYTES = 4 * 1024;
287
+ const MAX_MODEL_BYTES = 256;
288
+ function boundedString(value, maxBytes) {
289
+ return typeof value === "string" &&
290
+ value.length > 0 &&
291
+ Buffer.byteLength(value, "utf-8") <= maxBytes
292
+ ? value
293
+ : undefined;
294
+ }
295
+ function tokenCount(value) {
296
+ return typeof value === "number" &&
297
+ Number.isSafeInteger(value) &&
298
+ value >= 0
299
+ ? value
300
+ : 0;
301
+ }
302
+ function cloneCodexContext(context) {
303
+ return { ...context };
304
+ }
305
+ function codexModel(context) {
306
+ return context.turn_model ?? context.collaboration_model ?? context.session_model;
307
+ }
308
+ function codexGitBranch(payload) {
309
+ const direct = boundedString(payload.gitBranch, MAX_PATH_BYTES) ??
310
+ boundedString(payload.git_branch, MAX_PATH_BYTES);
311
+ if (direct)
312
+ return direct;
313
+ const git = payload.git;
314
+ return git && typeof git === "object" && !Array.isArray(git)
315
+ ? boundedString(git.branch, MAX_PATH_BYTES)
316
+ : undefined;
317
+ }
318
+ function collaborationModel(payload) {
319
+ const settings = payload.settings;
320
+ if (!settings || typeof settings !== "object" || Array.isArray(settings)) {
321
+ return undefined;
322
+ }
323
+ return boundedString(settings.model, MAX_MODEL_BYTES);
324
+ }
325
+ function stableCodexEventId(rolloutIdentity, startOffset, endOffset) {
326
+ const offsets = Buffer.alloc(16);
327
+ offsets.writeBigUInt64BE(BigInt(startOffset), 0);
328
+ offsets.writeBigUInt64BE(BigInt(endOffset), 8);
329
+ return "codex-" + createHash("sha256")
330
+ .update(rolloutIdentity)
331
+ .update(Buffer.from([0]))
332
+ .update(offsets)
333
+ .digest("hex");
334
+ }
335
+ /** Adapt a Codex rollout record to the Claude-shaped sanitizer input. */
336
+ function codexUsageRow(row, context, rolloutIdentity, startOffset, endOffset) {
337
+ if (!row || typeof row !== "object" || Array.isArray(row))
338
+ return null;
339
+ const obj = row;
340
+ const kind = obj.type;
341
+ const rawPayload = obj.payload;
342
+ const payload = rawPayload && typeof rawPayload === "object" && !Array.isArray(rawPayload)
343
+ ? rawPayload
344
+ : undefined;
345
+ if (kind === "session_meta") {
346
+ if (!payload)
347
+ return null;
348
+ context.session_id = boundedString(payload.id, MAX_ID_BYTES) ?? context.session_id;
349
+ context.cwd = boundedString(payload.cwd, MAX_PATH_BYTES);
350
+ context.git_branch = codexGitBranch(payload);
351
+ context.session_model = boundedString(payload.model, MAX_MODEL_BYTES);
352
+ return null;
353
+ }
354
+ if (kind === "turn_context") {
355
+ context.turn_model = payload
356
+ ? boundedString(payload.model, MAX_MODEL_BYTES)
357
+ : undefined;
358
+ const mode = payload?.collaboration_mode;
359
+ if (mode && typeof mode === "object" && !Array.isArray(mode)) {
360
+ const model = collaborationModel(mode);
361
+ if (model)
362
+ context.collaboration_model = model;
363
+ }
364
+ return null;
365
+ }
366
+ if (kind === "collaboration_mode") {
367
+ context.collaboration_model = payload
368
+ ? collaborationModel(payload)
369
+ : undefined;
370
+ return null;
371
+ }
372
+ if (kind !== "event_msg" || !payload)
373
+ return null;
374
+ if (payload.type === "collaboration_mode") {
375
+ context.collaboration_model = collaborationModel(payload);
376
+ return null;
377
+ }
378
+ if (payload.type !== "token_count")
379
+ return null;
380
+ const info = payload.info;
381
+ if (!info || typeof info !== "object" || Array.isArray(info))
382
+ return null;
383
+ const last = info.last_token_usage;
384
+ if (!last || typeof last !== "object" || Array.isArray(last))
385
+ return null;
386
+ const usage = last;
387
+ const outputTokens = tokenCount(usage.output_tokens) + tokenCount(usage.reasoning_output_tokens);
388
+ const model = codexModel(context);
389
+ const normalized = {
390
+ uuid: boundedString(obj.uuid, MAX_ID_BYTES) ??
391
+ stableCodexEventId(rolloutIdentity, startOffset, endOffset),
392
+ message: {
393
+ usage: {
394
+ input_tokens: tokenCount(usage.input_tokens),
395
+ output_tokens: outputTokens,
396
+ ...(typeof usage.cached_input_tokens === "number"
397
+ ? { cache_read_input_tokens: tokenCount(usage.cached_input_tokens) }
398
+ : {}),
399
+ },
400
+ ...(model ? { model } : {}),
401
+ },
402
+ };
403
+ if (context.session_id)
404
+ normalized.sessionId = context.session_id;
405
+ const timestamp = boundedString(obj.timestamp, MAX_TIMESTAMP_BYTES);
406
+ if (timestamp)
407
+ normalized.timestamp = timestamp;
408
+ if (context.cwd)
409
+ normalized.cwd = context.cwd;
410
+ if (context.git_branch)
411
+ normalized.gitBranch = context.git_branch;
412
+ return normalized;
413
+ }
414
+ async function listCodexRolloutFiles(codexRoot) {
415
+ const [live, archived] = await Promise.all([
416
+ listJsonlFiles(path.join(codexRoot, "sessions")),
417
+ listJsonlFiles(path.join(codexRoot, "archived_sessions")),
418
+ ]);
419
+ return [...live, ...archived].filter((file) => path.basename(file).startsWith("rollout-"));
420
+ }
277
421
  // ── Batching primitives ───────────────────────────────────────────────────────
278
422
  const MAX_BATCH_EVENTS = 100;
279
423
  const MAX_BATCH_BYTES = 240 * 1024;
@@ -335,7 +479,7 @@ function boundRowForPost(row, maxRowBytes) {
335
479
  }
336
480
  // ── Main entry point ──────────────────────────────────────────────────────────
337
481
  /**
338
- * Scan, sanitize, and POST any new Claude Code session rows.
482
+ * Scan, sanitize, and POST new Claude Code and Codex usage rows.
339
483
  *
340
484
  * Fire-and-forget from the caller's perspective: errors are caught internally
341
485
  * and surfaced only via `log`. The returned summary lets observers (e.g.
@@ -345,6 +489,7 @@ function boundRowForPost(row, maxRowBytes) {
345
489
  export async function collectAndSendTelemetry(opts) {
346
490
  const home = os.homedir();
347
491
  const claudeProjectsRoot = opts.claudeProjectsRoot ?? path.join(home, ".claude", "projects");
492
+ const codexRoot = opts.codexRoot ?? path.join(home, ".codex");
348
493
  const cursorPath = opts.cursorPath ?? path.join(home, ".hq", "telemetry-cursor.json");
349
494
  const menubarPath = opts.menubarPath ?? path.join(home, ".hq", "menubar.json");
350
495
  const log = opts.log ?? (() => { });
@@ -431,7 +576,14 @@ export async function collectAndSendTelemetry(opts) {
431
576
  const loadedFiles = { ...cursor.files };
432
577
  const rotationResets = {};
433
578
  const newlyCommitted = {};
434
- const files = await listJsonlFiles(claudeProjectsRoot);
579
+ const [claudeFiles, codexFiles] = await Promise.all([
580
+ listJsonlFiles(claudeProjectsRoot),
581
+ listCodexRolloutFiles(codexRoot),
582
+ ]);
583
+ const files = [
584
+ ...claudeFiles.map((filePath) => ({ filePath, kind: "claude" })),
585
+ ...codexFiles.map((filePath) => ({ filePath, kind: "codex" })),
586
+ ];
435
587
  // 3. Walk each file, sanitize new rows, batch, flush at the server contract.
436
588
  //
437
589
  // Byte accounting is incremental: we track `batchBytes` as the projected
@@ -467,11 +619,19 @@ export async function collectAndSendTelemetry(opts) {
467
619
  for (const src of sources) {
468
620
  const cur = maxPerFile.get(src.filePath);
469
621
  if (!cur || src.endOffset > cur.offset) {
470
- maxPerFile.set(src.filePath, { mtime: src.mtime, offset: src.endOffset });
622
+ maxPerFile.set(src.filePath, {
623
+ mtime: src.mtime,
624
+ offset: src.endOffset,
625
+ ...(src.context ? { context: cloneCodexContext(src.context) } : {}),
626
+ });
471
627
  }
472
628
  }
473
629
  for (const [fp, entry] of maxPerFile) {
474
- newlyCommitted[fp] = { offset: entry.offset, mtime: entry.mtime };
630
+ newlyCommitted[fp] = {
631
+ offset: entry.offset,
632
+ mtime: entry.mtime,
633
+ ...(entry.context ? { context: entry.context } : {}),
634
+ };
475
635
  }
476
636
  }
477
637
  catch (err) {
@@ -479,7 +639,7 @@ export async function collectAndSendTelemetry(opts) {
479
639
  // Cursor intentionally left un-advanced — next sync retries.
480
640
  }
481
641
  };
482
- for (const filePath of files) {
642
+ for (const { filePath, kind } of files) {
483
643
  let stat;
484
644
  try {
485
645
  stat = await fs.stat(filePath);
@@ -491,9 +651,12 @@ export async function collectAndSendTelemetry(opts) {
491
651
  const currentMtime = Math.floor(stat.mtimeMs / 1000);
492
652
  const stored = cursor.files[filePath] ?? { offset: 0, mtime: 0 };
493
653
  let offset = stored.offset;
654
+ let codexContext = kind === "codex" ? cloneCodexContext(stored.context ?? {}) : undefined;
494
655
  const rotated = currentSize < offset || (stored.mtime > 0 && currentMtime < stored.mtime);
495
656
  if (rotated) {
496
657
  offset = 0;
658
+ if (kind === "codex")
659
+ codexContext = {};
497
660
  rotationResets[filePath] = { offset: 0, mtime: currentMtime };
498
661
  }
499
662
  if (offset >= currentSize && !rotated)
@@ -536,13 +699,17 @@ export async function collectAndSendTelemetry(opts) {
536
699
  catch {
537
700
  continue;
538
701
  }
702
+ const startOffset = i === 0 ? offset : lineEndOffsets[i - 1];
703
+ const sourceRow = kind === "codex"
704
+ ? codexUsageRow(parsed, codexContext, filePath, startOffset, lineEndOffsets[i])
705
+ : parsed;
539
706
  // Resolve this row's cwd → owning company (cmp_* uid) before sanitizing,
540
707
  // using the per-run map. Unresolved → undefined → companyUid omitted.
541
- const rowCwd = parsed && typeof parsed === "object" && !Array.isArray(parsed)
542
- ? parsed.cwd
708
+ const rowCwd = sourceRow && typeof sourceRow === "object" && !Array.isArray(sourceRow)
709
+ ? sourceRow.cwd
543
710
  : undefined;
544
711
  const companyUid = resolveCompanyForCwd(typeof rowCwd === "string" ? rowCwd : undefined, repoCompanyMap);
545
- const sanitized = sanitizeRow(parsed, companyUid);
712
+ const sanitized = sanitizeRow(sourceRow, companyUid);
546
713
  if (!sanitized)
547
714
  continue;
548
715
  const maxRowBytes = MAX_BATCH_BYTES - ENVELOPE_BYTES;
@@ -576,6 +743,7 @@ export async function collectAndSendTelemetry(opts) {
576
743
  filePath,
577
744
  endOffset: lineEndOffsets[i],
578
745
  mtime: currentMtime,
746
+ ...(codexContext ? { context: cloneCodexContext(codexContext) } : {}),
579
747
  });
580
748
  }
581
749
  }
@@ -586,7 +754,13 @@ export async function collectAndSendTelemetry(opts) {
586
754
  finalFiles[fp] = entry;
587
755
  for (const [fp, entry] of Object.entries(newlyCommitted))
588
756
  finalFiles[fp] = entry;
589
- await saveCursor(cursorPath, { version: "1", files: finalFiles });
757
+ await saveCursor(cursorPath, {
758
+ version: "1",
759
+ files: finalFiles,
760
+ ...(cursor.codex_next_rollout
761
+ ? { codex_next_rollout: cursor.codex_next_rollout }
762
+ : {}),
763
+ });
590
764
  return {
591
765
  enabled: true,
592
766
  optInSource,
@@ -1 +1 @@
1
- {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../src/telemetry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../src/telemetry.ts"],"names":[],"mappings":"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"}
@@ -49,11 +49,15 @@ function makeClient(opts = {}) {
49
49
  function setupEnv() {
50
50
  const root = fs.mkdtempSync(path.join(os.tmpdir(), "hq-telemetry-test-"));
51
51
  const claudeProjects = path.join(root, ".claude", "projects");
52
+ const codexRoot = path.join(root, ".codex");
52
53
  fs.mkdirSync(claudeProjects, { recursive: true });
54
+ fs.mkdirSync(path.join(codexRoot, "sessions"), { recursive: true });
55
+ fs.mkdirSync(path.join(codexRoot, "archived_sessions"), { recursive: true });
53
56
  fs.mkdirSync(path.join(root, ".hq"), { recursive: true });
54
57
  return {
55
58
  root,
56
59
  claudeProjects,
60
+ codexRoot,
57
61
  cursorPath: path.join(root, ".hq", "telemetry-cursor.json"),
58
62
  menubarPath: path.join(root, ".hq", "menubar.json"),
59
63
  };
@@ -77,6 +81,7 @@ function makeOpts(env, client) {
77
81
  machineId: "test-machine",
78
82
  installerVersion: "test-version",
79
83
  claudeProjectsRoot: env.claudeProjects,
84
+ codexRoot: env.codexRoot,
80
85
  cursorPath: env.cursorPath,
81
86
  menubarPath: env.menubarPath,
82
87
  };
@@ -515,6 +520,158 @@ describe("collectAndSendTelemetry", () => {
515
520
  expect(client.posts).toHaveLength(1); // no second POST
516
521
  });
517
522
  });
523
+ // ── Codex rollout collection ────────────────────────────────────────────────
524
+ function codexLine(value) {
525
+ return JSON.stringify(value);
526
+ }
527
+ function writeCodexRollout(env, location, name, lines) {
528
+ const dir = location === "sessions"
529
+ ? path.join(env.codexRoot, location, "2026", "07", "30")
530
+ : path.join(env.codexRoot, location);
531
+ fs.mkdirSync(dir, { recursive: true });
532
+ const file = path.join(dir, name);
533
+ fs.writeFileSync(file, lines.map(codexLine).join("\n") + "\n", "utf-8");
534
+ return file;
535
+ }
536
+ function codexToken(timestamp, uuid, input, output, reasoning = 0, cached = 0) {
537
+ return {
538
+ timestamp,
539
+ uuid,
540
+ type: "event_msg",
541
+ payload: {
542
+ type: "token_count",
543
+ info: {
544
+ last_token_usage: {
545
+ input_tokens: input,
546
+ output_tokens: output,
547
+ reasoning_output_tokens: reasoning,
548
+ cached_input_tokens: cached,
549
+ },
550
+ total_token_usage: {
551
+ input_tokens: 999_999,
552
+ output_tokens: 999_999,
553
+ },
554
+ },
555
+ raw_content: "must never leave the machine",
556
+ },
557
+ };
558
+ }
559
+ describe("collectAndSendTelemetry — Codex rollouts", () => {
560
+ let env;
561
+ beforeEach(() => {
562
+ env = setupEnv();
563
+ });
564
+ afterEach(() => teardownEnv(env));
565
+ it("collects token deltas from live and archived Linux rollouts", async () => {
566
+ writeCodexRollout(env, "sessions", "rollout-live.jsonl", [
567
+ {
568
+ timestamp: "2026-07-30T10:00:00Z",
569
+ type: "session_meta",
570
+ payload: {
571
+ id: "codex-live",
572
+ cwd: "/home/yousuf/hq/repos/private/hq-cloud",
573
+ git: { branch: "feature/live" },
574
+ model: "session-model",
575
+ instructions: "private prompt",
576
+ },
577
+ },
578
+ {
579
+ timestamp: "2026-07-30T10:00:01Z",
580
+ type: "turn_context",
581
+ payload: { model: "codex-auto-review" },
582
+ },
583
+ codexToken("2026-07-30T10:00:02Z", "codex-event-live", 11, 7, 5, 3),
584
+ ]);
585
+ writeCodexRollout(env, "archived_sessions", "rollout-archived.jsonl", [
586
+ {
587
+ timestamp: "2026-07-29T10:00:00Z",
588
+ type: "session_meta",
589
+ payload: { id: "codex-archived", cwd: "/repo", model: "gpt-5-codex" },
590
+ },
591
+ codexToken("2026-07-29T10:00:01Z", "codex-event-archived", 2, 3, 1, 1),
592
+ ]);
593
+ const client = makeClient();
594
+ const result = await collectAndSendTelemetry(makeOpts(env, client));
595
+ const events = client.posts.flatMap((post) => post.events);
596
+ expect(result.filesScanned).toBe(2);
597
+ expect(result.eventsSent).toBe(2);
598
+ expect(events).toEqual(expect.arrayContaining([
599
+ {
600
+ sessionId: "codex-live",
601
+ timestamp: "2026-07-30T10:00:02Z",
602
+ uuid: "codex-event-live",
603
+ cwd: "/home/yousuf/hq/repos/private/hq-cloud",
604
+ gitBranch: "feature/live",
605
+ model: "codex-auto-review",
606
+ inputTokens: 11,
607
+ outputTokens: 12,
608
+ cacheReadInputTokens: 3,
609
+ },
610
+ expect.objectContaining({
611
+ sessionId: "codex-archived",
612
+ model: "gpt-5-codex",
613
+ inputTokens: 2,
614
+ outputTokens: 4,
615
+ cacheReadInputTokens: 1,
616
+ }),
617
+ ]));
618
+ expect(JSON.stringify(events)).not.toContain("private prompt");
619
+ expect(JSON.stringify(events)).not.toContain("raw_content");
620
+ expect(JSON.stringify(events)).not.toContain("999999");
621
+ await collectAndSendTelemetry(makeOpts(env, client));
622
+ expect(client.posts.flatMap((post) => post.events)).toHaveLength(2);
623
+ });
624
+ it("persists model context for incremental rollouts and generates stable IDs", async () => {
625
+ const file = writeCodexRollout(env, "sessions", "rollout-incremental.jsonl", [
626
+ {
627
+ type: "session_meta",
628
+ payload: { id: "incremental", cwd: "/repo", model: "session-model" },
629
+ },
630
+ { type: "turn_context", payload: { model: "model-a" } },
631
+ codexToken("2026-07-30T13:00:00Z", "first-event", 1, 2),
632
+ ]);
633
+ fs.writeFileSync(env.cursorPath, JSON.stringify({ version: "1", files: {}, codex_next_rollout: file }));
634
+ const client = makeClient();
635
+ await collectAndSendTelemetry(makeOpts(env, client));
636
+ fs.appendFileSync(file, [
637
+ codexLine({ type: "turn_context", payload: { model: "model-b" } }),
638
+ codexLine({
639
+ ...codexToken("2026-07-30T13:01:00Z", "temporary", 3, 4),
640
+ uuid: undefined,
641
+ }),
642
+ ].join("\n") + "\n");
643
+ await collectAndSendTelemetry(makeOpts(env, client));
644
+ const events = client.posts.flatMap((post) => post.events);
645
+ expect(events).toHaveLength(2);
646
+ expect(events[1]).toMatchObject({
647
+ sessionId: "incremental",
648
+ cwd: "/repo",
649
+ model: "model-b",
650
+ inputTokens: 3,
651
+ outputTokens: 4,
652
+ });
653
+ expect(events[1].uuid).toMatch(/^codex-[a-f0-9]{64}$/);
654
+ const cursor = JSON.parse(fs.readFileSync(env.cursorPath, "utf-8"));
655
+ expect(cursor.files[file].context).toMatchObject({
656
+ session_id: "incremental",
657
+ cwd: "/repo",
658
+ session_model: "session-model",
659
+ turn_model: "model-b",
660
+ });
661
+ expect(cursor.codex_next_rollout).toBe(file);
662
+ });
663
+ it("does not advance a Codex rollout cursor when upload fails", async () => {
664
+ const file = writeCodexRollout(env, "sessions", "rollout-retry.jsonl", [
665
+ { type: "session_meta", payload: { id: "retry", model: "gpt-5-codex" } },
666
+ codexToken("2026-07-30T12:00:00Z", "retry-event", 1, 2),
667
+ ]);
668
+ const client = makeClient({ postResponse: new Error("server 500") });
669
+ const result = await collectAndSendTelemetry(makeOpts(env, client));
670
+ expect(result.eventsSent).toBe(0);
671
+ const cursor = readCursor(env);
672
+ expect(cursor.files[file]?.offset ?? 0).toBe(0);
673
+ });
674
+ });
518
675
  // ── companyUid edge attribution (US-002) ────────────────────────────────────────
519
676
  describe("collectAndSendTelemetry — companyUid attribution", () => {
520
677
  const COMPANY_UID = "cmp_01INDIGOTEST";