localclawd 1.8.6 → 1.8.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.
Files changed (2) hide show
  1. package/dist/cli.mjs +115 -98
  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.8.6"}`;
87611
+ return `claude-code/${"1.8.8"}`;
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.8.6"} (${process.env.USER_TYPE}, ${process.env.CLAUDE_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
87633
+ return `claude-cli/${"1.8.8"} (${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.8.6"}${suffix}`;
87647
+ return `claude-code/${"1.8.8"}${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.8.6"}.${fingerprint}`;
130843
+ const version = `${"1.8.8"}.${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.8.6".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
147032
+ const match = "1.8.8".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.8.6",
147072
+ version: "1.8.8",
147073
147073
  versionBase: getVersionBase(),
147074
- buildTime: "2026-05-07T17:03:06.068Z",
147074
+ buildTime: "2026-05-07T17:26:12.076Z",
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.8.6";
179650
+ attributes["app.version"] = "1.8.8";
179651
179651
  }
179652
179652
  const oauthAccount = getOauthAccountInfo();
179653
179653
  if (oauthAccount) {
@@ -242448,7 +242448,7 @@ function getInstallationEnv() {
242448
242448
  return;
242449
242449
  }
242450
242450
  function getClaudeCodeVersion() {
242451
- return "1.8.6";
242451
+ return "1.8.8";
242452
242452
  }
242453
242453
  async function getInstalledVSCodeExtensionVersion(command) {
242454
242454
  const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
@@ -247722,7 +247722,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
247722
247722
  const client4 = new Client({
247723
247723
  name: "localclawd",
247724
247724
  title: "localclawd",
247725
- version: "1.8.6",
247725
+ version: "1.8.8",
247726
247726
  description: "local-first AI coding tool",
247727
247727
  websiteUrl: PRODUCT_URL
247728
247728
  }, {
@@ -248064,7 +248064,7 @@ var init_client9 = __esm(() => {
248064
248064
  const client4 = new Client({
248065
248065
  name: "localclawd",
248066
248066
  title: "localclawd",
248067
- version: "1.8.6",
248067
+ version: "1.8.8",
248068
248068
  description: "local-first AI coding tool",
248069
248069
  websiteUrl: PRODUCT_URL
248070
248070
  }, {
@@ -262466,7 +262466,7 @@ function computeFingerprint(messageText, version) {
262466
262466
  }
262467
262467
  function computeFingerprintFromMessages(messages) {
262468
262468
  const firstMessageText = extractFirstMessageText(messages);
262469
- return computeFingerprint(firstMessageText, "1.8.6");
262469
+ return computeFingerprint(firstMessageText, "1.8.8");
262470
262470
  }
262471
262471
  var FINGERPRINT_SALT = "59cf53e54c78";
262472
262472
  var init_fingerprint = () => {};
@@ -262508,7 +262508,7 @@ async function sideQuery(opts) {
262508
262508
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
262509
262509
  }
262510
262510
  const messageText = extractFirstUserMessageText(messages);
262511
- const fingerprint = computeFingerprint(messageText, "1.8.6");
262511
+ const fingerprint = computeFingerprint(messageText, "1.8.8");
262512
262512
  const attributionHeader = getAttributionHeader(fingerprint);
262513
262513
  const systemBlocks = [
262514
262514
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -283256,7 +283256,7 @@ var init_user = __esm(() => {
283256
283256
  deviceId,
283257
283257
  sessionId: getSessionId(),
283258
283258
  email: getEmail(),
283259
- appVersion: "1.8.6",
283259
+ appVersion: "1.8.8",
283260
283260
  platform: getHostPlatformForAnalytics(),
283261
283261
  organizationUuid,
283262
283262
  accountUuid,
@@ -284321,7 +284321,7 @@ async function initializeBetaTracing(resource) {
284321
284321
  });
284322
284322
  logs.setGlobalLoggerProvider(loggerProvider);
284323
284323
  setLoggerProvider(loggerProvider);
284324
- const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "1.8.6");
284324
+ const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "1.8.8");
284325
284325
  setEventLogger(eventLogger);
284326
284326
  process.on("beforeExit", async () => {
284327
284327
  await loggerProvider?.forceFlush();
@@ -284361,7 +284361,7 @@ async function initializeTelemetry() {
284361
284361
  const platform2 = getPlatform();
284362
284362
  const baseAttributes = {
284363
284363
  [ATTR_SERVICE_NAME4]: "claude-code",
284364
- [ATTR_SERVICE_VERSION4]: "1.8.6"
284364
+ [ATTR_SERVICE_VERSION4]: "1.8.8"
284365
284365
  };
284366
284366
  if (platform2 === "wsl") {
284367
284367
  const wslVersion = getWslVersion();
@@ -284406,7 +284406,7 @@ async function initializeTelemetry() {
284406
284406
  } catch {}
284407
284407
  };
284408
284408
  registerCleanup(shutdownTelemetry2);
284409
- return meterProvider2.getMeter("com.anthropic.claude_code", "1.8.6");
284409
+ return meterProvider2.getMeter("com.anthropic.claude_code", "1.8.8");
284410
284410
  }
284411
284411
  const meterProvider = new MeterProvider4({
284412
284412
  resource,
@@ -284426,7 +284426,7 @@ async function initializeTelemetry() {
284426
284426
  });
284427
284427
  logs.setGlobalLoggerProvider(loggerProvider);
284428
284428
  setLoggerProvider(loggerProvider);
284429
- const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "1.8.6");
284429
+ const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "1.8.8");
284430
284430
  setEventLogger(eventLogger);
284431
284431
  logForDebugging("[3P telemetry] Event logger set successfully");
284432
284432
  process.on("beforeExit", async () => {
@@ -284488,7 +284488,7 @@ Current timeout: ${timeoutMs}ms
284488
284488
  }
284489
284489
  };
284490
284490
  registerCleanup(shutdownTelemetry);
284491
- return meterProvider.getMeter("com.anthropic.claude_code", "1.8.6");
284491
+ return meterProvider.getMeter("com.anthropic.claude_code", "1.8.8");
284492
284492
  }
284493
284493
  async function flushTelemetry() {
284494
284494
  const meterProvider = getMeterProvider();
@@ -285678,7 +285678,7 @@ function detectLinuxGlobPatternWarnings() {
285678
285678
  }
285679
285679
  async function getDoctorDiagnostic() {
285680
285680
  const installationType = await getCurrentInstallationType();
285681
- const version = typeof MACRO !== "undefined" ? "1.8.6" : "unknown";
285681
+ const version = typeof MACRO !== "undefined" ? "1.8.8" : "unknown";
285682
285682
  const installationPath = await getInstallationPath();
285683
285683
  const invokedBinary = getInvokedBinary();
285684
285684
  const multipleInstallations = await detectMultipleInstallations();
@@ -286619,8 +286619,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
286619
286619
  const maxVersion = await getMaxVersion();
286620
286620
  if (maxVersion && gt(version, maxVersion)) {
286621
286621
  logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version} to ${maxVersion}`);
