@costrict/csc 4.2.37 → 4.2.38

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 (2) hide show
  1. package/dist/cli.js +222 -138
  2. package/package.json +1 -1
package/dist/cli.js CHANGED
@@ -31759,8 +31759,8 @@ function getClientVersion() {
31759
31759
  if (cached)
31760
31760
  return cached;
31761
31761
  try {
31762
- if ("4.2.37") {
31763
- cached = "4.2.37";
31762
+ if ("4.2.38") {
31763
+ cached = "4.2.38";
31764
31764
  return cached;
31765
31765
  }
31766
31766
  } catch {}
@@ -224376,7 +224376,7 @@ async function fetchCoStrictModels(baseUrl, accessToken) {
224376
224376
  headers: {
224377
224377
  Authorization: `Bearer ${accessToken}`,
224378
224378
  Accept: "application/json",
224379
- "User-Agent": `csc/${"4.2.37"}`
224379
+ "User-Agent": `csc/${"4.2.38"}`
224380
224380
  },
224381
224381
  signal: controller.signal
224382
224382
  });
@@ -226416,7 +226416,7 @@ var init_auth7 = __esm(() => {
226416
226416
 
226417
226417
  // src/utils/userAgent.ts
226418
226418
  function getClaudeCodeUserAgent() {
226419
- return `costrict/${"4.2.37"}`;
226419
+ return `costrict/${"4.2.38"}`;
226420
226420
  }
226421
226421
 
226422
226422
  // src/utils/workloadContext.ts
@@ -226438,7 +226438,7 @@ function getUserAgent() {
226438
226438
  const clientApp = process.env.CLAUDE_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}` : "";
226439
226439
  const workload = getWorkload();
226440
226440
  const workloadSuffix = workload ? `, workload/${workload}` : "";
226441
- return `csc/${"4.2.37"}`;
226441
+ return `csc/${"4.2.38"}`;
226442
226442
  }
226443
226443
  function getMCPUserAgent() {
226444
226444
  const parts = [];
@@ -226452,7 +226452,7 @@ function getMCPUserAgent() {
226452
226452
  parts.push(`client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}`);
226453
226453
  }
226454
226454
  const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
226455
- return `csc/${"4.2.37"}${suffix}`;
226455
+ return `csc/${"4.2.38"}${suffix}`;
226456
226456
  }
226457
226457
  function getWebFetchUserAgent() {
226458
226458
  return `Claude-User (${getClaudeCodeUserAgent()}; +https://support.anthropic.com/)`;
@@ -226572,7 +226572,7 @@ var init_user = __esm(() => {
226572
226572
  deviceId,
226573
226573
  sessionId: getSessionId(),
226574
226574
  email: getEmail(),
226575
- appVersion: "4.2.37",
226575
+ appVersion: "4.2.38",
226576
226576
  platform: getHostPlatformForAnalytics(),
226577
226577
  organizationUuid,
226578
226578
  accountUuid,
@@ -237620,7 +237620,7 @@ var init_metadata = __esm(() => {
237620
237620
  COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
237621
237621
  WHITESPACE_REGEX = /\s+/;
237622
237622
  getVersionBase = memoize_default(() => {
237623
- const match = "4.2.37".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
237623
+ const match = "4.2.38".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
237624
237624
  return match ? match[0] : undefined;
237625
237625
  });
237626
237626
  buildEnvContext = memoize_default(async () => {
@@ -237660,9 +237660,9 @@ var init_metadata = __esm(() => {
237660
237660
  isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
237661
237661
  isClaudeCodeAction: isEnvTruthy(process.env.CLAUDE_CODE_ACTION),
237662
237662
  isClaudeAiAuth: isClaudeAISubscriber(),
237663
- version: "4.2.37",
237663
+ version: "4.2.38",
237664
237664
  versionBase: getVersionBase(),
237665
- buildTime: "2026-09-09T12:10:12.753Z",
237665
+ buildTime: "2026-09-14T02:57:33.042Z",
237666
237666
  deploymentEnvironment: env4.detectDeploymentEnvironment(),
237667
237667
  ...isEnvTruthy(process.env.GITHUB_ACTIONS) && {
237668
237668
  githubEventName: process.env.GITHUB_EVENT_NAME,
@@ -238333,7 +238333,7 @@ function initialize1PEventLogging() {
238333
238333
  const platform3 = getPlatform();
238334
238334
  const attributes = {
238335
238335
  [import_semantic_conventions2.ATTR_SERVICE_NAME]: "claude-code",
238336
- [import_semantic_conventions2.ATTR_SERVICE_VERSION]: "4.2.37"
238336
+ [import_semantic_conventions2.ATTR_SERVICE_VERSION]: "4.2.38"
238337
238337
  };
238338
238338
  if (platform3 === "wsl") {
238339
238339
  const wslVersion = getWslVersion();
@@ -238360,7 +238360,7 @@ function initialize1PEventLogging() {
238360
238360
  })
238361
238361
  ]
238362
238362
  });
238363
- firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.anthropic.claude_code.events", "4.2.37");
238363
+ firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.anthropic.claude_code.events", "4.2.38");
238364
238364
  }
238365
238365
  async function reinitialize1PEventLoggingIfConfigChanged() {
238366
238366
  if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
@@ -354165,7 +354165,7 @@ function getTelemetryAttributes() {
354165
354165
  attributes["session.id"] = sessionId;
354166
354166
  }
354167
354167
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
354168
- attributes["app.version"] = "4.2.37";
354168
+ attributes["app.version"] = "4.2.38";
354169
354169
  }
354170
354170
  const oauthAccount = getOauthAccountInfo();
354171
354171
  if (oauthAccount) {
@@ -469291,7 +469291,7 @@ function getInstallationEnv() {
469291
469291
  return;
469292
469292
  }
469293
469293
  function getClaudeCodeVersion() {
469294
- return "4.2.37";
469294
+ return "4.2.38";
469295
469295
  }
469296
469296
  async function getInstalledVSCodeExtensionVersion(command4) {
469297
469297
  const { stdout } = await execFileNoThrow(command4, ["--list-extensions", "--show-versions"], {
@@ -523008,7 +523008,7 @@ function initLangfuse() {
523008
523008
  flushInterval: parseInt(process.env.LANGFUSE_FLUSH_INTERVAL ?? "10", 10),
523009
523009
  mask: maskFn,
523010
523010
  environment: process.env.LANGFUSE_TRACING_ENVIRONMENT ?? "development",
523011
- release: "4.2.37",
523011
+ release: "4.2.38",
523012
523012
  exportMode: process.env.LANGFUSE_EXPORT_MODE ?? "batched",
523013
523013
  timeout: parseInt(process.env.LANGFUSE_TIMEOUT ?? "5", 10)
523014
523014
  });
@@ -523567,7 +523567,7 @@ function computeFingerprint(messageText2, version11) {
523567
523567
  }
523568
523568
  function computeFingerprintFromMessages(messages) {
523569
523569
  const firstMessageText = extractFirstMessageText(messages);
523570
- return computeFingerprint(firstMessageText, "4.2.37");
523570
+ return computeFingerprint(firstMessageText, "4.2.38");
523571
523571
  }
523572
523572
  var FINGERPRINT_SALT = "59cf53e54c78";
523573
523573
  var init_fingerprint = () => {};
@@ -524140,7 +524140,7 @@ async function sideQuery(opts) {
524140
524140
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
524141
524141
  }
524142
524142
  const messageText2 = extractFirstUserMessageText(messages);
524143
- const fingerprint = computeFingerprint(messageText2, "4.2.37");
524143
+ const fingerprint = computeFingerprint(messageText2, "4.2.38");
524144
524144
  const attributionHeader = getAttributionHeader(fingerprint);
524145
524145
  const systemBlocks = [
524146
524146
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -525567,7 +525567,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
525567
525567
  const client10 = new Client({
525568
525568
  name: "claude-code",
525569
525569
  title: "CoStrict",
525570
- version: "4.2.37",
525570
+ version: "4.2.38",
525571
525571
  description: "CoStrict agentic coding tool",
525572
525572
  websiteUrl: PRODUCT_URL
525573
525573
  }, {
@@ -525939,7 +525939,7 @@ var init_client17 = __esm(() => {
525939
525939
  const client10 = new Client({
525940
525940
  name: "claude-code",
525941
525941
  title: "CoStrict",
525942
- version: "4.2.37",
525942
+ version: "4.2.38",
525943
525943
  description: "CoStrict agentic coding tool",
525944
525944
  websiteUrl: PRODUCT_URL
525945
525945
  }, {
@@ -624841,7 +624841,7 @@ function initSentry() {
624841
624841
  }
624842
624842
  init3({
624843
624843
  dsn,
624844
- release: typeof MACRO !== "undefined" ? "4.2.37" : undefined,
624844
+ release: typeof MACRO !== "undefined" ? "4.2.38" : undefined,
624845
624845
  environment: typeof BUILD_ENV !== "undefined" ? BUILD_ENV : "production",
624846
624846
  maxBreadcrumbs: 20,
624847
624847
  sampleRate: 1,
@@ -652490,7 +652490,7 @@ async function initializeBetaTracing(resource) {
652490
652490
  });
652491
652491
  logs.setGlobalLoggerProvider(loggerProvider);
652492
652492
  setLoggerProvider(loggerProvider);
652493
- const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "4.2.37");
652493
+ const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "4.2.38");
652494
652494
  setEventLogger(eventLogger);
652495
652495
  process.on("beforeExit", async () => {
652496
652496
  await loggerProvider?.forceFlush();
@@ -652530,7 +652530,7 @@ async function initializeTelemetry() {
652530
652530
  const platform10 = getPlatform();
652531
652531
  const baseAttributes = {
652532
652532
  [import_semantic_conventions29.ATTR_SERVICE_NAME]: "claude-code",
652533
- [import_semantic_conventions29.ATTR_SERVICE_VERSION]: "4.2.37"
652533
+ [import_semantic_conventions29.ATTR_SERVICE_VERSION]: "4.2.38"
652534
652534
  };
652535
652535
  if (platform10 === "wsl") {
652536
652536
  const wslVersion = getWslVersion();
@@ -652575,7 +652575,7 @@ async function initializeTelemetry() {
652575
652575
  } catch {}
652576
652576
  };
652577
652577
  registerCleanup(shutdownTelemetry2);
652578
- return meterProvider2.getMeter("com.anthropic.claude_code", "4.2.37");
652578
+ return meterProvider2.getMeter("com.anthropic.claude_code", "4.2.38");
652579
652579
  }
652580
652580
  const meterProvider = new import_sdk_metrics2.MeterProvider({
652581
652581
  resource,
@@ -652595,7 +652595,7 @@ async function initializeTelemetry() {
652595
652595
  });
652596
652596
  logs.setGlobalLoggerProvider(loggerProvider);
652597
652597
  setLoggerProvider(loggerProvider);
652598
- const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "4.2.37");
652598
+ const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "4.2.38");
652599
652599
  setEventLogger(eventLogger);
652600
652600
  logForDebugging("[3P telemetry] Event logger set successfully");
652601
652601
  process.on("beforeExit", async () => {
@@ -652657,7 +652657,7 @@ Current timeout: ${timeoutMs}ms
652657
652657
  }
652658
652658
  };
652659
652659
  registerCleanup(shutdownTelemetry);
652660
- return meterProvider.getMeter("com.anthropic.claude_code", "4.2.37");
652660
+ return meterProvider.getMeter("com.anthropic.claude_code", "4.2.38");
652661
652661
  }
652662
652662
  async function flushTelemetry() {
652663
652663
  const meterProvider = getMeterProvider();
@@ -653627,7 +653627,7 @@ async function installGlobalPackage(specificVersion) {
653627
653627
  logError2(new AutoUpdaterError("Another process is currently installing an update"));
653628
653628
  logEvent("tengu_auto_updater_lock_contention", {
653629
653629
  pid: process.pid,
653630
- currentVersion: "4.2.37"
653630
+ currentVersion: "4.2.38"
653631
653631
  });
653632
653632
  return { status: "in_progress" };
653633
653633
  }
@@ -653636,7 +653636,7 @@ async function installGlobalPackage(specificVersion) {
653636
653636
  if (!env4.isRunningWithBun() && env4.isNpmFromWindowsPath()) {
653637
653637
  logError2(new Error("Windows NPM detected in WSL environment"));
653638
653638
  logEvent("tengu_auto_updater_windows_npm_in_wsl", {
653639
- currentVersion: "4.2.37"
653639
+ currentVersion: "4.2.38"
653640
653640
  });
653641
653641
  return {
653642
653642
  status: "install_failed",
@@ -654182,7 +654182,7 @@ function detectLinuxGlobPatternWarnings() {
654182
654182
  }
654183
654183
  async function getDoctorDiagnostic() {
654184
654184
  const installationType = await getCurrentInstallationType();
654185
- const version11 = typeof MACRO !== "undefined" ? "4.2.37" : "unknown";
654185
+ const version11 = typeof MACRO !== "undefined" ? "4.2.38" : "unknown";
654186
654186
  const installationPath = await getInstallationPath();
654187
654187
  const invokedBinary = getInvokedBinary();
654188
654188
  const multipleInstallations = await detectMultipleInstallations();
@@ -655124,8 +655124,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
655124
655124
  const maxVersion = await getMaxVersion();
655125
655125
  if (maxVersion && gt(version11, maxVersion)) {
655126
655126
  logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version11} to ${maxVersion}`);
655127
- if (gte2("4.2.37", maxVersion)) {
655128
- logForDebugging(`Native installer: current version ${"4.2.37"} is already at or above maxVersion ${maxVersion}, skipping update`);
655127
+ if (gte2("4.2.38", maxVersion)) {
655128
+ logForDebugging(`Native installer: current version ${"4.2.38"} is already at or above maxVersion ${maxVersion}, skipping update`);
655129
655129
  logEvent("tengu_native_update_skipped_max_version", {
655130
655130
  latency_ms: Date.now() - startTime2,
655131
655131
  max_version: maxVersion,
@@ -655136,7 +655136,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
655136
655136
  version11 = maxVersion;
655137
655137
  }
655138
655138
  }
655139
- if (!forceReinstall && version11 === "4.2.37" && await versionIsAvailable(version11) && await isPossibleClaudeBinary(executablePath)) {
655139
+ if (!forceReinstall && version11 === "4.2.38" && await versionIsAvailable(version11) && await isPossibleClaudeBinary(executablePath)) {
655140
655140
  logForDebugging(`Found ${version11} at ${executablePath}, skipping install`);
655141
655141
  logEvent("tengu_native_update_complete", {
655142
655142
  latency_ms: Date.now() - startTime2,
@@ -741383,13 +741383,132 @@ async function getParsedSession(taskDir, sessionId, preferredTranscriptPath) {
741383
741383
  const cacheEntry = sessionMessagesCache.get(cacheKey);
741384
741384
  return cacheEntry;
741385
741385
  }
741386
- var log10, sessionMessagesCache;
741386
+ async function streamSessionStatistics(taskDir, sessionId, opts) {
741387
+ const chunkSize = opts?.chunkSize ?? STREAM_DEFAULT_CHUNK_BYTES;
741388
+ const maxLineBytes = opts?.maxLineBytes ?? STREAM_DEFAULT_MAX_LINE_BYTES;
741389
+ const sessionFile = await resolveTranscriptPath(taskDir, sessionId);
741390
+ if (!sessionFile) {
741391
+ throw new Error(`session transcript not found for session ${sessionId} under ${taskDir}`);
741392
+ }
741393
+ const agg = {
741394
+ lineCount: 0,
741395
+ conversationCount: 0,
741396
+ upstreamTokens: 0,
741397
+ downstreamTokens: 0,
741398
+ firstTimestamp: 0,
741399
+ lastTimestamp: 0,
741400
+ skippedOversizeLines: 0
741401
+ };
741402
+ const consumeLine = (line) => {
741403
+ let value;
741404
+ try {
741405
+ value = JSON.parse(line);
741406
+ } catch {
741407
+ return;
741408
+ }
741409
+ if (value === null)
741410
+ return;
741411
+ agg.lineCount++;
741412
+ if (typeof value !== "object")
741413
+ return;
741414
+ const msg = value;
741415
+ if (msg.type === "user") {
741416
+ agg.conversationCount++;
741417
+ }
741418
+ const usage2 = msg.message?.usage;
741419
+ if (usage2) {
741420
+ agg.upstreamTokens += (usage2.input_tokens ?? 0) + (usage2.cache_read_input_tokens ?? 0) + (usage2.cache_creation_input_tokens ?? 0);
741421
+ agg.downstreamTokens += usage2.output_tokens ?? 0;
741422
+ }
741423
+ if (msg.timestamp) {
741424
+ const ts = new Date(msg.timestamp).getTime();
741425
+ if (agg.firstTimestamp === 0 || ts < agg.firstTimestamp) {
741426
+ agg.firstTimestamp = ts;
741427
+ }
741428
+ if (agg.lastTimestamp === 0 || ts > agg.lastTimestamp) {
741429
+ agg.lastTimestamp = ts;
741430
+ }
741431
+ }
741432
+ };
741433
+ let warnedOversize = false;
741434
+ const noteOversize = () => {
741435
+ agg.skippedOversizeLines++;
741436
+ if (!warnedOversize) {
741437
+ warnedOversize = true;
741438
+ log10.warn("transcript \u5B58\u5728\u8D85\u957F\u884C\uFF0C\u7EDF\u8BA1\u5DF2\u8DF3\u8FC7\u8BE5\u884C", {
741439
+ sessionId,
741440
+ maxLineBytes
741441
+ });
741442
+ }
741443
+ };
741444
+ const fd3 = await fs29.open(sessionFile, "r");
741445
+ try {
741446
+ const chunk = Buffer.allocUnsafe(chunkSize);
741447
+ let carry;
741448
+ let discarding = false;
741449
+ for (;; ) {
741450
+ const { bytesRead } = await fd3.read(chunk, 0, chunkSize, null);
741451
+ if (bytesRead === 0)
741452
+ break;
741453
+ const view = chunk.subarray(0, bytesRead);
741454
+ let buf;
741455
+ let lineStart;
741456
+ if (discarding) {
741457
+ const nl = view.indexOf(10);
741458
+ if (nl === -1)
741459
+ continue;
741460
+ discarding = false;
741461
+ carry = undefined;
741462
+ lineStart = nl + 1;
741463
+ buf = view;
741464
+ } else {
741465
+ buf = carry ? Buffer.concat([carry, view]) : view;
741466
+ lineStart = 0;
741467
+ }
741468
+ for (;; ) {
741469
+ const nl = buf.indexOf(10, lineStart);
741470
+ if (nl === -1)
741471
+ break;
741472
+ if (nl - lineStart > maxLineBytes) {
741473
+ noteOversize();
741474
+ } else {
741475
+ consumeLine(buf.toString("utf8", lineStart, nl));
741476
+ }
741477
+ lineStart = nl + 1;
741478
+ }
741479
+ const tailLen = buf.length - lineStart;
741480
+ if (tailLen > maxLineBytes) {
741481
+ noteOversize();
741482
+ discarding = true;
741483
+ carry = undefined;
741484
+ } else if (tailLen > 0) {
741485
+ carry = Buffer.from(buf.subarray(lineStart));
741486
+ } else {
741487
+ carry = undefined;
741488
+ }
741489
+ }
741490
+ if (!discarding && carry) {
741491
+ consumeLine(carry.toString("utf8"));
741492
+ }
741493
+ } finally {
741494
+ await fd3.close();
741495
+ }
741496
+ log10.debug("streamed session statistics", {
741497
+ sessionId,
741498
+ lineCount: agg.lineCount,
741499
+ skippedOversizeLines: agg.skippedOversizeLines
741500
+ });
741501
+ return agg;
741502
+ }
741503
+ var log10, sessionMessagesCache, STREAM_DEFAULT_CHUNK_BYTES, STREAM_DEFAULT_MAX_LINE_BYTES;
741387
741504
  var init_session2 = __esm(() => {
741388
741505
  init_parse12();
741389
741506
  init_logger6();
741390
741507
  init_dirs();
741391
741508
  log10 = createLogger("session");
741392
741509
  sessionMessagesCache = new Map;
741510
+ STREAM_DEFAULT_CHUNK_BYTES = 1024 * 1024;
741511
+ STREAM_DEFAULT_MAX_LINE_BYTES = 32 * 1024 * 1024;
741393
741512
  });
741394
741513
 
741395
741514
  // src/services/rawDump/statistics.ts
@@ -741433,7 +741552,7 @@ async function statHistorySessions() {
741433
741552
  });
741434
741553
  const sessionDateMap = new Map;
741435
741554
  for (const item of uniqueItems) {
741436
- const cacheEntry = await getParsedSession(item.project, item.sessionId).catch((err3) => {
741555
+ const r7 = await streamSessionStatistics(item.project, item.sessionId).catch((err3) => {
741437
741556
  log11.warn("statistics: \u8DF3\u8FC7\u4F1A\u8BDD\uFF08transcript \u672A\u89E3\u6790\uFF09", {
741438
741557
  sessionId: item.sessionId,
741439
741558
  project: item.project,
@@ -741441,52 +741560,17 @@ async function statHistorySessions() {
741441
741560
  });
741442
741561
  return null;
741443
741562
  });
741444
- if (!cacheEntry)
741563
+ if (!r7)
741445
741564
  continue;
741446
- const messages = cacheEntry.messages;
741447
- if (!messages || messages.length === 0)
741565
+ if (r7.lineCount === 0)
741448
741566
  continue;
741449
- let sessionTimestamp = 0;
741450
- let sessionUpstreamTokens = 0;
741451
- let sessionDownstreamTokens = 0;
741452
- for (const msg of messages) {
741453
- if (msg.timestamp) {
741454
- const ts = new Date(msg.timestamp).getTime();
741455
- if (sessionTimestamp === 0 || ts < sessionTimestamp) {
741456
- sessionTimestamp = ts;
741457
- }
741458
- }
741459
- const usage2 = msg.message?.usage;
741460
- if (usage2) {
741461
- sessionUpstreamTokens += (usage2.input_tokens ?? 0) + (usage2.cache_read_input_tokens ?? 0) + (usage2.cache_creation_input_tokens ?? 0);
741462
- sessionDownstreamTokens += usage2.output_tokens ?? 0;
741463
- }
741464
- }
741465
- const sessionDateKey = sessionTimestamp ? new Date(sessionTimestamp).toISOString().slice(0, 10) : new Date().toISOString().slice(0, 10);
741567
+ const sessionDateKey = r7.firstTimestamp ? new Date(r7.firstTimestamp).toISOString().slice(0, 10) : new Date().toISOString().slice(0, 10);
741466
741568
  sessionDateMap.set(item.sessionId, sessionDateKey);
741467
- let conversationCount = 0;
741468
- let upstreamTokens = 0;
741469
- let downstreamTokens = 0;
741470
- let startTime2 = 0;
741471
- let endTime = 0;
741472
- for (const msg of messages) {
741473
- if (msg.type === "user") {
741474
- conversationCount++;
741475
- }
741476
- const usage2 = msg.message?.usage;
741477
- if (usage2) {
741478
- upstreamTokens += (usage2.input_tokens ?? 0) + (usage2.cache_read_input_tokens ?? 0) + (usage2.cache_creation_input_tokens ?? 0);
741479
- downstreamTokens += usage2.output_tokens ?? 0;
741480
- }
741481
- if (msg.timestamp) {
741482
- const ts = new Date(msg.timestamp).getTime();
741483
- if (startTime2 === 0 || ts < startTime2) {
741484
- startTime2 = ts;
741485
- }
741486
- if (endTime === 0 || ts > endTime) {
741487
- endTime = ts;
741488
- }
741489
- }
741569
+ if (r7.skippedOversizeLines > 0) {
741570
+ log11.warn("statistics: transcript \u5B58\u5728\u8D85\u957F\u884C\u5DF2\u8DF3\u8FC7\u7EDF\u8BA1", {
741571
+ sessionId: item.sessionId,
741572
+ skipped: r7.skippedOversizeLines
741573
+ });
741490
741574
  }
741491
741575
  const dateKey = sessionDateKey;
741492
741576
  if (!dailyStats.has(dateKey)) {
@@ -741501,17 +741585,17 @@ async function statHistorySessions() {
741501
741585
  });
741502
741586
  }
741503
741587
  const stats3 = dailyStats.get(dateKey);
741504
- stats3.conversationCount += conversationCount;
741505
- stats3.upstreamTokens += upstreamTokens;
741506
- stats3.downstreamTokens += downstreamTokens;
741507
- if (startTime2 > 0) {
741508
- if (stats3.startTime === 0 || startTime2 < stats3.startTime) {
741509
- stats3.startTime = startTime2;
741588
+ stats3.conversationCount += r7.conversationCount;
741589
+ stats3.upstreamTokens += r7.upstreamTokens;
741590
+ stats3.downstreamTokens += r7.downstreamTokens;
741591
+ if (r7.firstTimestamp > 0) {
741592
+ if (stats3.startTime === 0 || r7.firstTimestamp < stats3.startTime) {
741593
+ stats3.startTime = r7.firstTimestamp;
741510
741594
  }
741511
741595
  }
741512
- if (endTime > 0) {
741513
- if (stats3.endTime === 0 || endTime > stats3.endTime) {
741514
- stats3.endTime = endTime;
741596
+ if (r7.lastTimestamp > 0) {
741597
+ if (stats3.endTime === 0 || r7.lastTimestamp > stats3.endTime) {
741598
+ stats3.endTime = r7.lastTimestamp;
741515
741599
  }
741516
741600
  }
741517
741601
  }
@@ -763941,7 +764025,7 @@ function getAnthropicEnvMetadata() {
763941
764025
  function getBuildAgeMinutes() {
763942
764026
  if (false)
763943
764027
  ;
763944
- const buildTime = new Date("2026-09-09T12:10:12.753Z").getTime();
764028
+ const buildTime = new Date("2026-09-14T02:57:33.042Z").getTime();
763945
764029
  if (isNaN(buildTime))
763946
764030
  return;
763947
764031
  return Math.floor((Date.now() - buildTime) / 60000);
@@ -778439,7 +778523,7 @@ function Feedback({
778439
778523
  platform: env4.platform,
778440
778524
  gitRepo: envInfo.isGit,
778441
778525
  terminal: env4.terminal,
778442
- version: "4.2.37",
778526
+ version: "4.2.38",
778443
778527
  transcript: normalizeMessagesForAPI(messages),
778444
778528
  errors: sanitizedErrors,
778445
778529
  lastApiRequest: getLastAPIRequest(),
@@ -778622,7 +778706,7 @@ function Feedback({
778622
778706
  ", ",
778623
778707
  env4.terminal,
778624
778708
  ", v",
778625
- "4.2.37"
778709
+ "4.2.38"
778626
778710
  ]
778627
778711
  })
778628
778712
  ]
@@ -778719,7 +778803,7 @@ ${sanitizedDescription}
778719
778803
  ` + `**Environment Info**
778720
778804
  ` + `- Platform: ${env4.platform}
778721
778805
  ` + `- Terminal: ${env4.terminal}
778722
- ` + `- Version: ${"4.2.37"}
778806
+ ` + `- Version: ${"4.2.38"}
778723
778807
  ` + `- Feedback ID: ${feedbackId}
778724
778808
  ` + `
778725
778809
  **Errors**
@@ -780958,7 +781042,7 @@ function buildPrimarySection() {
780958
781042
  children: t("settings.status.renameHint")
780959
781043
  });
780960
781044
  return [
780961
- { label: t("settings.status.version"), value: "4.2.37" },
781045
+ { label: t("settings.status.version"), value: "4.2.38" },
780962
781046
  { label: t("settings.status.sessionName"), value: nameValue },
780963
781047
  { label: t("settings.status.sessionId"), value: sessionId },
780964
781048
  { label: t("settings.status.cwd"), value: getCwd() },
@@ -783836,7 +783920,7 @@ function Config({
783836
783920
  }
783837
783921
  })
783838
783922
  }) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_runtime192.jsx(ChannelDowngradeDialog, {
783839
- currentVersion: "4.2.37",
783923
+ currentVersion: "4.2.38",
783840
783924
  onChoice: (choice) => {
783841
783925
  setShowSubmenu(null);
783842
783926
  setTabsHidden(false);
@@ -783848,7 +783932,7 @@ function Config({
783848
783932
  autoUpdatesChannel: "stable"
783849
783933
  };
783850
783934
  if (choice === "stay") {
783851
- newSettings.minimumVersion = "4.2.37";
783935
+ newSettings.minimumVersion = "4.2.38";
783852
783936
  }
783853
783937
  updateSettingsForSource("userSettings", newSettings);
783854
783938
  setSettingsData((prev) => ({
@@ -789317,7 +789401,7 @@ function HelpV2({ onClose, commands: commands11 }) {
789317
789401
  color: "professionalBlue",
789318
789402
  children: [
789319
789403
  /* @__PURE__ */ jsx_runtime219.jsx(Tabs, {
789320
- title: process.env.USER_TYPE === "sf" ? "/help" : `CoStrict v${"4.2.37"}`,
789404
+ title: process.env.USER_TYPE === "sf" ? "/help" : `CoStrict v${"4.2.38"}`,
789321
789405
  color: "professionalBlue",
789322
789406
  defaultTab: "general",
789323
789407
  children: tabs
@@ -812032,7 +812116,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
812032
812116
  return [];
812033
812117
  }
812034
812118
  }
812035
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "4.2.37") {
812119
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "4.2.38") {
812036
812120
  if (process.env.USER_TYPE === "sf") {
812037
812121
  const changelog = "";
812038
812122
  if (changelog) {
@@ -812059,7 +812143,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "4.2.37")
812059
812143
  releaseNotes
812060
812144
  };
812061
812145
  }
812062
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "4.2.37") {
812146
+ function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "4.2.38") {
812063
812147
  if (process.env.USER_TYPE === "sf") {
812064
812148
  const changelog = "";
812065
812149
  if (changelog) {
@@ -814572,7 +814656,7 @@ function isNotLoggedIn() {
814572
814656
  return true;
814573
814657
  }
814574
814658
  function getLogoDisplayData() {
814575
- const version11 = process.env.DEMO_VERSION ?? "4.2.37";
814659
+ const version11 = process.env.DEMO_VERSION ?? "4.2.38";
814576
814660
  const serverUrl = getDirectConnectServerUrl();
814577
814661
  const displayPath2 = process.env.DEMO_VERSION ? "/code/claude" : getDisplayPath(getCwd());
814578
814662
  const cwd2 = serverUrl ? `${displayPath2} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath2;
@@ -815150,7 +815234,7 @@ var init_MatrixMessageLine = __esm(() => {
815150
815234
  // src/components/matrix-tactical/MatrixWelcome.tsx
815151
815235
  import { basename as basename48 } from "path";
815152
815236
  function MatrixWelcome({
815153
- version: version11 = "4.2.37",
815237
+ version: version11 = "4.2.38",
815154
815238
  projectName,
815155
815239
  cwd: cwd2,
815156
815240
  modelDisplayName,
@@ -815785,13 +815869,13 @@ function LogoV2() {
815785
815869
  const { hasReleaseNotes } = checkForReleaseNotesSync(config13.lastReleaseNotesSeen);
815786
815870
  import_react167.useEffect(() => {
815787
815871
  const currentConfig = getGlobalConfig();
815788
- if (currentConfig.lastReleaseNotesSeen === "4.2.37") {
815872
+ if (currentConfig.lastReleaseNotesSeen === "4.2.38") {
815789
815873
  return;
815790
815874
  }
815791
815875
  saveGlobalConfig((current2) => {
815792
- if (current2.lastReleaseNotesSeen === "4.2.37")
815876
+ if (current2.lastReleaseNotesSeen === "4.2.38")
815793
815877
  return current2;
815794
- return { ...current2, lastReleaseNotesSeen: "4.2.37" };
815878
+ return { ...current2, lastReleaseNotesSeen: "4.2.38" };
815795
815879
  });
815796
815880
  if (showOnboarding) {
815797
815881
  incrementProjectOnboardingSeenCount();
@@ -839356,7 +839440,7 @@ async function captureMemoryDiagnostics(trigger, dumpNumber = 0) {
839356
839440
  smapsRollup,
839357
839441
  platform: process.platform,
839358
839442
  nodeVersion: process.version,
839359
- ccVersion: "4.2.37"
839443
+ ccVersion: "4.2.38"
839360
839444
  };
839361
839445
  }
839362
839446
  async function performHeapDump(trigger = "manual", dumpNumber = 0) {
@@ -839472,7 +839556,7 @@ var init_mock_limits = __esm(() => {
839472
839556
  var call56 = async () => {
839473
839557
  return {
839474
839558
  type: "text",
839475
- value: `${"4.2.37"} (built ${"2026-09-09T12:10:12.753Z"})`
839559
+ value: `${"4.2.38"} (built ${"2026-09-14T02:57:33.042Z"})`
839476
839560
  };
839477
839561
  }, version11, version_default;
839478
839562
  var init_version2 = __esm(() => {
@@ -859352,7 +859436,7 @@ function generateHtmlReport(data, insights) {
859352
859436
  </html>`;
859353
859437
  }
859354
859438
  function buildExportData(data, insights, facets, remoteStats) {
859355
- const version12 = typeof MACRO !== "undefined" ? "4.2.37" : "unknown";
859439
+ const version12 = typeof MACRO !== "undefined" ? "4.2.38" : "unknown";
859356
859440
  const remote_hosts_collected = remoteStats?.hosts.filter((h8) => h8.sessionCount > 0).map((h8) => h8.name);
859357
859441
  const facets_summary = {
859358
859442
  total: facets.size,
@@ -863844,7 +863928,7 @@ var init_sessionStorage = __esm(() => {
863844
863928
  init_settings2();
863845
863929
  init_slowOperations();
863846
863930
  init_uuid();
863847
- VERSION11 = typeof MACRO !== "undefined" ? "4.2.37" : "unknown";
863931
+ VERSION11 = typeof MACRO !== "undefined" ? "4.2.38" : "unknown";
863848
863932
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
863849
863933
  SKIP_FIRST_PROMPT_PATTERN2 = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
863850
863934
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -865185,7 +865269,7 @@ var init_filesystem = __esm(() => {
865185
865269
  });
865186
865270
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
865187
865271
  const nonce = randomBytes24(16).toString("hex");
865188
- return join219(getCostrictTempDir(), "bundled-skills", "4.2.37", nonce);
865272
+ return join219(getCostrictTempDir(), "bundled-skills", "4.2.38", nonce);
865189
865273
  });
865190
865274
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
865191
865275
  });
@@ -876683,7 +876767,7 @@ function buildSystemInitMessage(inputs) {
876683
876767
  slash_commands: inputs.commands.filter((c10) => c10.userInvocable !== false).map((c10) => c10.name),
876684
876768
  apiKeySource: getAnthropicApiKeyWithSource().source,
876685
876769
  betas: getSdkBetas(),
876686
- claude_code_version: "4.2.37",
876770
+ claude_code_version: "4.2.38",
876687
876771
  output_style: outputStyle2,
876688
876772
  agents: inputs.agents.map((agent) => agent.agentType),
876689
876773
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill) => skill.name),
@@ -880227,7 +880311,7 @@ function appendToLog(path61, message2) {
880227
880311
  cwd: getFsImplementation().cwd(),
880228
880312
  userType: process.env.USER_TYPE,
880229
880313
  sessionId: getSessionId(),
880230
- version: "4.2.37"
880314
+ version: "4.2.38"
880231
880315
  };
880232
880316
  getLogWriter(path61).write(messageWithTimestamp);
880233
880317
  }
@@ -901288,7 +901372,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
901288
901372
  project_dir: getOriginalCwd(),
901289
901373
  added_dirs: addedDirs
901290
901374
  },
901291
- version: "4.2.37",
901375
+ version: "4.2.38",
901292
901376
  output_style: {
901293
901377
  name: outputStyleName
901294
901378
  },
@@ -919954,7 +920038,7 @@ async function submitTranscriptShare(messages, trigger, appearanceId) {
919954
920038
  } catch {}
919955
920039
  const data = {
919956
920040
  trigger,
919957
- version: "4.2.37",
920041
+ version: "4.2.38",
919958
920042
  platform: process.platform,
919959
920043
  transcript,
919960
920044
  subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
@@ -921209,7 +921293,7 @@ function getReleaseType(current2, latest) {
921209
921293
  return "patch";
921210
921294
  }
921211
921295
  async function checkNewAutoUpdate(callbacks) {
921212
- const currentVersion = "4.2.37";
921296
+ const currentVersion = "4.2.38";
921213
921297
  logForDebugging(`[newAutoUpdater] checking, current: ${currentVersion}`);
921214
921298
  if (isNewAutoUpdaterDisabled()) {
921215
921299
  return { action: "skip", currentVersion, latestVersion: null };
@@ -933466,7 +933550,7 @@ function WelcomeV2() {
933466
933550
  dimColor: true,
933467
933551
  children: [
933468
933552
  "v",
933469
- "4.2.37",
933553
+ "4.2.38",
933470
933554
  " "
933471
933555
  ]
933472
933556
  })
@@ -933532,7 +933616,7 @@ function WelcomeV2() {
933532
933616
  dimColor: true,
933533
933617
  children: [
933534
933618
  "v",
933535
- "4.2.37",
933619
+ "4.2.38",
933536
933620
  " "
933537
933621
  ]
933538
933622
  })
@@ -933634,7 +933718,7 @@ function AppleTerminalWelcomeV2({ theme: theme2, welcomeMessage }) {
933634
933718
  dimColor: true,
933635
933719
  children: [
933636
933720
  "v",
933637
- "4.2.37",
933721
+ "4.2.38",
933638
933722
  " "
933639
933723
  ]
933640
933724
  })
@@ -933700,7 +933784,7 @@ function AppleTerminalWelcomeV2({ theme: theme2, welcomeMessage }) {
933700
933784
  dimColor: true,
933701
933785
  children: [
933702
933786
  "v",
933703
- "4.2.37",
933787
+ "4.2.38",
933704
933788
  " "
933705
933789
  ]
933706
933790
  })
@@ -934640,7 +934724,7 @@ function completeOnboarding() {
934640
934724
  saveGlobalConfig((current2) => ({
934641
934725
  ...current2,
934642
934726
  hasCompletedOnboarding: true,
934643
- lastOnboardingVersion: "4.2.37"
934727
+ lastOnboardingVersion: "4.2.38"
934644
934728
  }));
934645
934729
  }
934646
934730
  function showDialog(root9, renderer) {
@@ -951107,7 +951191,7 @@ async function startMCPServer(cwd3, debug5, verbose) {
951107
951191
  setCwd(cwd3);
951108
951192
  const server2 = new Server({
951109
951193
  name: "claude/tengu",
951110
- version: "4.2.37"
951194
+ version: "4.2.38"
951111
951195
  }, {
951112
951196
  capabilities: {
951113
951197
  tools: {}
@@ -953392,7 +953476,7 @@ function createHealthRoutes(sessionManager) {
953392
953476
  const uptime2 = process.uptime() * 1000;
953393
953477
  return c10.json({
953394
953478
  status: "ok",
953395
- version: "4.2.37",
953479
+ version: "4.2.38",
953396
953480
  uptime_ms: Math.round(uptime2),
953397
953481
  active_sessions: sessionManager.getActiveCount()
953398
953482
  });
@@ -953664,7 +953748,7 @@ function getMacroDefines() {
953664
953748
  commit = execSync3("git rev-parse --short HEAD", { encoding: "utf-8", cwd: __dirname }).trim();
953665
953749
  } catch {}
953666
953750
  return {
953667
- "MACRO.VERSION": JSON.stringify("4.2.37"),
953751
+ "MACRO.VERSION": JSON.stringify("4.2.38"),
953668
953752
  "MACRO.BUILD_TIME": JSON.stringify(new Date().toISOString()),
953669
953753
  "MACRO.COMMIT": JSON.stringify(commit),
953670
953754
  "MACRO.FEEDBACK_CHANNEL": JSON.stringify(""),
@@ -960802,7 +960886,7 @@ __export(exports_update, {
960802
960886
  });
960803
960887
  async function update() {
960804
960888
  logEvent("tengu_update_check", {});
960805
- writeToStdout(`${t("cli.update.currentVersion", "Current version")}: ${"4.2.37"}
960889
+ writeToStdout(`${t("cli.update.currentVersion", "Current version")}: ${"4.2.38"}
960806
960890
  `);
960807
960891
  const channel5 = getInitialSettings()?.autoUpdatesChannel ?? "latest";
960808
960892
  writeToStdout(`${t("cli.update.checkingUpdates", { channel: channel5 }, "Checking for updates to {channel} version...")}
@@ -960877,8 +960961,8 @@ async function update() {
960877
960961
  writeToStdout(`${t("cli.update.managedByHomebrew", "CoStrict is managed by Homebrew.")}
960878
960962
  `);
960879
960963
  const latest = await getLatestVersion(channel5);
960880
- if (latest && !gte2("4.2.37", latest)) {
960881
- writeToStdout(`${t("cli.update.updateAvailable", { current: "4.2.37", latest }, "Update available: {current} \u2192 {latest}")}
960964
+ if (latest && !gte2("4.2.38", latest)) {
960965
+ writeToStdout(`${t("cli.update.updateAvailable", { current: "4.2.38", latest }, "Update available: {current} \u2192 {latest}")}
960882
960966
  `);
960883
960967
  writeToStdout(`
960884
960968
  `);
@@ -960894,8 +960978,8 @@ async function update() {
960894
960978
  writeToStdout(`${t("cli.update.managedByWinget", "CoStrict is managed by winget.")}
960895
960979
  `);
960896
960980
  const latest = await getLatestVersion(channel5);
960897
- if (latest && !gte2("4.2.37", latest)) {
960898
- writeToStdout(`${t("cli.update.updateAvailable", { current: "4.2.37", latest }, "Update available: {current} \u2192 {latest}")}
960981
+ if (latest && !gte2("4.2.38", latest)) {
960982
+ writeToStdout(`${t("cli.update.updateAvailable", { current: "4.2.38", latest }, "Update available: {current} \u2192 {latest}")}
960899
960983
  `);
960900
960984
  writeToStdout(`
960901
960985
  `);
@@ -960911,8 +960995,8 @@ async function update() {
960911
960995
  writeToStdout(`${t("cli.update.managedByApk", "CoStrict is managed by apk.")}
960912
960996
  `);
960913
960997
  const latest = await getLatestVersion(channel5);
960914
- if (latest && !gte2("4.2.37", latest)) {
960915
- writeToStdout(`${t("cli.update.updateAvailable", { current: "4.2.37", latest }, "Update available: {current} \u2192 {latest}")}
960998
+ if (latest && !gte2("4.2.38", latest)) {
960999
+ writeToStdout(`${t("cli.update.updateAvailable", { current: "4.2.38", latest }, "Update available: {current} \u2192 {latest}")}
960916
961000
  `);
960917
961001
  writeToStdout(`
960918
961002
  `);
@@ -960977,11 +961061,11 @@ async function update() {
960977
961061
  `);
960978
961062
  await gracefulShutdown(1);
960979
961063
  }
960980
- if (result2.latestVersion === "4.2.37") {
960981
- writeToStdout(source_default.green(t("cli.update.upToDateVersion", { version: "4.2.37" }, "CoStrict is up to date ({version})")) + `
961064
+ if (result2.latestVersion === "4.2.38") {
961065
+ writeToStdout(source_default.green(t("cli.update.upToDateVersion", { version: "4.2.38" }, "CoStrict is up to date ({version})")) + `
960982
961066
  `);
960983
961067
  } else {
960984
- writeToStdout(source_default.green(t("cli.update.successfullyUpdated", { from: "4.2.37", to: String(result2.latestVersion) }, "Successfully updated from {from} to version {to}")) + `
961068
+ writeToStdout(source_default.green(t("cli.update.successfullyUpdated", { from: "4.2.38", to: String(result2.latestVersion) }, "Successfully updated from {from} to version {to}")) + `
960985
961069
  `);
960986
961070
  regenerateCompletionCache();
960987
961071
  }
@@ -961041,12 +961125,12 @@ async function update() {
961041
961125
  `);
961042
961126
  await gracefulShutdown(1);
961043
961127
  }
961044
- if (latestVersion === "4.2.37") {
961045
- writeToStdout(source_default.green(t("cli.update.upToDateVersion", { version: "4.2.37" }, "CoStrict is up to date ({version})")) + `
961128
+ if (latestVersion === "4.2.38") {
961129
+ writeToStdout(source_default.green(t("cli.update.upToDateVersion", { version: "4.2.38" }, "CoStrict is up to date ({version})")) + `
961046
961130
  `);
961047
961131
  await gracefulShutdown(0);
961048
961132
  }
961049
- writeToStdout(`${t("cli.update.newVersionAvailable", { latest: String(latestVersion), current: "4.2.37" }, "New version available: {latest} (current: {current})")}
961133
+ writeToStdout(`${t("cli.update.newVersionAvailable", { latest: String(latestVersion), current: "4.2.38" }, "New version available: {latest} (current: {current})")}
961050
961134
  `);
961051
961135
  writeToStdout(`${t("cli.update.installing", "Installing update...")}
961052
961136
  `);
@@ -961091,7 +961175,7 @@ async function update() {
961091
961175
  logForDebugging(`update: Installation status: ${result.status}`);
961092
961176
  switch (result.status) {
961093
961177
  case "success":
961094
- writeToStdout(source_default.green(t("cli.update.successfullyUpdated", { from: "4.2.37", to: String(latestVersion) }, "Successfully updated from {from} to version {to}")) + `
961178
+ writeToStdout(source_default.green(t("cli.update.successfullyUpdated", { from: "4.2.38", to: String(latestVersion) }, "Successfully updated from {from} to version {to}")) + `
961095
961179
  `);
961096
961180
  regenerateCompletionCache();
961097
961181
  break;
@@ -963310,7 +963394,7 @@ ${assistantAddendum}` : assistantAddendum;
963310
963394
  }
963311
963395
  }
963312
963396
  logForDiagnosticsNoPII("info", "started", {
963313
- version: "4.2.37",
963397
+ version: "4.2.38",
963314
963398
  is_native_binary: isInBundledMode()
963315
963399
  });
963316
963400
  registerCleanup(async () => {
@@ -963801,7 +963885,7 @@ Session: ${directConnectConfig.sessionId}`, "info");
963801
963885
  sshSession = await createSSHSession2({
963802
963886
  host: _pendingSSH.host,
963803
963887
  cwd: _pendingSSH.cwd,
963804
- localVersion: "4.2.37",
963888
+ localVersion: "4.2.38",
963805
963889
  permissionMode: _pendingSSH.permissionMode,
963806
963890
  dangerouslySkipPermissions: _pendingSSH.dangerouslySkipPermissions,
963807
963891
  extraCliArgs: _pendingSSH.extraCliArgs,
@@ -964270,7 +964354,7 @@ Usage: csc --remote "your task description"`, () => gracefulShutdown(1));
964270
964354
  pendingHookMessages
964271
964355
  }, renderAndRun);
964272
964356
  }
964273
- }).version("4.2.37 (CoStrict)", "-v, --version", cliDesc("cli.option.version", "Output the version number"));
964357
+ }).version("4.2.38 (CoStrict)", "-v, --version", cliDesc("cli.option.version", "Output the version number"));
964274
964358
  program2.addOption(new Option("-w, --worktree [name]", cliDesc("cli.option.worktree", "Create a new git worktree for this session (optionally specify a name)")).hideHelp());
964275
964359
  program2.addOption(new Option("--tmux", cliDesc("cli.option.tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.")).hideHelp());
964276
964360
  if (canUserConfigureAdvisor()) {
@@ -965039,10 +965123,10 @@ function getCouncilArgs(args) {
965039
965123
  async function main2() {
965040
965124
  const args = process.argv.slice(2);
965041
965125
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
965042
- const d7 = new Date("2026-09-09T12:10:12.753Z");
965126
+ const d7 = new Date("2026-09-14T02:57:33.042Z");
965043
965127
  const p2 = (n3) => String(n3).padStart(2, "0");
965044
965128
  const buildTime = `${d7.getFullYear()}/${p2(d7.getMonth() + 1)}/${p2(d7.getDate())} ${p2(d7.getHours())}:${p2(d7.getMinutes())}:${p2(d7.getSeconds())}`;
965045
- console.log(`${"4.2.37"} (commit: ${"f32f6afe3"}, built: ${buildTime})`);
965129
+ console.log(`${"4.2.38"} (commit: ${"66df21796"}, built: ${buildTime})`);
965046
965130
  return;
965047
965131
  }
965048
965132
  if (true) {
@@ -965223,5 +965307,5 @@ async function main2() {
965223
965307
  }
965224
965308
  main2();
965225
965309
 
965226
- //# debugId=A9AB373C0DE5E63864756E2164756E21
965310
+ //# debugId=737638D9532C20B764756E2164756E21
965227
965311
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@costrict/csc",
3
- "version": "4.2.37",
3
+ "version": "4.2.38",
4
4
  "description": "costrict",
5
5
  "type": "module",
6
6
  "author": "costrict",