localclawd 1.8.3 → 1.8.4

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 +91 -91
  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.3"}`;
87611
+ return `claude-code/${"1.8.4"}`;
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.3"} (${process.env.USER_TYPE}, ${process.env.CLAUDE_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
87633
+ return `claude-cli/${"1.8.4"} (${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.3"}${suffix}`;
87647
+ return `claude-code/${"1.8.4"}${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.3"}.${fingerprint}`;
130843
+ const version = `${"1.8.4"}.${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.3".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
147032
+ const match = "1.8.4".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.3",
147072
+ version: "1.8.4",
147073
147073
  versionBase: getVersionBase(),
147074
- buildTime: "2026-05-07T15:32:03.459Z",
147074
+ buildTime: "2026-05-07T15:39:30.948Z",
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.3";
179650
+ attributes["app.version"] = "1.8.4";
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.3";
242451
+ return "1.8.4";
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.3",
247725
+ version: "1.8.4",
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.3",
248067
+ version: "1.8.4",
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.3");
262469
+ return computeFingerprint(firstMessageText, "1.8.4");
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.3");
262511
+ const fingerprint = computeFingerprint(messageText, "1.8.4");
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.3",
283259
+ appVersion: "1.8.4",
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.3");
284324
+ const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "1.8.4");
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.3"
284364
+ [ATTR_SERVICE_VERSION4]: "1.8.4"
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.3");
284409
+ return meterProvider2.getMeter("com.anthropic.claude_code", "1.8.4");
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.3");
284429
+ const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "1.8.4");
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.3");
284491
+ return meterProvider.getMeter("com.anthropic.claude_code", "1.8.4");
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.3" : "unknown";
285681
+ const version = typeof MACRO !== "undefined" ? "1.8.4" : "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.3", maxVersion)) {
286623
- logForDebugging(`Native installer: current version ${"1.8.3"} is already at or above maxVersion ${maxVersion}, skipping update`);
286622
+ if (gte("1.8.4", maxVersion)) {
286623
+ logForDebugging(`Native installer: current version ${"1.8.4"} 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.3" && await versionIsAvailable(version) && await isPossibleLocalClawdBinary(executablePath)) {
286634
+ if (!forceReinstall && version === "1.8.4" && 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,
@@ -322834,7 +322834,7 @@ function extractOutputImages(item) {
322834
322834
  }
322835
322835
  return images;
322836
322836
  }
322837
- var DEFAULT_COMFYUI_URL = "http://127.0.0.1:8188", PROBE_TIMEOUT_MS = 3000;
322837
+ var DEFAULT_COMFYUI_URL = "http://127.0.0.1:8000", PROBE_TIMEOUT_MS = 3000;
322838
322838
 
322839
322839
  // src/services/imagePipeline/imagePipeline.ts
322840
322840
  import { mkdir as mkdir19, writeFile as writeFile19, readFile as readFile26, access as access5 } from "fs/promises";
