@alexnodeland/claude-telegram 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -5,6 +5,13 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.2.1] - 2026-03-22
9
+
10
+ ### Fixed
11
+
12
+ - **`claude` not found in daemon** — orchestrator now reads `CLAUDE_BIN` env var for the CLI path, falling back to `"claude"` from `$PATH`. Fixes "Executable not found" when launchd/systemd don't inherit the user's full `$PATH`.
13
+ - Daemon install script (`daemon.sh`) auto-detects the `claude` binary path and passes `CLAUDE_BIN` into the launchd plist / systemd unit.
14
+
8
15
  ## [0.2.0] - 2025-03-22
9
16
 
10
17
  ### Added
@@ -37,5 +44,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
37
44
  - **HTML formatting** — all output uses Telegram HTML parse mode for reliable rendering
38
45
  - **Zero Telegram SDK** — all API calls use native `fetch`
39
46
 
47
+ [0.2.1]: https://github.com/alexnodeland/claude-telegram/releases/tag/v0.2.1
40
48
  [0.2.0]: https://github.com/alexnodeland/claude-telegram/releases/tag/v0.2.0
41
49
  [0.1.0]: https://github.com/alexnodeland/claude-telegram/releases/tag/v0.1.0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alexnodeland/claude-telegram",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "Claude Code Channel plugin + standalone orchestrator bridging Telegram to Claude Code sessions",
5
5
  "module": "src/index.ts",
6
6
  "main": "src/index.ts",
package/scripts/daemon.sh CHANGED
@@ -8,6 +8,7 @@ BUN="$(which bun 2>/dev/null || echo "$HOME/.bun/bin/bun")"
8
8
  SCRIPT_DIR="$(cd "$(dirname "$0")/.." && pwd)"
9
9
  ORCHESTRATOR="$SCRIPT_DIR/src/orchestrator.ts"
10
10
  TOKEN="${TELEGRAM_BOT_TOKEN:-}"
11
+ CLAUDE_BIN="${CLAUDE_BIN:-$(which claude 2>/dev/null || echo "claude")}"
11
12
 
12
13
  if [ -z "$TOKEN" ] && [ "$1" != "uninstall" ] && [ "$1" != "status" ] && [ "$1" != "logs" ]; then
13
14
  echo "Error: TELEGRAM_BOT_TOKEN is not set"
@@ -37,6 +38,8 @@ install_launchd() {
37
38
  <dict>
38
39
  <key>TELEGRAM_BOT_TOKEN</key>
39
40
  <string>$TOKEN</string>
41
+ <key>CLAUDE_BIN</key>
42
+ <string>$CLAUDE_BIN</string>
40
43
  <key>PATH</key>
41
44
  <string>/usr/local/bin:/usr/bin:/bin:$HOME/.bun/bin</string>
42
45
  </dict>
@@ -93,6 +96,7 @@ After=network.target
93
96
  [Service]
94
97
  ExecStart=$BUN run $ORCHESTRATOR
95
98
  Environment=TELEGRAM_BOT_TOKEN=$TOKEN
99
+ Environment=CLAUDE_BIN=$CLAUDE_BIN
96
100
  Restart=on-failure
97
101
  RestartSec=5
98
102
 
@@ -348,6 +348,7 @@ const MAX_TURNS = Number(process.env.ORCHESTRATOR_MAX_TURNS ?? "50");
348
348
  let globalModel = process.env.ORCHESTRATOR_MODEL;
349
349
 
350
350
  // Absolute path to the sidecar script
351
+ const CLAUDE_BIN = process.env.CLAUDE_BIN ?? "claude";
351
352
  const RELAY_SCRIPT = resolve(import.meta.dir, "permission-relay.ts");
352
353
 
353
354
  process.stderr.write(
@@ -1258,7 +1259,7 @@ async function runQuery(
1258
1259
  await writeFile(mcpConfigPath, JSON.stringify(mcpConfig));
1259
1260
 
1260
1261
  const args = [
1261
- "claude",
1262
+ CLAUDE_BIN,
1262
1263
  "-p",
1263
1264
  "--output-format",
1264
1265
  "stream-json",