claudish 9.0.1 → 9.0.2

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/index.js +24 -7
  2. package/package.json +5 -5
package/dist/index.js CHANGED
@@ -731,7 +731,7 @@ var init_onepassword_config = __esm(() => {
731
731
  });
732
732
 
733
733
  // src/version.ts
734
- var VERSION = "9.0.1";
734
+ var VERSION = "9.0.2";
735
735
 
736
736
  // src/logger.ts
737
737
  var exports_logger = {};
@@ -835,7 +835,7 @@ function redactDeep(val, key) {
835
835
  return val;
836
836
  }
837
837
  function isStructuralLogWorthy(msg) {
838
- return msg.startsWith("[SSE:") || msg.startsWith("[Suppressed]") || msg.startsWith("[Proxy]") || msg.startsWith("[Fallback]") || msg.startsWith("[Streaming] ===") || msg.startsWith("[Streaming] Chunk:") || msg.startsWith("[Streaming] Received") || msg.startsWith("[Streaming] Text-based tool calls") || msg.startsWith("[Streaming] Final usage") || msg.startsWith("[Streaming] Sending") || msg.startsWith("[AnthropicSSE] Stream complete") || msg.startsWith("[AnthropicSSE] Tool use:") || msg.includes("Response status:") || msg.includes("Error") || msg.includes("error") || msg.includes("[Auto-route]");
838
+ return msg.startsWith("[SSE:") || msg.startsWith("[Suppressed]") || msg.startsWith("[Proxy]") || msg.startsWith("[Claude Code]") || msg.startsWith("[Fallback]") || msg.startsWith("[Streaming] ===") || msg.startsWith("[Streaming] Chunk:") || msg.startsWith("[Streaming] Received") || msg.startsWith("[Streaming] Text-based tool calls") || msg.startsWith("[Streaming] Final usage") || msg.startsWith("[Streaming] Sending") || msg.startsWith("[AnthropicSSE] Stream complete") || msg.startsWith("[AnthropicSSE] Tool use:") || msg.includes("Response status:") || msg.includes("Error") || msg.includes("error") || msg.includes("[Auto-route]");
839
839
  }
840
840
  function redactLogLine(message, timestamp) {
841
841
  if (message.startsWith("[SSE:")) {
@@ -56170,6 +56170,12 @@ ${plan.hint}` : `[Route] ${plan.reason}`;
56170
56170
  };
56171
56171
  const app = new Hono2;
56172
56172
  app.use("*", cors());
56173
+ let modelRequestCount = 0;
56174
+ app.use("*", async (c, next) => {
56175
+ if (c.req.path === "/v1/messages")
56176
+ modelRequestCount++;
56177
+ await next();
56178
+ });
56173
56179
  app.onError((err, c) => {
56174
56180
  logStderr(`[Proxy] Unhandled error on ${c.req.method} ${c.req.path}: ${err?.message ?? err}`);
56175
56181
  log(`[Proxy] Unhandled error stack: ${err?.stack ?? "(no stack)"}`);
@@ -56302,6 +56308,7 @@ ${plan.hint}` : `[Route] ${plan.reason}`;
56302
56308
  return {
56303
56309
  port: resolvedPort,
56304
56310
  url: `http://127.0.0.1:${resolvedPort}`,
56311
+ modelRequestCount: () => modelRequestCount,
56305
56312
  shutdown: async () => {
56306
56313
  await server.stop(true);
56307
56314
  },
@@ -85739,12 +85746,16 @@ Or set CLAUDE_PATH to your custom installation:`);
85739
85746
  });
85740
85747
  }
85741
85748
  setupSignalHandlers(proc, tempSettingsPath, config3.quiet, onCleanup);
85742
- const exitCode = await new Promise((resolve6) => {
85743
- proc.on("exit", (code) => {
85749
+ const { exitCode, exitSignal } = await new Promise((resolve6) => {
85750
+ proc.on("exit", (code, signal) => {
85744
85751
  setClaudeCodeRunning(false);
85745
- resolve6(code ?? 1);
85752
+ resolve6({
85753
+ exitCode: signal ? 128 + (SIGNAL_EXIT_NUMBERS[signal] ?? 0) : code ?? 1,
85754
+ exitSignal: signal
85755
+ });
85746
85756
  });
85747
85757
  });
85758
+ log(exitSignal ? `[Claude Code] Exited from ${exitSignal} (exit code ${exitCode})` : `[Claude Code] Exited with code ${exitCode}`);
85748
85759
  releaseTerminalIsolation();
85749
85760
  try {
85750
85761
  unlinkSync10(tempSettingsPath);
@@ -89119,9 +89130,15 @@ Team Status`);
89119
89130
  }
89120
89131
  }
89121
89132
  const sessionLogPath = getAlwaysOnLogPath2();
89122
- if (exitCode !== 0 && sessionLogPath && !cliConfig.quiet) {
89133
+ const quitBySignal = exitCode === 130 || exitCode === 143;
89134
+ if (exitCode !== 0 && !quitBySignal && sessionLogPath && !cliConfig.quiet) {
89123
89135
  console.error(`
89124
- [claudish] Session ended with errors. Log: ${sessionLogPath}`);
89136
+ [claudish] Session ended with errors (exit code ${exitCode}).`);
89137
+ if (proxy.modelRequestCount() === 0) {
89138
+ console.error("[claudish] Claude Code exited before sending any model request, so the fault is on its side, not the model's.");
89139
+ console.error(`[claudish] Run \`claude\` in ${process.cwd()} to see its own error.`);
89140
+ }
89141
+ console.error(`[claudish] Log: ${sessionLogPath}`);
89125
89142
  console.error(`[claudish] To review: /debug-logs ${sessionLogPath}`);
89126
89143
  }
89127
89144
  process.exit(exitCode);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claudish",
3
- "version": "9.0.1",
3
+ "version": "9.0.2",
4
4
  "description": "Run Claude Code with any model - OpenRouter, Ollama, LM Studio & local models",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -60,10 +60,10 @@
60
60
  "ai"
61
61
  ],
62
62
  "optionalDependencies": {
63
- "@claudish/magmux-darwin-arm64": "9.0.1",
64
- "@claudish/magmux-darwin-x64": "9.0.1",
65
- "@claudish/magmux-linux-arm64": "9.0.1",
66
- "@claudish/magmux-linux-x64": "9.0.1"
63
+ "@claudish/magmux-darwin-arm64": "9.0.2",
64
+ "@claudish/magmux-darwin-x64": "9.0.2",
65
+ "@claudish/magmux-linux-arm64": "9.0.2",
66
+ "@claudish/magmux-linux-x64": "9.0.2"
67
67
  },
68
68
  "author": "Jack Rudenko <i@madappgang.com>",
69
69
  "license": "MIT",