286622
- if (gte("1.8.6", maxVersion)) {
286623
- logForDebugging(`Native installer: current version ${"1.8.6"} is already at or above maxVersion ${maxVersion}, skipping update`);
286622
+ if (gte("1.8.8", maxVersion)) {
286623
+ logForDebugging(`Native installer: current version ${"1.8.8"} is already at or above maxVersion ${maxVersion}, skipping update`);
286624
286624
  logEvent("tengu_native_update_skipped_max_version", {
286625
286625
  latency_ms: Date.now() - startTime,
286626
286626
  max_version: maxVersion,
@@ -286631,7 +286631,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
286631
286631
  version = maxVersion;
286632
286632
  }
286633
286633
  }
286634
- if (!forceReinstall && version === "1.8.6" && await versionIsAvailable(version) && await isPossibleLocalClawdBinary(executablePath)) {
286634
+ if (!forceReinstall && version === "1.8.8" && await versionIsAvailable(version) && await isPossibleLocalClawdBinary(executablePath)) {
286635
286635
  logForDebugging(`Found ${version} at ${executablePath}, skipping install`);
286636
286636
  logEvent("tengu_native_update_complete", {
286637
286637
  latency_ms: Date.now() - startTime,
@@ -322837,15 +322837,27 @@ async function fetchServerWorkflowList(url3) {
322837
322837
  }
322838
322838
  }
322839
322839
  async function fetchServerWorkflow(url3, name) {
322840
- try {
322841
- const filename = name.endsWith(".json") ? name : `${name}.json`;
322842
- const res = await fetch(`${url3}/userdata/workflows/${encodeURIComponent(filename)}`);
322843
- if (!res.ok)
322844
- return null;
322845
- return res.json();
322846
- } catch {
322847
- return null;
322840
+ const filename = name.endsWith(".json") ? name : `${name}.json`;
322841
+ const candidates = [
322842
+ `${url3}/userdata/workflows/${encodeURIComponent(filename)}`,
322843
+ `${url3}/userdata/${encodeURIComponent(filename)}`
322844
+ ];
322845
+ for (const candidate of candidates) {
322846
+ try {
322847
+ const res = await fetch(candidate);
322848
+ if (res.ok) {
322849
+ try {
322850
+ const data = await res.json();
322851
+ return { data };
322852
+ } catch {
322853
+ return { error: `HTTP 200 but response is not JSON at ${candidate}` };
322854
+ }
322855
+ }
322856
+ } catch {}
322848
322857
  }
322858
+ return { error: `Not found. Tried:
322859
+ ${candidates.join(`
322860
+ `)}` };
322849
322861
  }
322850
322862
  function extractOutputImages(item) {
322851
322863
  const images = [];
@@ -323071,7 +323083,8 @@ var init_imagePipeline = __esm(() => {
323071
323083
  defaultCfg: 7,
323072
323084
  defaultSampler: "euler",
323073
323085
  defaultModel: "",
323074
- outputDir: ".localclawd/image-pipeline/generated"
323086
+ outputDir: ".localclawd/image-pipeline/generated",
323087
+ defaultWorkflow: "z_image_turbo"
323075
323088
  };
323076
323089
  EXAMPLE_PROMPT = {
323077
323090
  name: "example-character",
@@ -323121,8 +323134,8 @@ var init_imagePipeline = __esm(() => {
323121
323134
  inputs: { samples: ["3", 0], vae: ["4", 2] }
323122
323135
  },
323123
323136
  "9": {
323124
- class_type: "SaveImage",
323125
- inputs: { filename_prefix: "localclawd", images: ["8", 0] }
323137
+ class_type: "PreviewImage",
323138
+ inputs: { images: ["8", 0] }
323126
323139
  }
323127
323140
  };
323128
323141
  Z_IMAGE_TURBO_WORKFLOW = {
@@ -323149,7 +323162,7 @@ var init_imagePipeline = __esm(() => {
323149
323162
  }
323150
323163
  },
323151
323164
  "8": { class_type: "VAEDecode", inputs: { samples: ["3", 0], vae: ["29", 0] } },
323152
- "9": { class_type: "SaveImage", inputs: { filename_prefix: "z-image-turbo", images: ["8", 0] } }
323165
+ "9": { class_type: "PreviewImage", inputs: { images: ["8", 0] } }
323153
323166
  };
323154
323167
  });
323155
323168
 
@@ -323358,9 +323371,10 @@ var init_GenerateImageTool = __esm(() => {
323358
323371
  const allImageMeta = Object.values(result.outputs).flatMap((o) => o.images ?? []);
323359
323372
  const imgMeta = allImageMeta.find((img) => img.filename === firstImage);
323360
323373
  const subfolder = imgMeta?.subfolder ?? "";
323374
+ const imgType = imgMeta?.type ?? "output";
323361
323375
  let rawBytes = null;
323362
323376
  try {
323363
- const params = new URLSearchParams({ filename: firstImage, subfolder, type: "output" });
323377
+ const params = new URLSearchParams({ filename: firstImage, subfolder, type: imgType });
323364
323378
  const res = await fetch(`${backendUrl}/view?${params}`);
323365
323379
  if (res.ok) {
323366
323380
  rawBytes = Buffer.from(await res.arrayBuffer());
@@ -331868,7 +331882,7 @@ function getAnthropicEnvMetadata() {
331868
331882
  function getBuildAgeMinutes() {
331869
331883
  if (false)
331870
331884
  ;
331871
- const buildTime = new Date("2026-05-07T17:03:06.068Z").getTime();
331885
+ const buildTime = new Date("2026-05-07T17:26:12.076Z").getTime();
331872
331886
  if (isNaN(buildTime))
331873
331887
  return;
331874
331888
  return Math.floor((Date.now() - buildTime) / 60000);
@@ -360698,7 +360712,7 @@ function Feedback({
360698
360712
  platform: env3.platform,
360699
360713
  gitRepo: envInfo.isGit,
360700
360714
  terminal: env3.terminal,
360701
- version: "1.8.6",
360715
+ version: "1.8.8",
360702
360716
  transcript: normalizeMessagesForAPI(messages),
360703
360717
  errors: sanitizedErrors,
360704
360718
  lastApiRequest: getLastAPIRequest(),
@@ -360890,7 +360904,7 @@ function Feedback({
360890
360904
  ", ",
360891
360905
  env3.terminal,
360892
360906
  ", v",
360893
- "1.8.6"
360907
+ "1.8.8"
360894
360908
  ]
360895
360909
  }, undefined, true, undefined, this)
360896
360910
  ]
@@ -360996,7 +361010,7 @@ ${sanitizedDescription}
360996
361010
  ` + `**Environment Info**
360997
361011
  ` + `- Platform: ${env3.platform}
360998
361012
  ` + `- Terminal: ${env3.terminal}
360999
- ` + `- Version: ${"1.8.6"}
361013
+ ` + `- Version: ${"1.8.8"}
361000
361014
  ` + `- Feedback ID: ${feedbackId}
361001
361015
  ` + `
361002
361016
  **Errors**
@@ -363624,7 +363638,7 @@ function buildPrimarySection() {
363624
363638
  }, undefined, false, undefined, this);
363625
363639
  return [{
363626
363640
  label: "Version",
363627
- value: "1.8.6"
363641
+ value: "1.8.8"
363628
363642
  }, {
363629
363643
  label: "Session name",
363630
363644
  value: nameValue
@@ -368305,7 +368319,7 @@ function Config({
368305
368319
  }
368306
368320
  }, undefined, false, undefined, this)
368307
368321
  }, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime176.jsxDEV(ChannelDowngradeDialog, {
368308
- currentVersion: "1.8.6",
368322
+ currentVersion: "1.8.8",
368309
368323
  onChoice: (choice) => {
368310
368324
  setShowSubmenu(null);
368311
368325
  setTabsHidden(false);
@@ -368317,7 +368331,7 @@ function Config({
368317
368331
  autoUpdatesChannel: "stable"
368318
368332
  };
368319
368333
  if (choice === "stay") {
368320
- newSettings.minimumVersion = "1.8.6";
368334
+ newSettings.minimumVersion = "1.8.8";
368321
368335
  }
368322
368336
  updateSettingsForSource("userSettings", newSettings);
368323
368337
  setSettingsData((prev_27) => ({
@@ -374781,9 +374795,11 @@ var call19 = async (onDone, _context, args) => {
374781
374795
  const comfyImages = extractOutputImages(result);
374782
374796
  const savedPaths = [];
374783
374797
  for (const imgFilename of comfyImages) {
374784
- const subfolder = Object.values(result.outputs).flatMap((o) => o.images ?? []).find((img) => img.filename === imgFilename)?.subfolder ?? "";
374798
+ const imgMeta = Object.values(result.outputs).flatMap((o) => o.images ?? []).find((img) => img.filename === imgFilename);
374799
+ const subfolder = imgMeta?.subfolder ?? "";
374800
+ const imgType = imgMeta?.type ?? "output";
374785
374801
  try {
374786
- const params = new URLSearchParams({ filename: imgFilename, subfolder, type: "output" });
374802
+ const params = new URLSearchParams({ filename: imgFilename, subfolder, type: imgType });
374787
374803
  const res = await fetch(`${backendUrl}/view?${params}`);
374788
374804
  if (res.ok) {
374789
374805
  const outName = `${timestamp2()}_${slugify2(promptText)}.png`;
@@ -375074,13 +375090,14 @@ var call20 = async (onDone, _context, args) => {
375074
375090
  `), { display: "system" });
375075
375091
  return null;
375076
375092
  }
375077
- const workflowData = await fetchServerWorkflow(backendUrl, name);
375078
- if (!workflowData) {
375093
+ const fetchResult = await fetchServerWorkflow(backendUrl, name);
375094
+ if ("error" in fetchResult) {
375079
375095
  onDone([
375080
375096
  `◆ Image Pipeline — Fetch Failed: "${name}"`,
375081
375097
  "",
375082
- ` Could not fetch from ${backendUrl}/userdata/workflows/${name}.json`,
375083
- " Check ComfyUI is running and the workflow name is correct.",
375098
+ ` ${fetchResult.error}`,
375099
+ "",
375100
+ " Make sure ComfyUI is running and the workflow exists.",
375084
375101
  " Run /image-pipeline fetch (no args) to list available workflows."
375085
375102
  ].join(`
375086
375103
  `), { display: "system" });
@@ -375090,7 +375107,7 @@ var call20 = async (onDone, _context, args) => {
375090
375107
  const filename = name.endsWith(".json") ? name : `${name}.json`;
375091
375108
  const outPath = join113(projectRoot, ".localclawd", "image-pipeline", "workflows", filename);
375092
375109
  await mkdir35(join113(projectRoot, ".localclawd", "image-pipeline", "workflows"), { recursive: true });
375093
- await writeFile37(outPath, JSON.stringify(workflowData, null, 2), "utf-8");
375110
+ await writeFile37(outPath, JSON.stringify(fetchResult.data, null, 2), "utf-8");
375094
375111
  onDone([
375095
375112
  `◆ Image Pipeline — Fetched: "${name}"`,
375096
375113
  "",
@@ -385747,7 +385764,7 @@ function Help(t0) {
385747
385764
  let t6;
385748
385765
  if ($2[31] !== tabs) {
385749
385766
  t6 = /* @__PURE__ */ jsx_dev_runtime221.jsxDEV(Tabs, {
385750
- title: `localclawd v${"1.8.6"}`,
385767
+ title: `localclawd v${"1.8.8"}`,
385751
385768
  color: "professionalBlue",
385752
385769
  defaultTab: "general",
385753
385770
  children: tabs
@@ -403009,7 +403026,7 @@ function getRecentReleaseNotes(currentVersion, previousVersion, changelogContent
403009
403026
  }
403010
403027
  return [];
403011
403028
  }
403012
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.8.6") {
403029
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.8.8") {
403013
403030
  if (process.env.USER_TYPE === "ant") {
403014
403031
  const changelog = MACRO.VERSION_CHANGELOG;
403015
403032
  if (changelog) {
@@ -403036,7 +403053,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.8.6") {
403036
403053
  releaseNotes
403037
403054
  };
403038
403055
  }
403039
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.8.6") {
403056
+ function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.8.8") {
403040
403057
  if (process.env.USER_TYPE === "ant") {
403041
403058
  const changelog = MACRO.VERSION_CHANGELOG;
403042
403059
  if (changelog) {
@@ -403193,7 +403210,7 @@ function getRecentActivitySync() {
403193
403210
  return cachedActivity;
403194
403211
  }
403195
403212
  function getLogoDisplayData() {
403196
- const version = process.env.DEMO_VERSION ?? "1.8.6";
403213
+ const version = process.env.DEMO_VERSION ?? "1.8.8";
403197
403214
  const serverUrl = getDirectConnectServerUrl();
403198
403215
  const displayPath = process.env.DEMO_VERSION ? "/code/claude" : getDisplayPath(getCwd());
403199
403216
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -404293,7 +404310,7 @@ function Logo() {
404293
404310
  if ($2[2] === Symbol.for("react.memo_cache_sentinel")) {
404294
404311
  t2 = () => {
404295
404312
  const currentConfig = getGlobalConfig();
404296
- if (currentConfig.lastReleaseNotesSeen === "1.8.6") {
404313
+ if (currentConfig.lastReleaseNotesSeen === "1.8.8") {
404297
404314
  return;
404298
404315
  }
404299
404316
  saveGlobalConfig(_temp326);
@@ -404952,12 +404969,12 @@ function Logo() {
404952
404969
  return t41;
404953
404970
  }
404954
404971
  function _temp326(current) {
404955
- if (current.lastReleaseNotesSeen === "1.8.6") {
404972
+ if (current.lastReleaseNotesSeen === "1.8.8") {
404956
404973
  return current;
404957
404974
  }
404958
404975
  return {
404959
404976
  ...current,
404960
- lastReleaseNotesSeen: "1.8.6"
404977
+ lastReleaseNotesSeen: "1.8.8"
404961
404978
  };
404962
404979
  }
404963
404980
  function _temp241(s_0) {
@@ -435436,7 +435453,7 @@ async function captureMemoryDiagnostics(trigger, dumpNumber = 0) {
435436
435453
  smapsRollup,
435437
435454
  platform: process.platform,
435438
435455
  nodeVersion: process.version,
435439
- ccVersion: "1.8.6"
435456
+ ccVersion: "1.8.8"
435440
435457
  };
435441
435458
  }
435442
435459
  async function performHeapDump(trigger = "manual", dumpNumber = 0) {
@@ -436021,7 +436038,7 @@ var init_bridge_kick = __esm(() => {
436021
436038
  var call87 = async () => {
436022
436039
  return {
436023
436040
  type: "text",
436024
- value: `${"1.8.6"} (built ${"2026-05-07T17:03:06.068Z"})`
436041
+ value: `${"1.8.8"} (built ${"2026-05-07T17:26:12.076Z"})`
436025
436042
  };
436026
436043
  }, version, version_default;
436027
436044
  var init_version = __esm(() => {
@@ -443965,7 +443982,7 @@ function generateHtmlReport(data, insights) {
443965
443982
  </html>`;
443966
443983
  }
443967
443984
  function buildExportData(data, insights, facets, remoteStats) {
443968
- const version2 = typeof MACRO !== "undefined" ? "1.8.6" : "unknown";
443985
+ const version2 = typeof MACRO !== "undefined" ? "1.8.8" : "unknown";
443969
443986
  const remote_hosts_collected = remoteStats?.hosts.filter((h) => h.sessionCount > 0).map((h) => h.name);
443970
443987
  const facets_summary = {
443971
443988
  total: facets.size,
@@ -448166,7 +448183,7 @@ var init_sessionStorage = __esm(() => {
448166
448183
  init_settings2();
448167
448184
  init_slowOperations();
448168
448185
  init_uuid();
448169
- VERSION6 = typeof MACRO !== "undefined" ? "1.8.6" : "unknown";
448186
+ VERSION6 = typeof MACRO !== "undefined" ? "1.8.8" : "unknown";
448170
448187
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
448171
448188
  SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
448172
448189
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -449367,7 +449384,7 @@ var init_filesystem = __esm(() => {
449367
449384
  });
449368
449385
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
449369
449386
  const nonce = randomBytes20(16).toString("hex");
449370
- return join151(getClaudeTempDir(), "bundled-skills", "1.8.6", nonce);
449387
+ return join151(getClaudeTempDir(), "bundled-skills", "1.8.8", nonce);
449371
449388
  });
449372
449389
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
449373
449390
  });
@@ -458604,7 +458621,7 @@ function buildSystemInitMessage(inputs) {
458604
458621
  slash_commands: inputs.commands.filter((c5) => c5.userInvocable !== false).map((c5) => c5.name),
458605
458622
  apiKeySource: getAnthropicApiKeyWithSource().source,
458606
458623
  betas: getSdkBetas(),
458607
- claude_code_version: "1.8.6",
458624
+ claude_code_version: "1.8.8",
458608
458625
  output_style: outputStyle2,
458609
458626
  agents: inputs.agents.map((agent) => agent.agentType),
458610
458627
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill) => skill.name),
@@ -472761,7 +472778,7 @@ var init_useVoiceEnabled = __esm(() => {
472761
472778
  function getSemverPart(version2) {
472762
472779
  return `${import_semver10.major(version2, { loose: true })}.${import_semver10.minor(version2, { loose: true })}.${import_semver10.patch(version2, { loose: true })}`;
472763
472780
  }
472764
- function useUpdateNotification(updatedVersion, initialVersion = "1.8.6") {
472781
+ function useUpdateNotification(updatedVersion, initialVersion = "1.8.8") {
472765
472782
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react214.useState(() => getSemverPart(initialVersion));
472766
472783
  if (!updatedVersion) {
472767
472784
  return null;
@@ -472801,7 +472818,7 @@ function AutoUpdater({
472801
472818
  return;
472802
472819
  }
472803
472820
  if (false) {}
472804
- const currentVersion = "1.8.6";
472821
+ const currentVersion = "1.8.8";
472805
472822
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
472806
472823
  let latestVersion = await getLatestVersion(channel);
472807
472824
  const isDisabled = isAutoUpdaterDisabled();
@@ -473012,12 +473029,12 @@ function NativeAutoUpdater({
473012
473029
  logEvent("tengu_native_auto_updater_start", {});
473013
473030
  try {
473014
473031
  const maxVersion = await getMaxVersion();
473015
- if (maxVersion && gt("1.8.6", maxVersion)) {
473032
+ if (maxVersion && gt("1.8.8", maxVersion)) {
473016
473033
  const msg = await getMaxVersionMessage();
473017
473034
  setMaxVersionIssue(msg ?? "affects your version");
473018
473035
  }
473019
473036
  const result = await installLatest(channel);
473020
- const currentVersion = "1.8.6";
473037
+ const currentVersion = "1.8.8";
473021
473038
  const latencyMs = Date.now() - startTime;
473022
473039
  if (result.lockFailed) {
473023
473040
  logEvent("tengu_native_auto_updater_lock_contention", {
@@ -473152,17 +473169,17 @@ function PackageManagerAutoUpdater(t0) {
473152
473169
  const maxVersion = await getMaxVersion();
473153
473170
  if (maxVersion && latest && gt(latest, maxVersion)) {
473154
473171
  logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
473155
- if (gte("1.8.6", maxVersion)) {
473156
- logForDebugging(`PackageManagerAutoUpdater: current version ${"1.8.6"} is already at or above maxVersion ${maxVersion}, skipping update`);
473172
+ if (gte("1.8.8", maxVersion)) {
473173
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"1.8.8"} is already at or above maxVersion ${maxVersion}, skipping update`);
473157
473174
  setUpdateAvailable(false);
473158
473175
  return;
473159
473176
  }
473160
473177
  latest = maxVersion;
473161
473178
  }
473162
- const hasUpdate = latest && !gte("1.8.6", latest) && !shouldSkipVersion(latest);
473179
+ const hasUpdate = latest && !gte("1.8.8", latest) && !shouldSkipVersion(latest);
473163
473180
  setUpdateAvailable(!!hasUpdate);
473164
473181
  if (hasUpdate) {
473165
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.8.6"} -> ${latest}`);
473182
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.8.8"} -> ${latest}`);
473166
473183
  }
473167
473184
  };
473168
473185
  $2[0] = t1;
@@ -473196,7 +473213,7 @@ function PackageManagerAutoUpdater(t0) {
473196
473213
  wrap: "truncate",
473197
473214
  children: [
473198
473215
  "currentVersion: ",
473199
- "1.8.6"
473216
+ "1.8.8"
473200
473217
  ]
473201
473218
  }, undefined, true, undefined, this);
473202
473219
  $2[3] = verbose;
@@ -480756,7 +480773,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
480756
480773
  project_dir: getOriginalCwd(),
480757
480774
  added_dirs: addedDirs
480758
480775
  },
480759
- version: "1.8.6",
480776
+ version: "1.8.8",
480760
480777
  output_style: {
480761
480778
  name: outputStyleName
480762
480779
  },
@@ -492328,7 +492345,7 @@ async function submitTranscriptShare(messages, trigger, appearanceId) {
492328
492345
  } catch {}
492329
492346
  const data = {
492330
492347
  trigger,
492331
- version: "1.8.6",
492348
+ version: "1.8.8",
492332
492349
  platform: process.platform,
492333
492350
  transcript,
492334
492351
  subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
@@ -509237,7 +509254,7 @@ function appendToLog(path17, message) {
509237
509254
  cwd: getFsImplementation().cwd(),
509238
509255
  userType: process.env.USER_TYPE,
509239
509256
  sessionId: getSessionId(),
509240
- version: "1.8.6"
509257
+ version: "1.8.8"
509241
509258
  };
509242
509259
  getLogWriter(path17).write(messageWithTimestamp);
509243
509260
  }
@@ -513261,8 +513278,8 @@ async function getEnvLessBridgeConfig() {
513261
513278
  }
513262
513279
  async function checkEnvLessBridgeMinVersion() {
513263
513280
  const cfg = await getEnvLessBridgeConfig();
513264
- if (cfg.min_version && lt("1.8.6", cfg.min_version)) {
513265
- return `Your version of localclawd (${"1.8.6"}) is too old for Remote Control.
513281
+ if (cfg.min_version && lt("1.8.8", cfg.min_version)) {
513282
+ return `Your version of localclawd (${"1.8.8"}) is too old for Remote Control.
513266
513283
  Version ${cfg.min_version} or higher is required. Run \`localclawd update\` to update.`;
513267
513284
  }
513268
513285
  return null;
@@ -513734,7 +513751,7 @@ async function initBridgeCore(params) {
513734
513751
  const rawApi = createBridgeApiClient({
513735
513752
  baseUrl,
513736
513753
  getAccessToken,
513737
- runnerVersion: "1.8.6",
513754
+ runnerVersion: "1.8.8",
513738
513755
  onDebug: logForDebugging,
513739
513756
  onAuth401,
513740
513757
  getTrustedDeviceToken
@@ -519453,7 +519470,7 @@ async function startMCPServer(cwd3, debug4, verbose) {
519453
519470
  setCwd(cwd3);
519454
519471
  const server = new Server({
519455
519472
  name: "claude/tengu",
519456
- version: "1.8.6"
519473
+ version: "1.8.8"
519457
519474
  }, {
519458
519475
  capabilities: {
519459
519476
  tools: {}
@@ -520534,7 +520551,7 @@ function WelcomeLogo() {
520534
520551
  dimColor: true,
520535
520552
  children: [
520536
520553
  "v",
520537
- "1.8.6"
520554
+ "1.8.8"
520538
520555
  ]
520539
520556
  }, undefined, true, undefined, this)
520540
520557
  ]
@@ -520725,7 +520742,7 @@ __export(exports_update, {
520725
520742
  });
520726
520743
  async function update() {
520727
520744
  logEvent("tengu_update_check", {});
520728
- writeToStdout(`Current version: ${"1.8.6"}
520745
+ writeToStdout(`Current version: ${"1.8.8"}
520729
520746
  `);
520730
520747
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
520731
520748
  writeToStdout(`Checking for updates to ${channel} version...
@@ -520800,8 +520817,8 @@ async function update() {
520800
520817
  writeToStdout(`localclawd is managed by Homebrew.
520801
520818
  `);
520802
520819
  const latest = await getLatestVersion(channel);
520803
- if (latest && !gte("1.8.6", latest)) {
520804
- writeToStdout(`Update available: ${"1.8.6"} → ${latest}
520820
+ if (latest && !gte("1.8.8", latest)) {
520821
+ writeToStdout(`Update available: ${"1.8.8"} → ${latest}
520805
520822
  `);
520806
520823
  writeToStdout(`
520807
520824
  `);
@@ -520817,8 +520834,8 @@ async function update() {
520817
520834
  writeToStdout(`localclawd is managed by winget.
520818
520835
  `);
520819
520836
  const latest = await getLatestVersion(channel);
520820
- if (latest && !gte("1.8.6", latest)) {
520821
- writeToStdout(`Update available: ${"1.8.6"} → ${latest}
520837
+ if (latest && !gte("1.8.8", latest)) {
520838
+ writeToStdout(`Update available: ${"1.8.8"} → ${latest}
520822
520839
  `);
520823
520840
  writeToStdout(`
520824
520841
  `);
@@ -520832,8 +520849,8 @@ async function update() {
520832
520849
  writeToStdout(`localclawd is managed by apk.
520833
520850
  `);
520834
520851
  const latest = await getLatestVersion(channel);
520835
- if (latest && !gte("1.8.6", latest)) {
520836
- writeToStdout(`Update available: ${"1.8.6"} → ${latest}
520852
+ if (latest && !gte("1.8.8", latest)) {
520853
+ writeToStdout(`Update available: ${"1.8.8"} → ${latest}
520837
520854
  `);
520838
520855
  writeToStdout(`
520839
520856
  `);
@@ -520898,11 +520915,11 @@ async function update() {
520898
520915
  `);
520899
520916
  await gracefulShutdown(1);
520900
520917
  }
520901
- if (result.latestVersion === "1.8.6") {
520902
- writeToStdout(source_default.green(`localclawd is up to date (${"1.8.6"})`) + `
520918
+ if (result.latestVersion === "1.8.8") {
520919
+ writeToStdout(source_default.green(`localclawd is up to date (${"1.8.8"})`) + `
520903
520920
  `);
520904
520921
  } else {
520905
- writeToStdout(source_default.green(`Successfully updated from ${"1.8.6"} to version ${result.latestVersion}`) + `
520922
+ writeToStdout(source_default.green(`Successfully updated from ${"1.8.8"} to version ${result.latestVersion}`) + `
520906
520923
  `);
520907
520924
  await regenerateCompletionCache();
520908
520925
  }
@@ -520962,12 +520979,12 @@ async function update() {
520962
520979
  `);
520963
520980
  await gracefulShutdown(1);
520964
520981
  }
520965
- if (latestVersion === "1.8.6") {
520966
- writeToStdout(source_default.green(`localclawd is up to date (${"1.8.6"})`) + `
520982
+ if (latestVersion === "1.8.8") {
520983
+ writeToStdout(source_default.green(`localclawd is up to date (${"1.8.8"})`) + `
520967
520984
  `);
520968
520985
  await gracefulShutdown(0);
520969
520986
  }
520970
- writeToStdout(`New version available: ${latestVersion} (current: ${"1.8.6"})
520987
+ writeToStdout(`New version available: ${latestVersion} (current: ${"1.8.8"})
520971
520988
  `);
520972
520989
  writeToStdout(`Installing update...
520973
520990
  `);
@@ -521012,7 +521029,7 @@ async function update() {
521012
521029
  logForDebugging(`update: Installation status: ${status2}`);
521013
521030
  switch (status2) {
521014
521031
  case "success":
521015
- writeToStdout(source_default.green(`Successfully updated from ${"1.8.6"} to version ${latestVersion}`) + `
521032
+ writeToStdout(source_default.green(`Successfully updated from ${"1.8.8"} to version ${latestVersion}`) + `
521016
521033
  `);
521017
521034
  await regenerateCompletionCache();
521018
521035
  break;
@@ -522254,7 +522271,7 @@ Run with --debug for more details.
522254
522271
  }
522255
522272
  }
522256
522273
  logForDiagnosticsNoPII("info", "started", {
522257
- version: "1.8.6",
522274
+ version: "1.8.8",
522258
522275
  is_native_binary: isInBundledMode()
522259
522276
  });
522260
522277
  registerCleanup(async () => {
@@ -523038,7 +523055,7 @@ Usage: localclawd --remote "your task description"`, () => gracefulShutdown(1));
523038
523055
  pendingHookMessages
523039
523056
  }, renderAndRun);
523040
523057
  }
523041
- }).version("1.8.6 (localclawd)", "-v, --version", "Output the version number");
523058
+ }).version("1.8.8 (localclawd)", "-v, --version", "Output the version number");
523042
523059
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
523043
523060
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
523044
523061
  if (canUserConfigureAdvisor()) {
@@ -523552,7 +523569,7 @@ if (false) {}
523552
523569
  async function main2() {
523553
523570
  const args = process.argv.slice(2);
523554
523571
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
523555
- console.log(`${"1.8.6"} (localclawd)`);
523572
+ console.log(`${"1.8.8"} (localclawd)`);
523556
523573
  return;
523557
523574
  }
523558
523575
  const {
@@ -523635,4 +523652,4 @@ localclawd crashed: ${msg}
523635
523652
  process.exit(1);
523636
523653
  });
523637
523654
 
523638
- //# debugId=239D176AE480DB8064756E2164756E21
523655
+ //# debugId=A465C93B87DA448764756E2164756E21
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "localclawd",
3
- "version": "1.8.6",
3
+ "version": "1.8.8",
4
4
  "description": "Local-first coding CLI for vLLM, Ollama, and OpenAI-compatible backends.",
5
5
  "private": false,
6
6
  "type": "module",