@costrict/csc 4.2.36 → 4.2.37

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 +188 -109
  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.36") {
31763
- cached = "4.2.36";
31762
+ if ("4.2.37") {
31763
+ cached = "4.2.37";
31764
31764
  return cached;
31765
31765
  }
31766
31766
  } catch {}
@@ -31810,7 +31810,8 @@ __export(exports_token, {
31810
31810
  refreshCoStrictToken: () => refreshCoStrictToken,
31811
31811
  parseJWT: () => parseJWT,
31812
31812
  isCoStrictTokenValid: () => isCoStrictTokenValid,
31813
- extractExpiryFromJWT: () => extractExpiryFromJWT
31813
+ extractExpiryFromJWT: () => extractExpiryFromJWT,
31814
+ CoStrictAuthTerminalError: () => CoStrictAuthTerminalError
31814
31815
  });
31815
31816
  function parseJWT(token) {
31816
31817
  const parts = token.split(".");
@@ -31881,22 +31882,28 @@ async function refreshCoStrictToken(params) {
31881
31882
  try {
31882
31883
  parsed = JSON.parse(raw);
31883
31884
  } catch {
31884
- throw new Error(formatRefreshError(response.status, null, raw));
31885
+ throw new CoStrictAuthTerminalError(formatRefreshError(response.status, null, raw));
31885
31886
  }
31886
31887
  const tokens = unwrapCoStrictRefreshResponse(parsed);
31887
31888
  if (!tokens) {
31888
31889
  const serverFailed = isRecord(parsed) && parsed.success === false;
31889
- throw new Error(formatRefreshError(response.status, parsed, raw) + (serverFailed ? "" : ": Token refresh response is missing required fields"));
31890
+ throw new CoStrictAuthTerminalError(formatRefreshError(response.status, parsed, raw) + (serverFailed ? "" : ": Token refresh response is missing required fields"));
31890
31891
  }
31891
31892
  if (!response.ok) {
31892
- throw new Error(formatRefreshError(response.status, parsed, raw));
31893
+ throw new CoStrictAuthTerminalError(formatRefreshError(response.status, parsed, raw));
31893
31894
  }
31894
31895
  return tokens;
31895
31896
  }
31896
- var ACCESS_TOKEN_REFRESH_BUFFER_MS;
31897
+ var ACCESS_TOKEN_REFRESH_BUFFER_MS, CoStrictAuthTerminalError;
31897
31898
  var init_token = __esm(() => {
31898
31899
  init_oauth_params();
31899
31900
  ACCESS_TOKEN_REFRESH_BUFFER_MS = 30 * 60 * 1000;
31901
+ CoStrictAuthTerminalError = class CoStrictAuthTerminalError extends Error {
31902
+ constructor(message) {
31903
+ super(message);
31904
+ this.name = "CoStrictAuthTerminalError";
31905
+ }
31906
+ };
31900
31907
  });
31901
31908
 
31902
31909
  // src/costrict/provider/auth.ts
@@ -224369,7 +224376,7 @@ async function fetchCoStrictModels(baseUrl, accessToken) {
224369
224376
  headers: {
224370
224377
  Authorization: `Bearer ${accessToken}`,
224371
224378
  Accept: "application/json",
224372
- "User-Agent": `csc/${"4.2.36"}`
224379
+ "User-Agent": `csc/${"4.2.37"}`
224373
224380
  },
224374
224381
  signal: controller.signal
224375
224382
  });