@@ -322904,7 +322904,7 @@ var DEFAULT_CONFIG2, EXAMPLE_PROMPT, TXT2IMG_WORKFLOW, GENERATE_SH = `#!/usr/bin
322904
322904
  # Usage: ./scripts/generate.sh "positive prompt" "negative prompt"
322905
322905
 
322906
322906
  set -e
322907
- BACKEND="\${COMFYUI_URL:-http://127.0.0.1:8188}"
322907
+ BACKEND="\${COMFYUI_URL:-http://127.0.0.1:8000}"
322908
322908
  POSITIVE="\${1:-a fantasy warrior}"
322909
322909
  NEGATIVE="\${2:-blurry, low quality}"
322910
322910
  SEED=\${RANDOM}
@@ -322928,7 +322928,7 @@ param(
322928
322928
  [string]$Positive = "a fantasy warrior",
322929
322929
  [string]$Negative = "blurry, low quality"
322930
322930
  )
322931
- $Backend = if ($env:COMFYUI_URL) { $env:COMFYUI_URL } else { "http://127.0.0.1:8188" }
322931
+ $Backend = if ($env:COMFYUI_URL) { $env:COMFYUI_URL } else { "http://127.0.0.1:8000" }
322932
322932
  $Seed = Get-Random
322933
322933
  Write-Host "Submitting to $Backend ..."
322934
322934
  $body = @{
@@ -322950,7 +322950,7 @@ Project-local image generation configuration for localclawd + ComfyUI.
322950
322950
 
322951
322951
  ## Quick Start
322952
322952
 
322953
- 1. Start ComfyUI on this machine (default port 8188)
322953
+ 1. Start ComfyUI on this machine (default port 8000)
322954
322954
  2. Run \`/image-pipeline\` in localclawd to check status
322955
322955
  3. Use \`/image-pipeline generate "your prompt"\` to submit a job
322956
322956
  4. Or run \`bash .localclawd/image-pipeline/scripts/generate.sh "prompt"\`
@@ -322968,7 +322968,7 @@ scripts/ — generate.sh / generate.ps1 helpers
322968
322968
  ## Remote ComfyUI
322969
322969
 
322970
322970
  Edit \`config.json\` → set \`backendUrl\` to your remote URL, e.g.:
322971
- \`http://192.168.1.50:8188\` or \`http://mymachine.local:8188\`
322971
+ \`http://192.168.1.50:8000\` or \`http://mymachine.local:8000\`
322972
322972
 
322973
322973
  ## Workflow Templates
322974
322974
 
@@ -323045,7 +323045,7 @@ var init_imagePipeline = __esm(() => {
323045
323045
  var GENERATE_IMAGE_TOOL_NAME = "GenerateImage", DESCRIPTION13 = `Generate an image using a local ComfyUI backend.
323046
323046
 
323047
323047
  Backend resolution order:
323048
- 1. http://127.0.0.1:8188 (localhost default)
323048
+ 1. http://127.0.0.1:8000 (localhost default)
323049
323049
  2. backendUrl in .localclawd/image-pipeline/config.json (set via /image-pipeline config <url>)
323050
323050
 
323051
323051
  Output directory:
