@synkro-sh/cli 1.7.70 → 1.7.71

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.
package/dist/bootstrap.js CHANGED
@@ -132,7 +132,7 @@ function getIdentity() {
132
132
  if (cached2) return cached2;
133
133
  let cliVersion = "0.0.0";
134
134
  try {
135
- cliVersion = "1.7.70";
135
+ cliVersion = "1.7.71";
136
136
  } catch {
137
137
  }
138
138
  const creds = loadCredentialsIdentity();
@@ -6481,7 +6481,7 @@ function writeConfigEnv(opts) {
6481
6481
  `SYNKRO_CREDENTIALS_PATH=${shellQuoteSingle2(credsPath)}`,
6482
6482
  `SYNKRO_TIER=${shellQuoteSingle2(safeTier)}`,
6483
6483
  `SYNKRO_INFERENCE=${shellQuoteSingle2(safeInference)}`,
6484
- `SYNKRO_VERSION=${shellQuoteSingle2("1.7.70")}`
6484
+ `SYNKRO_VERSION=${shellQuoteSingle2("1.7.71")}`
6485
6485
  ];
6486
6486
  if (safeSynkroBin) lines.push(`SYNKRO_CLI_BIN=${shellQuoteSingle2(safeSynkroBin)}`);
6487
6487
  if (safeUserId) lines.push(`SYNKRO_USER_ID=${shellQuoteSingle2(safeUserId)}`);
@@ -7141,7 +7141,7 @@ async function installCommand(opts = {}) {
7141
7141
  await setTelemetryState({ enabled: true, remoteFlushEnabled: telemetryConsent });
7142
7142
  emit("install", {
7143
7143
  phase: "started",
7144
- cli_version_to: "1.7.70",
7144
+ cli_version_to: "1.7.71",
7145
7145
  agents_detected: agents.map((a) => a.kind),
7146
7146
  with_github: false,
7147
7147
  with_local_cc: false,
@@ -10217,13 +10217,20 @@ function parseSession(filePath, sessionId) {
10217
10217
  const kind = e.type === "assistant" || e.message?.role === "assistant" ? "assistant" : e.type === "user" || e.message?.role === "user" ? "user" : "";
10218
10218
  if (!kind) continue;
10219
10219
  const msgObj = e.message;
10220
+ const _cr = msgObj?.content ?? e.content;
10221
+ const isToolResult = kind === "user" && (!!e.toolUseResult || Array.isArray(_cr) && _cr.some((b) => b?.type === "tool_result" || b?.tool_use_id != null));
10222
+ const finalKind = isToolResult ? "tool" : kind;
10220
10223
  const text = extractText(msgObj?.content ?? e.content);
10221
10224
  const blocks = kind === "assistant" && Array.isArray(msgObj?.content) ? msgObj.content : [];
10222
10225
  const toolCalls = blocks.filter((b) => b?.type === "tool_use").map((b) => ({ name: b.name, input: JSON.stringify(b.input || {}).slice(0, 2e4), id: b.id }));
10223
10226
  if (!text.trim() && toolCalls.length === 0) continue;
10224
10227
  const msg = {
10225
10228
  message_index: i,
10226
- type: kind,
10229
+ type: finalKind,
10230
+ // CC's per-entry uuid is STABLE across transcript rewrites/compaction; message_index (line
10231
+ // number) is not. The server keys conversation_messages on this uuid so re-imports update in
10232
+ // place instead of orphaning/duplicating rows. Falls back to message_index server-side if absent.
10233
+ uuid: typeof e.uuid === "string" ? e.uuid : void 0,
10227
10234
  content: text.trim() ? text.slice(0, 8e3) : "\u21B3 " + toolCalls.map((t) => t.name).join(", "),
10228
10235
  timestamp: e.timestamp || null
10229
10236
  };
@@ -11030,7 +11037,7 @@ var subArgs = args.slice(1);
11030
11037
  var isDetachedChild = process.env.SYNKRO_TELEMETRY_DETACHED === "1";
11031
11038
  var FLUSH_SKIP = /* @__PURE__ */ new Set(["grade", "version", "--version", "-v", "help", "--help", "-h", ""]);
11032
11039
  function printVersion() {
11033
- console.log("1.7.70");
11040
+ console.log("1.7.71");
11034
11041
  }
11035
11042
  function printHelp2() {
11036
11043
  console.log(`Synkro CLI \u2014 runtime safety for AI coding agents