@costrict/csc 4.2.8-beta2 → 4.2.8

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
@@ -43388,7 +43388,7 @@ var init_errors3 = __esm(() => {
43388
43388
  "errors.cli.unableToCreateRemoteSession": "\u9519\u8BEF: \u65E0\u6CD5\u521B\u5EFA\u8FDC\u7A0B\u4F1A\u8BDD",
43389
43389
  "errors.cli.stdinTimeout": "\u8B66\u544A: 3 \u79D2\u5185\u672A\u6536\u5230 stdin \u6570\u636E\uFF0C\u5C06\u5728\u65E0\u6570\u636E\u60C5\u51B5\u4E0B\u7EE7\u7EED\u3002" + `\u5982\u679C\u4ECE\u8F83\u6162\u7684\u547D\u4EE4\u7BA1\u9053\u4F20\u5165\uFF0C\u8BF7\u663E\u5F0F\u91CD\u5B9A\u5411 stdin\uFF1A\u4F7F\u7528 < /dev/null \u8DF3\u8FC7\uFF0C\u6216\u7B49\u5F85\u66F4\u957F\u65F6\u95F4\u3002
43390
43390
  `,
43391
- "security.commandContains": "\u547D\u4EE4\u5305\u542B {message}",
43391
+ "security.commandContains": "\u5305\u542B {message}",
43392
43392
  "security.commandSubstitution": "\u547D\u4EE4\u66FF\u6362 $()",
43393
43393
  "security.processSubIn": "\u8FDB\u7A0B\u66FF\u6362 <()",
43394
43394
  "security.processSubOut": "\u8FDB\u7A0B\u66FF\u6362 >()",
@@ -63721,8 +63721,8 @@ var init_credentials = __esm(() => {
63721
63721
  import { createRequire } from "module";
63722
63722
  function getVersion() {
63723
63723
  try {
63724
- if (typeof MACRO !== "undefined" && "4.2.8-beta2")
63725
- return "4.2.8-beta2";
63724
+ if (typeof MACRO !== "undefined" && "4.2.8")
63725
+ return "4.2.8";
63726
63726
  } catch {}
63727
63727
  try {
63728
63728
  const require2 = createRequire(import.meta.url);
@@ -184019,7 +184019,7 @@ async function fetchCoStrictModels(baseUrl, accessToken) {
184019
184019
  headers: {
184020
184020
  Authorization: `Bearer ${accessToken}`,
184021
184021
  Accept: "application/json",
184022
- "User-Agent": `csc/${"4.2.8-beta2"}`
184022
+ "User-Agent": `csc/${"4.2.8"}`
184023
184023
  },
184024
184024
  signal: controller.signal
184025
184025
  });
@@ -187605,7 +187605,7 @@ var init_auth7 = __esm(() => {
187605
187605
 
187606
187606
  // src/utils/userAgent.ts
187607
187607
  function getClaudeCodeUserAgent() {
187608
- return `costrict/${"4.2.8-beta2"}`;
187608
+ return `costrict/${"4.2.8"}`;
187609
187609
  }
187610
187610
 
187611
187611
  // src/utils/workloadContext.ts
@@ -187627,7 +187627,7 @@ function getUserAgent() {
187627
187627
  const clientApp = process.env.CLAUDE_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}` : "";
187628
187628
  const workload = getWorkload();
187629
187629
  const workloadSuffix = workload ? `, workload/${workload}` : "";
187630
- return `csc/${"4.2.8-beta2"}`;
187630
+ return `csc/${"4.2.8"}`;
187631
187631
  }
187632
187632
  function getMCPUserAgent() {
187633
187633
  const parts = [];
@@ -187641,7 +187641,7 @@ function getMCPUserAgent() {
187641
187641
  parts.push(`client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}`);
187642
187642
  }
187643
187643
  const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
187644
- return `csc/${"4.2.8-beta2"}${suffix}`;
187644
+ return `csc/${"4.2.8"}${suffix}`;
187645
187645
  }
187646
187646
  function getWebFetchUserAgent() {
187647
187647
  return `Claude-User (${getClaudeCodeUserAgent()}; +https://support.anthropic.com/)`;
@@ -187761,7 +187761,7 @@ var init_user = __esm(() => {
187761
187761
  deviceId,
187762
187762
  sessionId: getSessionId(),
187763
187763
  email: getEmail(),
187764
- appVersion: "4.2.8-beta2",
187764
+ appVersion: "4.2.8",
187765
187765
  platform: getHostPlatformForAnalytics(),
187766
187766
  organizationUuid,
187767
187767
  accountUuid,
@@ -198842,7 +198842,7 @@ var init_metadata = __esm(() => {
198842
198842
  COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
198843
198843
  WHITESPACE_REGEX = /\s+/;
198844
198844
  getVersionBase = memoize_default(() => {
198845
- const match = "4.2.8-beta2".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
198845
+ const match = "4.2.8".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
198846
198846
  return match ? match[0] : undefined;
198847
198847
  });
198848
198848
  buildEnvContext = memoize_default(async () => {
@@ -198882,9 +198882,9 @@ var init_metadata = __esm(() => {
198882
198882
  isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
198883
198883
  isClaudeCodeAction: isEnvTruthy(process.env.CLAUDE_CODE_ACTION),
198884
198884
  isClaudeAiAuth: isClaudeAISubscriber(),
198885
- version: "4.2.8-beta2",
198885
+ version: "4.2.8",
198886
198886
  versionBase: getVersionBase(),
198887
- buildTime: "2026-07-01T02:28:03.350Z",
198887
+ buildTime: "2026-07-01T09:41:30.503Z",
198888
198888
  deploymentEnvironment: env4.detectDeploymentEnvironment(),
198889
198889
  ...isEnvTruthy(process.env.GITHUB_ACTIONS) && {
198890
198890
  githubEventName: process.env.GITHUB_EVENT_NAME,
@@ -199555,7 +199555,7 @@ function initialize1PEventLogging() {
199555
199555
  const platform3 = getPlatform();
199556
199556
  const attributes = {
199557
199557
  [import_semantic_conventions2.ATTR_SERVICE_NAME]: "claude-code",
199558
- [import_semantic_conventions2.ATTR_SERVICE_VERSION]: "4.2.8-beta2"
199558
+ [import_semantic_conventions2.ATTR_SERVICE_VERSION]: "4.2.8"
199559
199559
  };
199560
199560
  if (platform3 === "wsl") {
199561
199561
  const wslVersion = getWslVersion();
@@ -199582,7 +199582,7 @@ function initialize1PEventLogging() {
199582
199582
  })
199583
199583
  ]
199584
199584
  });
199585
- firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.anthropic.claude_code.events", "4.2.8-beta2");
199585
+ firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.anthropic.claude_code.events", "4.2.8");
199586
199586
  }
199587
199587
  async function reinitialize1PEventLoggingIfConfigChanged() {
199588
199588
  if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
@@ -296641,9 +296641,12 @@ function wrapOpenAIErrorForRetry(error58) {
296641
296641
  }
296642
296642
  function isStreamNetworkError(message2) {
296643
296643
  const lower = message2.toLowerCase();
296644
- return lower.includes("connection reset") || lower.includes("connection error") || lower.includes("network error") || lower.includes("network connection") || lower.includes("network interrupt") || lower.includes("econnreset") || lower.includes("epipe") || lower.includes("etimedout") || lower.includes("fetch failed") || lower.includes("aborted") || lower.includes("broken pipe") || lower.includes("reset by peer") || lower.includes("unexpected end") || lower.includes("stream closed");
296644
+ return lower.includes("connection reset") || lower.includes("connection error") || lower.includes("network error") || lower.includes("network connection") || lower.includes("network interrupt") || lower.includes("econnreset") || lower.includes("epipe") || lower.includes("etimedout") || lower.includes("fetch failed") || lower.includes("aborted") || lower.includes("broken pipe") || lower.includes("reset by peer") || lower.includes("unexpected end") || lower.includes("stream closed") || lower.includes("terminated");
296645
296645
  }
296646
296646
  function isRetryableStreamError(error58) {
296647
+ if (error58 instanceof APIUserAbortError) {
296648
+ return false;
296649
+ }
296647
296650
  if (error58 instanceof APIConnectionError) {
296648
296651
  return true;
296649
296652
  }
@@ -297135,7 +297138,7 @@ function getRateLimitResetDelayMs(error58) {
297135
297138
  return null;
297136
297139
  return Math.min(delayMs, PERSISTENT_RESET_CAP_MS);
297137
297140
  }
297138
- var abortError = () => new APIUserAbortError, DEFAULT_MAX_RETRIES2 = 10, API_ERROR_FALLBACK_MAX_RETRIES = 5, FLOOR_OUTPUT_TOKENS = 3000, MAX_529_RETRIES = 3, BASE_DELAY_MS = 500, FOREGROUND_529_RETRY_SOURCES, PERSISTENT_MAX_BACKOFF_MS, PERSISTENT_RESET_CAP_MS, HEARTBEAT_INTERVAL_MS2 = 30000, CannotRetryError, FallbackTriggeredError, DEFAULT_FAST_MODE_FALLBACK_HOLD_MS, SHORT_RETRY_THRESHOLD_MS, MIN_COOLDOWN_MS;
297141
+ var abortError = () => new APIUserAbortError, DEFAULT_MAX_RETRIES2 = 10, API_ERROR_FALLBACK_MAX_RETRIES = 10, FLOOR_OUTPUT_TOKENS = 3000, MAX_529_RETRIES = 3, BASE_DELAY_MS = 500, FOREGROUND_529_RETRY_SOURCES, PERSISTENT_MAX_BACKOFF_MS, PERSISTENT_RESET_CAP_MS, HEARTBEAT_INTERVAL_MS2 = 30000, CannotRetryError, FallbackTriggeredError, DEFAULT_FAST_MODE_FALLBACK_HOLD_MS, SHORT_RETRY_THRESHOLD_MS, MIN_COOLDOWN_MS;
297139
297142
  var init_withRetry = __esm(() => {
297140
297143
  init_sdk();
297141
297144
  init_aws();
@@ -397176,7 +397179,7 @@ function getTelemetryAttributes() {
397176
397179
  attributes["session.id"] = sessionId;
397177
397180
  }
397178
397181
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
397179
- attributes["app.version"] = "4.2.8-beta2";
397182
+ attributes["app.version"] = "4.2.8";
397180
397183
  }
397181
397184
  const oauthAccount = getOauthAccountInfo();
397182
397185
  if (oauthAccount) {
@@ -429631,7 +429634,7 @@ function initLangfuse() {
429631
429634
  flushInterval: parseInt(process.env.LANGFUSE_FLUSH_INTERVAL ?? "10", 10),
429632
429635
  mask: maskFn,
429633
429636
  environment: process.env.LANGFUSE_TRACING_ENVIRONMENT ?? "development",
429634
- release: "4.2.8-beta2",
429637
+ release: "4.2.8",
429635
429638
  exportMode: process.env.LANGFUSE_EXPORT_MODE ?? "batched",
429636
429639
  timeout: parseInt(process.env.LANGFUSE_TIMEOUT ?? "5", 10)
429637
429640
  });
@@ -467867,7 +467870,7 @@ function initSentry() {
467867
467870
  }
467868
467871
  init3({
467869
467872
  dsn,
467870
- release: typeof MACRO !== "undefined" ? "4.2.8-beta2" : undefined,
467873
+ release: typeof MACRO !== "undefined" ? "4.2.8" : undefined,
467871
467874
  environment: typeof BUILD_ENV !== "undefined" ? BUILD_ENV : "production",
467872
467875
  maxBreadcrumbs: 20,
467873
467876
  sampleRate: 1,
@@ -495758,7 +495761,7 @@ async function initializeBetaTracing(resource) {
495758
495761
  });
495759
495762
  import_api_logs5.logs.setGlobalLoggerProvider(loggerProvider);
495760
495763
  setLoggerProvider(loggerProvider);
495761
- const eventLogger = import_api_logs5.logs.getLogger("com.anthropic.claude_code.events", "4.2.8-beta2");
495764
+ const eventLogger = import_api_logs5.logs.getLogger("com.anthropic.claude_code.events", "4.2.8");
495762
495765
  setEventLogger(eventLogger);
495763
495766
  process.on("beforeExit", async () => {
495764
495767
  await loggerProvider?.forceFlush();
@@ -495798,7 +495801,7 @@ async function initializeTelemetry() {
495798
495801
  const platform5 = getPlatform();
495799
495802
  const baseAttributes = {
495800
495803
  [import_semantic_conventions14.ATTR_SERVICE_NAME]: "claude-code",
495801
- [import_semantic_conventions14.ATTR_SERVICE_VERSION]: "4.2.8-beta2"
495804
+ [import_semantic_conventions14.ATTR_SERVICE_VERSION]: "4.2.8"
495802
495805
  };
495803
495806
  if (platform5 === "wsl") {
495804
495807
  const wslVersion = getWslVersion();
@@ -495843,7 +495846,7 @@ async function initializeTelemetry() {
495843
495846
  } catch {}
495844
495847
  };
495845
495848
  registerCleanup(shutdownTelemetry2);
495846
- return meterProvider2.getMeter("com.anthropic.claude_code", "4.2.8-beta2");
495849
+ return meterProvider2.getMeter("com.anthropic.claude_code", "4.2.8");
495847
495850
  }
495848
495851
  const meterProvider = new import_sdk_metrics2.MeterProvider({
495849
495852
  resource,
@@ -495863,7 +495866,7 @@ async function initializeTelemetry() {
495863
495866
  });
495864
495867
  import_api_logs5.logs.setGlobalLoggerProvider(loggerProvider);
495865
495868
  setLoggerProvider(loggerProvider);
495866
- const eventLogger = import_api_logs5.logs.getLogger("com.anthropic.claude_code.events", "4.2.8-beta2");
495869
+ const eventLogger = import_api_logs5.logs.getLogger("com.anthropic.claude_code.events", "4.2.8");
495867
495870
  setEventLogger(eventLogger);
495868
495871
  logForDebugging("[3P telemetry] Event logger set successfully");
495869
495872
  process.on("beforeExit", async () => {
@@ -495925,7 +495928,7 @@ Current timeout: ${timeoutMs}ms
495925
495928
  }
495926
495929
  };
495927
495930
  registerCleanup(shutdownTelemetry);
495928
- return meterProvider.getMeter("com.anthropic.claude_code", "4.2.8-beta2");
495931
+ return meterProvider.getMeter("com.anthropic.claude_code", "4.2.8");
495929
495932
  }
495930
495933
  async function flushTelemetry() {
495931
495934
  const meterProvider = getMeterProvider();
@@ -496984,7 +496987,7 @@ async function installGlobalPackage(specificVersion) {
496984
496987
  logError3(new AutoUpdaterError("Another process is currently installing an update"));
496985
496988
  logEvent("tengu_auto_updater_lock_contention", {
496986
496989
  pid: process.pid,
496987
- currentVersion: "4.2.8-beta2"
496990
+ currentVersion: "4.2.8"
496988
496991
  });
496989
496992
  return { status: "in_progress" };
496990
496993
  }
@@ -496993,7 +496996,7 @@ async function installGlobalPackage(specificVersion) {
496993
496996
  if (!env4.isRunningWithBun() && env4.isNpmFromWindowsPath()) {
496994
496997
  logError3(new Error("Windows NPM detected in WSL environment"));
496995
496998
  logEvent("tengu_auto_updater_windows_npm_in_wsl", {
496996
- currentVersion: "4.2.8-beta2"
496999
+ currentVersion: "4.2.8"
496997
497000
  });
496998
497001
  return {
496999
497002
  status: "install_failed",
@@ -497539,7 +497542,7 @@ function detectLinuxGlobPatternWarnings() {
497539
497542
  }
497540
497543
  async function getDoctorDiagnostic() {
497541
497544
  const installationType = await getCurrentInstallationType();
497542
- const version7 = typeof MACRO !== "undefined" ? "4.2.8-beta2" : "unknown";
497545
+ const version7 = typeof MACRO !== "undefined" ? "4.2.8" : "unknown";
497543
497546
  const installationPath = await getInstallationPath();
497544
497547
  const invokedBinary = getInvokedBinary();
497545
497548
  const multipleInstallations = await detectMultipleInstallations();
@@ -535695,7 +535698,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
535695
535698
  const client8 = new Client3({
535696
535699
  name: "claude-code",
535697
535700
  title: "CoStrict",
535698
- version: "4.2.8-beta2",
535701
+ version: "4.2.8",
535699
535702
  description: "CoStrict agentic coding tool",
535700
535703
  websiteUrl: PRODUCT_URL
535701
535704
  }, {
@@ -536066,7 +536069,7 @@ var init_client17 = __esm(() => {
536066
536069
  const client8 = new Client3({
536067
536070
  name: "claude-code",
536068
536071
  title: "CoStrict",
536069
- version: "4.2.8-beta2",
536072
+ version: "4.2.8",
536070
536073
  description: "CoStrict agentic coding tool",
536071
536074
  websiteUrl: PRODUCT_URL
536072
536075
  }, {
@@ -537444,7 +537447,7 @@ function getInstallationEnv() {
537444
537447
  return;
537445
537448
  }
537446
537449
  function getClaudeCodeVersion() {
537447
- return "4.2.8-beta2";
537450
+ return "4.2.8";
537448
537451
  }
537449
537452
  async function getInstalledVSCodeExtensionVersion(command4) {
537450
537453
  const { stdout } = await execFileNoThrow2(command4, ["--list-extensions", "--show-versions"], {
@@ -538808,8 +538811,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
538808
538811
  const maxVersion = await getMaxVersion();
538809
538812
  if (maxVersion && gt(version8, maxVersion)) {
538810
538813
  logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version8} to ${maxVersion}`);
538811
- if (gte2("4.2.8-beta2", maxVersion)) {
538812
- logForDebugging(`Native installer: current version ${"4.2.8-beta2"} is already at or above maxVersion ${maxVersion}, skipping update`);
538814
+ if (gte2("4.2.8", maxVersion)) {
538815
+ logForDebugging(`Native installer: current version ${"4.2.8"} is already at or above maxVersion ${maxVersion}, skipping update`);
538813
538816
  logEvent("tengu_native_update_skipped_max_version", {
538814
538817
  latency_ms: Date.now() - startTime2,
538815
538818
  max_version: maxVersion,
@@ -538820,7 +538823,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
538820
538823
  version8 = maxVersion;
538821
538824
  }
538822
538825
  }
538823
- if (!forceReinstall && version8 === "4.2.8-beta2" && await versionIsAvailable(version8) && await isPossibleClaudeBinary(executablePath)) {
538826
+ if (!forceReinstall && version8 === "4.2.8" && await versionIsAvailable(version8) && await isPossibleClaudeBinary(executablePath)) {
538824
538827
  logForDebugging(`Found ${version8} at ${executablePath}, skipping install`);
538825
538828
  logEvent("tengu_native_update_complete", {
538826
538829
  latency_ms: Date.now() - startTime2,
@@ -666344,10 +666347,11 @@ async function checkRuleBasedPermissions(tool, input4, context25) {
666344
666347
  if (toolPermissionResult?.behavior === "deny") {
666345
666348
  return toolPermissionResult;
666346
666349
  }
666347
- if (!appState.toolPermissionContext.forceMode && toolPermissionResult?.behavior === "ask" && toolPermissionResult.decisionReason?.type === "rule" && toolPermissionResult.decisionReason.rule.ruleBehavior === "ask") {
666350
+ const shouldBypassPermissions = appState.toolPermissionContext.mode === "bypassPermissions" || appState.toolPermissionContext.mode === "plan" && appState.toolPermissionContext.isBypassPermissionsModeAvailable;
666351
+ if (!appState.toolPermissionContext.forceMode && !shouldBypassPermissions && toolPermissionResult?.behavior === "ask" && toolPermissionResult.decisionReason?.type === "rule" && toolPermissionResult.decisionReason.rule.ruleBehavior === "ask") {
666348
666352
  return toolPermissionResult;
666349
666353
  }
666350
- if (!appState.toolPermissionContext.forceMode && toolPermissionResult?.behavior === "ask" && toolPermissionResult.decisionReason?.type === "safetyCheck") {
666354
+ if (!appState.toolPermissionContext.forceMode && !shouldBypassPermissions && toolPermissionResult?.behavior === "ask" && toolPermissionResult.decisionReason?.type === "safetyCheck") {
666351
666355
  return toolPermissionResult;
666352
666356
  }
666353
666357
  return null;
@@ -666447,14 +666451,14 @@ async function hasPermissionsToUseToolInner(tool, input4, context25) {
666447
666451
  }
666448
666452
  return toolPermissionResult;
666449
666453
  }
666450
- if (!appState.toolPermissionContext.forceMode && toolPermissionResult?.behavior === "ask" && toolPermissionResult.decisionReason?.type === "rule" && toolPermissionResult.decisionReason.rule.ruleBehavior === "ask") {
666454
+ appState = context25.getAppState();
666455
+ const shouldBypassPermissions = appState.toolPermissionContext.mode === "bypassPermissions" || appState.toolPermissionContext.mode === "plan" && appState.toolPermissionContext.isBypassPermissionsModeAvailable;
666456
+ if (!appState.toolPermissionContext.forceMode && !shouldBypassPermissions && toolPermissionResult?.behavior === "ask" && toolPermissionResult.decisionReason?.type === "rule" && toolPermissionResult.decisionReason.rule.ruleBehavior === "ask") {
666451
666457
  return toolPermissionResult;
666452
666458
  }
666453
- if (!appState.toolPermissionContext.forceMode && toolPermissionResult?.behavior === "ask" && toolPermissionResult.decisionReason?.type === "safetyCheck") {
666459
+ if (!appState.toolPermissionContext.forceMode && !shouldBypassPermissions && toolPermissionResult?.behavior === "ask" && toolPermissionResult.decisionReason?.type === "safetyCheck") {
666454
666460
  return toolPermissionResult;
666455
666461
  }
666456
- appState = context25.getAppState();
666457
- const shouldBypassPermissions = appState.toolPermissionContext.mode === "bypassPermissions" || appState.toolPermissionContext.mode === "plan" && appState.toolPermissionContext.isBypassPermissionsModeAvailable;
666458
666462
  if (shouldBypassPermissions && !tool.requiresUserInteraction?.()) {
666459
666463
  return {
666460
666464
  behavior: "allow",
@@ -673091,7 +673095,7 @@ function Feedback({
673091
673095
  platform: env4.platform,
673092
673096
  gitRepo: envInfo.isGit,
673093
673097
  terminal: env4.terminal,
673094
- version: "4.2.8-beta2",
673098
+ version: "4.2.8",
673095
673099
  transcript: normalizeMessagesForAPI(messages),
673096
673100
  errors: sanitizedErrors,
673097
673101
  lastApiRequest: getLastAPIRequest(),
@@ -673274,7 +673278,7 @@ function Feedback({
673274
673278
  ", ",
673275
673279
  env4.terminal,
673276
673280
  ", v",
673277
- "4.2.8-beta2"
673281
+ "4.2.8"
673278
673282
  ]
673279
673283
  })
673280
673284
  ]
@@ -673371,7 +673375,7 @@ ${sanitizedDescription}
673371
673375
  ` + `**Environment Info**
673372
673376
  ` + `- Platform: ${env4.platform}
673373
673377
  ` + `- Terminal: ${env4.terminal}
673374
- ` + `- Version: ${"4.2.8-beta2"}
673378
+ ` + `- Version: ${"4.2.8"}
673375
673379
  ` + `- Feedback ID: ${feedbackId}
673376
673380
  ` + `
673377
673381
  **Errors**
@@ -675607,7 +675611,7 @@ function buildPrimarySection() {
675607
675611
  children: t("settings.status.renameHint")
675608
675612
  });
675609
675613
  return [
675610
- { label: t("settings.status.version"), value: "4.2.8-beta2" },
675614
+ { label: t("settings.status.version"), value: "4.2.8" },
675611
675615
  { label: t("settings.status.sessionName"), value: nameValue },
675612
675616
  { label: t("settings.status.sessionId"), value: sessionId },
675613
675617
  { label: t("settings.status.cwd"), value: getCwd() },
@@ -678429,7 +678433,7 @@ function Config({
678429
678433
  }
678430
678434
  })
678431
678435
  }) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_runtime190.jsx(ChannelDowngradeDialog, {
678432
- currentVersion: "4.2.8-beta2",
678436
+ currentVersion: "4.2.8",
678433
678437
  onChoice: (choice) => {
678434
678438
  setShowSubmenu(null);
678435
678439
  setTabsHidden(false);
@@ -678441,7 +678445,7 @@ function Config({
678441
678445
  autoUpdatesChannel: "stable"
678442
678446
  };
678443
678447
  if (choice === "stay") {
678444
- newSettings.minimumVersion = "4.2.8-beta2";
678448
+ newSettings.minimumVersion = "4.2.8";
678445
678449
  }
678446
678450
  updateSettingsForSource("userSettings", newSettings);
678447
678451
  setSettingsData((prev) => ({
@@ -683910,7 +683914,7 @@ function HelpV2({ onClose, commands: commands7 }) {
683910
683914
  color: "professionalBlue",
683911
683915
  children: [
683912
683916
  /* @__PURE__ */ jsx_runtime217.jsx(Tabs, {
683913
- title: process.env.USER_TYPE === "sf" ? "/help" : `CoStrict v${"4.2.8-beta2"}`,
683917
+ title: process.env.USER_TYPE === "sf" ? "/help" : `CoStrict v${"4.2.8"}`,
683914
683918
  color: "professionalBlue",
683915
683919
  defaultTab: "general",
683916
683920
  children: tabs
@@ -774508,7 +774512,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
774508
774512
  return [];
774509
774513
  }
774510
774514
  }
774511
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "4.2.8-beta2") {
774515
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "4.2.8") {
774512
774516
  if (process.env.USER_TYPE === "sf") {
774513
774517
  const changelog = "";
774514
774518
  if (changelog) {
@@ -774535,7 +774539,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "4.2.8-bet
774535
774539
  releaseNotes
774536
774540
  };
774537
774541
  }
774538
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "4.2.8-beta2") {
774542
+ function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "4.2.8") {
774539
774543
  if (process.env.USER_TYPE === "sf") {
774540
774544
  const changelog = "";
774541
774545
  if (changelog) {
@@ -777296,7 +777300,7 @@ function isNotLoggedIn() {
777296
777300
  return true;
777297
777301
  }
777298
777302
  function getLogoDisplayData() {
777299
- const version8 = process.env.DEMO_VERSION ?? "4.2.8-beta2";
777303
+ const version8 = process.env.DEMO_VERSION ?? "4.2.8";
777300
777304
  const serverUrl = getDirectConnectServerUrl();
777301
777305
  const displayPath = process.env.DEMO_VERSION ? "/code/claude" : getDisplayPath(getCwd());
777302
777306
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -777874,7 +777878,7 @@ var init_MatrixMessageLine = __esm(() => {
777874
777878
  // src/components/matrix-tactical/MatrixWelcome.tsx
777875
777879
  import { basename as basename47 } from "path";
777876
777880
  function MatrixWelcome({
777877
- version: version8 = "4.2.8-beta2",
777881
+ version: version8 = "4.2.8",
777878
777882
  projectName,
777879
777883
  cwd: cwd2,
777880
777884
  modelDisplayName,
@@ -778509,13 +778513,13 @@ function LogoV2() {
778509
778513
  const { hasReleaseNotes } = checkForReleaseNotesSync(config11.lastReleaseNotesSeen);
778510
778514
  import_react167.useEffect(() => {
778511
778515
  const currentConfig = getGlobalConfig();
778512
- if (currentConfig.lastReleaseNotesSeen === "4.2.8-beta2") {
778516
+ if (currentConfig.lastReleaseNotesSeen === "4.2.8") {
778513
778517
  return;
778514
778518
  }
778515
778519
  saveGlobalConfig((current2) => {
778516
- if (current2.lastReleaseNotesSeen === "4.2.8-beta2")
778520
+ if (current2.lastReleaseNotesSeen === "4.2.8")
778517
778521
  return current2;
778518
- return { ...current2, lastReleaseNotesSeen: "4.2.8-beta2" };
778522
+ return { ...current2, lastReleaseNotesSeen: "4.2.8" };
778519
778523
  });
778520
778524
  if (showOnboarding) {
778521
778525
  incrementProjectOnboardingSeenCount();
@@ -800453,7 +800457,7 @@ async function captureMemoryDiagnostics(trigger, dumpNumber = 0) {
800453
800457
  smapsRollup,
800454
800458
  platform: process.platform,
800455
800459
  nodeVersion: process.version,
800456
- ccVersion: "4.2.8-beta2"
800460
+ ccVersion: "4.2.8"
800457
800461
  };
800458
800462
  }
800459
800463
  async function performHeapDump(trigger = "manual", dumpNumber = 0) {
@@ -800569,7 +800573,7 @@ var init_mock_limits = __esm(() => {
800569
800573
  var call54 = async () => {
800570
800574
  return {
800571
800575
  type: "text",
800572
- value: `${"4.2.8-beta2"} (built ${"2026-07-01T02:28:03.350Z"})`
800576
+ value: `${"4.2.8"} (built ${"2026-07-01T09:41:30.503Z"})`
800573
800577
  };
800574
800578
  }, version8, version_default;
800575
800579
  var init_version2 = __esm(() => {
@@ -806987,8 +806991,8 @@ var init_tag2 = __esm(() => {
806987
806991
  import { createRequire as createRequire4 } from "module";
806988
806992
  function getVersion2() {
806989
806993
  try {
806990
- if (typeof MACRO !== "undefined" && "4.2.8-beta2")
806991
- return "4.2.8-beta2";
806994
+ if (typeof MACRO !== "undefined" && "4.2.8")
806995
+ return "4.2.8";
806992
806996
  } catch {}
806993
806997
  try {
806994
806998
  const require3 = createRequire4(import.meta.url);
@@ -817325,7 +817329,7 @@ function generateHtmlReport(data, insights) {
817325
817329
  </html>`;
817326
817330
  }
817327
817331
  function buildExportData(data, insights, facets, remoteStats) {
817328
- const version9 = typeof MACRO !== "undefined" ? "4.2.8-beta2" : "unknown";
817332
+ const version9 = typeof MACRO !== "undefined" ? "4.2.8" : "unknown";
817329
817333
  const remote_hosts_collected = remoteStats?.hosts.filter((h5) => h5.sessionCount > 0).map((h5) => h5.name);
817330
817334
  const facets_summary = {
817331
817335
  total: facets.size,
@@ -821639,7 +821643,7 @@ var init_sessionStorage = __esm(() => {
821639
821643
  init_settings2();
821640
821644
  init_slowOperations();
821641
821645
  init_uuid();
821642
- VERSION10 = typeof MACRO !== "undefined" ? "4.2.8-beta2" : "unknown";
821646
+ VERSION10 = typeof MACRO !== "undefined" ? "4.2.8" : "unknown";
821643
821647
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
821644
821648
  SKIP_FIRST_PROMPT_PATTERN2 = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
821645
821649
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -822980,7 +822984,7 @@ var init_filesystem = __esm(() => {
822980
822984
  });
822981
822985
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
822982
822986
  const nonce = randomBytes24(16).toString("hex");
822983
- return join195(getCostrictTempDir(), "bundled-skills", "4.2.8-beta2", nonce);
822987
+ return join195(getCostrictTempDir(), "bundled-skills", "4.2.8", nonce);
822984
822988
  });
822985
822989
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
822986
822990
  });
@@ -829178,7 +829182,7 @@ function computeFingerprint(messageText, version9) {
829178
829182
  }
829179
829183
  function computeFingerprintFromMessages(messages) {
829180
829184
  const firstMessageText = extractFirstMessageText(messages);
829181
- return computeFingerprint(firstMessageText, "4.2.8-beta2");
829185
+ return computeFingerprint(firstMessageText, "4.2.8");
829182
829186
  }
829183
829187
  var FINGERPRINT_SALT = "59cf53e54c78";
829184
829188
  var init_fingerprint = () => {};
@@ -829588,7 +829592,7 @@ function getAnthropicEnvMetadata() {
829588
829592
  function getBuildAgeMinutes() {
829589
829593
  if (false)
829590
829594
  ;
829591
- const buildTime = new Date("2026-07-01T02:28:03.350Z").getTime();
829595
+ const buildTime = new Date("2026-07-01T09:41:30.503Z").getTime();
829592
829596
  if (isNaN(buildTime))
829593
829597
  return;
829594
829598
  return Math.floor((Date.now() - buildTime) / 60000);
@@ -834935,7 +834939,7 @@ async function sideQuery(opts) {
834935
834939
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
834936
834940
  }
834937
834941
  const messageText = extractFirstUserMessageText(messages);
834938
- const fingerprint = computeFingerprint(messageText, "4.2.8-beta2");
834942
+ const fingerprint = computeFingerprint(messageText, "4.2.8");
834939
834943
  const attributionHeader = getAttributionHeader(fingerprint);
834940
834944
  const systemBlocks = [
834941
834945
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -838310,7 +838314,7 @@ function buildSystemInitMessage(inputs) {
838310
838314
  slash_commands: inputs.commands.filter((c7) => c7.userInvocable !== false).map((c7) => c7.name),
838311
838315
  apiKeySource: getAnthropicApiKeyWithSource().source,
838312
838316
  betas: getSdkBetas(),
838313
- claude_code_version: "4.2.8-beta2",
838317
+ claude_code_version: "4.2.8",
838314
838318
  output_style: outputStyle2,
838315
838319
  agents: inputs.agents.map((agent) => agent.agentType),
838316
838320
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill) => skill.name),
@@ -843159,7 +843163,7 @@ function appendToLog(path50, message2) {
843159
843163
  cwd: getFsImplementation().cwd(),
843160
843164
  userType: process.env.USER_TYPE,
843161
843165
  sessionId: getSessionId(),
843162
- version: "4.2.8-beta2"
843166
+ version: "4.2.8"
843163
843167
  };
843164
843168
  getLogWriter(path50).write(messageWithTimestamp);
843165
843169
  }
@@ -863961,7 +863965,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
863961
863965
  project_dir: getOriginalCwd(),
863962
863966
  added_dirs: addedDirs
863963
863967
  },
863964
- version: "4.2.8-beta2",
863968
+ version: "4.2.8",
863965
863969
  output_style: {
863966
863970
  name: outputStyleName
863967
863971
  },
@@ -882540,7 +882544,7 @@ async function submitTranscriptShare(messages, trigger, appearanceId) {
882540
882544
  } catch {}
882541
882545
  const data = {
882542
882546
  trigger,
882543
- version: "4.2.8-beta2",
882547
+ version: "4.2.8",
882544
882548
  platform: process.platform,
882545
882549
  transcript,
882546
882550
  subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
@@ -883795,7 +883799,7 @@ function getReleaseType(current2, latest) {
883795
883799
  return "patch";
883796
883800
  }
883797
883801
  async function checkNewAutoUpdate(callbacks) {
883798
- const currentVersion = "4.2.8-beta2";
883802
+ const currentVersion = "4.2.8";
883799
883803
  logForDebugging(`[newAutoUpdater] checking, current: ${currentVersion}`);
883800
883804
  if (isNewAutoUpdaterDisabled()) {
883801
883805
  return { action: "skip", currentVersion, latestVersion: null };
@@ -894671,7 +894675,7 @@ function WelcomeV2() {
894671
894675
  dimColor: true,
894672
894676
  children: [
894673
894677
  "v",
894674
- "4.2.8-beta2",
894678
+ "4.2.8",
894675
894679
  " "
894676
894680
  ]
894677
894681
  })
@@ -894737,7 +894741,7 @@ function WelcomeV2() {
894737
894741
  dimColor: true,
894738
894742
  children: [
894739
894743
  "v",
894740
- "4.2.8-beta2",
894744
+ "4.2.8",
894741
894745
  " "
894742
894746
  ]
894743
894747
  })
@@ -894839,7 +894843,7 @@ function AppleTerminalWelcomeV2({ theme: theme2, welcomeMessage }) {
894839
894843
  dimColor: true,
894840
894844
  children: [
894841
894845
  "v",
894842
- "4.2.8-beta2",
894846
+ "4.2.8",
894843
894847
  " "
894844
894848
  ]
894845
894849
  })
@@ -894905,7 +894909,7 @@ function AppleTerminalWelcomeV2({ theme: theme2, welcomeMessage }) {
894905
894909
  dimColor: true,
894906
894910
  children: [
894907
894911
  "v",
894908
- "4.2.8-beta2",
894912
+ "4.2.8",
894909
894913
  " "
894910
894914
  ]
894911
894915
  })
@@ -895845,7 +895849,7 @@ function completeOnboarding() {
895845
895849
  saveGlobalConfig((current2) => ({
895846
895850
  ...current2,
895847
895851
  hasCompletedOnboarding: true,
895848
- lastOnboardingVersion: "4.2.8-beta2"
895852
+ lastOnboardingVersion: "4.2.8"
895849
895853
  }));
895850
895854
  }
895851
895855
  function showDialog(root6, renderer) {
@@ -897224,7 +897228,7 @@ function registerWeixinBuiltinPlugin() {
897224
897228
  registerBuiltinPlugin({
897225
897229
  name: "weixin",
897226
897230
  description: "WeChat channel integration. Enables inbound WeChat messages via channels and provides reply/send_typing MCP tools. Configure with `ccb weixin login` and enable for a session with `--channels plugin:weixin@builtin`.",
897227
- version: "4.2.8-beta2",
897231
+ version: "4.2.8",
897228
897232
  defaultEnabled: true,
897229
897233
  mcpServers: {
897230
897234
  weixin: {
@@ -909708,7 +909712,7 @@ async function startMCPServer(cwd3, debug5, verbose) {
909708
909712
  setCwd(cwd3);
909709
909713
  const server2 = new Server({
909710
909714
  name: "claude/tengu",
909711
- version: "4.2.8-beta2"
909715
+ version: "4.2.8"
909712
909716
  }, {
909713
909717
  capabilities: {
909714
909718
  tools: {}
@@ -911987,7 +911991,7 @@ function createHealthRoutes(sessionManager) {
911987
911991
  const uptime2 = process.uptime() * 1000;
911988
911992
  return c7.json({
911989
911993
  status: "ok",
911990
- version: "4.2.8-beta2",
911994
+ version: "4.2.8",
911991
911995
  uptime_ms: Math.round(uptime2),
911992
911996
  active_sessions: sessionManager.getActiveCount()
911993
911997
  });
@@ -912257,7 +912261,7 @@ function getMacroDefines() {
912257
912261
  commit = execSync3("git rev-parse --short HEAD", { encoding: "utf-8", cwd: __dirname }).trim();
912258
912262
  } catch {}
912259
912263
  return {
912260
- "MACRO.VERSION": JSON.stringify("4.2.8-beta2"),
912264
+ "MACRO.VERSION": JSON.stringify("4.2.8"),
912261
912265
  "MACRO.BUILD_TIME": JSON.stringify(new Date().toISOString()),
912262
912266
  "MACRO.COMMIT": JSON.stringify(commit),
912263
912267
  "MACRO.FEEDBACK_CHANNEL": JSON.stringify(""),
@@ -918172,7 +918176,7 @@ __export(exports_update, {
918172
918176
  });
918173
918177
  async function update() {
918174
918178
  logEvent("tengu_update_check", {});
918175
- writeToStdout(`${t("cli.update.currentVersion", "Current version")}: ${"4.2.8-beta2"}
918179
+ writeToStdout(`${t("cli.update.currentVersion", "Current version")}: ${"4.2.8"}
918176
918180
  `);
918177
918181
  const channel5 = getInitialSettings()?.autoUpdatesChannel ?? "latest";
918178
918182
  writeToStdout(`${t("cli.update.checkingUpdates", { channel: channel5 }, "Checking for updates to {channel} version...")}
@@ -918247,8 +918251,8 @@ async function update() {
918247
918251
  writeToStdout(`${t("cli.update.managedByHomebrew", "CoStrict is managed by Homebrew.")}
918248
918252
  `);
918249
918253
  const latest = await getLatestVersion(channel5);
918250
- if (latest && !gte2("4.2.8-beta2", latest)) {
918251
- writeToStdout(`${t("cli.update.updateAvailable", { current: "4.2.8-beta2", latest }, "Update available: {current} \u2192 {latest}")}
918254
+ if (latest && !gte2("4.2.8", latest)) {
918255
+ writeToStdout(`${t("cli.update.updateAvailable", { current: "4.2.8", latest }, "Update available: {current} \u2192 {latest}")}
918252
918256
  `);
918253
918257
  writeToStdout(`
918254
918258
  `);
@@ -918264,8 +918268,8 @@ async function update() {
918264
918268
  writeToStdout(`${t("cli.update.managedByWinget", "CoStrict is managed by winget.")}
918265
918269
  `);
918266
918270
  const latest = await getLatestVersion(channel5);
918267
- if (latest && !gte2("4.2.8-beta2", latest)) {
918268
- writeToStdout(`${t("cli.update.updateAvailable", { current: "4.2.8-beta2", latest }, "Update available: {current} \u2192 {latest}")}
918271
+ if (latest && !gte2("4.2.8", latest)) {
918272
+ writeToStdout(`${t("cli.update.updateAvailable", { current: "4.2.8", latest }, "Update available: {current} \u2192 {latest}")}
918269
918273
  `);
918270
918274
  writeToStdout(`
918271
918275
  `);
@@ -918281,8 +918285,8 @@ async function update() {
918281
918285
  writeToStdout(`${t("cli.update.managedByApk", "CoStrict is managed by apk.")}
918282
918286
  `);
918283
918287
  const latest = await getLatestVersion(channel5);
918284
- if (latest && !gte2("4.2.8-beta2", latest)) {
918285
- writeToStdout(`${t("cli.update.updateAvailable", { current: "4.2.8-beta2", latest }, "Update available: {current} \u2192 {latest}")}
918288
+ if (latest && !gte2("4.2.8", latest)) {
918289
+ writeToStdout(`${t("cli.update.updateAvailable", { current: "4.2.8", latest }, "Update available: {current} \u2192 {latest}")}
918286
918290
  `);
918287
918291
  writeToStdout(`
918288
918292
  `);
@@ -918347,11 +918351,11 @@ async function update() {
918347
918351
  `);
918348
918352
  await gracefulShutdown(1);
918349
918353
  }
918350
- if (result2.latestVersion === "4.2.8-beta2") {
918351
- writeToStdout(source_default.green(t("cli.update.upToDateVersion", { version: "4.2.8-beta2" }, "CoStrict is up to date ({version})")) + `
918354
+ if (result2.latestVersion === "4.2.8") {
918355
+ writeToStdout(source_default.green(t("cli.update.upToDateVersion", { version: "4.2.8" }, "CoStrict is up to date ({version})")) + `
918352
918356
  `);
918353
918357
  } else {
918354
- writeToStdout(source_default.green(t("cli.update.successfullyUpdated", { from: "4.2.8-beta2", to: String(result2.latestVersion) }, "Successfully updated from {from} to version {to}")) + `
918358
+ writeToStdout(source_default.green(t("cli.update.successfullyUpdated", { from: "4.2.8", to: String(result2.latestVersion) }, "Successfully updated from {from} to version {to}")) + `
918355
918359
  `);
918356
918360
  regenerateCompletionCache();
918357
918361
  }
@@ -918411,12 +918415,12 @@ async function update() {
918411
918415
  `);
918412
918416
  await gracefulShutdown(1);
918413
918417
  }
918414
- if (latestVersion === "4.2.8-beta2") {
918415
- writeToStdout(source_default.green(t("cli.update.upToDateVersion", { version: "4.2.8-beta2" }, "CoStrict is up to date ({version})")) + `
918418
+ if (latestVersion === "4.2.8") {
918419
+ writeToStdout(source_default.green(t("cli.update.upToDateVersion", { version: "4.2.8" }, "CoStrict is up to date ({version})")) + `
918416
918420
  `);
918417
918421
  await gracefulShutdown(0);
918418
918422
  }
918419
- writeToStdout(`${t("cli.update.newVersionAvailable", { latest: String(latestVersion), current: "4.2.8-beta2" }, "New version available: {latest} (current: {current})")}
918423
+ writeToStdout(`${t("cli.update.newVersionAvailable", { latest: String(latestVersion), current: "4.2.8" }, "New version available: {latest} (current: {current})")}
918420
918424
  `);
918421
918425
  writeToStdout(`${t("cli.update.installing", "Installing update...")}
918422
918426
  `);
@@ -918461,7 +918465,7 @@ async function update() {
918461
918465
  logForDebugging(`update: Installation status: ${result.status}`);
918462
918466
  switch (result.status) {
918463
918467
  case "success":
918464
- writeToStdout(source_default.green(t("cli.update.successfullyUpdated", { from: "4.2.8-beta2", to: String(latestVersion) }, "Successfully updated from {from} to version {to}")) + `
918468
+ writeToStdout(source_default.green(t("cli.update.successfullyUpdated", { from: "4.2.8", to: String(latestVersion) }, "Successfully updated from {from} to version {to}")) + `
918465
918469
  `);
918466
918470
  regenerateCompletionCache();
918467
918471
  break;
@@ -920681,7 +920685,7 @@ ${assistantAddendum}` : assistantAddendum;
920681
920685
  }
920682
920686
  }
920683
920687
  logForDiagnosticsNoPII("info", "started", {
920684
- version: "4.2.8-beta2",
920688
+ version: "4.2.8",
920685
920689
  is_native_binary: isInBundledMode()
920686
920690
  });
920687
920691
  registerCleanup(async () => {
@@ -921162,7 +921166,7 @@ Session: ${directConnectConfig.sessionId}`, "info");
921162
921166
  sshSession = await createSSHSession2({
921163
921167
  host: _pendingSSH.host,
921164
921168
  cwd: _pendingSSH.cwd,
921165
- localVersion: "4.2.8-beta2",
921169
+ localVersion: "4.2.8",
921166
921170
  permissionMode: _pendingSSH.permissionMode,
921167
921171
  dangerouslySkipPermissions: _pendingSSH.dangerouslySkipPermissions,
921168
921172
  extraCliArgs: _pendingSSH.extraCliArgs,
@@ -921634,7 +921638,7 @@ Usage: csc --remote "your task description"`, () => gracefulShutdown(1));
921634
921638
  pendingHookMessages
921635
921639
  }, renderAndRun);
921636
921640
  }
921637
- }).version("4.2.8-beta2 (CoStrict)", "-v, --version", cliDesc("cli.option.version", "Output the version number"));
921641
+ }).version("4.2.8 (CoStrict)", "-v, --version", cliDesc("cli.option.version", "Output the version number"));
921638
921642
  program2.addOption(new Option("-w, --worktree [name]", cliDesc("cli.option.worktree", "Create a new git worktree for this session (optionally specify a name)")).hideHelp());
921639
921643
  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());
921640
921644
  if (canUserConfigureAdvisor()) {
@@ -922350,10 +922354,10 @@ if (process.env.CLAUDE_CODE_REMOTE === "true") {
922350
922354
  async function main2() {
922351
922355
  const args = process.argv.slice(2);
922352
922356
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
922353
- const d4 = new Date("2026-07-01T02:28:03.350Z");
922357
+ const d4 = new Date("2026-07-01T09:41:30.503Z");
922354
922358
  const p2 = (n3) => String(n3).padStart(2, "0");
922355
922359
  const buildTime = `${d4.getFullYear()}/${p2(d4.getMonth() + 1)}/${p2(d4.getDate())} ${p2(d4.getHours())}:${p2(d4.getMinutes())}:${p2(d4.getSeconds())}`;
922356
- console.log(`${"4.2.8-beta2"} (commit: ${"0d7f05777"}, built: ${buildTime})`);
922360
+ console.log(`${"4.2.8"} (commit: ${"353b792d4"}, built: ${buildTime})`);
922357
922361
  return;
922358
922362
  }
922359
922363
  const { terminateBatchWorker: terminateBatchWorker2 } = await Promise.resolve().then(() => (init_spawn(), exports_spawn));
@@ -922423,7 +922427,7 @@ async function main2() {
922423
922427
  registerPermissionHandler(server2, handler) {
922424
922428
  server2.setNotificationHandler(ChannelPermissionRequestNotificationSchema2(), async (notification) => handler(notification.params));
922425
922429
  }
922426
- }, "4.2.8-beta2");
922430
+ }, "4.2.8");
922427
922431
  return;
922428
922432
  }
922429
922433
  if (args[0] === "--daemon-worker" || args[0]?.startsWith("--daemon-worker=")) {
@@ -922521,5 +922525,5 @@ async function main2() {
922521
922525
  }
922522
922526
  main2();
922523
922527
 
922524
- //# debugId=6E4236F81BDDD39164756E2164756E21
922528
+ //# debugId=13ED2747AD1152AF64756E2164756E21
922525
922529
  //# sourceMappingURL=cli.js.map
@@ -508,8 +508,8 @@ async function saveCoStrictCredentials(credentials) {
508
508
  import { createRequire } from "module";
509
509
  function getVersion() {
510
510
  try {
511
- if (typeof MACRO !== "undefined" && "4.2.8-beta2")
512
- return "4.2.8-beta2";
511
+ if (typeof MACRO !== "undefined" && "4.2.8")
512
+ return "4.2.8";
513
513
  } catch {}
514
514
  try {
515
515
  const require2 = createRequire(import.meta.url);
@@ -2790,5 +2790,5 @@ export {
2790
2790
  startBatchWorker
2791
2791
  };
2792
2792
 
2793
- //# debugId=589DA7871ED8C11C64756E2164756E21
2793
+ //# debugId=DEF8126068895F0964756E2164756E21
2794
2794
  //# sourceMappingURL=batchWorker.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@costrict/csc",
3
- "version": "4.2.8-beta2",
3
+ "version": "4.2.8",
4
4
  "description": "costrict",
5
5
  "type": "module",
6
6
  "author": "costrict",