nanobazaar-cli 2.0.2 → 2.0.3

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
@@ -4,6 +4,11 @@ All notable changes to `nanobazaar-cli` are documented in this file.
4
4
 
5
5
  This project follows Semantic Versioning.
6
6
 
7
+ ## [2.0.3] - 2026-02-09
8
+
9
+ ### Changed
10
+ - `nanobazaar watch` now wakes only on relay wake events; removed the safety interval.
11
+
7
12
  ## [2.0.2] - 2026-02-08
8
13
 
9
14
  ### Fixed
package/bin/nanobazaar CHANGED
@@ -1275,10 +1275,10 @@ Commands:
1275
1275
  Poll events and optionally ack
1276
1276
  poll ack --up-to-event-id <id>
1277
1277
  Advance the server-side poll cursor (used for 410 resync)
1278
- watch [--stream-path /v0/stream] [--safety-wake-interval <seconds>]
1278
+ watch [--stream-path /v0/stream]
1279
1279
  [--state-path <path>] [--openclaw-bin <bin>] [--event-text <text>]
1280
1280
  [--mode now|next] [--no-openclaw]
1281
- Maintain SSE connection; wake OpenClaw on relay wake events + on a safety interval.
1281
+ Maintain SSE connection; wake OpenClaw on relay wake events.
1282
1282
  Does not poll or ack (OpenClaw should run /nanobazaar poll).
1283
1283
 
1284
1284
  Global flags:
@@ -3035,11 +3035,9 @@ async function runWatch(argv) {
3035
3035
  throw new Error('watch no longer polls. Remove polling flags (--no-ack/--no-fetch-payloads/--limit/--types/--print-polls/--output) and retry.');
3036
3036
  }
3037
3037
 
3038
- const safetyIntervalSeconds = flags.safetyWakeInterval
3039
- ? parsePositiveInt(flags.safetyWakeInterval, '--safety-wake-interval')
3040
- : flags.safetyPollInterval
3041
- ? parsePositiveInt(flags.safetyPollInterval, '--safety-poll-interval')
3042
- : 180;
3038
+ if (flags.safetyWakeInterval !== undefined || flags.safetyPollInterval !== undefined) {
3039
+ throw new Error('Safety wake interval has been removed. Remove --safety-wake-interval/--safety-poll-interval and retry.');
3040
+ }
3043
3041
 
3044
3042
  const openclawBin = String(flags.openclawBin || 'openclaw');
3045
3043
  const mode = String(flags.mode || 'now');
@@ -3050,7 +3048,6 @@ async function runWatch(argv) {
3050
3048
  relay_url: config.relay_url,
3051
3049
  state_path: statePath,
3052
3050
  stream_path: streamPath,
3053
- safety_wake_interval_seconds: safetyIntervalSeconds,
3054
3051
  openclaw_enabled: openclawEnabled,
3055
3052
  });
3056
3053
 
@@ -3091,7 +3088,7 @@ async function runWatch(argv) {
3091
3088
  const label = queuedReason || reason;
3092
3089
  queuedReason = null;
3093
3090
 
3094
- // Best-effort: waking OpenClaw can be retried on the next wake/safety interval.
3091
+ // Best-effort: waking OpenClaw can be retried on the next wake event.
3095
3092
  const didWake = triggerOpenclawWake(label);
3096
3093
  console.error(`[watch] wake ${didWake ? 'ok' : 'skipped'} (${label})`);
3097
3094
  }
@@ -3114,17 +3111,6 @@ async function runWatch(argv) {
3114
3111
  console.error(`[watch] relay=${config.relay_url}`);
3115
3112
  console.error(`[watch] state_path=${statePath}`);
3116
3113
  console.error(`[watch] stream_path=${streamPath}`);
3117
- console.error(`[watch] safety_wake_interval_seconds=${safetyIntervalSeconds}`);
3118
-
3119
- const safetyTimer = setInterval(() => {
3120
- if (signal.aborted) {
3121
- return;
3122
- }
3123
- void runWakeLoop('safety');
3124
- }, safetyIntervalSeconds * 1000);
3125
-
3126
- // Kick off an initial wake so the agent can poll even if wakeups are missed.
3127
- void runWakeLoop('startup');
3128
3114
 
3129
3115
  let attempt = 0;
3130
3116
  function isWakeEvent(evt) {
@@ -3201,7 +3187,6 @@ async function runWatch(argv) {
3201
3187
  }
3202
3188
  }
3203
3189
 
3204
- clearInterval(safetyTimer);
3205
3190
  }
3206
3191
 
3207
3192
  const DISPATCH_BOOL_FLAGS = new Set([
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nanobazaar-cli",
3
- "version": "2.0.2",
3
+ "version": "2.0.3",
4
4
  "description": "NanoBazaar CLI for the NanoBazaar Relay and OpenClaw skill.",
5
5
  "homepage": "https://github.com/nanobazaar/nanobazaar/tree/main/packages/nanobazaar-cli#readme",
6
6
  "license": "UNLICENSED",