Skip to content

v2.0.1

Choose a tag to compare

@Joshua-Gilbert Joshua-Gilbert released this 26 Jun 21:17
3e813db

The Bob 2.0 in-process loop never emitted a heartbeat, so board_status.worker_draining read false while it was actively draining — and the skills told you to start a worker that was already running. This makes the board see the loop, recovers tasks it strands on a crash, and gives routing a single source.

  • Heartbeat — the 2.0 loop beats like the 1.x worker (shared startHeartbeat()); teardown in try/finally so it can't leak.
  • Reclaim — stale in_progress recovered at startup, peer-guarded (live beat + pid) so it can't steal a co-running drainer's task.
  • predict_mode — routes from modes.ts; foreman docs call it instead of copying the keyword table (parity test guards drift).
  • worker_draining.tags — each worker's --tag pin, so the board shows why a live worker skips a task.

The fixes live in the connector — pull this tag and npm run build. The attached VSIX is the matching 2.0.1 extension (loads the connector dist/ via bobTasks.connectorPath).