@costrict/csc 4.2.27-beta → 4.2.28

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/cli.js CHANGED
@@ -2577,8 +2577,8 @@ function getClientVersion() {
2577
2577
  if (cached)
2578
2578
  return cached;
2579
2579
  try {
2580
- if ("4.2.27-beta") {
2581
- cached = "4.2.27-beta";
2580
+ if ("4.2.28") {
2581
+ cached = "4.2.28";
2582
2582
  return cached;
2583
2583
  }
2584
2584
  } catch {}
@@ -222655,7 +222655,7 @@ async function fetchCoStrictModels(baseUrl, accessToken) {
222655
222655
  headers: {
222656
222656
  Authorization: `Bearer ${accessToken}`,
222657
222657
  Accept: "application/json",
222658
- "User-Agent": `csc/${"4.2.27-beta"}`
222658
+ "User-Agent": `csc/${"4.2.28"}`
222659
222659
  },
222660
222660
  signal: controller.signal
222661
222661
  });
@@ -224695,7 +224695,7 @@ var init_auth7 = __esm(() => {
224695
224695
 
224696
224696
  // src/utils/userAgent.ts
224697
224697
  function getClaudeCodeUserAgent() {
224698
- return `costrict/${"4.2.27-beta"}`;
224698
+ return `costrict/${"4.2.28"}`;
224699
224699
  }
224700
224700
 
224701
224701
  // src/utils/workloadContext.ts
@@ -224717,7 +224717,7 @@ function getUserAgent() {
224717
224717
  const clientApp = process.env.CLAUDE_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}` : "";
224718
224718
  const workload = getWorkload();
224719
224719
  const workloadSuffix = workload ? `, workload/${workload}` : "";
224720
- return `csc/${"4.2.27-beta"}`;
224720
+ return `csc/${"4.2.28"}`;
224721
224721
  }
224722
224722
  function getMCPUserAgent() {
224723
224723
  const parts = [];
@@ -224731,7 +224731,7 @@ function getMCPUserAgent() {
224731
224731
  parts.push(`client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}`);
224732
224732
  }
224733
224733
  const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
224734
- return `csc/${"4.2.27-beta"}${suffix}`;
224734
+ return `csc/${"4.2.28"}${suffix}`;
224735
224735
  }
224736
224736
  function getWebFetchUserAgent() {
224737
224737
  return `Claude-User (${getClaudeCodeUserAgent()}; +https://support.anthropic.com/)`;
@@ -224851,7 +224851,7 @@ var init_user = __esm(() => {
224851
224851
  deviceId,
224852
224852
  sessionId: getSessionId(),
224853
224853
  email: getEmail(),
224854
- appVersion: "4.2.27-beta",
224854
+ appVersion: "4.2.28",
224855
224855
  platform: getHostPlatformForAnalytics(),
224856
224856
  organizationUuid,
224857
224857
  accountUuid,
@@ -235899,7 +235899,7 @@ var init_metadata = __esm(() => {
235899
235899
  COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
235900
235900
  WHITESPACE_REGEX = /\s+/;
235901
235901
  getVersionBase = memoize_default(() => {
235902
- const match = "4.2.27-beta".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
235902
+ const match = "4.2.28".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
235903
235903
  return match ? match[0] : undefined;
235904
235904
  });
235905
235905
  buildEnvContext = memoize_default(async () => {
@@ -235939,9 +235939,9 @@ var init_metadata = __esm(() => {
235939
235939
  isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
235940
235940
  isClaudeCodeAction: isEnvTruthy(process.env.CLAUDE_CODE_ACTION),
235941
235941
  isClaudeAiAuth: isClaudeAISubscriber(),
235942
- version: "4.2.27-beta",
235942
+ version: "4.2.28",
235943
235943
  versionBase: getVersionBase(),
235944
- buildTime: "2026-08-13T02:03:54.495Z",
235944
+ buildTime: "2026-08-18T11:01:08.201Z",
235945
235945
  deploymentEnvironment: env4.detectDeploymentEnvironment(),
235946
235946
  ...isEnvTruthy(process.env.GITHUB_ACTIONS) && {
235947
235947
  githubEventName: process.env.GITHUB_EVENT_NAME,
@@ -236612,7 +236612,7 @@ function initialize1PEventLogging() {
236612
236612
  const platform3 = getPlatform();
236613
236613
  const attributes = {
236614
236614
  [import_semantic_conventions2.ATTR_SERVICE_NAME]: "claude-code",
236615
- [import_semantic_conventions2.ATTR_SERVICE_VERSION]: "4.2.27-beta"
236615
+ [import_semantic_conventions2.ATTR_SERVICE_VERSION]: "4.2.28"
236616
236616
  };
236617
236617
  if (platform3 === "wsl") {
236618
236618
  const wslVersion = getWslVersion();
@@ -236639,7 +236639,7 @@ function initialize1PEventLogging() {
236639
236639
  })
236640
236640
  ]
236641
236641
  });
236642
- firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.anthropic.claude_code.events", "4.2.27-beta");
236642
+ firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.anthropic.claude_code.events", "4.2.28");
236643
236643
  }
236644
236644
  async function reinitialize1PEventLoggingIfConfigChanged() {
236645
236645
  if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
@@ -306302,7 +306302,7 @@ async function loadAgentFromFile(filePath, pluginName, namespace, sourceName, pl
306302
306302
  model = trimmed.toLowerCase() === "inherit" ? "inherit" : trimmed;
306303
306303
  }
306304
306304
  const backgroundRaw = frontmatter.background;
306305
- const background = backgroundRaw === "true" || backgroundRaw === true ? true : undefined;
306305
+ const background = backgroundRaw === "true" || backgroundRaw === true ? true : backgroundRaw === "false" || backgroundRaw === false ? false : undefined;
306306
306306
  let systemPrompt = substitutePluginVariables(markdownContent.trim(), {
306307
306307
  path: pluginPath,
306308
306308
  source: sourceName
@@ -306369,7 +306369,7 @@ async function loadAgentFromFile(filePath, pluginName, namespace, sourceName, pl
306369
306369
  model,
306370
306370
  filename: baseAgentName,
306371
306371
  plugin: sourceName,
306372
- ...background ? { background } : {},
306372
+ ...background !== undefined ? { background } : {},
306373
306373
  ...memory ? { memory } : {},
306374
306374
  ...isolation ? { isolation } : {},
306375
306375
  ...effort !== undefined ? { effort } : {},
@@ -310942,7 +310942,7 @@ function parseAgentFromJson(name3, definition, source = "flagSettings") {
310942
310942
  ...parsed.maxTurns !== undefined ? { maxTurns: parsed.maxTurns } : {},
310943
310943
  ...parsed.skills && parsed.skills.length > 0 ? { skills: parsed.skills } : {},
310944
310944
  ...parsed.initialPrompt ? { initialPrompt: parsed.initialPrompt } : {},
310945
- ...parsed.background ? { background: parsed.background } : {},
310945
+ ...parsed.background !== undefined ? { background: parsed.background } : {},
310946
310946
  ...parsed.memory ? { memory: parsed.memory } : {},
310947
310947
  ...parsed.isolation ? { isolation: parsed.isolation } : {}
310948
310948
  };
@@ -310989,7 +310989,7 @@ function parseAgentFromMarkdown(filePath, baseDir, frontmatter, content, source)
310989
310989
  if (backgroundRaw !== undefined && backgroundRaw !== "true" && backgroundRaw !== "false" && backgroundRaw !== true && backgroundRaw !== false) {
310990
310990
  logForDebugging(`Agent file ${filePath} has invalid background value '${backgroundRaw}'. Must be 'true', 'false', or omitted.`);
310991
310991
  }
310992
- const background = backgroundRaw === "true" || backgroundRaw === true ? true : undefined;
310992
+ const background = backgroundRaw === "true" || backgroundRaw === true ? true : backgroundRaw === "false" || backgroundRaw === false ? false : undefined;
310993
310993
  const VALID_MEMORY_SCOPES2 = ["user", "project", "local"];
310994
310994
  const memoryRaw = frontmatter["memory"];
310995
310995
  let memory;
@@ -311085,7 +311085,7 @@ function parseAgentFromMarkdown(filePath, baseDir, frontmatter, content, source)
311085
311085
  ...parsedEffort !== undefined ? { effort: parsedEffort } : {},
311086
311086
  ...isValidPermissionMode ? { permissionMode: permissionModeRaw } : {},
311087
311087
  ...maxTurns !== undefined ? { maxTurns } : {},
311088
- ...background ? { background } : {},
311088
+ ...background !== undefined ? { background } : {},
311089
311089
  ...memory ? { memory } : {},
311090
311090
  ...isolation ? { isolation } : {}
311091
311091
  };
@@ -435563,7 +435563,7 @@ function getTelemetryAttributes() {
435563
435563
  attributes["session.id"] = sessionId;
435564
435564
  }
435565
435565
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
435566
- attributes["app.version"] = "4.2.27-beta";
435566
+ attributes["app.version"] = "4.2.28";
435567
435567
  }
435568
435568
  const oauthAccount = getOauthAccountInfo();
435569
435569
  if (oauthAccount) {
@@ -469083,7 +469083,7 @@ function initLangfuse() {
469083
469083
  flushInterval: parseInt(process.env.LANGFUSE_FLUSH_INTERVAL ?? "10", 10),
469084
469084
  mask: maskFn,
469085
469085
  environment: process.env.LANGFUSE_TRACING_ENVIRONMENT ?? "development",
469086
- release: "4.2.27-beta",
469086
+ release: "4.2.28",
469087
469087
  exportMode: process.env.LANGFUSE_EXPORT_MODE ?? "batched",
469088
469088
  timeout: parseInt(process.env.LANGFUSE_TIMEOUT ?? "5", 10)
469089
469089
  });
@@ -500880,7 +500880,7 @@ function initSentry() {
500880
500880
  }
500881
500881
  init3({
500882
500882
  dsn,
500883
- release: typeof MACRO !== "undefined" ? "4.2.27-beta" : undefined,
500883
+ release: typeof MACRO !== "undefined" ? "4.2.28" : undefined,
500884
500884
  environment: typeof BUILD_ENV !== "undefined" ? BUILD_ENV : "production",
500885
500885
  maxBreadcrumbs: 20,
500886
500886
  sampleRate: 1,
@@ -528777,7 +528777,7 @@ async function initializeBetaTracing(resource) {
528777
528777
  });
528778
528778
  logs.setGlobalLoggerProvider(loggerProvider);
528779
528779
  setLoggerProvider(loggerProvider);
528780
- const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "4.2.27-beta");
528780
+ const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "4.2.28");
528781
528781
  setEventLogger(eventLogger);
528782
528782
  process.on("beforeExit", async () => {
528783
528783
  await loggerProvider?.forceFlush();
@@ -528817,7 +528817,7 @@ async function initializeTelemetry() {
528817
528817
  const platform5 = getPlatform();
528818
528818
  const baseAttributes = {
528819
528819
  [import_semantic_conventions29.ATTR_SERVICE_NAME]: "claude-code",
528820
- [import_semantic_conventions29.ATTR_SERVICE_VERSION]: "4.2.27-beta"
528820
+ [import_semantic_conventions29.ATTR_SERVICE_VERSION]: "4.2.28"
528821
528821
  };
528822
528822
  if (platform5 === "wsl") {
528823
528823
  const wslVersion = getWslVersion();
@@ -528862,7 +528862,7 @@ async function initializeTelemetry() {
528862
528862
  } catch {}
528863
528863
  };
528864
528864
  registerCleanup(shutdownTelemetry2);
528865
- return meterProvider2.getMeter("com.anthropic.claude_code", "4.2.27-beta");
528865
+ return meterProvider2.getMeter("com.anthropic.claude_code", "4.2.28");
528866
528866
  }
528867
528867
  const meterProvider = new import_sdk_metrics2.MeterProvider({
528868
528868
  resource,
@@ -528882,7 +528882,7 @@ async function initializeTelemetry() {
528882
528882
  });
528883
528883
  logs.setGlobalLoggerProvider(loggerProvider);
528884
528884
  setLoggerProvider(loggerProvider);
528885
- const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "4.2.27-beta");
528885
+ const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "4.2.28");
528886
528886
  setEventLogger(eventLogger);
528887
528887
  logForDebugging("[3P telemetry] Event logger set successfully");
528888
528888
  process.on("beforeExit", async () => {
@@ -528944,7 +528944,7 @@ Current timeout: ${timeoutMs}ms
528944
528944
  }
528945
528945
  };
528946
528946
  registerCleanup(shutdownTelemetry);
528947
- return meterProvider.getMeter("com.anthropic.claude_code", "4.2.27-beta");
528947
+ return meterProvider.getMeter("com.anthropic.claude_code", "4.2.28");
528948
528948
  }
528949
528949
  async function flushTelemetry() {
528950
528950
  const meterProvider = getMeterProvider();
@@ -530003,7 +530003,7 @@ async function installGlobalPackage(specificVersion) {
530003
530003
  logError2(new AutoUpdaterError("Another process is currently installing an update"));
530004
530004
  logEvent("tengu_auto_updater_lock_contention", {
530005
530005
  pid: process.pid,
530006
- currentVersion: "4.2.27-beta"
530006
+ currentVersion: "4.2.28"
530007
530007
  });
530008
530008
  return { status: "in_progress" };
530009
530009
  }
@@ -530012,7 +530012,7 @@ async function installGlobalPackage(specificVersion) {
530012
530012
  if (!env4.isRunningWithBun() && env4.isNpmFromWindowsPath()) {
530013
530013
  logError2(new Error("Windows NPM detected in WSL environment"));
530014
530014
  logEvent("tengu_auto_updater_windows_npm_in_wsl", {
530015
- currentVersion: "4.2.27-beta"
530015
+ currentVersion: "4.2.28"
530016
530016
  });
530017
530017
  return {
530018
530018
  status: "install_failed",
@@ -530558,7 +530558,7 @@ function detectLinuxGlobPatternWarnings() {
530558
530558
  }
530559
530559
  async function getDoctorDiagnostic() {
530560
530560
  const installationType = await getCurrentInstallationType();
530561
- const version9 = typeof MACRO !== "undefined" ? "4.2.27-beta" : "unknown";
530561
+ const version9 = typeof MACRO !== "undefined" ? "4.2.28" : "unknown";
530562
530562
  const installationPath = await getInstallationPath();
530563
530563
  const invokedBinary = getInvokedBinary();
530564
530564
  const multipleInstallations = await detectMultipleInstallations();
@@ -568745,7 +568745,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
568745
568745
  const client10 = new Client3({
568746
568746
  name: "claude-code",
568747
568747
  title: "CoStrict",
568748
- version: "4.2.27-beta",
568748
+ version: "4.2.28",
568749
568749
  description: "CoStrict agentic coding tool",
568750
568750
  websiteUrl: PRODUCT_URL
568751
568751
  }, {
@@ -569116,7 +569116,7 @@ var init_client18 = __esm(() => {
569116
569116
  const client10 = new Client3({
569117
569117
  name: "claude-code",
569118
569118
  title: "CoStrict",
569119
- version: "4.2.27-beta",
569119
+ version: "4.2.28",
569120
569120
  description: "CoStrict agentic coding tool",
569121
569121
  websiteUrl: PRODUCT_URL
569122
569122
  }, {
@@ -570506,7 +570506,7 @@ function getInstallationEnv() {
570506
570506
  return;
570507
570507
  }
570508
570508
  function getClaudeCodeVersion() {
570509
- return "4.2.27-beta";
570509
+ return "4.2.28";
570510
570510
  }
570511
570511
  async function getInstalledVSCodeExtensionVersion(command4) {
570512
570512
  const { stdout } = await execFileNoThrow(command4, ["--list-extensions", "--show-versions"], {
@@ -571870,8 +571870,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
571870
571870
  const maxVersion = await getMaxVersion();
571871
571871
  if (maxVersion && gt(version10, maxVersion)) {
571872
571872
  logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version10} to ${maxVersion}`);
571873
- if (gte2("4.2.27-beta", maxVersion)) {
571874
- logForDebugging(`Native installer: current version ${"4.2.27-beta"} is already at or above maxVersion ${maxVersion}, skipping update`);
571873
+ if (gte2("4.2.28", maxVersion)) {
571874
+ logForDebugging(`Native installer: current version ${"4.2.28"} is already at or above maxVersion ${maxVersion}, skipping update`);
571875
571875
  logEvent("tengu_native_update_skipped_max_version", {
571876
571876
  latency_ms: Date.now() - startTime2,
571877
571877
  max_version: maxVersion,
@@ -571882,7 +571882,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
571882
571882
  version10 = maxVersion;
571883
571883
  }
571884
571884
  }
571885
- if (!forceReinstall && version10 === "4.2.27-beta" && await versionIsAvailable(version10) && await isPossibleClaudeBinary(executablePath)) {
571885
+ if (!forceReinstall && version10 === "4.2.28" && await versionIsAvailable(version10) && await isPossibleClaudeBinary(executablePath)) {
571886
571886
  logForDebugging(`Found ${version10} at ${executablePath}, skipping install`);
571887
571887
  logEvent("tengu_native_update_complete", {
571888
571888
  latency_ms: Date.now() - startTime2,
@@ -666998,7 +666998,7 @@ var init_AgentTool = __esm(() => {
666998
666998
  color: selectedAgent.color,
666999
666999
  is_built_in_agent: isBuiltInAgent(selectedAgent),
667000
667000
  is_resume: false,
667001
- is_async: (run_in_background === true || selectedAgent.background === true) && !isBackgroundTasksDisabled2,
667001
+ is_async: run_in_background === false || selectedAgent.background === false ? false : (run_in_background === true || selectedAgent.background === true) && !isBackgroundTasksDisabled2,
667002
667002
  is_fork: isForkPath
667003
667003
  });
667004
667004
  const effectiveIsolation = isolation ?? selectedAgent.isolation;
@@ -667086,11 +667086,12 @@ ${reasons}`);
667086
667086
  isBuiltInAgent: isBuiltInAgent(selectedAgent),
667087
667087
  startTime: startTime2,
667088
667088
  agentType: selectedAgent.agentType,
667089
- isAsync: (run_in_background === true || selectedAgent.background === true) && !isBackgroundTasksDisabled2
667089
+ isAsync: run_in_background === false || selectedAgent.background === false ? false : (run_in_background === true || selectedAgent.background === true) && !isBackgroundTasksDisabled2
667090
667090
  };
667091
667091
  const isCoordinator = false;
667092
667092
  const assistantForceAsync = appState.kairosEnabled;
667093
- const shouldRunAsync = (run_in_background === true || selectedAgent.background === true || isCoordinator || assistantForceAsync || (proactiveModule2?.isProactiveActive() ?? false)) && !isBackgroundTasksDisabled2;
667093
+ const explicitForeground = selectedAgent.background === false || run_in_background === false;
667094
+ const shouldRunAsync = !explicitForeground && (run_in_background === true || selectedAgent.background === true || isCoordinator || assistantForceAsync || (proactiveModule2?.isProactiveActive() ?? false)) && !isBackgroundTasksDisabled2;
667094
667095
  const workerPermissionContext = {
667095
667096
  ...appState.toolPermissionContext,
667096
667097
  mode: selectedAgent.permissionMode ?? "acceptEdits"
@@ -667241,7 +667242,7 @@ ${reasons}`);
667241
667242
  let foregroundTaskId;
667242
667243
  let backgroundPromise;
667243
667244
  let cancelAutoBackground;
667244
- if (!isBackgroundTasksDisabled2) {
667245
+ if (!isBackgroundTasksDisabled2 && !explicitForeground) {
667245
667246
  const registration = registerAgentForeground({
667246
667247
  agentId: syncAgentId,
667247
667248
  description,
@@ -709984,7 +709985,7 @@ function Feedback({
709984
709985
  platform: env4.platform,
709985
709986
  gitRepo: envInfo.isGit,
709986
709987
  terminal: env4.terminal,
709987
- version: "4.2.27-beta",
709988
+ version: "4.2.28",
709988
709989
  transcript: normalizeMessagesForAPI(messages),
709989
709990
  errors: sanitizedErrors,
709990
709991
  lastApiRequest: getLastAPIRequest(),
@@ -710167,7 +710168,7 @@ function Feedback({
710167
710168
  ", ",
710168
710169
  env4.terminal,
710169
710170
  ", v",
710170
- "4.2.27-beta"
710171
+ "4.2.28"
710171
710172
  ]
710172
710173
  })
710173
710174
  ]
@@ -710264,7 +710265,7 @@ ${sanitizedDescription}
710264
710265
  ` + `**Environment Info**
710265
710266
  ` + `- Platform: ${env4.platform}
710266
710267
  ` + `- Terminal: ${env4.terminal}
710267
- ` + `- Version: ${"4.2.27-beta"}
710268
+ ` + `- Version: ${"4.2.28"}
710268
710269
  ` + `- Feedback ID: ${feedbackId}
710269
710270
  ` + `
710270
710271
  **Errors**
@@ -712503,7 +712504,7 @@ function buildPrimarySection() {
712503
712504
  children: t("settings.status.renameHint")
712504
712505
  });
712505
712506
  return [
712506
- { label: t("settings.status.version"), value: "4.2.27-beta" },
712507
+ { label: t("settings.status.version"), value: "4.2.28" },
712507
712508
  { label: t("settings.status.sessionName"), value: nameValue },
712508
712509
  { label: t("settings.status.sessionId"), value: sessionId },
712509
712510
  { label: t("settings.status.cwd"), value: getCwd() },
@@ -715364,7 +715365,7 @@ function Config({
715364
715365
  }
715365
715366
  })
715366
715367
  }) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_runtime191.jsx(ChannelDowngradeDialog, {
715367
- currentVersion: "4.2.27-beta",
715368
+ currentVersion: "4.2.28",
715368
715369
  onChoice: (choice) => {
715369
715370
  setShowSubmenu(null);
715370
715371
  setTabsHidden(false);
@@ -715376,7 +715377,7 @@ function Config({
715376
715377
  autoUpdatesChannel: "stable"
715377
715378
  };
715378
715379
  if (choice === "stay") {
715379
- newSettings.minimumVersion = "4.2.27-beta";
715380
+ newSettings.minimumVersion = "4.2.28";
715380
715381
  }
715381
715382
  updateSettingsForSource("userSettings", newSettings);
715382
715383
  setSettingsData((prev) => ({
@@ -720845,7 +720846,7 @@ function HelpV2({ onClose, commands: commands11 }) {
720845
720846
  color: "professionalBlue",
720846
720847
  children: [
720847
720848
  /* @__PURE__ */ jsx_runtime218.jsx(Tabs, {
720848
- title: process.env.USER_TYPE === "sf" ? "/help" : `CoStrict v${"4.2.27-beta"}`,
720849
+ title: process.env.USER_TYPE === "sf" ? "/help" : `CoStrict v${"4.2.28"}`,
720849
720850
  color: "professionalBlue",
720850
720851
  defaultTab: "general",
720851
720852
  children: tabs
@@ -743907,7 +743908,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
743907
743908
  return [];
743908
743909
  }
743909
743910
  }
743910
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "4.2.27-beta") {
743911
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "4.2.28") {
743911
743912
  if (process.env.USER_TYPE === "sf") {
743912
743913
  const changelog = "";
743913
743914
  if (changelog) {
@@ -743934,7 +743935,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "4.2.27-be
743934
743935
  releaseNotes
743935
743936
  };
743936
743937
  }
743937
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "4.2.27-beta") {
743938
+ function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "4.2.28") {
743938
743939
  if (process.env.USER_TYPE === "sf") {
743939
743940
  const changelog = "";
743940
743941
  if (changelog) {
@@ -746447,7 +746448,7 @@ function isNotLoggedIn() {
746447
746448
  return true;
746448
746449
  }
746449
746450
  function getLogoDisplayData() {
746450
- const version10 = process.env.DEMO_VERSION ?? "4.2.27-beta";
746451
+ const version10 = process.env.DEMO_VERSION ?? "4.2.28";
746451
746452
  const serverUrl = getDirectConnectServerUrl();
746452
746453
  const displayPath = process.env.DEMO_VERSION ? "/code/claude" : getDisplayPath(getCwd());
746453
746454
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -747025,7 +747026,7 @@ var init_MatrixMessageLine = __esm(() => {
747025
747026
  // src/components/matrix-tactical/MatrixWelcome.tsx
747026
747027
  import { basename as basename47 } from "path";
747027
747028
  function MatrixWelcome({
747028
- version: version10 = "4.2.27-beta",
747029
+ version: version10 = "4.2.28",
747029
747030
  projectName,
747030
747031
  cwd: cwd2,
747031
747032
  modelDisplayName,
@@ -747660,13 +747661,13 @@ function LogoV2() {
747660
747661
  const { hasReleaseNotes } = checkForReleaseNotesSync(config13.lastReleaseNotesSeen);
747661
747662
  import_react167.useEffect(() => {
747662
747663
  const currentConfig = getGlobalConfig();
747663
- if (currentConfig.lastReleaseNotesSeen === "4.2.27-beta") {
747664
+ if (currentConfig.lastReleaseNotesSeen === "4.2.28") {
747664
747665
  return;
747665
747666
  }
747666
747667
  saveGlobalConfig((current2) => {
747667
- if (current2.lastReleaseNotesSeen === "4.2.27-beta")
747668
+ if (current2.lastReleaseNotesSeen === "4.2.28")
747668
747669
  return current2;
747669
- return { ...current2, lastReleaseNotesSeen: "4.2.27-beta" };
747670
+ return { ...current2, lastReleaseNotesSeen: "4.2.28" };
747670
747671
  });
747671
747672
  if (showOnboarding) {
747672
747673
  incrementProjectOnboardingSeenCount();
@@ -770196,7 +770197,7 @@ async function captureMemoryDiagnostics(trigger, dumpNumber = 0) {
770196
770197
  smapsRollup,
770197
770198
  platform: process.platform,
770198
770199
  nodeVersion: process.version,
770199
- ccVersion: "4.2.27-beta"
770200
+ ccVersion: "4.2.28"
770200
770201
  };
770201
770202
  }
770202
770203
  async function performHeapDump(trigger = "manual", dumpNumber = 0) {
@@ -770312,7 +770313,7 @@ var init_mock_limits = __esm(() => {
770312
770313
  var call55 = async () => {
770313
770314
  return {
770314
770315
  type: "text",
770315
- value: `${"4.2.27-beta"} (built ${"2026-08-13T02:03:54.495Z"})`
770316
+ value: `${"4.2.28"} (built ${"2026-08-18T11:01:08.201Z"})`
770316
770317
  };
770317
770318
  }, version10, version_default;
770318
770319
  var init_version2 = __esm(() => {
@@ -788458,7 +788459,7 @@ function generateHtmlReport(data, insights) {
788458
788459
  </html>`;
788459
788460
  }
788460
788461
  function buildExportData(data, insights, facets, remoteStats) {
788461
- const version11 = typeof MACRO !== "undefined" ? "4.2.27-beta" : "unknown";
788462
+ const version11 = typeof MACRO !== "undefined" ? "4.2.28" : "unknown";
788462
788463
  const remote_hosts_collected = remoteStats?.hosts.filter((h8) => h8.sessionCount > 0).map((h8) => h8.name);
788463
788464
  const facets_summary = {
788464
788465
  total: facets.size,
@@ -792908,7 +792909,7 @@ var init_sessionStorage = __esm(() => {
792908
792909
  init_settings2();
792909
792910
  init_slowOperations();
792910
792911
  init_uuid();
792911
- VERSION11 = typeof MACRO !== "undefined" ? "4.2.27-beta" : "unknown";
792912
+ VERSION11 = typeof MACRO !== "undefined" ? "4.2.28" : "unknown";
792912
792913
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
792913
792914
  SKIP_FIRST_PROMPT_PATTERN2 = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
792914
792915
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -794249,7 +794250,7 @@ var init_filesystem = __esm(() => {
794249
794250
  });
794250
794251
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
794251
794252
  const nonce = randomBytes24(16).toString("hex");
794252
- return join204(getCostrictTempDir(), "bundled-skills", "4.2.27-beta", nonce);
794253
+ return join204(getCostrictTempDir(), "bundled-skills", "4.2.28", nonce);
794253
794254
  });
794254
794255
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
794255
794256
  });
@@ -800519,7 +800520,7 @@ function computeFingerprint(messageText, version11) {
800519
800520
  }
800520
800521
  function computeFingerprintFromMessages(messages) {
800521
800522
  const firstMessageText = extractFirstMessageText(messages);
800522
- return computeFingerprint(firstMessageText, "4.2.27-beta");
800523
+ return computeFingerprint(firstMessageText, "4.2.28");
800523
800524
  }
800524
800525
  var FINGERPRINT_SALT = "59cf53e54c78";
800525
800526
  var init_fingerprint = () => {};
@@ -800929,7 +800930,7 @@ function getAnthropicEnvMetadata() {
800929
800930
  function getBuildAgeMinutes() {
800930
800931
  if (false)
800931
800932
  ;
800932
- const buildTime = new Date("2026-08-13T02:03:54.495Z").getTime();
800933
+ const buildTime = new Date("2026-08-18T11:01:08.201Z").getTime();
800933
800934
  if (isNaN(buildTime))
800934
800935
  return;
800935
800936
  return Math.floor((Date.now() - buildTime) / 60000);
@@ -806497,7 +806498,7 @@ async function sideQuery(opts) {
806497
806498
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
806498
806499
  }
806499
806500
  const messageText = extractFirstUserMessageText(messages);
806500
- const fingerprint = computeFingerprint(messageText, "4.2.27-beta");
806501
+ const fingerprint = computeFingerprint(messageText, "4.2.28");
806501
806502
  const attributionHeader = getAttributionHeader(fingerprint);
806502
806503
  const systemBlocks = [
806503
806504
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -809893,7 +809894,7 @@ function buildSystemInitMessage(inputs) {
809893
809894
  slash_commands: inputs.commands.filter((c10) => c10.userInvocable !== false).map((c10) => c10.name),
809894
809895
  apiKeySource: getAnthropicApiKeyWithSource().source,
809895
809896
  betas: getSdkBetas(),
809896
- claude_code_version: "4.2.27-beta",
809897
+ claude_code_version: "4.2.28",
809897
809898
  output_style: outputStyle2,
809898
809899
  agents: inputs.agents.map((agent) => agent.agentType),
809899
809900
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill) => skill.name),
@@ -813437,7 +813438,7 @@ function appendToLog(path58, message2) {
813437
813438
  cwd: getFsImplementation().cwd(),
813438
813439
  userType: process.env.USER_TYPE,
813439
813440
  sessionId: getSessionId(),
813440
- version: "4.2.27-beta"
813441
+ version: "4.2.28"
813441
813442
  };
813442
813443
  getLogWriter(path58).write(messageWithTimestamp);
813443
813444
  }
@@ -817114,6 +817115,11 @@ var init_App2 = __esm(() => {
817114
817115
  jsx_runtime379 = __toESM(require_jsx_runtime(), 1);
817115
817116
  });
817116
817117
 
817118
+ // src/screens/replMessageDisplay.ts
817119
+ function shouldUseSyncMessages(reducedMotion, hasYankBug, isLoading) {
817120
+ return !reducedMotion || !isLoading;
817121
+ }
817122
+
817117
817123
  // src/components/CostThresholdDialog.tsx
817118
817124
  function CostThresholdDialog({ onDone }) {
817119
817125
  const { t: useT } = useTranslation();
@@ -834493,7 +834499,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
834493
834499
  project_dir: getOriginalCwd(),
834494
834500
  added_dirs: addedDirs
834495
834501
  },
834496
- version: "4.2.27-beta",
834502
+ version: "4.2.28",
834497
834503
  output_style: {
834498
834504
  name: outputStyleName
834499
834505
  },
@@ -853122,7 +853128,7 @@ async function submitTranscriptShare(messages, trigger, appearanceId) {
853122
853128
  } catch {}
853123
853129
  const data = {
853124
853130
  trigger,
853125
- version: "4.2.27-beta",
853131
+ version: "4.2.28",
853126
853132
  platform: process.platform,
853127
853133
  transcript,
853128
853134
  subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
@@ -854377,7 +854383,7 @@ function getReleaseType(current2, latest) {
854377
854383
  return "patch";
854378
854384
  }
854379
854385
  async function checkNewAutoUpdate(callbacks) {
854380
- const currentVersion = "4.2.27-beta";
854386
+ const currentVersion = "4.2.28";
854381
854387
  logForDebugging(`[newAutoUpdater] checking, current: ${currentVersion}`);
854382
854388
  if (isNewAutoUpdaterDisabled()) {
854383
854389
  return { action: "skip", currentVersion, latestVersion: null };
@@ -864694,7 +864700,7 @@ ${t("repl.suspended")}
864694
864700
  const viewedTask = viewingAgentTaskId ? tasks2[viewingAgentTaskId] : undefined;
864695
864701
  const viewedTeammateTask = viewedTask && isInProcessTeammateTask(viewedTask) ? viewedTask : undefined;
864696
864702
  const viewedAgentTask = viewedTeammateTask ?? (viewedTask && isLocalAgentTask(viewedTask) ? viewedTask : undefined);
864697
- const usesSyncMessages = showStreamingText || !isLoading;
864703
+ const usesSyncMessages = shouldUseSyncMessages(reducedMotion, hasCursorUpViewportYankBug(), isLoading);
864698
864704
  const rawAgentMessages = viewedAgentTask?.messages;
864699
864705
  const displayedAgentMessages = import_react359.useMemo(() => {
864700
864706
  if (!viewedAgentTask)
@@ -866632,7 +866638,7 @@ function WelcomeV2() {
866632
866638
  dimColor: true,
866633
866639
  children: [
866634
866640
  "v",
866635
- "4.2.27-beta",
866641
+ "4.2.28",
866636
866642
  " "
866637
866643
  ]
866638
866644
  })
@@ -866698,7 +866704,7 @@ function WelcomeV2() {
866698
866704
  dimColor: true,
866699
866705
  children: [
866700
866706
  "v",
866701
- "4.2.27-beta",
866707
+ "4.2.28",
866702
866708
  " "
866703
866709
  ]
866704
866710
  })
@@ -866800,7 +866806,7 @@ function AppleTerminalWelcomeV2({ theme: theme2, welcomeMessage }) {
866800
866806
  dimColor: true,
866801
866807
  children: [
866802
866808
  "v",
866803
- "4.2.27-beta",
866809
+ "4.2.28",
866804
866810
  " "
866805
866811
  ]
866806
866812
  })
@@ -866866,7 +866872,7 @@ function AppleTerminalWelcomeV2({ theme: theme2, welcomeMessage }) {
866866
866872
  dimColor: true,
866867
866873
  children: [
866868
866874
  "v",
866869
- "4.2.27-beta",
866875
+ "4.2.28",
866870
866876
  " "
866871
866877
  ]
866872
866878
  })
@@ -867806,7 +867812,7 @@ function completeOnboarding() {
867806
867812
  saveGlobalConfig((current2) => ({
867807
867813
  ...current2,
867808
867814
  hasCompletedOnboarding: true,
867809
- lastOnboardingVersion: "4.2.27-beta"
867815
+ lastOnboardingVersion: "4.2.28"
867810
867816
  }));
867811
867817
  }
867812
867818
  function showDialog(root9, renderer) {
@@ -882935,7 +882941,7 @@ async function startMCPServer(cwd3, debug5, verbose) {
882935
882941
  setCwd(cwd3);
882936
882942
  const server2 = new Server({
882937
882943
  name: "claude/tengu",
882938
- version: "4.2.27-beta"
882944
+ version: "4.2.28"
882939
882945
  }, {
882940
882946
  capabilities: {
882941
882947
  tools: {}
@@ -885220,7 +885226,7 @@ function createHealthRoutes(sessionManager) {
885220
885226
  const uptime2 = process.uptime() * 1000;
885221
885227
  return c10.json({
885222
885228
  status: "ok",
885223
- version: "4.2.27-beta",
885229
+ version: "4.2.28",
885224
885230
  uptime_ms: Math.round(uptime2),
885225
885231
  active_sessions: sessionManager.getActiveCount()
885226
885232
  });
@@ -885492,7 +885498,7 @@ function getMacroDefines() {
885492
885498
  commit = execSync3("git rev-parse --short HEAD", { encoding: "utf-8", cwd: __dirname }).trim();
885493
885499
  } catch {}
885494
885500
  return {
885495
- "MACRO.VERSION": JSON.stringify("4.2.27-beta"),
885501
+ "MACRO.VERSION": JSON.stringify("4.2.28"),
885496
885502
  "MACRO.BUILD_TIME": JSON.stringify(new Date().toISOString()),
885497
885503
  "MACRO.COMMIT": JSON.stringify(commit),
885498
885504
  "MACRO.FEEDBACK_CHANNEL": JSON.stringify(""),
@@ -892560,7 +892566,7 @@ __export(exports_update, {
892560
892566
  });
892561
892567
  async function update() {
892562
892568
  logEvent("tengu_update_check", {});
892563
- writeToStdout(`${t("cli.update.currentVersion", "Current version")}: ${"4.2.27-beta"}
892569
+ writeToStdout(`${t("cli.update.currentVersion", "Current version")}: ${"4.2.28"}
892564
892570
  `);
892565
892571
  const channel5 = getInitialSettings()?.autoUpdatesChannel ?? "latest";
892566
892572
  writeToStdout(`${t("cli.update.checkingUpdates", { channel: channel5 }, "Checking for updates to {channel} version...")}
@@ -892635,8 +892641,8 @@ async function update() {
892635
892641
  writeToStdout(`${t("cli.update.managedByHomebrew", "CoStrict is managed by Homebrew.")}
892636
892642
  `);
892637
892643
  const latest = await getLatestVersion(channel5);
892638
- if (latest && !gte2("4.2.27-beta", latest)) {
892639
- writeToStdout(`${t("cli.update.updateAvailable", { current: "4.2.27-beta", latest }, "Update available: {current} \u2192 {latest}")}
892644
+ if (latest && !gte2("4.2.28", latest)) {
892645
+ writeToStdout(`${t("cli.update.updateAvailable", { current: "4.2.28", latest }, "Update available: {current} \u2192 {latest}")}
892640
892646
  `);
892641
892647
  writeToStdout(`
892642
892648
  `);
@@ -892652,8 +892658,8 @@ async function update() {
892652
892658
  writeToStdout(`${t("cli.update.managedByWinget", "CoStrict is managed by winget.")}
892653
892659
  `);
892654
892660
  const latest = await getLatestVersion(channel5);
892655
- if (latest && !gte2("4.2.27-beta", latest)) {
892656
- writeToStdout(`${t("cli.update.updateAvailable", { current: "4.2.27-beta", latest }, "Update available: {current} \u2192 {latest}")}
892661
+ if (latest && !gte2("4.2.28", latest)) {
892662
+ writeToStdout(`${t("cli.update.updateAvailable", { current: "4.2.28", latest }, "Update available: {current} \u2192 {latest}")}
892657
892663
  `);
892658
892664
  writeToStdout(`
892659
892665
  `);
@@ -892669,8 +892675,8 @@ async function update() {
892669
892675
  writeToStdout(`${t("cli.update.managedByApk", "CoStrict is managed by apk.")}
892670
892676
  `);
892671
892677
  const latest = await getLatestVersion(channel5);
892672
- if (latest && !gte2("4.2.27-beta", latest)) {
892673
- writeToStdout(`${t("cli.update.updateAvailable", { current: "4.2.27-beta", latest }, "Update available: {current} \u2192 {latest}")}
892678
+ if (latest && !gte2("4.2.28", latest)) {
892679
+ writeToStdout(`${t("cli.update.updateAvailable", { current: "4.2.28", latest }, "Update available: {current} \u2192 {latest}")}
892674
892680
  `);
892675
892681
  writeToStdout(`
892676
892682
  `);
@@ -892735,11 +892741,11 @@ async function update() {
892735
892741
  `);
892736
892742
  await gracefulShutdown(1);
892737
892743
  }
892738
- if (result2.latestVersion === "4.2.27-beta") {
892739
- writeToStdout(source_default.green(t("cli.update.upToDateVersion", { version: "4.2.27-beta" }, "CoStrict is up to date ({version})")) + `
892744
+ if (result2.latestVersion === "4.2.28") {
892745
+ writeToStdout(source_default.green(t("cli.update.upToDateVersion", { version: "4.2.28" }, "CoStrict is up to date ({version})")) + `
892740
892746
  `);
892741
892747
  } else {
892742
- writeToStdout(source_default.green(t("cli.update.successfullyUpdated", { from: "4.2.27-beta", to: String(result2.latestVersion) }, "Successfully updated from {from} to version {to}")) + `
892748
+ writeToStdout(source_default.green(t("cli.update.successfullyUpdated", { from: "4.2.28", to: String(result2.latestVersion) }, "Successfully updated from {from} to version {to}")) + `
892743
892749
  `);
892744
892750
  regenerateCompletionCache();
892745
892751
  }
@@ -892799,12 +892805,12 @@ async function update() {
892799
892805
  `);
892800
892806
  await gracefulShutdown(1);
892801
892807
  }
892802
- if (latestVersion === "4.2.27-beta") {
892803
- writeToStdout(source_default.green(t("cli.update.upToDateVersion", { version: "4.2.27-beta" }, "CoStrict is up to date ({version})")) + `
892808
+ if (latestVersion === "4.2.28") {
892809
+ writeToStdout(source_default.green(t("cli.update.upToDateVersion", { version: "4.2.28" }, "CoStrict is up to date ({version})")) + `
892804
892810
  `);
892805
892811
  await gracefulShutdown(0);
892806
892812
  }
892807
- writeToStdout(`${t("cli.update.newVersionAvailable", { latest: String(latestVersion), current: "4.2.27-beta" }, "New version available: {latest} (current: {current})")}
892813
+ writeToStdout(`${t("cli.update.newVersionAvailable", { latest: String(latestVersion), current: "4.2.28" }, "New version available: {latest} (current: {current})")}
892808
892814
  `);
892809
892815
  writeToStdout(`${t("cli.update.installing", "Installing update...")}
892810
892816
  `);
@@ -892849,7 +892855,7 @@ async function update() {
892849
892855
  logForDebugging(`update: Installation status: ${result.status}`);
892850
892856
  switch (result.status) {
892851
892857
  case "success":
892852
- writeToStdout(source_default.green(t("cli.update.successfullyUpdated", { from: "4.2.27-beta", to: String(latestVersion) }, "Successfully updated from {from} to version {to}")) + `
892858
+ writeToStdout(source_default.green(t("cli.update.successfullyUpdated", { from: "4.2.28", to: String(latestVersion) }, "Successfully updated from {from} to version {to}")) + `
892853
892859
  `);
892854
892860
  regenerateCompletionCache();
892855
892861
  break;
@@ -895053,7 +895059,7 @@ ${assistantAddendum}` : assistantAddendum;
895053
895059
  }
895054
895060
  }
895055
895061
  logForDiagnosticsNoPII("info", "started", {
895056
- version: "4.2.27-beta",
895062
+ version: "4.2.28",
895057
895063
  is_native_binary: isInBundledMode()
895058
895064
  });
895059
895065
  registerCleanup(async () => {
@@ -895544,7 +895550,7 @@ Session: ${directConnectConfig.sessionId}`, "info");
895544
895550
  sshSession = await createSSHSession2({
895545
895551
  host: _pendingSSH.host,
895546
895552
  cwd: _pendingSSH.cwd,
895547
- localVersion: "4.2.27-beta",
895553
+ localVersion: "4.2.28",
895548
895554
  permissionMode: _pendingSSH.permissionMode,
895549
895555
  dangerouslySkipPermissions: _pendingSSH.dangerouslySkipPermissions,
895550
895556
  extraCliArgs: _pendingSSH.extraCliArgs,
@@ -896013,7 +896019,7 @@ Usage: csc --remote "your task description"`, () => gracefulShutdown(1));
896013
896019
  pendingHookMessages
896014
896020
  }, renderAndRun);
896015
896021
  }
896016
- }).version("4.2.27-beta (CoStrict)", "-v, --version", cliDesc("cli.option.version", "Output the version number"));
896022
+ }).version("4.2.28 (CoStrict)", "-v, --version", cliDesc("cli.option.version", "Output the version number"));
896017
896023
  program2.addOption(new Option("-w, --worktree [name]", cliDesc("cli.option.worktree", "Create a new git worktree for this session (optionally specify a name)")).hideHelp());
896018
896024
  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());
896019
896025
  if (canUserConfigureAdvisor()) {
@@ -896756,10 +896762,10 @@ if (process.env.CLAUDE_CODE_REMOTE === "true") {
896756
896762
  async function main2() {
896757
896763
  const args = process.argv.slice(2);
896758
896764
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
896759
- const d7 = new Date("2026-08-13T02:03:54.495Z");
896765
+ const d7 = new Date("2026-08-18T11:01:08.201Z");
896760
896766
  const p2 = (n3) => String(n3).padStart(2, "0");
896761
896767
  const buildTime = `${d7.getFullYear()}/${p2(d7.getMonth() + 1)}/${p2(d7.getDate())} ${p2(d7.getHours())}:${p2(d7.getMinutes())}:${p2(d7.getSeconds())}`;
896762
- console.log(`${"4.2.27-beta"} (commit: ${"fa9c127fe"}, built: ${buildTime})`);
896768
+ console.log(`${"4.2.28"} (commit: ${"b8db0d23a"}, built: ${buildTime})`);
896763
896769
  return;
896764
896770
  }
896765
896771
  if (args[0] === "git-credential") {
@@ -896940,5 +896946,5 @@ async function main2() {
896940
896946
  }
896941
896947
  main2();
896942
896948
 
896943
- //# debugId=366E7F6A4AAFDCB564756E2164756E21
896949
+ //# debugId=37B6B1EB0B1A78C264756E2164756E21
896944
896950
 
@@ -736,8 +736,8 @@ function getClientVersion() {
736
736
  if (cached)
737
737
  return cached;
738
738
  try {
739
- if ("4.2.27-beta") {
740
- cached = "4.2.27-beta";
739
+ if ("4.2.28") {
740
+ cached = "4.2.28";
741
741
  return cached;
742
742
  }
743
743
  } catch {}
@@ -138570,7 +138570,7 @@ var init_user = __esm(() => {
138570
138570
  deviceId,
138571
138571
  sessionId: getSessionId(),
138572
138572
  email: getEmail(),
138573
- appVersion: "4.2.27-beta",
138573
+ appVersion: "4.2.28",
138574
138574
  platform: getHostPlatformForAnalytics(),
138575
138575
  organizationUuid,
138576
138576
  accountUuid,
@@ -138857,7 +138857,7 @@ var init_metadata = __esm(() => {
138857
138857
  "sed"
138858
138858
  ]);
138859
138859
  getVersionBase = memoize_default(() => {
138860
- const match = "4.2.27-beta".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
138860
+ const match = "4.2.28".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
138861
138861
  return match ? match[0] : undefined;
138862
138862
  });
138863
138863
  buildEnvContext = memoize_default(async () => {
@@ -138897,9 +138897,9 @@ var init_metadata = __esm(() => {
138897
138897
  isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
138898
138898
  isClaudeCodeAction: isEnvTruthy(process.env.CLAUDE_CODE_ACTION),
138899
138899
  isClaudeAiAuth: isClaudeAISubscriber(),
138900
- version: "4.2.27-beta",
138900
+ version: "4.2.28",
138901
138901
  versionBase: getVersionBase(),
138902
- buildTime: "2026-08-13T02:03:56.338Z",
138902
+ buildTime: "2026-08-18T11:01:10.342Z",
138903
138903
  deploymentEnvironment: env4.detectDeploymentEnvironment(),
138904
138904
  ...isEnvTruthy(process.env.GITHUB_ACTIONS) && {
138905
138905
  githubEventName: process.env.GITHUB_EVENT_NAME,
@@ -143237,5 +143237,5 @@ export {
143237
143237
  isParentHeartbeatValid
143238
143238
  };
143239
143239
 
143240
- //# debugId=BCA9D4AF4D11B1C564756E2164756E21
143240
+ //# debugId=06C0F8C85F4ECBE064756E2164756E21
143241
143241
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@costrict/csc",
3
- "version": "4.2.27-beta",
3
+ "version": "4.2.28",
4
4
  "description": "costrict",
5
5
  "type": "module",
6
6
  "author": "costrict",