localclawd 1.9.8 → 1.9.9

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.mjs +152 -99
  2. package/package.json +1 -1
package/dist/cli.mjs CHANGED
@@ -87608,7 +87608,7 @@ var init_isEqual = __esm(() => {
87608
87608
 
87609
87609
  // src/utils/userAgent.ts
87610
87610
  function getClaudeCodeUserAgent() {
87611
- return `claude-code/${"1.9.8"}`;
87611
+ return `claude-code/${"1.9.9"}`;
87612
87612
  }
87613
87613
 
87614
87614
  // src/utils/workloadContext.ts
@@ -87630,7 +87630,7 @@ function getUserAgent() {
87630
87630
  const clientApp = process.env.CLAUDE_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}` : "";
87631
87631
  const workload = getWorkload();
87632
87632
  const workloadSuffix = workload ? `, workload/${workload}` : "";
87633
- return `claude-cli/${"1.9.8"} (${process.env.USER_TYPE}, ${process.env.CLAUDE_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
87633
+ return `claude-cli/${"1.9.9"} (${process.env.USER_TYPE}, ${process.env.CLAUDE_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
87634
87634
  }
87635
87635
  function getMCPUserAgent() {
87636
87636
  const parts = [];
@@ -87644,7 +87644,7 @@ function getMCPUserAgent() {
87644
87644
  parts.push(`client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}`);
87645
87645
  }
87646
87646
  const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
87647
- return `claude-code/${"1.9.8"}${suffix}`;
87647
+ return `claude-code/${"1.9.9"}${suffix}`;
87648
87648
  }
87649
87649
  function getWebFetchUserAgent() {
87650
87650
  return `Claude-User (${getClaudeCodeUserAgent()}; +https://support.anthropic.com/)`;
@@ -130840,7 +130840,7 @@ function getAttributionHeader(fingerprint) {
130840
130840
  if (!isAttributionHeaderEnabled()) {
130841
130841
  return "";
130842
130842
  }
130843
- const version = `${"1.9.8"}.${fingerprint}`;
130843
+ const version = `${"1.9.9"}.${fingerprint}`;
130844
130844
  const entrypoint = process.env.CLAUDE_CODE_ENTRYPOINT ?? "unknown";
130845
130845
  const cch = "";
130846
130846
  const workload = getWorkload();
@@ -147029,7 +147029,7 @@ var init_metadata = __esm(() => {
147029
147029
  COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
147030
147030
  WHITESPACE_REGEX = /\s+/;
147031
147031
  getVersionBase = memoize_default(() => {
147032
- const match = "1.9.8".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
147032
+ const match = "1.9.9".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
147033
147033
  return match ? match[0] : undefined;
147034
147034
  });
147035
147035
  buildEnvContext = memoize_default(async () => {
@@ -147069,9 +147069,9 @@ var init_metadata = __esm(() => {
147069
147069
  isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
147070
147070
  isClaudeCodeAction: isEnvTruthy(process.env.CLAUDE_CODE_ACTION),
147071
147071
  isClaudeAiAuth: isClaudeAISubscriber(),
147072
- version: "1.9.8",
147072
+ version: "1.9.9",
147073
147073
  versionBase: getVersionBase(),
147074
- buildTime: "2026-05-07T19:50:53.354Z",
147074
+ buildTime: "2026-05-07T20:02:04.277Z",
147075
147075
  deploymentEnvironment: env3.detectDeploymentEnvironment(),
147076
147076
  ...isEnvTruthy(process.env.GITHUB_ACTIONS) && {
147077
147077
  githubEventName: process.env.GITHUB_EVENT_NAME,
@@ -179647,7 +179647,7 @@ function getTelemetryAttributes() {
179647
179647
  attributes["session.id"] = sessionId;
179648
179648
  }
179649
179649
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
179650
- attributes["app.version"] = "1.9.8";
179650
+ attributes["app.version"] = "1.9.9";
179651
179651
  }
179652
179652
  const oauthAccount = getOauthAccountInfo();
179653
179653
  if (oauthAccount) {
@@ -242451,7 +242451,7 @@ function getInstallationEnv() {
242451
242451
  return;
242452
242452
  }
242453
242453
  function getClaudeCodeVersion() {
242454
- return "1.9.8";
242454
+ return "1.9.9";
242455
242455
  }
242456
242456
  async function getInstalledVSCodeExtensionVersion(command) {
242457
242457
  const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
@@ -247725,7 +247725,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
247725
247725
  const client4 = new Client({
247726
247726
  name: "localclawd",
247727
247727
  title: "localclawd",
247728
- version: "1.9.8",
247728
+ version: "1.9.9",
247729
247729
  description: "local-first AI coding tool",
247730
247730
  websiteUrl: PRODUCT_URL
247731
247731
  }, {
@@ -248067,7 +248067,7 @@ var init_client9 = __esm(() => {
248067
248067
  const client4 = new Client({
248068
248068
  name: "localclawd",
248069
248069
  title: "localclawd",
248070
- version: "1.9.8",
248070
+ version: "1.9.9",
248071
248071
  description: "local-first AI coding tool",
248072
248072
  websiteUrl: PRODUCT_URL
248073
248073
  }, {
@@ -262469,7 +262469,7 @@ function computeFingerprint(messageText, version) {
262469
262469
  }
262470
262470
  function computeFingerprintFromMessages(messages) {
262471
262471
  const firstMessageText = extractFirstMessageText(messages);
262472
- return computeFingerprint(firstMessageText, "1.9.8");
262472
+ return computeFingerprint(firstMessageText, "1.9.9");
262473
262473
  }
262474
262474
  var FINGERPRINT_SALT = "59cf53e54c78";
262475
262475
  var init_fingerprint = () => {};
@@ -262511,7 +262511,7 @@ async function sideQuery(opts) {
262511
262511
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
262512
262512
  }
262513
262513
  const messageText = extractFirstUserMessageText(messages);
262514
- const fingerprint = computeFingerprint(messageText, "1.9.8");
262514
+ const fingerprint = computeFingerprint(messageText, "1.9.9");
262515
262515
  const attributionHeader = getAttributionHeader(fingerprint);
262516
262516
  const systemBlocks = [
262517
262517
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -283259,7 +283259,7 @@ var init_user = __esm(() => {
283259
283259
  deviceId,
283260
283260
  sessionId: getSessionId(),
283261
283261
  email: getEmail(),
283262
- appVersion: "1.9.8",
283262
+ appVersion: "1.9.9",
283263
283263
  platform: getHostPlatformForAnalytics(),
283264
283264
  organizationUuid,
283265
283265
  accountUuid,
@@ -284324,7 +284324,7 @@ async function initializeBetaTracing(resource) {
284324
284324
  });
284325
284325
  logs.setGlobalLoggerProvider(loggerProvider);
284326
284326
  setLoggerProvider(loggerProvider);
284327
- const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "1.9.8");
284327
+ const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "1.9.9");
284328
284328
  setEventLogger(eventLogger);
284329
284329
  process.on("beforeExit", async () => {
284330
284330
  await loggerProvider?.forceFlush();
@@ -284364,7 +284364,7 @@ async function initializeTelemetry() {
284364
284364
  const platform2 = getPlatform();
284365
284365
  const baseAttributes = {
284366
284366
  [ATTR_SERVICE_NAME4]: "claude-code",
284367
- [ATTR_SERVICE_VERSION4]: "1.9.8"
284367
+ [ATTR_SERVICE_VERSION4]: "1.9.9"
284368
284368
  };
284369
284369
  if (platform2 === "wsl") {
284370
284370
  const wslVersion = getWslVersion();
@@ -284409,7 +284409,7 @@ async function initializeTelemetry() {
284409
284409
  } catch {}
284410
284410
  };
284411
284411
  registerCleanup(shutdownTelemetry2);
284412
- return meterProvider2.getMeter("com.anthropic.claude_code", "1.9.8");
284412
+ return meterProvider2.getMeter("com.anthropic.claude_code", "1.9.9");
284413
284413
  }
284414
284414
  const meterProvider = new MeterProvider4({
284415
284415
  resource,
@@ -284429,7 +284429,7 @@ async function initializeTelemetry() {
284429
284429
  });
284430
284430
  logs.setGlobalLoggerProvider(loggerProvider);
284431
284431
  setLoggerProvider(loggerProvider);
284432
- const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "1.9.8");
284432
+ const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "1.9.9");
284433
284433
  setEventLogger(eventLogger);
284434
284434
  logForDebugging("[3P telemetry] Event logger set successfully");
284435
284435
  process.on("beforeExit", async () => {
@@ -284491,7 +284491,7 @@ Current timeout: ${timeoutMs}ms
284491
284491
  }
284492
284492
  };
284493
284493
  registerCleanup(shutdownTelemetry);
284494
- return meterProvider.getMeter("com.anthropic.claude_code", "1.9.8");
284494
+ return meterProvider.getMeter("com.anthropic.claude_code", "1.9.9");
284495
284495
  }
284496
284496
  async function flushTelemetry() {
284497
284497
  const meterProvider = getMeterProvider();
@@ -285681,7 +285681,7 @@ function detectLinuxGlobPatternWarnings() {
285681
285681
  }
285682
285682
  async function getDoctorDiagnostic() {
285683
285683
  const installationType = await getCurrentInstallationType();
285684
- const version = typeof MACRO !== "undefined" ? "1.9.8" : "unknown";
285684
+ const version = typeof MACRO !== "undefined" ? "1.9.9" : "unknown";
285685
285685
  const installationPath = await getInstallationPath();
285686
285686
  const invokedBinary = getInvokedBinary();
285687
285687
  const multipleInstallations = await detectMultipleInstallations();
@@ -286622,8 +286622,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
286622
286622
  const maxVersion = await getMaxVersion();
286623
286623
  if (maxVersion && gt(version, maxVersion)) {
286624
286624
  logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version} to ${maxVersion}`);
286625
- if (gte("1.9.8", maxVersion)) {
286626
- logForDebugging(`Native installer: current version ${"1.9.8"} is already at or above maxVersion ${maxVersion}, skipping update`);
286625
+ if (gte("1.9.9", maxVersion)) {
286626
+ logForDebugging(`Native installer: current version ${"1.9.9"} is already at or above maxVersion ${maxVersion}, skipping update`);
286627
286627
  logEvent("tengu_native_update_skipped_max_version", {
286628
286628
  latency_ms: Date.now() - startTime,
286629
286629
  max_version: maxVersion,
@@ -286634,7 +286634,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
286634
286634
  version = maxVersion;
286635
286635
  }
286636
286636
  }
286637
- if (!forceReinstall && version === "1.9.8" && await versionIsAvailable(version) && await isPossibleLocalClawdBinary(executablePath)) {
286637
+ if (!forceReinstall && version === "1.9.9" && await versionIsAvailable(version) && await isPossibleLocalClawdBinary(executablePath)) {
286638
286638
  logForDebugging(`Found ${version} at ${executablePath}, skipping install`);
286639
286639
  logEvent("tengu_native_update_complete", {
286640
286640
  latency_ms: Date.now() - startTime,
@@ -331835,7 +331835,7 @@ function getAnthropicEnvMetadata() {
331835
331835
  function getBuildAgeMinutes() {
331836
331836
  if (false)
331837
331837
  ;
331838
- const buildTime = new Date("2026-05-07T19:50:53.354Z").getTime();
331838
+ const buildTime = new Date("2026-05-07T20:02:04.277Z").getTime();
331839
331839
  if (isNaN(buildTime))
331840
331840
  return;
331841
331841
  return Math.floor((Date.now() - buildTime) / 60000);
@@ -360667,7 +360667,7 @@ function Feedback({
360667
360667
  platform: env3.platform,
360668
360668
  gitRepo: envInfo.isGit,
360669
360669
  terminal: env3.terminal,
360670
- version: "1.9.8",
360670
+ version: "1.9.9",
360671
360671
  transcript: normalizeMessagesForAPI(messages),
360672
360672
  errors: sanitizedErrors,
360673
360673
  lastApiRequest: getLastAPIRequest(),
@@ -360859,7 +360859,7 @@ function Feedback({
360859
360859
  ", ",
360860
360860
  env3.terminal,
360861
360861
  ", v",
360862
- "1.9.8"
360862
+ "1.9.9"
360863
360863
  ]
360864
360864
  }, undefined, true, undefined, this)
360865
360865
  ]
@@ -360965,7 +360965,7 @@ ${sanitizedDescription}
360965
360965
  ` + `**Environment Info**
360966
360966
  ` + `- Platform: ${env3.platform}
360967
360967
  ` + `- Terminal: ${env3.terminal}
360968
- ` + `- Version: ${"1.9.8"}
360968
+ ` + `- Version: ${"1.9.9"}
360969
360969
  ` + `- Feedback ID: ${feedbackId}
360970
360970
  ` + `
360971
360971
  **Errors**
@@ -363593,7 +363593,7 @@ function buildPrimarySection() {
363593
363593
  }, undefined, false, undefined, this);
363594
363594
  return [{
363595
363595
  label: "Version",
363596
- value: "1.9.8"
363596
+ value: "1.9.9"
363597
363597
  }, {
363598
363598
  label: "Session name",
363599
363599
  value: nameValue
@@ -368274,7 +368274,7 @@ function Config({
368274
368274
  }
368275
368275
  }, undefined, false, undefined, this)
368276
368276
  }, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime176.jsxDEV(ChannelDowngradeDialog, {
368277
- currentVersion: "1.9.8",
368277
+ currentVersion: "1.9.9",
368278
368278
  onChoice: (choice) => {
368279
368279
  setShowSubmenu(null);
368280
368280
  setTabsHidden(false);
@@ -368286,7 +368286,7 @@ function Config({
368286
368286
  autoUpdatesChannel: "stable"
368287
368287
  };
368288
368288
  if (choice === "stay") {
368289
- newSettings.minimumVersion = "1.9.8";
368289
+ newSettings.minimumVersion = "1.9.9";
368290
368290
  }
368291
368291
  updateSettingsForSource("userSettings", newSettings);
368292
368292
  setSettingsData((prev_27) => ({
@@ -377465,7 +377465,26 @@ function KeepGoingDone({
377465
377465
  ]
377466
377466
  }, undefined, true, undefined, this);
377467
377467
  }
377468
- var React58, jsx_dev_runtime196, sessionRound = 0, sessionFocus = "", sessionOriginalMode = "default", sessionSelfDirective = "", call22 = async (onDone, context7, args) => {
377468
+ function logKgCrash(error5, context7) {
377469
+ const msg = error5 instanceof Error ? error5.stack ?? error5.message : String(error5);
377470
+ try {
377471
+ const { appendFileSync: appendFileSync3, mkdirSync: mkdirSync6 } = __require("fs");
377472
+ const { homedir: homedir26 } = __require("os");
377473
+ const { join: join117 } = __require("path");
377474
+ const dir = join117(homedir26(), ".claude");
377475
+ mkdirSync6(dir, { recursive: true });
377476
+ appendFileSync3(join117(dir, "crash.log"), `[${new Date().toISOString()}] keepgoing ${context7}: ${msg}
377477
+ `);
377478
+ } catch {}
377479
+ }
377480
+ function safeSend(fn) {
377481
+ try {
377482
+ fn().catch((e) => logKgCrash(e, "send"));
377483
+ } catch (e) {
377484
+ logKgCrash(e, "send-sync");
377485
+ }
377486
+ }
377487
+ async function callInner2(onDone, context7, args) {
377469
377488
  const rawArgs = args?.trim() ?? "";
377470
377489
  const { extractChain: extractChain2 } = await Promise.resolve().then(() => (init_commandChaining(), exports_commandChaining));
377471
377490
  const { ownArgs: chainedArgs } = extractChain2(rawArgs);
@@ -377490,10 +377509,14 @@ var React58, jsx_dev_runtime196, sessionRound = 0, sessionFocus = "", sessionOri
377490
377509
  }
377491
377510
  }));
377492
377511
  let lastText = "";
377493
- context7.setMessages((prev) => {
377494
- lastText = extractLastAssistantText(prev);
377495
- return prev;
377496
- });
377512
+ try {
377513
+ context7.setMessages((prev) => {
377514
+ lastText = extractLastAssistantText(prev);
377515
+ return prev;
377516
+ });
377517
+ } catch (e) {
377518
+ logKgCrash(e, "extractLastAssistantText");
377519
+ }
377497
377520
  const contextCompacted = lastText === NO_CONTENT_MESSAGE || lastText.trim() === "";
377498
377521
  if (!contextCompacted) {
377499
377522
  const newDirective = extractSelfDirective(lastText);
@@ -377509,13 +377532,13 @@ var React58, jsx_dev_runtime196, sessionRound = 0, sessionFocus = "", sessionOri
377509
377532
  const header = `\uD83E\uDD16 *Round ${sessionRound}*
377510
377533
  ${preview}${suffix}`;
377511
377534
  if (isTelegramActive())
377512
- sendTelegramMessage(header);
377535
+ safeSend(() => sendTelegramMessage(header));
377513
377536
  if (isSlackActive())
377514
- sendSlackMessage(header);
377537
+ safeSend(() => sendSlackMessage(header));
377515
377538
  if (isDiscordActive())
377516
- sendDiscordMessage(header);
377539
+ safeSend(() => sendDiscordMessage(header));
377517
377540
  if (isSignalActive())
377518
- sendSignalMessage(header);
377541
+ safeSend(() => sendSignalMessage(header));
377519
377542
  }
377520
377543
  if (globalStopSignal.get()) {
377521
377544
  globalStopSignal.reset();
@@ -377529,13 +377552,13 @@ ${preview}${suffix}`;
377529
377552
  const stopMsg = `✅ *keepgoing stopped*
377530
377553
  Round ${finalRound} · stopped via /stop`;
377531
377554
  if (isTelegramActive())
377532
- sendTelegramMessage(stopMsg);
377555
+ safeSend(() => sendTelegramMessage(stopMsg));
377533
377556
  if (isSlackActive())
377534
- sendSlackMessage(stopMsg);
377557
+ safeSend(() => sendSlackMessage(stopMsg));
377535
377558
  if (isDiscordActive())
377536
- sendDiscordMessage(stopMsg);
377559
+ safeSend(() => sendDiscordMessage(stopMsg));
377537
377560
  if (isSignalActive())
377538
- sendSignalMessage(stopMsg);
377561
+ safeSend(() => sendSignalMessage(stopMsg));
377539
377562
  return /* @__PURE__ */ jsx_dev_runtime196.jsxDEV(KeepGoingDone, {
377540
377563
  round: finalRound,
377541
377564
  reason: "stopped via /stop",
@@ -377549,12 +377572,19 @@ Round ${finalRound} · stopped via /stop`;
377549
377572
  const prompt = useOnboarding ? buildOnboardingPrompt(round, focus, externalMsg, contextCompacted) : buildSelfDirectedPrompt(round, sessionSelfDirective, focus, externalMsg);
377550
377573
  const nextCmd = focus ? `/keepgoing ${focus}` : "/keepgoing";
377551
377574
  const handleReady = () => {
377552
- enqueue({ value: nextCmd, mode: "prompt", isMeta: true });
377553
- onDone(undefined, {
377554
- display: "system",
377555
- shouldQuery: true,
377556
- metaMessages: [prompt]
377557
- });
377575
+ try {
377576
+ enqueue({ value: nextCmd, mode: "prompt", isMeta: true });
377577
+ onDone(undefined, {
377578
+ display: "system",
377579
+ shouldQuery: true,
377580
+ metaMessages: [prompt]
377581
+ });
377582
+ } catch (e) {
377583
+ logKgCrash(e, "handleReady");
377584
+ try {
377585
+ onDone(`⚠ keepgoing recovered from internal error`, { display: "system" });
377586
+ } catch {}
377587
+ }
377558
377588
  };
377559
377589
  return /* @__PURE__ */ jsx_dev_runtime196.jsxDEV(KeepGoingBanner, {
377560
377590
  round,
@@ -377564,6 +377594,21 @@ Round ${finalRound} · stopped via /stop`;
377564
377594
  showBypassWarning,
377565
377595
  onReady: handleReady
377566
377596
  }, undefined, false, undefined, this);
377597
+ }
377598
+ var React58, jsx_dev_runtime196, sessionRound = 0, sessionFocus = "", sessionOriginalMode = "default", sessionSelfDirective = "", call22 = async (onDone, context7, args) => {
377599
+ try {
377600
+ return await callInner2(onDone, context7, args);
377601
+ } catch (error5) {
377602
+ logKgCrash(error5, "call");
377603
+ const msg = error5 instanceof Error ? error5.message : String(error5);
377604
+ try {
377605
+ const rawArgs = args?.trim() ?? "";
377606
+ const nextCmd = rawArgs ? `/keepgoing ${rawArgs}` : "/keepgoing";
377607
+ enqueue({ value: nextCmd, mode: "prompt", isMeta: true });
377608
+ } catch {}
377609
+ onDone(`⚠ keepgoing error (restarting): ${msg}`, { display: "system" });
377610
+ return null;
377611
+ }
377567
377612
  };
377568
377613
  var init_keepgoing = __esm(() => {
377569
377614
  init_ink2();
@@ -385924,7 +385969,7 @@ function Help(t0) {
385924
385969
  let t6;
385925
385970
  if ($2[31] !== tabs) {
385926
385971
  t6 = /* @__PURE__ */ jsx_dev_runtime221.jsxDEV(Tabs, {
385927
- title: `localclawd v${"1.9.8"}`,
385972
+ title: `localclawd v${"1.9.9"}`,
385928
385973
  color: "professionalBlue",
385929
385974
  defaultTab: "general",
385930
385975
  children: tabs
@@ -403186,7 +403231,7 @@ function getRecentReleaseNotes(currentVersion, previousVersion, changelogContent
403186
403231
  }
403187
403232
  return [];
403188
403233
  }
403189
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.9.8") {
403234
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.9.9") {
403190
403235
  if (process.env.USER_TYPE === "ant") {
403191
403236
  const changelog = MACRO.VERSION_CHANGELOG;
403192
403237
  if (changelog) {
@@ -403213,7 +403258,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.9.8") {
403213
403258
  releaseNotes
403214
403259
  };
403215
403260
  }
403216
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.9.8") {
403261
+ function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.9.9") {
403217
403262
  if (process.env.USER_TYPE === "ant") {
403218
403263
  const changelog = MACRO.VERSION_CHANGELOG;
403219
403264
  if (changelog) {
@@ -403370,7 +403415,7 @@ function getRecentActivitySync() {
403370
403415
  return cachedActivity;
403371
403416
  }
403372
403417
  function getLogoDisplayData() {
403373
- const version = process.env.DEMO_VERSION ?? "1.9.8";
403418
+ const version = process.env.DEMO_VERSION ?? "1.9.9";
403374
403419
  const serverUrl = getDirectConnectServerUrl();
403375
403420
  const displayPath = process.env.DEMO_VERSION ? "/code/claude" : getDisplayPath(getCwd());
403376
403421
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -404470,7 +404515,7 @@ function Logo() {
404470
404515
  if ($2[2] === Symbol.for("react.memo_cache_sentinel")) {
404471
404516
  t2 = () => {
404472
404517
  const currentConfig = getGlobalConfig();
404473
- if (currentConfig.lastReleaseNotesSeen === "1.9.8") {
404518
+ if (currentConfig.lastReleaseNotesSeen === "1.9.9") {
404474
404519
  return;
404475
404520
  }
404476
404521
  saveGlobalConfig(_temp326);
@@ -405129,12 +405174,12 @@ function Logo() {
405129
405174
  return t41;
405130
405175
  }
405131
405176
  function _temp326(current) {
405132
- if (current.lastReleaseNotesSeen === "1.9.8") {
405177
+ if (current.lastReleaseNotesSeen === "1.9.9") {
405133
405178
  return current;
405134
405179
  }
405135
405180
  return {
405136
405181
  ...current,
405137
- lastReleaseNotesSeen: "1.9.8"
405182
+ lastReleaseNotesSeen: "1.9.9"
405138
405183
  };
405139
405184
  }
405140
405185
  function _temp241(s_0) {
@@ -435613,7 +435658,7 @@ async function captureMemoryDiagnostics(trigger, dumpNumber = 0) {
435613
435658
  smapsRollup,
435614
435659
  platform: process.platform,
435615
435660
  nodeVersion: process.version,
435616
- ccVersion: "1.9.8"
435661
+ ccVersion: "1.9.9"
435617
435662
  };
435618
435663
  }
435619
435664
  async function performHeapDump(trigger = "manual", dumpNumber = 0) {
@@ -436198,7 +436243,7 @@ var init_bridge_kick = __esm(() => {
436198
436243
  var call88 = async () => {
436199
436244
  return {
436200
436245
  type: "text",
436201
- value: `${"1.9.8"} (built ${"2026-05-07T19:50:53.354Z"})`
436246
+ value: `${"1.9.9"} (built ${"2026-05-07T20:02:04.277Z"})`
436202
436247
  };
436203
436248
  }, version, version_default;
436204
436249
  var init_version = __esm(() => {
@@ -444142,7 +444187,7 @@ function generateHtmlReport(data, insights) {
444142
444187
  </html>`;
444143
444188
  }
444144
444189
  function buildExportData(data, insights, facets, remoteStats) {
444145
- const version2 = typeof MACRO !== "undefined" ? "1.9.8" : "unknown";
444190
+ const version2 = typeof MACRO !== "undefined" ? "1.9.9" : "unknown";
444146
444191
  const remote_hosts_collected = remoteStats?.hosts.filter((h) => h.sessionCount > 0).map((h) => h.name);
444147
444192
  const facets_summary = {
444148
444193
  total: facets.size,
@@ -448345,7 +448390,7 @@ var init_sessionStorage = __esm(() => {
448345
448390
  init_settings2();
448346
448391
  init_slowOperations();
448347
448392
  init_uuid();
448348
- VERSION6 = typeof MACRO !== "undefined" ? "1.9.8" : "unknown";
448393
+ VERSION6 = typeof MACRO !== "undefined" ? "1.9.9" : "unknown";
448349
448394
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
448350
448395
  SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
448351
448396
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -449546,7 +449591,7 @@ var init_filesystem = __esm(() => {
449546
449591
  });
449547
449592
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
449548
449593
  const nonce = randomBytes20(16).toString("hex");
449549
- return join151(getClaudeTempDir(), "bundled-skills", "1.9.8", nonce);
449594
+ return join151(getClaudeTempDir(), "bundled-skills", "1.9.9", nonce);
449550
449595
  });
449551
449596
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
449552
449597
  });
@@ -458783,7 +458828,7 @@ function buildSystemInitMessage(inputs) {
458783
458828
  slash_commands: inputs.commands.filter((c5) => c5.userInvocable !== false).map((c5) => c5.name),
458784
458829
  apiKeySource: getAnthropicApiKeyWithSource().source,
458785
458830
  betas: getSdkBetas(),
458786
- claude_code_version: "1.9.8",
458831
+ claude_code_version: "1.9.9",
458787
458832
  output_style: outputStyle2,
458788
458833
  agents: inputs.agents.map((agent) => agent.agentType),
458789
458834
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill) => skill.name),
@@ -472940,7 +472985,7 @@ var init_useVoiceEnabled = __esm(() => {
472940
472985
  function getSemverPart(version2) {
472941
472986
  return `${import_semver10.major(version2, { loose: true })}.${import_semver10.minor(version2, { loose: true })}.${import_semver10.patch(version2, { loose: true })}`;
472942
472987
  }
472943
- function useUpdateNotification(updatedVersion, initialVersion = "1.9.8") {
472988
+ function useUpdateNotification(updatedVersion, initialVersion = "1.9.9") {
472944
472989
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react214.useState(() => getSemverPart(initialVersion));
472945
472990
  if (!updatedVersion) {
472946
472991
  return null;
@@ -472980,7 +473025,7 @@ function AutoUpdater({
472980
473025
  return;
472981
473026
  }
472982
473027
  if (false) {}
472983
- const currentVersion = "1.9.8";
473028
+ const currentVersion = "1.9.9";
472984
473029
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
472985
473030
  let latestVersion = await getLatestVersion(channel);
472986
473031
  const isDisabled = isAutoUpdaterDisabled();
@@ -473191,12 +473236,12 @@ function NativeAutoUpdater({
473191
473236
  logEvent("tengu_native_auto_updater_start", {});
473192
473237
  try {
473193
473238
  const maxVersion = await getMaxVersion();
473194
- if (maxVersion && gt("1.9.8", maxVersion)) {
473239
+ if (maxVersion && gt("1.9.9", maxVersion)) {
473195
473240
  const msg = await getMaxVersionMessage();
473196
473241
  setMaxVersionIssue(msg ?? "affects your version");
473197
473242
  }
473198
473243
  const result = await installLatest(channel);
473199
- const currentVersion = "1.9.8";
473244
+ const currentVersion = "1.9.9";
473200
473245
  const latencyMs = Date.now() - startTime;
473201
473246
  if (result.lockFailed) {
473202
473247
  logEvent("tengu_native_auto_updater_lock_contention", {
@@ -473331,17 +473376,17 @@ function PackageManagerAutoUpdater(t0) {
473331
473376
  const maxVersion = await getMaxVersion();
473332
473377
  if (maxVersion && latest && gt(latest, maxVersion)) {
473333
473378
  logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
473334
- if (gte("1.9.8", maxVersion)) {
473335
- logForDebugging(`PackageManagerAutoUpdater: current version ${"1.9.8"} is already at or above maxVersion ${maxVersion}, skipping update`);
473379
+ if (gte("1.9.9", maxVersion)) {
473380
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"1.9.9"} is already at or above maxVersion ${maxVersion}, skipping update`);
473336
473381
  setUpdateAvailable(false);
473337
473382
  return;
473338
473383
  }
473339
473384
  latest = maxVersion;
473340
473385
  }
473341
- const hasUpdate = latest && !gte("1.9.8", latest) && !shouldSkipVersion(latest);
473386
+ const hasUpdate = latest && !gte("1.9.9", latest) && !shouldSkipVersion(latest);
473342
473387
  setUpdateAvailable(!!hasUpdate);
473343
473388
  if (hasUpdate) {
473344
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.9.8"} -> ${latest}`);
473389
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.9.9"} -> ${latest}`);
473345
473390
  }
473346
473391
  };
473347
473392
  $2[0] = t1;
@@ -473375,7 +473420,7 @@ function PackageManagerAutoUpdater(t0) {
473375
473420
  wrap: "truncate",
473376
473421
  children: [
473377
473422
  "currentVersion: ",
473378
- "1.9.8"
473423
+ "1.9.9"
473379
473424
  ]
473380
473425
  }, undefined, true, undefined, this);
473381
473426
  $2[3] = verbose;
@@ -480935,7 +480980,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
480935
480980
  project_dir: getOriginalCwd(),
480936
480981
  added_dirs: addedDirs
480937
480982
  },
480938
- version: "1.9.8",
480983
+ version: "1.9.9",
480939
480984
  output_style: {
480940
480985
  name: outputStyleName
480941
480986
  },
@@ -492507,7 +492552,7 @@ async function submitTranscriptShare(messages, trigger, appearanceId) {
492507
492552
  } catch {}
492508
492553
  const data = {
492509
492554
  trigger,
492510
- version: "1.9.8",
492555
+ version: "1.9.9",
492511
492556
  platform: process.platform,
492512
492557
  transcript,
492513
492558
  subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
@@ -509416,7 +509461,7 @@ function appendToLog(path17, message) {
509416
509461
  cwd: getFsImplementation().cwd(),
509417
509462
  userType: process.env.USER_TYPE,
509418
509463
  sessionId: getSessionId(),
509419
- version: "1.9.8"
509464
+ version: "1.9.9"
509420
509465
  };
509421
509466
  getLogWriter(path17).write(messageWithTimestamp);
509422
509467
  }
@@ -513440,8 +513485,8 @@ async function getEnvLessBridgeConfig() {
513440
513485
  }
513441
513486
  async function checkEnvLessBridgeMinVersion() {
513442
513487
  const cfg = await getEnvLessBridgeConfig();
513443
- if (cfg.min_version && lt("1.9.8", cfg.min_version)) {
513444
- return `Your version of localclawd (${"1.9.8"}) is too old for Remote Control.
513488
+ if (cfg.min_version && lt("1.9.9", cfg.min_version)) {
513489
+ return `Your version of localclawd (${"1.9.9"}) is too old for Remote Control.
513445
513490
  Version ${cfg.min_version} or higher is required. Run \`localclawd update\` to update.`;
513446
513491
  }
513447
513492
  return null;
@@ -513913,7 +513958,7 @@ async function initBridgeCore(params) {
513913
513958
  const rawApi = createBridgeApiClient({
513914
513959
  baseUrl,
513915
513960
  getAccessToken,
513916
- runnerVersion: "1.9.8",
513961
+ runnerVersion: "1.9.9",
513917
513962
  onDebug: logForDebugging,
513918
513963
  onAuth401,
513919
513964
  getTrustedDeviceToken
@@ -519632,7 +519677,7 @@ async function startMCPServer(cwd3, debug4, verbose) {
519632
519677
  setCwd(cwd3);
519633
519678
  const server = new Server({
519634
519679
  name: "claude/tengu",
519635
- version: "1.9.8"
519680
+ version: "1.9.9"
519636
519681
  }, {
519637
519682
  capabilities: {
519638
519683
  tools: {}
@@ -520713,7 +520758,7 @@ function WelcomeLogo() {
520713
520758
  dimColor: true,
520714
520759
  children: [
520715
520760
  "v",
520716
- "1.9.8"
520761
+ "1.9.9"
520717
520762
  ]
520718
520763
  }, undefined, true, undefined, this)
520719
520764
  ]
@@ -520904,7 +520949,7 @@ __export(exports_update, {
520904
520949
  });
520905
520950
  async function update() {
520906
520951
  logEvent("tengu_update_check", {});
520907
- writeToStdout(`Current version: ${"1.9.8"}
520952
+ writeToStdout(`Current version: ${"1.9.9"}
520908
520953
  `);
520909
520954
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
520910
520955
  writeToStdout(`Checking for updates to ${channel} version...
@@ -520979,8 +521024,8 @@ async function update() {
520979
521024
  writeToStdout(`localclawd is managed by Homebrew.
520980
521025
  `);
520981
521026
  const latest = await getLatestVersion(channel);
520982
- if (latest && !gte("1.9.8", latest)) {
520983
- writeToStdout(`Update available: ${"1.9.8"} → ${latest}
521027
+ if (latest && !gte("1.9.9", latest)) {
521028
+ writeToStdout(`Update available: ${"1.9.9"} → ${latest}
520984
521029
  `);
520985
521030
  writeToStdout(`
520986
521031
  `);
@@ -520996,8 +521041,8 @@ async function update() {
520996
521041
  writeToStdout(`localclawd is managed by winget.
520997
521042
  `);
520998
521043
  const latest = await getLatestVersion(channel);
520999
- if (latest && !gte("1.9.8", latest)) {
521000
- writeToStdout(`Update available: ${"1.9.8"} → ${latest}
521044
+ if (latest && !gte("1.9.9", latest)) {
521045
+ writeToStdout(`Update available: ${"1.9.9"} → ${latest}
521001
521046
  `);
521002
521047
  writeToStdout(`
521003
521048
  `);
@@ -521011,8 +521056,8 @@ async function update() {
521011
521056
  writeToStdout(`localclawd is managed by apk.
521012
521057
  `);
521013
521058
  const latest = await getLatestVersion(channel);
521014
- if (latest && !gte("1.9.8", latest)) {
521015
- writeToStdout(`Update available: ${"1.9.8"} → ${latest}
521059
+ if (latest && !gte("1.9.9", latest)) {
521060
+ writeToStdout(`Update available: ${"1.9.9"} → ${latest}
521016
521061
  `);
521017
521062
  writeToStdout(`
521018
521063
  `);
@@ -521077,11 +521122,11 @@ async function update() {
521077
521122
  `);
521078
521123
  await gracefulShutdown(1);
521079
521124
  }
521080
- if (result.latestVersion === "1.9.8") {
521081
- writeToStdout(source_default.green(`localclawd is up to date (${"1.9.8"})`) + `
521125
+ if (result.latestVersion === "1.9.9") {
521126
+ writeToStdout(source_default.green(`localclawd is up to date (${"1.9.9"})`) + `
521082
521127
  `);
521083
521128
  } else {
521084
- writeToStdout(source_default.green(`Successfully updated from ${"1.9.8"} to version ${result.latestVersion}`) + `
521129
+ writeToStdout(source_default.green(`Successfully updated from ${"1.9.9"} to version ${result.latestVersion}`) + `
521085
521130
  `);
521086
521131
  await regenerateCompletionCache();
521087
521132
  }
@@ -521141,12 +521186,12 @@ async function update() {
521141
521186
  `);
521142
521187
  await gracefulShutdown(1);
521143
521188
  }
521144
- if (latestVersion === "1.9.8") {
521145
- writeToStdout(source_default.green(`localclawd is up to date (${"1.9.8"})`) + `
521189
+ if (latestVersion === "1.9.9") {
521190
+ writeToStdout(source_default.green(`localclawd is up to date (${"1.9.9"})`) + `
521146
521191
  `);
521147
521192
  await gracefulShutdown(0);
521148
521193
  }
521149
- writeToStdout(`New version available: ${latestVersion} (current: ${"1.9.8"})
521194
+ writeToStdout(`New version available: ${latestVersion} (current: ${"1.9.9"})
521150
521195
  `);
521151
521196
  writeToStdout(`Installing update...
521152
521197
  `);
@@ -521191,7 +521236,7 @@ async function update() {
521191
521236
  logForDebugging(`update: Installation status: ${status2}`);
521192
521237
  switch (status2) {
521193
521238
  case "success":
521194
- writeToStdout(source_default.green(`Successfully updated from ${"1.9.8"} to version ${latestVersion}`) + `
521239
+ writeToStdout(source_default.green(`Successfully updated from ${"1.9.9"} to version ${latestVersion}`) + `
521195
521240
  `);
521196
521241
  await regenerateCompletionCache();
521197
521242
  break;
@@ -522433,7 +522478,7 @@ Run with --debug for more details.
522433
522478
  }
522434
522479
  }
522435
522480
  logForDiagnosticsNoPII("info", "started", {
522436
- version: "1.9.8",
522481
+ version: "1.9.9",
522437
522482
  is_native_binary: isInBundledMode()
522438
522483
  });
522439
522484
  registerCleanup(async () => {
@@ -523217,7 +523262,7 @@ Usage: localclawd --remote "your task description"`, () => gracefulShutdown(1));
523217
523262
  pendingHookMessages
523218
523263
  }, renderAndRun);
523219
523264
  }
523220
- }).version("1.9.8 (localclawd)", "-v, --version", "Output the version number");
523265
+ }).version("1.9.9 (localclawd)", "-v, --version", "Output the version number");
523221
523266
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
523222
523267
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
523223
523268
  if (canUserConfigureAdvisor()) {
@@ -523731,7 +523776,7 @@ if (false) {}
523731
523776
  async function main2() {
523732
523777
  const args = process.argv.slice(2);
523733
523778
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
523734
- console.log(`${"1.9.8"} (localclawd)`);
523779
+ console.log(`${"1.9.9"} (localclawd)`);
523735
523780
  return;
523736
523781
  }
523737
523782
  const {
@@ -523802,9 +523847,17 @@ async function main2() {
523802
523847
  process.on("unhandledRejection", (reason) => {
523803
523848
  const msg = reason instanceof Error ? reason.stack ?? reason.message : String(reason);
523804
523849
  process.stderr.write(`
523805
- localclawd: unhandled error — ${msg}
523850
+ localclawd: unhandled error (continuing) — ${msg}
523806
523851
  `);
523807
- process.exit(1);
523852
+ try {
523853
+ const { appendFileSync: appendFileSync4, mkdirSync: mkdirSync6 } = __require("fs");
523854
+ const { homedir: homedir40 } = __require("os");
523855
+ const { join: join169 } = __require("path");
523856
+ const dir = join169(homedir40(), ".claude");
523857
+ mkdirSync6(dir, { recursive: true });
523858
+ appendFileSync4(join169(dir, "crash.log"), `[${new Date().toISOString()}] unhandledRejection: ${msg}
523859
+ `);
523860
+ } catch {}
523808
523861
  });
523809
523862
  main2().catch((err2) => {
523810
523863
  const msg = err2 instanceof Error ? err2.stack ?? err2.message : String(err2);
@@ -523814,4 +523867,4 @@ localclawd crashed: ${msg}
523814
523867
  process.exit(1);
523815
523868
  });
523816
523869
 
523817
- //# debugId=F0B21E147347D4CC64756E2164756E21
523870
+ //# debugId=7C85E9F9DFBCA5CA64756E2164756E21
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "localclawd",
3
- "version": "1.9.8",
3
+ "version": "1.9.9",
4
4
  "description": "Local-first coding CLI for vLLM, Ollama, and OpenAI-compatible backends.",
5
5
  "private": false,
6
6
  "type": "module",