@poolzin/pool-bot 2026.2.9 → 2026.2.10

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
@@ -1,3 +1,10 @@
1
+ ## v2026.2.10 (2026-02-16)
2
+
3
+ ### Fixes
4
+ - Reduce default exec tool timeout from 1800s (30 min) to 120s (2 min) — prevents bot from silently hanging on stuck bash commands; per-call timeout param and config `tools.exec.timeoutSec` still override; new env vars `POOLBOT_EXEC_TIMEOUT_SEC` / `CLAWDBOT_EXEC_TIMEOUT_SEC` for further control
5
+
6
+ ---
7
+
1
8
  ## v2026.2.9 (2026-02-15)
2
9
 
3
10
  ### Improvements
@@ -58,6 +58,11 @@ function validateHostEnv(env) {
58
58
  const DEFAULT_MAX_OUTPUT = clampNumber(readEnvInt("PI_BASH_MAX_OUTPUT_CHARS"), 200_000, 1_000, 200_000);
59
59
  const DEFAULT_PENDING_MAX_OUTPUT = clampNumber(readEnvInt("POOLBOT_BASH_PENDING_MAX_OUTPUT_CHARS") ??
60
60
  readEnvInt("CLAWDBOT_BASH_PENDING_MAX_OUTPUT_CHARS"), 200_000, 1_000, 200_000);
61
+ // Default exec timeout: 120s is generous for typical commands (grep, cat, ls, build).
62
+ // The AI can still pass a per-call `timeout` for intentionally long operations,
63
+ // and users can override via config (`tools.exec.timeoutSec`) or env var.
64
+ // Previous default (1800s / 30 min) caused the bot to hang silently on stuck commands.
65
+ const DEFAULT_EXEC_TIMEOUT_SEC = clampNumber(readEnvInt("POOLBOT_EXEC_TIMEOUT_SEC") ?? readEnvInt("CLAWDBOT_EXEC_TIMEOUT_SEC"), 120, 1, 86_400);
61
66
  const DEFAULT_PATH = process.env.PATH ?? "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin";
62
67
  const DEFAULT_NOTIFY_TAIL_CHARS = 400;
63
68
  const DEFAULT_APPROVAL_TIMEOUT_MS = 120_000;
@@ -73,7 +78,7 @@ const execSchema = Type.Object({
73
78
  })),
74
79
  background: Type.Optional(Type.Boolean({ description: "Run in background immediately" })),
75
80
  timeout: Type.Optional(Type.Number({
76
- description: "Timeout in seconds (optional, kills process on expiry)",
81
+ description: "Timeout in seconds (default 120, kills process on expiry). Set higher for long builds/downloads.",
77
82
  })),
78
83
  pty: Type.Optional(Type.Boolean({
79
84
  description: "Run in a pseudo-terminal (PTY) when available (TTY-required CLIs, coding agents)",
@@ -559,7 +564,7 @@ export function createExecTool(defaults) {
559
564
  const allowBackground = defaults?.allowBackground ?? true;
560
565
  const defaultTimeoutSec = typeof defaults?.timeoutSec === "number" && defaults.timeoutSec > 0
561
566
  ? defaults.timeoutSec
562
- : 1800;
567
+ : DEFAULT_EXEC_TIMEOUT_SEC;
563
568
  const defaultPathPrepend = normalizePathPrepend(defaults?.pathPrepend);
564
569
  const safeBins = resolveSafeBins(defaults?.safeBins);
565
570
  const notifyOnExit = defaults?.notifyOnExit !== false;
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "2026.2.9",
3
- "commit": "a3ff7feec15d86fc36e440fb5cd5b21a17cffcec",
4
- "builtAt": "2026-02-16T00:20:35.180Z"
2
+ "version": "2026.2.10",
3
+ "commit": "e66cd57a7cc2217c8fa111edab895a49da8dc5e0",
4
+ "builtAt": "2026-02-16T05:50:01.218Z"
5
5
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@poolzin/pool-bot",
3
- "version": "2026.2.9",
3
+ "version": "2026.2.10",
4
4
  "description": "🎱 Pool Bot - AI assistant with PLCODE integrations",
5
5
  "keywords": [],
6
6
  "license": "MIT",