@@ -226409,7 +226416,7 @@ var init_auth7 = __esm(() => {
226409
226416
 
226410
226417
  // src/utils/userAgent.ts
226411
226418
  function getClaudeCodeUserAgent() {
226412
- return `costrict/${"4.2.36"}`;
226419
+ return `costrict/${"4.2.37"}`;
226413
226420
  }
226414
226421
 
226415
226422
  // src/utils/workloadContext.ts
@@ -226431,7 +226438,7 @@ function getUserAgent() {
226431
226438
  const clientApp = process.env.CLAUDE_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}` : "";
226432
226439
  const workload = getWorkload();
226433
226440
  const workloadSuffix = workload ? `, workload/${workload}` : "";
226434
- return `csc/${"4.2.36"}`;
226441
+ return `csc/${"4.2.37"}`;
226435
226442
  }
226436
226443
  function getMCPUserAgent() {
226437
226444
  const parts = [];
@@ -226445,7 +226452,7 @@ function getMCPUserAgent() {
226445
226452
  parts.push(`client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}`);
226446
226453
  }
226447
226454
  const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
226448
- return `csc/${"4.2.36"}${suffix}`;
226455
+ return `csc/${"4.2.37"}${suffix}`;
226449
226456
  }
226450
226457
  function getWebFetchUserAgent() {
226451
226458
  return `Claude-User (${getClaudeCodeUserAgent()}; +https://support.anthropic.com/)`;
@@ -226565,7 +226572,7 @@ var init_user = __esm(() => {
226565
226572
  deviceId,
226566
226573
  sessionId: getSessionId(),
226567
226574
  email: getEmail(),
226568
- appVersion: "4.2.36",
226575
+ appVersion: "4.2.37",
226569
226576
  platform: getHostPlatformForAnalytics(),
226570
226577
  organizationUuid,
226571
226578
  accountUuid,
@@ -237613,7 +237620,7 @@ var init_metadata = __esm(() => {
237613
237620
  COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
237614
237621
  WHITESPACE_REGEX = /\s+/;
237615
237622
  getVersionBase = memoize_default(() => {
237616
- const match = "4.2.36".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
237623
+ const match = "4.2.37".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
237617
237624
  return match ? match[0] : undefined;
237618
237625
  });
237619
237626
  buildEnvContext = memoize_default(async () => {
@@ -237653,9 +237660,9 @@ var init_metadata = __esm(() => {
237653
237660
  isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
237654
237661
  isClaudeCodeAction: isEnvTruthy(process.env.CLAUDE_CODE_ACTION),
237655
237662
  isClaudeAiAuth: isClaudeAISubscriber(),
237656
- version: "4.2.36",
237663
+ version: "4.2.37",
237657
237664
  versionBase: getVersionBase(),
237658
- buildTime: "2026-09-07T00:23:46.056Z",
237665
+ buildTime: "2026-09-09T12:10:12.753Z",
237659
237666
  deploymentEnvironment: env4.detectDeploymentEnvironment(),
237660
237667
  ...isEnvTruthy(process.env.GITHUB_ACTIONS) && {
237661
237668
  githubEventName: process.env.GITHUB_EVENT_NAME,
@@ -238326,7 +238333,7 @@ function initialize1PEventLogging() {
238326
238333
  const platform3 = getPlatform();
238327
238334
  const attributes = {
238328
238335
  [import_semantic_conventions2.ATTR_SERVICE_NAME]: "claude-code",
238329
- [import_semantic_conventions2.ATTR_SERVICE_VERSION]: "4.2.36"
238336
+ [import_semantic_conventions2.ATTR_SERVICE_VERSION]: "4.2.37"
238330
238337
  };
238331
238338
  if (platform3 === "wsl") {
238332
238339
  const wslVersion = getWslVersion();
@@ -238353,7 +238360,7 @@ function initialize1PEventLogging() {
238353
238360
  })
238354
238361
  ]
238355
238362
  });
238356
- firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.anthropic.claude_code.events", "4.2.36");
238363
+ firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.anthropic.claude_code.events", "4.2.37");
238357
238364
  }
238358
238365
  async function reinitialize1PEventLoggingIfConfigChanged() {
238359
238366
  if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
@@ -278274,7 +278281,8 @@ var exports_tokenManager = {};
278274
278281
  __export(exports_tokenManager, {
278275
278282
  recoverFrom401: () => recoverFrom401,
278276
278283
  ensureValidCredentials: () => ensureValidCredentials,
278277
- _resetInflightRefresh: () => _resetInflightRefresh
278284
+ _resetInflightRefresh: () => _resetInflightRefresh,
278285
+ CoStrictAuthTerminalError: () => CoStrictAuthTerminalError
278278
278286
  });
278279
278287
  function resolveBaseUrl(credentialsBaseUrl) {
278280
278288
  const envUrl = process.env.COSTRICT_BASE_URL;
@@ -278300,25 +278308,25 @@ async function ensureValidCredentials(forceRefresh = false) {
278300
278308
  async function doRefresh(forceRefresh = false) {
278301
278309
  const decision = await updateCredentialsAtomically((creds) => {
278302
278310
  if (!creds) {
278303
- throw new Error(t("errors.costrict.credentialsNotFound"));
278311
+ throw new CoStrictAuthTerminalError(t("errors.costrict.credentialsNotFound"));
278304
278312
  }
278305
278313
  if (!forceRefresh && isCoStrictTokenValid(creds)) {
278306
278314
  return null;
278307
278315
  }
278308
278316
  if (!creds.refresh_token) {
278309
- throw new Error(t("errors.costrict.noRefreshToken"));
278317
+ throw new CoStrictAuthTerminalError(t("errors.costrict.noRefreshToken"));
278310
278318
  }
278311
278319
  return creds;
278312
278320
  });
278313
278321
  if (!decision) {
278314
278322
  const finalCreds = await loadCoStrictCredentials();
278315
278323
  if (!finalCreds) {
278316
- throw new Error(t("errors.costrict.refreshFailed"));
278324
+ throw new CoStrictAuthTerminalError(t("errors.costrict.refreshFailed"));
278317
278325
  }
278318
278326
  return { credentials: finalCreds, refreshed: false };
278319
278327
  }
278320
278328
  if (!decision.refresh_token) {
278321
- throw new Error(t("errors.costrict.noRefreshToken"));
278329
+ throw new CoStrictAuthTerminalError(t("errors.costrict.noRefreshToken"));
278322
278330
  }
278323
278331
  const baseUrl = resolveBaseUrl(decision.base_url);
278324
278332
  const refreshed2 = await refreshCoStrictToken({
@@ -354157,7 +354165,7 @@ function getTelemetryAttributes() {
354157
354165
  attributes["session.id"] = sessionId;
354158
354166
  }
354159
354167
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
354160
- attributes["app.version"] = "4.2.36";
354168
+ attributes["app.version"] = "4.2.37";
354161
354169
  }
354162
354170
  const oauthAccount = getOauthAccountInfo();
354163
354171
  if (oauthAccount) {
@@ -469283,7 +469291,7 @@ function getInstallationEnv() {
469283
469291
  return;
469284
469292
  }
469285
469293
  function getClaudeCodeVersion() {
469286
- return "4.2.36";
469294
+ return "4.2.37";
469287
469295
  }
469288
469296
  async function getInstalledVSCodeExtensionVersion(command4) {
469289
469297
  const { stdout } = await execFileNoThrow(command4, ["--list-extensions", "--show-versions"], {
@@ -523000,7 +523008,7 @@ function initLangfuse() {
523000
523008
  flushInterval: parseInt(process.env.LANGFUSE_FLUSH_INTERVAL ?? "10", 10),
523001
523009
  mask: maskFn,
523002
523010
  environment: process.env.LANGFUSE_TRACING_ENVIRONMENT ?? "development",
523003
- release: "4.2.36",
523011
+ release: "4.2.37",
523004
523012
  exportMode: process.env.LANGFUSE_EXPORT_MODE ?? "batched",
523005
523013
  timeout: parseInt(process.env.LANGFUSE_TIMEOUT ?? "5", 10)
523006
523014
  });
@@ -523559,7 +523567,7 @@ function computeFingerprint(messageText2, version11) {
523559
523567
  }
523560
523568
  function computeFingerprintFromMessages(messages) {
523561
523569
  const firstMessageText = extractFirstMessageText(messages);
523562
- return computeFingerprint(firstMessageText, "4.2.36");
523570
+ return computeFingerprint(firstMessageText, "4.2.37");
523563
523571
  }
523564
523572
  var FINGERPRINT_SALT = "59cf53e54c78";
523565
523573
  var init_fingerprint = () => {};
@@ -524002,7 +524010,27 @@ function toKebabCase(s) {
524002
524010
  function createCoStrictFetch(options) {
524003
524011
  const agentType = toKebabCase(options?.agentType) || "build";
524004
524012
  const costrictFetch = async (input4, init2) => {
524005
- const { credentials: creds } = await ensureValidCredentials();
524013
+ let creds;
524014
+ try {
524015
+ ({ credentials: creds } = await ensureValidCredentials());
524016
+ } catch (authError) {
524017
+ if (authError instanceof CoStrictAuthTerminalError) {
524018
+ logError2(authError);
524019
+ return new Response(JSON.stringify({
524020
+ error: {
524021
+ message: authError.message,
524022
+ type: "authentication_error"
524023
+ }
524024
+ }), {
524025
+ status: 401,
524026
+ headers: {
524027
+ "content-type": "application/json",
524028
+ "x-should-retry": "false"
524029
+ }
524030
+ });
524031
+ }
524032
+ throw authError;
524033
+ }
524006
524034
  const headers = new Headers(init2?.headers);
524007
524035
  headers.set("Authorization", `Bearer ${creds.access_token}`);
524008
524036
  headers.set("User-Agent", `csc/${VERSION9}`);
@@ -524045,6 +524073,7 @@ function createCoStrictFetch(options) {
524045
524073
  var VERSION9;
524046
524074
  var init_fetch2 = __esm(() => {
524047
524075
  init_tokenManager();
524076
+ init_log3();
524048
524077
  init_uuid();
524049
524078
  init_clientVersion();
524050
524079
  VERSION9 = getClientVersion();
@@ -524111,7 +524140,7 @@ async function sideQuery(opts) {
524111
524140
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
524112
524141
  }
524113
524142
  const messageText2 = extractFirstUserMessageText(messages);
524114
- const fingerprint = computeFingerprint(messageText2, "4.2.36");
524143
+ const fingerprint = computeFingerprint(messageText2, "4.2.37");
524115
524144
  const attributionHeader = getAttributionHeader(fingerprint);
524116
524145
  const systemBlocks = [
524117
524146
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -525538,7 +525567,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
525538
525567
  const client10 = new Client({
525539
525568
  name: "claude-code",
525540
525569
  title: "CoStrict",
525541
- version: "4.2.36",
525570
+ version: "4.2.37",
525542
525571
  description: "CoStrict agentic coding tool",
525543
525572
  websiteUrl: PRODUCT_URL
525544
525573
  }, {
@@ -525910,7 +525939,7 @@ var init_client17 = __esm(() => {
525910
525939
  const client10 = new Client({
525911
525940
  name: "claude-code",
525912
525941
  title: "CoStrict",
525913
- version: "4.2.36",
525942
+ version: "4.2.37",
525914
525943
  description: "CoStrict agentic coding tool",
525915
525944
  websiteUrl: PRODUCT_URL
525916
525945
  }, {
@@ -624812,7 +624841,7 @@ function initSentry() {
624812
624841
  }
624813
624842
  init3({
624814
624843
  dsn,
624815
- release: typeof MACRO !== "undefined" ? "4.2.36" : undefined,
624844
+ release: typeof MACRO !== "undefined" ? "4.2.37" : undefined,
624816
624845
  environment: typeof BUILD_ENV !== "undefined" ? BUILD_ENV : "production",
624817
624846
  maxBreadcrumbs: 20,
624818
624847
  sampleRate: 1,
@@ -652461,7 +652490,7 @@ async function initializeBetaTracing(resource) {
652461
652490
  });
652462
652491
  logs.setGlobalLoggerProvider(loggerProvider);
652463
652492
  setLoggerProvider(loggerProvider);
652464
- const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "4.2.36");
652493
+ const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "4.2.37");
652465
652494
  setEventLogger(eventLogger);
652466
652495
  process.on("beforeExit", async () => {
652467
652496
  await loggerProvider?.forceFlush();
@@ -652501,7 +652530,7 @@ async function initializeTelemetry() {
652501
652530
  const platform10 = getPlatform();
652502
652531
  const baseAttributes = {
652503
652532
  [import_semantic_conventions29.ATTR_SERVICE_NAME]: "claude-code",
652504
- [import_semantic_conventions29.ATTR_SERVICE_VERSION]: "4.2.36"
652533
+ [import_semantic_conventions29.ATTR_SERVICE_VERSION]: "4.2.37"
652505
652534
  };
652506
652535
  if (platform10 === "wsl") {
652507
652536
  const wslVersion = getWslVersion();
@@ -652546,7 +652575,7 @@ async function initializeTelemetry() {
652546
652575
  } catch {}
652547
652576
  };
652548
652577
  registerCleanup(shutdownTelemetry2);
652549
- return meterProvider2.getMeter("com.anthropic.claude_code", "4.2.36");
652578
+ return meterProvider2.getMeter("com.anthropic.claude_code", "4.2.37");
652550
652579
  }
652551
652580
  const meterProvider = new import_sdk_metrics2.MeterProvider({
652552
652581
  resource,
@@ -652566,7 +652595,7 @@ async function initializeTelemetry() {
652566
652595
  });
652567
652596
  logs.setGlobalLoggerProvider(loggerProvider);
652568
652597
  setLoggerProvider(loggerProvider);
652569
- const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "4.2.36");
652598
+ const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "4.2.37");
652570
652599
  setEventLogger(eventLogger);
652571
652600
  logForDebugging("[3P telemetry] Event logger set successfully");
652572
652601
  process.on("beforeExit", async () => {
@@ -652628,7 +652657,7 @@ Current timeout: ${timeoutMs}ms
652628
652657
  }
652629
652658
  };
652630
652659
  registerCleanup(shutdownTelemetry);
652631
- return meterProvider.getMeter("com.anthropic.claude_code", "4.2.36");
652660
+ return meterProvider.getMeter("com.anthropic.claude_code", "4.2.37");
652632
652661
  }
652633
652662
  async function flushTelemetry() {
652634
652663
  const meterProvider = getMeterProvider();
@@ -653598,7 +653627,7 @@ async function installGlobalPackage(specificVersion) {
653598
653627
  logError2(new AutoUpdaterError("Another process is currently installing an update"));
653599
653628
  logEvent("tengu_auto_updater_lock_contention", {
653600
653629
  pid: process.pid,
653601
- currentVersion: "4.2.36"
653630
+ currentVersion: "4.2.37"
653602
653631
  });
653603
653632
  return { status: "in_progress" };
653604
653633
  }
@@ -653607,7 +653636,7 @@ async function installGlobalPackage(specificVersion) {
653607
653636
  if (!env4.isRunningWithBun() && env4.isNpmFromWindowsPath()) {
653608
653637
  logError2(new Error("Windows NPM detected in WSL environment"));
653609
653638
  logEvent("tengu_auto_updater_windows_npm_in_wsl", {
653610
- currentVersion: "4.2.36"
653639
+ currentVersion: "4.2.37"
653611
653640
  });
653612
653641
  return {
653613
653642
  status: "install_failed",
@@ -654153,7 +654182,7 @@ function detectLinuxGlobPatternWarnings() {
654153
654182
  }
654154
654183
  async function getDoctorDiagnostic() {
654155
654184
  const installationType = await getCurrentInstallationType();
654156
- const version11 = typeof MACRO !== "undefined" ? "4.2.36" : "unknown";
654185
+ const version11 = typeof MACRO !== "undefined" ? "4.2.37" : "unknown";
654157
654186
  const installationPath = await getInstallationPath();
654158
654187
  const invokedBinary = getInvokedBinary();
654159
654188
  const multipleInstallations = await detectMultipleInstallations();
@@ -655095,8 +655124,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
655095
655124
  const maxVersion = await getMaxVersion();
655096
655125
  if (maxVersion && gt(version11, maxVersion)) {
655097
655126
  logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version11} to ${maxVersion}`);
655098
- if (gte2("4.2.36", maxVersion)) {
655099
- logForDebugging(`Native installer: current version ${"4.2.36"} is already at or above maxVersion ${maxVersion}, skipping update`);
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`);
655100
655129
  logEvent("tengu_native_update_skipped_max_version", {
655101
655130
  latency_ms: Date.now() - startTime2,
655102
655131
  max_version: maxVersion,
@@ -655107,7 +655136,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
655107
655136
  version11 = maxVersion;
655108
655137
  }
655109
655138
  }
655110
- if (!forceReinstall && version11 === "4.2.36" && await versionIsAvailable(version11) && await isPossibleClaudeBinary(executablePath)) {
655139
+ if (!forceReinstall && version11 === "4.2.37" && await versionIsAvailable(version11) && await isPossibleClaudeBinary(executablePath)) {
655111
655140
  logForDebugging(`Found ${version11} at ${executablePath}, skipping install`);
655112
655141
  logEvent("tengu_native_update_complete", {
655113
655142
  latency_ms: Date.now() - startTime2,
@@ -763912,7 +763941,7 @@ function getAnthropicEnvMetadata() {
763912
763941
  function getBuildAgeMinutes() {
763913
763942
  if (false)
763914
763943
  ;
763915
- const buildTime = new Date("2026-09-07T00:23:46.056Z").getTime();
763944
+ const buildTime = new Date("2026-09-09T12:10:12.753Z").getTime();
763916
763945
  if (isNaN(buildTime))
763917
763946
  return;
763918
763947
  return Math.floor((Date.now() - buildTime) / 60000);
@@ -778410,7 +778439,7 @@ function Feedback({
778410
778439
  platform: env4.platform,
778411
778440
  gitRepo: envInfo.isGit,
778412
778441
  terminal: env4.terminal,
778413
- version: "4.2.36",
778442
+ version: "4.2.37",
778414
778443
  transcript: normalizeMessagesForAPI(messages),
778415
778444
  errors: sanitizedErrors,
778416
778445
  lastApiRequest: getLastAPIRequest(),
@@ -778593,7 +778622,7 @@ function Feedback({
778593
778622
  ", ",
778594
778623
  env4.terminal,
778595
778624
  ", v",
778596
- "4.2.36"
778625
+ "4.2.37"
778597
778626
  ]
778598
778627
  })
778599
778628
  ]
@@ -778690,7 +778719,7 @@ ${sanitizedDescription}
778690
778719
  ` + `**Environment Info**
778691
778720
  ` + `- Platform: ${env4.platform}
778692
778721
  ` + `- Terminal: ${env4.terminal}
778693
- ` + `- Version: ${"4.2.36"}
778722
+ ` + `- Version: ${"4.2.37"}
778694
778723
  ` + `- Feedback ID: ${feedbackId}
778695
778724
  ` + `
778696
778725
  **Errors**
@@ -780929,7 +780958,7 @@ function buildPrimarySection() {
780929
780958
  children: t("settings.status.renameHint")
780930
780959
  });
780931
780960
  return [
780932
- { label: t("settings.status.version"), value: "4.2.36" },
780961
+ { label: t("settings.status.version"), value: "4.2.37" },
780933
780962
  { label: t("settings.status.sessionName"), value: nameValue },
780934
780963
  { label: t("settings.status.sessionId"), value: sessionId },
780935
780964
  { label: t("settings.status.cwd"), value: getCwd() },
@@ -783807,7 +783836,7 @@ function Config({
783807
783836
  }
783808
783837
  })
783809
783838
  }) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_runtime192.jsx(ChannelDowngradeDialog, {
783810
- currentVersion: "4.2.36",
783839
+ currentVersion: "4.2.37",
783811
783840
  onChoice: (choice) => {
783812
783841
  setShowSubmenu(null);
783813
783842
  setTabsHidden(false);
@@ -783819,7 +783848,7 @@ function Config({
783819
783848
  autoUpdatesChannel: "stable"
783820
783849
  };
783821
783850
  if (choice === "stay") {
783822
- newSettings.minimumVersion = "4.2.36";
783851
+ newSettings.minimumVersion = "4.2.37";
783823
783852
  }
783824
783853
  updateSettingsForSource("userSettings", newSettings);
783825
783854
  setSettingsData((prev) => ({
@@ -789288,7 +789317,7 @@ function HelpV2({ onClose, commands: commands11 }) {
789288
789317
  color: "professionalBlue",
789289
789318
  children: [
789290
789319
  /* @__PURE__ */ jsx_runtime219.jsx(Tabs, {
789291
- title: process.env.USER_TYPE === "sf" ? "/help" : `CoStrict v${"4.2.36"}`,
789320
+ title: process.env.USER_TYPE === "sf" ? "/help" : `CoStrict v${"4.2.37"}`,
789292
789321
  color: "professionalBlue",
789293
789322
  defaultTab: "general",
789294
789323
  children: tabs
@@ -812003,7 +812032,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
812003
812032
  return [];
812004
812033
  }
812005
812034
  }
812006
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "4.2.36") {
812035
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "4.2.37") {
812007
812036
  if (process.env.USER_TYPE === "sf") {
812008
812037
  const changelog = "";
812009
812038
  if (changelog) {
@@ -812030,7 +812059,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "4.2.36")
812030
812059
  releaseNotes
812031
812060
  };
812032
812061
  }
812033
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "4.2.36") {
812062
+ function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "4.2.37") {
812034
812063
  if (process.env.USER_TYPE === "sf") {
812035
812064
  const changelog = "";
812036
812065
  if (changelog) {
@@ -814543,7 +814572,7 @@ function isNotLoggedIn() {
814543
814572
  return true;
814544
814573
  }
814545
814574
  function getLogoDisplayData() {
814546
- const version11 = process.env.DEMO_VERSION ?? "4.2.36";
814575
+ const version11 = process.env.DEMO_VERSION ?? "4.2.37";
814547
814576
  const serverUrl = getDirectConnectServerUrl();
814548
814577
  const displayPath2 = process.env.DEMO_VERSION ? "/code/claude" : getDisplayPath(getCwd());
814549
814578
  const cwd2 = serverUrl ? `${displayPath2} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath2;
@@ -815121,7 +815150,7 @@ var init_MatrixMessageLine = __esm(() => {
815121
815150
  // src/components/matrix-tactical/MatrixWelcome.tsx
815122
815151
  import { basename as basename48 } from "path";
815123
815152
  function MatrixWelcome({
815124
- version: version11 = "4.2.36",
815153
+ version: version11 = "4.2.37",
815125
815154
  projectName,
815126
815155
  cwd: cwd2,
815127
815156
  modelDisplayName,
@@ -815756,13 +815785,13 @@ function LogoV2() {
815756
815785
  const { hasReleaseNotes } = checkForReleaseNotesSync(config13.lastReleaseNotesSeen);
815757
815786
  import_react167.useEffect(() => {
815758
815787
  const currentConfig = getGlobalConfig();
815759
- if (currentConfig.lastReleaseNotesSeen === "4.2.36") {
815788
+ if (currentConfig.lastReleaseNotesSeen === "4.2.37") {
815760
815789
  return;
815761
815790
  }
815762
815791
  saveGlobalConfig((current2) => {
815763
- if (current2.lastReleaseNotesSeen === "4.2.36")
815792
+ if (current2.lastReleaseNotesSeen === "4.2.37")
815764
815793
  return current2;
815765
- return { ...current2, lastReleaseNotesSeen: "4.2.36" };
815794
+ return { ...current2, lastReleaseNotesSeen: "4.2.37" };
815766
815795
  });
815767
815796
  if (showOnboarding) {
815768
815797
  incrementProjectOnboardingSeenCount();
@@ -839327,7 +839356,7 @@ async function captureMemoryDiagnostics(trigger, dumpNumber = 0) {
839327
839356
  smapsRollup,
839328
839357
  platform: process.platform,
839329
839358
  nodeVersion: process.version,
839330
- ccVersion: "4.2.36"
839359
+ ccVersion: "4.2.37"
839331
839360
  };
839332
839361
  }
839333
839362
  async function performHeapDump(trigger = "manual", dumpNumber = 0) {
@@ -839443,7 +839472,7 @@ var init_mock_limits = __esm(() => {
839443
839472
  var call56 = async () => {
839444
839473
  return {
839445
839474
  type: "text",
839446
- value: `${"4.2.36"} (built ${"2026-09-07T00:23:46.056Z"})`
839475
+ value: `${"4.2.37"} (built ${"2026-09-09T12:10:12.753Z"})`
839447
839476
  };
839448
839477
  }, version11, version_default;
839449
839478
  var init_version2 = __esm(() => {
@@ -859323,7 +859352,7 @@ function generateHtmlReport(data, insights) {
859323
859352
  </html>`;
859324
859353
  }
859325
859354
  function buildExportData(data, insights, facets, remoteStats) {
859326
- const version12 = typeof MACRO !== "undefined" ? "4.2.36" : "unknown";
859355
+ const version12 = typeof MACRO !== "undefined" ? "4.2.37" : "unknown";
859327
859356
  const remote_hosts_collected = remoteStats?.hosts.filter((h8) => h8.sessionCount > 0).map((h8) => h8.name);
859328
859357
  const facets_summary = {
859329
859358
  total: facets.size,
@@ -863815,7 +863844,7 @@ var init_sessionStorage = __esm(() => {
863815
863844
  init_settings2();
863816
863845
  init_slowOperations();
863817
863846
  init_uuid();
863818
- VERSION11 = typeof MACRO !== "undefined" ? "4.2.36" : "unknown";
863847
+ VERSION11 = typeof MACRO !== "undefined" ? "4.2.37" : "unknown";
863819
863848
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
863820
863849
  SKIP_FIRST_PROMPT_PATTERN2 = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
863821
863850
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -865156,7 +865185,7 @@ var init_filesystem = __esm(() => {
865156
865185
  });
865157
865186
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
865158
865187
  const nonce = randomBytes24(16).toString("hex");
865159
- return join219(getCostrictTempDir(), "bundled-skills", "4.2.36", nonce);
865188
+ return join219(getCostrictTempDir(), "bundled-skills", "4.2.37", nonce);
865160
865189
  });
865161
865190
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
865162
865191
  });
@@ -876654,7 +876683,7 @@ function buildSystemInitMessage(inputs) {
876654
876683
  slash_commands: inputs.commands.filter((c10) => c10.userInvocable !== false).map((c10) => c10.name),
876655
876684
  apiKeySource: getAnthropicApiKeyWithSource().source,
876656
876685
  betas: getSdkBetas(),
876657
- claude_code_version: "4.2.36",
876686
+ claude_code_version: "4.2.37",
876658
876687
  output_style: outputStyle2,
876659
876688
  agents: inputs.agents.map((agent) => agent.agentType),
876660
876689
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill) => skill.name),
@@ -880198,7 +880227,7 @@ function appendToLog(path61, message2) {
880198
880227
  cwd: getFsImplementation().cwd(),
880199
880228
  userType: process.env.USER_TYPE,
880200
880229
  sessionId: getSessionId(),
880201
- version: "4.2.36"
880230
+ version: "4.2.37"
880202
880231
  };
880203
880232
  getLogWriter(path61).write(messageWithTimestamp);
880204
880233
  }
@@ -901259,7 +901288,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
901259
901288
  project_dir: getOriginalCwd(),
901260
901289
  added_dirs: addedDirs
901261
901290
  },
901262
- version: "4.2.36",
901291
+ version: "4.2.37",
901263
901292
  output_style: {
901264
901293
  name: outputStyleName
901265
901294
  },
@@ -915465,10 +915494,66 @@ var init_useAfterFirstRender = __esm(() => {
915465
915494
  import_react307 = __toESM(require_react(), 1);
915466
915495
  });
915467
915496
 
915497
+ // src/hooks/deferredHookMessagesGate.ts
915498
+ class DeferredHookGate {
915499
+ pending;
915500
+ resolved = false;
915501
+ constructor(pending3) {
915502
+ this.pending = pending3 ?? null;
915503
+ if (!pending3)
915504
+ this.resolved = true;
915505
+ }
915506
+ async wait(timeoutMs = HOOK_WAIT_TIMEOUT_MS) {
915507
+ const promise4 = this.pending;
915508
+ if (this.resolved || !promise4)
915509
+ return null;
915510
+ let timer3;
915511
+ const timeout3 = new Promise((resolve72) => {
915512
+ timer3 = setTimeout(() => resolve72("timeout"), timeoutMs);
915513
+ });
915514
+ try {
915515
+ const outcome = await Promise.race([
915516
+ promise4.then(() => "done"),
915517
+ timeout3
915518
+ ]);
915519
+ if (outcome === "timeout") {
915520
+ if (this.resolved)
915521
+ return null;
915522
+ this.resolved = true;
915523
+ this.pending = null;
915524
+ logForDebugging(`SessionStart hooks did not complete within ${timeoutMs}ms; proceeding without hook context`, { level: "warn" });
915525
+ return null;
915526
+ }
915527
+ if (this.resolved)
915528
+ return null;
915529
+ this.resolved = true;
915530
+ this.pending = null;
915531
+ return await promise4;
915532
+ } finally {
915533
+ if (timer3)
915534
+ clearTimeout(timer3);
915535
+ }
915536
+ }
915537
+ takeBackgroundMessages(msgs) {
915538
+ if (this.resolved)
915539
+ return null;
915540
+ this.resolved = true;
915541
+ this.pending = null;
915542
+ return msgs;
915543
+ }
915544
+ }
915545
+ var HOOK_WAIT_TIMEOUT_MS = 3000;
915546
+ var init_deferredHookMessagesGate = __esm(() => {
915547
+ init_debug();
915548
+ });
915549
+
915468
915550
  // src/hooks/useDeferredHookMessages.ts
915469
915551
  function useDeferredHookMessages(pendingHookMessages, setMessages) {
915470
915552
  const pendingRef = import_react308.useRef(pendingHookMessages ?? null);
915471
- const resolvedRef = import_react308.useRef(!pendingHookMessages);
915553
+ const gateRef = import_react308.useRef(null);
915554
+ if (gateRef.current === null) {
915555
+ gateRef.current = new DeferredHookGate(pendingRef.current ?? undefined);
915556
+ }
915472
915557
  import_react308.useEffect(() => {
915473
915558
  const promise4 = pendingRef.current;
915474
915559
  if (!promise4)
@@ -915477,10 +915562,9 @@ function useDeferredHookMessages(pendingHookMessages, setMessages) {
915477
915562
  promise4.then((msgs) => {
915478
915563
  if (cancelled)
915479
915564
  return;
915480
- resolvedRef.current = true;
915481
- pendingRef.current = null;
915482
- if (msgs.length > 0) {
915483
- setMessages((prev) => [...msgs, ...prev]);
915565
+ const inject = gateRef.current.takeBackgroundMessages(msgs);
915566
+ if (inject && inject.length > 0) {
915567
+ setMessages((prev) => [...inject, ...prev]);
915484
915568
  }
915485
915569
  });
915486
915570
  return () => {
@@ -915488,20 +915572,15 @@ function useDeferredHookMessages(pendingHookMessages, setMessages) {
915488
915572
  };
915489
915573
  }, [setMessages]);
915490
915574
  return import_react308.useCallback(async () => {
915491
- if (resolvedRef.current || !pendingRef.current)
915492
- return;
915493
- const msgs = await pendingRef.current;
915494
- if (resolvedRef.current)
915495
- return;
915496
- resolvedRef.current = true;
915497
- pendingRef.current = null;
915498
- if (msgs.length > 0) {
915499
- setMessages((prev) => [...msgs, ...prev]);
915575
+ const inject = await gateRef.current.wait();
915576
+ if (inject && inject.length > 0) {
915577
+ setMessages((prev) => [...inject, ...prev]);
915500
915578
  }
915501
915579
  }, [setMessages]);
915502
915580
  }
915503
915581
  var import_react308;
915504
915582
  var init_useDeferredHookMessages = __esm(() => {
915583
+ init_deferredHookMessagesGate();
915505
915584
  import_react308 = __toESM(require_react(), 1);
915506
915585
  });
915507
915586
 
@@ -919875,7 +919954,7 @@ async function submitTranscriptShare(messages, trigger, appearanceId) {
919875
919954
  } catch {}
919876
919955
  const data = {
919877
919956
  trigger,
919878
- version: "4.2.36",
919957
+ version: "4.2.37",
919879
919958
  platform: process.platform,
919880
919959
  transcript,
919881
919960
  subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
@@ -921130,7 +921209,7 @@ function getReleaseType(current2, latest) {
921130
921209
  return "patch";
921131
921210
  }
921132
921211
  async function checkNewAutoUpdate(callbacks) {
921133
- const currentVersion = "4.2.36";
921212
+ const currentVersion = "4.2.37";
921134
921213
  logForDebugging(`[newAutoUpdater] checking, current: ${currentVersion}`);
921135
921214
  if (isNewAutoUpdaterDisabled()) {
921136
921215
  return { action: "skip", currentVersion, latestVersion: null };
@@ -933387,7 +933466,7 @@ function WelcomeV2() {
933387
933466
  dimColor: true,
933388
933467
  children: [
933389
933468
  "v",
933390
- "4.2.36",
933469
+ "4.2.37",
933391
933470
  " "
933392
933471
  ]
933393
933472
  })
@@ -933453,7 +933532,7 @@ function WelcomeV2() {
933453
933532
  dimColor: true,
933454
933533
  children: [
933455
933534
  "v",
933456
- "4.2.36",
933535
+ "4.2.37",
933457
933536
  " "
933458
933537
  ]
933459
933538
  })
@@ -933555,7 +933634,7 @@ function AppleTerminalWelcomeV2({ theme: theme2, welcomeMessage }) {
933555
933634
  dimColor: true,
933556
933635
  children: [
933557
933636
  "v",
933558
- "4.2.36",
933637
+ "4.2.37",
933559
933638
  " "
933560
933639
  ]
933561
933640
  })
@@ -933621,7 +933700,7 @@ function AppleTerminalWelcomeV2({ theme: theme2, welcomeMessage }) {
933621
933700
  dimColor: true,
933622
933701
  children: [
933623
933702
  "v",
933624
- "4.2.36",
933703
+ "4.2.37",
933625
933704
  " "
933626
933705
  ]
933627
933706
  })
@@ -934561,7 +934640,7 @@ function completeOnboarding() {
934561
934640
  saveGlobalConfig((current2) => ({
934562
934641
  ...current2,
934563
934642
  hasCompletedOnboarding: true,
934564
- lastOnboardingVersion: "4.2.36"
934643
+ lastOnboardingVersion: "4.2.37"
934565
934644
  }));
934566
934645
  }
934567
934646
  function showDialog(root9, renderer) {
@@ -951028,7 +951107,7 @@ async function startMCPServer(cwd3, debug5, verbose) {
951028
951107
  setCwd(cwd3);
951029
951108
  const server2 = new Server({
951030
951109
  name: "claude/tengu",
951031
- version: "4.2.36"
951110
+ version: "4.2.37"
951032
951111
  }, {
951033
951112
  capabilities: {
951034
951113
  tools: {}
@@ -953313,7 +953392,7 @@ function createHealthRoutes(sessionManager) {
953313
953392
  const uptime2 = process.uptime() * 1000;
953314
953393
  return c10.json({
953315
953394
  status: "ok",
953316
- version: "4.2.36",
953395
+ version: "4.2.37",
953317
953396
  uptime_ms: Math.round(uptime2),
953318
953397
  active_sessions: sessionManager.getActiveCount()
953319
953398
  });
@@ -953585,7 +953664,7 @@ function getMacroDefines() {
953585
953664
  commit = execSync3("git rev-parse --short HEAD", { encoding: "utf-8", cwd: __dirname }).trim();
953586
953665
  } catch {}
953587
953666
  return {
953588
- "MACRO.VERSION": JSON.stringify("4.2.36"),
953667
+ "MACRO.VERSION": JSON.stringify("4.2.37"),
953589
953668
  "MACRO.BUILD_TIME": JSON.stringify(new Date().toISOString()),
953590
953669
  "MACRO.COMMIT": JSON.stringify(commit),
953591
953670
  "MACRO.FEEDBACK_CHANNEL": JSON.stringify(""),
@@ -960723,7 +960802,7 @@ __export(exports_update, {
960723
960802
  });
960724
960803
  async function update() {
960725
960804
  logEvent("tengu_update_check", {});
960726
- writeToStdout(`${t("cli.update.currentVersion", "Current version")}: ${"4.2.36"}
960805
+ writeToStdout(`${t("cli.update.currentVersion", "Current version")}: ${"4.2.37"}
960727
960806
  `);
960728
960807
  const channel5 = getInitialSettings()?.autoUpdatesChannel ?? "latest";
960729
960808
  writeToStdout(`${t("cli.update.checkingUpdates", { channel: channel5 }, "Checking for updates to {channel} version...")}
@@ -960798,8 +960877,8 @@ async function update() {
960798
960877
  writeToStdout(`${t("cli.update.managedByHomebrew", "CoStrict is managed by Homebrew.")}
960799
960878
  `);
960800
960879
  const latest = await getLatestVersion(channel5);
960801
- if (latest && !gte2("4.2.36", latest)) {
960802
- writeToStdout(`${t("cli.update.updateAvailable", { current: "4.2.36", latest }, "Update available: {current} \u2192 {latest}")}
960880
+ if (latest && !gte2("4.2.37", latest)) {
960881
+ writeToStdout(`${t("cli.update.updateAvailable", { current: "4.2.37", latest }, "Update available: {current} \u2192 {latest}")}
960803
960882
  `);
960804
960883
  writeToStdout(`
960805
960884
  `);
@@ -960815,8 +960894,8 @@ async function update() {
960815
960894
  writeToStdout(`${t("cli.update.managedByWinget", "CoStrict is managed by winget.")}
960816
960895
  `);
960817
960896
  const latest = await getLatestVersion(channel5);
960818
- if (latest && !gte2("4.2.36", latest)) {
960819
- writeToStdout(`${t("cli.update.updateAvailable", { current: "4.2.36", latest }, "Update available: {current} \u2192 {latest}")}
960897
+ if (latest && !gte2("4.2.37", latest)) {
960898
+ writeToStdout(`${t("cli.update.updateAvailable", { current: "4.2.37", latest }, "Update available: {current} \u2192 {latest}")}
960820
960899
  `);
960821
960900
  writeToStdout(`
960822
960901
  `);
@@ -960832,8 +960911,8 @@ async function update() {
960832
960911
  writeToStdout(`${t("cli.update.managedByApk", "CoStrict is managed by apk.")}
960833
960912
  `);
960834
960913
  const latest = await getLatestVersion(channel5);
960835
- if (latest && !gte2("4.2.36", latest)) {
960836
- writeToStdout(`${t("cli.update.updateAvailable", { current: "4.2.36", latest }, "Update available: {current} \u2192 {latest}")}
960914
+ if (latest && !gte2("4.2.37", latest)) {
960915
+ writeToStdout(`${t("cli.update.updateAvailable", { current: "4.2.37", latest }, "Update available: {current} \u2192 {latest}")}
960837
960916
  `);
960838
960917
  writeToStdout(`
960839
960918
  `);
@@ -960898,11 +960977,11 @@ async function update() {
960898
960977
  `);
960899
960978
  await gracefulShutdown(1);
960900
960979
  }
960901
- if (result2.latestVersion === "4.2.36") {
960902
- writeToStdout(source_default.green(t("cli.update.upToDateVersion", { version: "4.2.36" }, "CoStrict is up to date ({version})")) + `
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})")) + `
960903
960982
  `);
960904
960983
  } else {
960905
- writeToStdout(source_default.green(t("cli.update.successfullyUpdated", { from: "4.2.36", to: String(result2.latestVersion) }, "Successfully updated from {from} to version {to}")) + `
960984
+ writeToStdout(source_default.green(t("cli.update.successfullyUpdated", { from: "4.2.37", to: String(result2.latestVersion) }, "Successfully updated from {from} to version {to}")) + `
960906
960985
  `);
960907
960986
  regenerateCompletionCache();
960908
960987
  }
@@ -960962,12 +961041,12 @@ async function update() {
960962
961041
  `);
960963
961042
  await gracefulShutdown(1);
960964
961043
  }
960965
- if (latestVersion === "4.2.36") {
960966
- writeToStdout(source_default.green(t("cli.update.upToDateVersion", { version: "4.2.36" }, "CoStrict is up to date ({version})")) + `
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})")) + `
960967
961046
  `);
960968
961047
  await gracefulShutdown(0);
960969
961048
  }
960970
- writeToStdout(`${t("cli.update.newVersionAvailable", { latest: String(latestVersion), current: "4.2.36" }, "New version available: {latest} (current: {current})")}
961049
+ writeToStdout(`${t("cli.update.newVersionAvailable", { latest: String(latestVersion), current: "4.2.37" }, "New version available: {latest} (current: {current})")}
960971
961050
  `);
960972
961051
  writeToStdout(`${t("cli.update.installing", "Installing update...")}
960973
961052
  `);
@@ -961012,7 +961091,7 @@ async function update() {
961012
961091
  logForDebugging(`update: Installation status: ${result.status}`);
961013
961092
  switch (result.status) {
961014
961093
  case "success":
961015
- writeToStdout(source_default.green(t("cli.update.successfullyUpdated", { from: "4.2.36", to: String(latestVersion) }, "Successfully updated from {from} to version {to}")) + `
961094
+ writeToStdout(source_default.green(t("cli.update.successfullyUpdated", { from: "4.2.37", to: String(latestVersion) }, "Successfully updated from {from} to version {to}")) + `
961016
961095
  `);
961017
961096
  regenerateCompletionCache();
961018
961097
  break;
@@ -963231,7 +963310,7 @@ ${assistantAddendum}` : assistantAddendum;
963231
963310
  }
963232
963311
  }
963233
963312
  logForDiagnosticsNoPII("info", "started", {
963234
- version: "4.2.36",
963313
+ version: "4.2.37",
963235
963314
  is_native_binary: isInBundledMode()
963236
963315
  });
963237
963316
  registerCleanup(async () => {
@@ -963722,7 +963801,7 @@ Session: ${directConnectConfig.sessionId}`, "info");
963722
963801
  sshSession = await createSSHSession2({
963723
963802
  host: _pendingSSH.host,
963724
963803
  cwd: _pendingSSH.cwd,
963725
- localVersion: "4.2.36",
963804
+ localVersion: "4.2.37",
963726
963805
  permissionMode: _pendingSSH.permissionMode,
963727
963806
  dangerouslySkipPermissions: _pendingSSH.dangerouslySkipPermissions,
963728
963807
  extraCliArgs: _pendingSSH.extraCliArgs,
@@ -964191,7 +964270,7 @@ Usage: csc --remote "your task description"`, () => gracefulShutdown(1));
964191
964270
  pendingHookMessages
964192
964271
  }, renderAndRun);
964193
964272
  }
964194
- }).version("4.2.36 (CoStrict)", "-v, --version", cliDesc("cli.option.version", "Output the version number"));
964273
+ }).version("4.2.37 (CoStrict)", "-v, --version", cliDesc("cli.option.version", "Output the version number"));
964195
964274
  program2.addOption(new Option("-w, --worktree [name]", cliDesc("cli.option.worktree", "Create a new git worktree for this session (optionally specify a name)")).hideHelp());
964196
964275
  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());
964197
964276
  if (canUserConfigureAdvisor()) {
@@ -964960,10 +965039,10 @@ function getCouncilArgs(args) {
964960
965039
  async function main2() {
964961
965040
  const args = process.argv.slice(2);
964962
965041
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
964963
- const d7 = new Date("2026-09-07T00:23:46.056Z");
965042
+ const d7 = new Date("2026-09-09T12:10:12.753Z");
964964
965043
  const p2 = (n3) => String(n3).padStart(2, "0");
964965
965044
  const buildTime = `${d7.getFullYear()}/${p2(d7.getMonth() + 1)}/${p2(d7.getDate())} ${p2(d7.getHours())}:${p2(d7.getMinutes())}:${p2(d7.getSeconds())}`;
964966
- console.log(`${"4.2.36"} (commit: ${"224bdf6c8"}, built: ${buildTime})`);
965045
+ console.log(`${"4.2.37"} (commit: ${"f32f6afe3"}, built: ${buildTime})`);
964967
965046
  return;
964968
965047
  }
964969
965048
  if (true) {
@@ -965144,5 +965223,5 @@ async function main2() {
965144
965223
  }
965145
965224
  main2();
965146
965225
 
965147
- //# debugId=2269F0D79FA1004A64756E2164756E21
965226
+ //# debugId=A9AB373C0DE5E63864756E2164756E21
965148
965227
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@costrict/csc",
3
- "version": "4.2.36",
3
+ "version": "4.2.37",
4
4
  "description": "costrict",
5
5
  "type": "module",
6
6
  "author": "costrict",