@@ -331770,7 +331770,7 @@ function getAnthropicEnvMetadata() {
331770
331770
  function getBuildAgeMinutes() {
331771
331771
  if (false)
331772
331772
  ;
331773
- const buildTime = new Date("2026-05-07T15:32:03.459Z").getTime();
331773
+ const buildTime = new Date("2026-05-07T15:39:30.948Z").getTime();
331774
331774
  if (isNaN(buildTime))
331775
331775
  return;
331776
331776
  return Math.floor((Date.now() - buildTime) / 60000);
@@ -360600,7 +360600,7 @@ function Feedback({
360600
360600
  platform: env3.platform,
360601
360601
  gitRepo: envInfo.isGit,
360602
360602
  terminal: env3.terminal,
360603
- version: "1.8.3",
360603
+ version: "1.8.4",
360604
360604
  transcript: normalizeMessagesForAPI(messages),
360605
360605
  errors: sanitizedErrors,
360606
360606
  lastApiRequest: getLastAPIRequest(),
@@ -360792,7 +360792,7 @@ function Feedback({
360792
360792
  ", ",
360793
360793
  env3.terminal,
360794
360794
  ", v",
360795
- "1.8.3"
360795
+ "1.8.4"
360796
360796
  ]
360797
360797
  }, undefined, true, undefined, this)
360798
360798
  ]
@@ -360898,7 +360898,7 @@ ${sanitizedDescription}
360898
360898
  ` + `**Environment Info**
360899
360899
  ` + `- Platform: ${env3.platform}
360900
360900
  ` + `- Terminal: ${env3.terminal}
360901
- ` + `- Version: ${"1.8.3"}
360901
+ ` + `- Version: ${"1.8.4"}
360902
360902
  ` + `- Feedback ID: ${feedbackId}
360903
360903
  ` + `
360904
360904
  **Errors**
@@ -363526,7 +363526,7 @@ function buildPrimarySection() {
363526
363526
  }, undefined, false, undefined, this);
363527
363527
  return [{
363528
363528
  label: "Version",
363529
- value: "1.8.3"
363529
+ value: "1.8.4"
363530
363530
  }, {
363531
363531
  label: "Session name",
363532
363532
  value: nameValue
@@ -368207,7 +368207,7 @@ function Config({
368207
368207
  }
368208
368208
  }, undefined, false, undefined, this)
368209
368209
  }, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime176.jsxDEV(ChannelDowngradeDialog, {
368210
- currentVersion: "1.8.3",
368210
+ currentVersion: "1.8.4",
368211
368211
  onChoice: (choice) => {
368212
368212
  setShowSubmenu(null);
368213
368213
  setTabsHidden(false);
@@ -368219,7 +368219,7 @@ function Config({
368219
368219
  autoUpdatesChannel: "stable"
368220
368220
  };
368221
368221
  if (choice === "stay") {
368222
- newSettings.minimumVersion = "1.8.3";
368222
+ newSettings.minimumVersion = "1.8.4";
368223
368223
  }
368224
368224
  updateSettingsForSource("userSettings", newSettings);
368225
368225
  setSettingsData((prev_27) => ({
@@ -374573,7 +374573,7 @@ var call19 = async (onDone, _context, args) => {
374573
374573
  " Example: /image a misty forest at dawn, cinematic lighting",
374574
374574
  "",
374575
374575
  " ComfyUI must be running. To set a remote URL:",
374576
- " /image-pipeline config http://<host>:8188",
374576
+ " /image-pipeline config http://<host>:8000",
374577
374577
  " To scaffold the project output folder:",
374578
374578
  " /image-pipeline setup"
374579
374579
  ].join(`
@@ -374596,7 +374596,7 @@ var call19 = async (onDone, _context, args) => {
374596
374596
  "",
374597
374597
  ` ComfyUI not found at ${configuredUrl}`,
374598
374598
  " Start ComfyUI, then try again.",
374599
- " To set a remote URL: /image-pipeline config http://<host>:8188"
374599
+ " To set a remote URL: /image-pipeline config http://<host>:8000"
374600
374600
  ].join(`
374601
374601
  `), { display: "system" });
374602
374602
  return null;
@@ -374746,7 +374746,7 @@ var call20 = async (onDone, _context, args) => {
374746
374746
  lines2.push(` ● ComfyUI active at ${backendUrl}`);
374747
374747
  } else {
374748
374748
  lines2.push(` ○ ComfyUI not found at ${backendUrl}`);
374749
- lines2.push(` → Run: /image-pipeline config http://<host>:8188`);
374749
+ lines2.push(` → Run: /image-pipeline config http://<host>:8000`);
374750
374750
  }
374751
374751
  if (scaffolded) {
374752
374752
  lines2.push(` Scaffold: .localclawd/image-pipeline/ (${prompts.length} prompts, ${workflows.length} workflows)`);
@@ -374775,7 +374775,7 @@ var call20 = async (onDone, _context, args) => {
374775
374775
  lines2.push(` ● ComfyUI active at ${backendUrl}`);
374776
374776
  } else {
374777
374777
  lines2.push(` ○ ComfyUI not detected at ${backendUrl}`);
374778
- lines2.push(` → To connect: /image-pipeline config http://<host>:8188`);
374778
+ lines2.push(` → To connect: /image-pipeline config http://<host>:8000`);
374779
374779
  }
374780
374780
  lines2.push("");
374781
374781
  if (alreadyExisted) {
@@ -374797,8 +374797,8 @@ var call20 = async (onDone, _context, args) => {
374797
374797
  if (!newUrl || !newUrl.startsWith("http")) {
374798
374798
  onDone(`◆ Image Pipeline — Config
374799
374799
 
374800
- Usage: /image-pipeline config http://<host>:8188
374801
- Example: /image-pipeline config http://192.168.1.50:8188`, { display: "system" });
374800
+ Usage: /image-pipeline config http://<host>:8000
374801
+ Example: /image-pipeline config http://192.168.1.50:8000`, { display: "system" });
374802
374802
  return null;
374803
374803
  }
374804
374804
  await scaffoldProject(projectRoot);
@@ -374864,7 +374864,7 @@ var call20 = async (onDone, _context, args) => {
374864
374864
  "",
374865
374865
  ` ComfyUI not reachable at ${tried}`,
374866
374866
  " Start ComfyUI, then run: /image-pipeline generate <prompt>",
374867
- " Or set a remote URL: /image-pipeline config http://<host>:8188"
374867
+ " Or set a remote URL: /image-pipeline config http://<host>:8000"
374868
374868
  ].join(`
374869
374869
  `), { display: "system" });
374870
374870
  return null;
@@ -385583,7 +385583,7 @@ function Help(t0) {
385583
385583
  let t6;
385584
385584
  if ($2[31] !== tabs) {
385585
385585
  t6 = /* @__PURE__ */ jsx_dev_runtime221.jsxDEV(Tabs, {
385586
- title: `localclawd v${"1.8.3"}`,
385586
+ title: `localclawd v${"1.8.4"}`,
385587
385587
  color: "professionalBlue",
385588
385588
  defaultTab: "general",
385589
385589
  children: tabs
@@ -402845,7 +402845,7 @@ function getRecentReleaseNotes(currentVersion, previousVersion, changelogContent
402845
402845
  }
402846
402846
  return [];
402847
402847
  }
402848
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.8.3") {
402848
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.8.4") {
402849
402849
  if (process.env.USER_TYPE === "ant") {
402850
402850
  const changelog = MACRO.VERSION_CHANGELOG;
402851
402851
  if (changelog) {
@@ -402872,7 +402872,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.8.3") {
402872
402872
  releaseNotes
402873
402873
  };
402874
402874
  }
402875
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.8.3") {
402875
+ function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.8.4") {
402876
402876
  if (process.env.USER_TYPE === "ant") {
402877
402877
  const changelog = MACRO.VERSION_CHANGELOG;
402878
402878
  if (changelog) {
@@ -403029,7 +403029,7 @@ function getRecentActivitySync() {
403029
403029
  return cachedActivity;
403030
403030
  }
403031
403031
  function getLogoDisplayData() {
403032
- const version = process.env.DEMO_VERSION ?? "1.8.3";
403032
+ const version = process.env.DEMO_VERSION ?? "1.8.4";
403033
403033
  const serverUrl = getDirectConnectServerUrl();
403034
403034
  const displayPath = process.env.DEMO_VERSION ? "/code/claude" : getDisplayPath(getCwd());
403035
403035
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -404129,7 +404129,7 @@ function Logo() {
404129
404129
  if ($2[2] === Symbol.for("react.memo_cache_sentinel")) {
404130
404130
  t2 = () => {
404131
404131
  const currentConfig = getGlobalConfig();
404132
- if (currentConfig.lastReleaseNotesSeen === "1.8.3") {
404132
+ if (currentConfig.lastReleaseNotesSeen === "1.8.4") {
404133
404133
  return;
404134
404134
  }
404135
404135
  saveGlobalConfig(_temp326);
@@ -404788,12 +404788,12 @@ function Logo() {
404788
404788
  return t41;
404789
404789
  }
404790
404790
  function _temp326(current) {
404791
- if (current.lastReleaseNotesSeen === "1.8.3") {
404791
+ if (current.lastReleaseNotesSeen === "1.8.4") {
404792
404792
  return current;
404793
404793
  }
404794
404794
  return {
404795
404795
  ...current,
404796
- lastReleaseNotesSeen: "1.8.3"
404796
+ lastReleaseNotesSeen: "1.8.4"
404797
404797
  };
404798
404798
  }
404799
404799
  function _temp241(s_0) {
@@ -435272,7 +435272,7 @@ async function captureMemoryDiagnostics(trigger, dumpNumber = 0) {
435272
435272
  smapsRollup,
435273
435273
  platform: process.platform,
435274
435274
  nodeVersion: process.version,
435275
- ccVersion: "1.8.3"
435275
+ ccVersion: "1.8.4"
435276
435276
  };
435277
435277
  }
435278
435278
  async function performHeapDump(trigger = "manual", dumpNumber = 0) {
@@ -435857,7 +435857,7 @@ var init_bridge_kick = __esm(() => {
435857
435857
  var call87 = async () => {
435858
435858
  return {
435859
435859
  type: "text",
435860
- value: `${"1.8.3"} (built ${"2026-05-07T15:32:03.459Z"})`
435860
+ value: `${"1.8.4"} (built ${"2026-05-07T15:39:30.948Z"})`
435861
435861
  };
435862
435862
  }, version, version_default;
435863
435863
  var init_version = __esm(() => {
@@ -443801,7 +443801,7 @@ function generateHtmlReport(data, insights) {
443801
443801
  </html>`;
443802
443802
  }
443803
443803
  function buildExportData(data, insights, facets, remoteStats) {
443804
- const version2 = typeof MACRO !== "undefined" ? "1.8.3" : "unknown";
443804
+ const version2 = typeof MACRO !== "undefined" ? "1.8.4" : "unknown";
443805
443805
  const remote_hosts_collected = remoteStats?.hosts.filter((h) => h.sessionCount > 0).map((h) => h.name);
443806
443806
  const facets_summary = {
443807
443807
  total: facets.size,
@@ -448002,7 +448002,7 @@ var init_sessionStorage = __esm(() => {
448002
448002
  init_settings2();
448003
448003
  init_slowOperations();
448004
448004
  init_uuid();
448005
- VERSION6 = typeof MACRO !== "undefined" ? "1.8.3" : "unknown";
448005
+ VERSION6 = typeof MACRO !== "undefined" ? "1.8.4" : "unknown";
448006
448006
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
448007
448007
  SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
448008
448008
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -449203,7 +449203,7 @@ var init_filesystem = __esm(() => {
449203
449203
  });
449204
449204
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
449205
449205
  const nonce = randomBytes20(16).toString("hex");
449206
- return join151(getClaudeTempDir(), "bundled-skills", "1.8.3", nonce);
449206
+ return join151(getClaudeTempDir(), "bundled-skills", "1.8.4", nonce);
449207
449207
  });
449208
449208
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
449209
449209
  });
@@ -458440,7 +458440,7 @@ function buildSystemInitMessage(inputs) {
458440
458440
  slash_commands: inputs.commands.filter((c5) => c5.userInvocable !== false).map((c5) => c5.name),
458441
458441
  apiKeySource: getAnthropicApiKeyWithSource().source,
458442
458442
  betas: getSdkBetas(),
458443
- claude_code_version: "1.8.3",
458443
+ claude_code_version: "1.8.4",
458444
458444
  output_style: outputStyle2,
458445
458445
  agents: inputs.agents.map((agent) => agent.agentType),
458446
458446
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill) => skill.name),
@@ -472597,7 +472597,7 @@ var init_useVoiceEnabled = __esm(() => {
472597
472597
  function getSemverPart(version2) {
472598
472598
  return `${import_semver10.major(version2, { loose: true })}.${import_semver10.minor(version2, { loose: true })}.${import_semver10.patch(version2, { loose: true })}`;
472599
472599
  }
472600
- function useUpdateNotification(updatedVersion, initialVersion = "1.8.3") {
472600
+ function useUpdateNotification(updatedVersion, initialVersion = "1.8.4") {
472601
472601
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react214.useState(() => getSemverPart(initialVersion));
472602
472602
  if (!updatedVersion) {
472603
472603
  return null;
@@ -472637,7 +472637,7 @@ function AutoUpdater({
472637
472637
  return;
472638
472638
  }
472639
472639
  if (false) {}
472640
- const currentVersion = "1.8.3";
472640
+ const currentVersion = "1.8.4";
472641
472641
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
472642
472642
  let latestVersion = await getLatestVersion(channel);
472643
472643
  const isDisabled = isAutoUpdaterDisabled();
@@ -472848,12 +472848,12 @@ function NativeAutoUpdater({
472848
472848
  logEvent("tengu_native_auto_updater_start", {});
472849
472849
  try {
472850
472850
  const maxVersion = await getMaxVersion();
472851
- if (maxVersion && gt("1.8.3", maxVersion)) {
472851
+ if (maxVersion && gt("1.8.4", maxVersion)) {
472852
472852
  const msg = await getMaxVersionMessage();
472853
472853
  setMaxVersionIssue(msg ?? "affects your version");
472854
472854
  }
472855
472855
  const result = await installLatest(channel);
472856
- const currentVersion = "1.8.3";
472856
+ const currentVersion = "1.8.4";
472857
472857
  const latencyMs = Date.now() - startTime;
472858
472858
  if (result.lockFailed) {
472859
472859
  logEvent("tengu_native_auto_updater_lock_contention", {
@@ -472988,17 +472988,17 @@ function PackageManagerAutoUpdater(t0) {
472988
472988
  const maxVersion = await getMaxVersion();
472989
472989
  if (maxVersion && latest && gt(latest, maxVersion)) {
472990
472990
  logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
472991
- if (gte("1.8.3", maxVersion)) {
472992
- logForDebugging(`PackageManagerAutoUpdater: current version ${"1.8.3"} is already at or above maxVersion ${maxVersion}, skipping update`);
472991
+ if (gte("1.8.4", maxVersion)) {
472992
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"1.8.4"} is already at or above maxVersion ${maxVersion}, skipping update`);
472993
472993
  setUpdateAvailable(false);
472994
472994
  return;
472995
472995
  }
472996
472996
  latest = maxVersion;
472997
472997
  }
472998
- const hasUpdate = latest && !gte("1.8.3", latest) && !shouldSkipVersion(latest);
472998
+ const hasUpdate = latest && !gte("1.8.4", latest) && !shouldSkipVersion(latest);
472999
472999
  setUpdateAvailable(!!hasUpdate);
473000
473000
  if (hasUpdate) {
473001
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.8.3"} -> ${latest}`);
473001
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.8.4"} -> ${latest}`);
473002
473002
  }
473003
473003
  };
473004
473004
  $2[0] = t1;
@@ -473032,7 +473032,7 @@ function PackageManagerAutoUpdater(t0) {
473032
473032
  wrap: "truncate",
473033
473033
  children: [
473034
473034
  "currentVersion: ",
473035
- "1.8.3"
473035
+ "1.8.4"
473036
473036
  ]
473037
473037
  }, undefined, true, undefined, this);
473038
473038
  $2[3] = verbose;
@@ -480592,7 +480592,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
480592
480592
  project_dir: getOriginalCwd(),
480593
480593
  added_dirs: addedDirs
480594
480594
  },
480595
- version: "1.8.3",
480595
+ version: "1.8.4",
480596
480596
  output_style: {
480597
480597
  name: outputStyleName
480598
480598
  },
@@ -492164,7 +492164,7 @@ async function submitTranscriptShare(messages, trigger, appearanceId) {
492164
492164
  } catch {}
492165
492165
  const data = {
492166
492166
  trigger,
492167
- version: "1.8.3",
492167
+ version: "1.8.4",
492168
492168
  platform: process.platform,
492169
492169
  transcript,
492170
492170
  subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
@@ -509073,7 +509073,7 @@ function appendToLog(path17, message) {
509073
509073
  cwd: getFsImplementation().cwd(),
509074
509074
  userType: process.env.USER_TYPE,
509075
509075
  sessionId: getSessionId(),
509076
- version: "1.8.3"
509076
+ version: "1.8.4"
509077
509077
  };
509078
509078
  getLogWriter(path17).write(messageWithTimestamp);
509079
509079
  }
@@ -513097,8 +513097,8 @@ async function getEnvLessBridgeConfig() {
513097
513097
  }
513098
513098
  async function checkEnvLessBridgeMinVersion() {
513099
513099
  const cfg = await getEnvLessBridgeConfig();
513100
- if (cfg.min_version && lt("1.8.3", cfg.min_version)) {
513101
- return `Your version of localclawd (${"1.8.3"}) is too old for Remote Control.
513100
+ if (cfg.min_version && lt("1.8.4", cfg.min_version)) {
513101
+ return `Your version of localclawd (${"1.8.4"}) is too old for Remote Control.
513102
513102
  Version ${cfg.min_version} or higher is required. Run \`localclawd update\` to update.`;
513103
513103
  }
513104
513104
  return null;
@@ -513570,7 +513570,7 @@ async function initBridgeCore(params) {
513570
513570
  const rawApi = createBridgeApiClient({
513571
513571
  baseUrl,
513572
513572
  getAccessToken,
513573
- runnerVersion: "1.8.3",
513573
+ runnerVersion: "1.8.4",
513574
513574
  onDebug: logForDebugging,
513575
513575
  onAuth401,
513576
513576
  getTrustedDeviceToken
@@ -519289,7 +519289,7 @@ async function startMCPServer(cwd3, debug4, verbose) {
519289
519289
  setCwd(cwd3);
519290
519290
  const server = new Server({
519291
519291
  name: "claude/tengu",
519292
- version: "1.8.3"
519292
+ version: "1.8.4"
519293
519293
  }, {
519294
519294
  capabilities: {
519295
519295
  tools: {}
@@ -520370,7 +520370,7 @@ function WelcomeLogo() {
520370
520370
  dimColor: true,
520371
520371
  children: [
520372
520372
  "v",
520373
- "1.8.3"
520373
+ "1.8.4"
520374
520374
  ]
520375
520375
  }, undefined, true, undefined, this)
520376
520376
  ]
@@ -520561,7 +520561,7 @@ __export(exports_update, {
520561
520561
  });
520562
520562
  async function update() {
520563
520563
  logEvent("tengu_update_check", {});
520564
- writeToStdout(`Current version: ${"1.8.3"}
520564
+ writeToStdout(`Current version: ${"1.8.4"}
520565
520565
  `);
520566
520566
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
520567
520567
  writeToStdout(`Checking for updates to ${channel} version...
@@ -520636,8 +520636,8 @@ async function update() {
520636
520636
  writeToStdout(`localclawd is managed by Homebrew.
520637
520637
  `);
520638
520638
  const latest = await getLatestVersion(channel);
520639
- if (latest && !gte("1.8.3", latest)) {
520640
- writeToStdout(`Update available: ${"1.8.3"} → ${latest}
520639
+ if (latest && !gte("1.8.4", latest)) {
520640
+ writeToStdout(`Update available: ${"1.8.4"} → ${latest}
520641
520641
  `);
520642
520642
  writeToStdout(`
520643
520643
  `);
@@ -520653,8 +520653,8 @@ async function update() {
520653
520653
  writeToStdout(`localclawd is managed by winget.
520654
520654
  `);
520655
520655
  const latest = await getLatestVersion(channel);
520656
- if (latest && !gte("1.8.3", latest)) {
520657
- writeToStdout(`Update available: ${"1.8.3"} → ${latest}
520656
+ if (latest && !gte("1.8.4", latest)) {
520657
+ writeToStdout(`Update available: ${"1.8.4"} → ${latest}
520658
520658
  `);
520659
520659
  writeToStdout(`
520660
520660
  `);
@@ -520668,8 +520668,8 @@ async function update() {
520668
520668
  writeToStdout(`localclawd is managed by apk.
520669
520669
  `);
520670
520670
  const latest = await getLatestVersion(channel);
520671
- if (latest && !gte("1.8.3", latest)) {
520672
- writeToStdout(`Update available: ${"1.8.3"} → ${latest}
520671
+ if (latest && !gte("1.8.4", latest)) {
520672
+ writeToStdout(`Update available: ${"1.8.4"} → ${latest}
520673
520673
  `);
520674
520674
  writeToStdout(`
520675
520675
  `);
@@ -520734,11 +520734,11 @@ async function update() {
520734
520734
  `);
520735
520735
  await gracefulShutdown(1);
520736
520736
  }
520737
- if (result.latestVersion === "1.8.3") {
520738
- writeToStdout(source_default.green(`localclawd is up to date (${"1.8.3"})`) + `
520737
+ if (result.latestVersion === "1.8.4") {
520738
+ writeToStdout(source_default.green(`localclawd is up to date (${"1.8.4"})`) + `
520739
520739
  `);
520740
520740
  } else {
520741
- writeToStdout(source_default.green(`Successfully updated from ${"1.8.3"} to version ${result.latestVersion}`) + `
520741
+ writeToStdout(source_default.green(`Successfully updated from ${"1.8.4"} to version ${result.latestVersion}`) + `
520742
520742
  `);
520743
520743
  await regenerateCompletionCache();
520744
520744
  }
@@ -520798,12 +520798,12 @@ async function update() {
520798
520798
  `);
520799
520799
  await gracefulShutdown(1);
520800
520800
  }
520801
- if (latestVersion === "1.8.3") {
520802
- writeToStdout(source_default.green(`localclawd is up to date (${"1.8.3"})`) + `
520801
+ if (latestVersion === "1.8.4") {
520802
+ writeToStdout(source_default.green(`localclawd is up to date (${"1.8.4"})`) + `
520803
520803
  `);
520804
520804
  await gracefulShutdown(0);
520805
520805
  }
520806
- writeToStdout(`New version available: ${latestVersion} (current: ${"1.8.3"})
520806
+ writeToStdout(`New version available: ${latestVersion} (current: ${"1.8.4"})
520807
520807
  `);
520808
520808
  writeToStdout(`Installing update...
520809
520809
  `);
@@ -520848,7 +520848,7 @@ async function update() {
520848
520848
  logForDebugging(`update: Installation status: ${status2}`);
520849
520849
  switch (status2) {
520850
520850
  case "success":
520851
- writeToStdout(source_default.green(`Successfully updated from ${"1.8.3"} to version ${latestVersion}`) + `
520851
+ writeToStdout(source_default.green(`Successfully updated from ${"1.8.4"} to version ${latestVersion}`) + `
520852
520852
  `);
520853
520853
  await regenerateCompletionCache();
520854
520854
  break;
@@ -522090,7 +522090,7 @@ Run with --debug for more details.
522090
522090
  }
522091
522091
  }
522092
522092
  logForDiagnosticsNoPII("info", "started", {
522093
- version: "1.8.3",
522093
+ version: "1.8.4",
522094
522094
  is_native_binary: isInBundledMode()
522095
522095
  });
522096
522096
  registerCleanup(async () => {
@@ -522874,7 +522874,7 @@ Usage: localclawd --remote "your task description"`, () => gracefulShutdown(1));
522874
522874
  pendingHookMessages
522875
522875
  }, renderAndRun);
522876
522876
  }
522877
- }).version("1.8.3 (localclawd)", "-v, --version", "Output the version number");
522877
+ }).version("1.8.4 (localclawd)", "-v, --version", "Output the version number");
522878
522878
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
522879
522879
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
522880
522880
  if (canUserConfigureAdvisor()) {
@@ -523388,7 +523388,7 @@ if (false) {}
523388
523388
  async function main2() {
523389
523389
  const args = process.argv.slice(2);
523390
523390
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
523391
- console.log(`${"1.8.3"} (localclawd)`);
523391
+ console.log(`${"1.8.4"} (localclawd)`);
523392
523392
  return;
523393
523393
  }
523394
523394
  const {
@@ -523471,4 +523471,4 @@ localclawd crashed: ${msg}
523471
523471
  process.exit(1);
523472
523472
  });
523473
523473
 
523474
- //# debugId=7D8CF05E523BB97864756E2164756E21
523474
+ //# debugId=3BB4E5936E6C9C2664756E2164756E21
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "localclawd",
3
- "version": "1.8.3",
3
+ "version": "1.8.4",
4
4
  "description": "Local-first coding CLI for vLLM, Ollama, and OpenAI-compatible backends.",
5
5
  "private": false,
6
6
  "type": "module",