Releases: mdoty4/taskreaper-core
Release list
v3.4.0 — Jira Channel & Trust Hardening
BatonBot v3.4 — "Design Partner / Trust Hardening"
Headline: BatonBot now accepts ingress from anything. File a bug in Jira → BatonBot picks it up, fixes it, and comments the result back on the ticket — with the safety guards that make it trustworthy against a real team's project.
🎫 Jira Channel
- Polling-based Jira ingress (
modules/jira-adapter.js): BatonBot polls Jira Cloud's REST API on an interval — outbound HTTPS only, no webhook, no public URL, no tunnel. Works from any laptop behind any firewall. - Label routing:
fix-now(or priority Highest) → QUEUE + auto-run;queue→ QUEUE waiting for ▶; everything else → PENDING for triage. - Per-project settings UI in the project editor drawer, with Test Connection and Sync Now buttons.
- Setup guide:
docs/jira-setup.md(~15 minutes).
🛡 Trust Hardening
- Assignee guard (on by default) — tickets assigned to a human are never imported. Only unassigned tickets, or tickets assigned to the configured Bot Account Email (the assign-to-bot workflow), become cards.
- Autostart cap — at most 3 fire-and-forget runs per poll cycle (configurable). A bulk-filed batch of
fix-nowtickets can't spin up unbounded agent runs; extras queue for a human ▶. - First-run watermark — only tickets created after you enable the channel are imported. Flipping the toggle on a mature Jira project won't flood the board with years of backlog.
🔁 Closing the Loop
- Full lifecycle comments back to Jira: pickup 🤖, queue moves 📋, completion ✅ (with summary), failure ❌ (with reason). Idempotent — exactly one result comment per run; reset + re-run comments again.
- Clear failure reasons on cards:
task.erroris now rendered on the card and in the detail drawer. The most common local-model failure gets a friendly translation: "❌ Failed: Couldn't reach the LLM at http://localhost:1234/v1. Is LM Studio running?" - Delete → reimport escape hatch: deleting a Jira-sourced card removes its key from the dedup list so the still-open ticket re-imports on the next sync.
- Auto-transition to Done (v3.4.1): when a task completes, its Jira ticket transitions to the workflow's Done status (matched by status category, so it works with any workflow naming). Default ON via
jiraConfig.transitionOnDone; failed tickets never move.
📋 Known Limitations (documented in docs/jira-setup.md)
Deliberate v3.4 scope cuts: no re-sync of edited tickets, plaintext token in prompts.json, only the Done transition is automated (no In-Progress transition on pickup), no poller backoff, single-instance dedup, exact/case-sensitive label matching, one-way channel (board-created tasks aren't mirrored to Jira).
New/changed config (project.jiraConfig)
| Key | Default | Purpose |
|---|---|---|
onlyUnassigned |
true |
Assignee guard |
botAccountEmail |
"" |
Assign-to-bot workflow |
maxAutostartPerPoll |
3 |
Autostart cap |
enabledAt |
stamped on enable | First-run watermark |
transitionOnDone |
true |
Auto-move ticket to Done on task success |
New endpoints
POST /api/projects/:id/jira/forget-key— delete→reimport escape hatchPOST /api/projects/:id/jira/task-event— queue-move visibility comments
v3.2.3 — macOS Portable (Apple Silicon)
BatonBot v3.2.3 — Portable (macOS Apple Silicon)
Download. Unzip. Double-click. No git, no npm, no Node required.
v3.2.3 brings the portable-bundle story from v3.2.2 to macOS. If you're on
an Apple Silicon Mac (M1 / M2 / M3 / M4), you can now run BatonBot with
zero prerequisites — the ZIP includes a pinned Node 20 LTS arm64 binary
and a double-clickable start.command launcher.
🚀 Quick start (macOS Apple Silicon)
- Download
batonbot-portable-mac-arm64.zipbelow. - Double-click the ZIP to extract it (Finder does this automatically).
- First launch only: right-click (or Control-click)
start.command
inside the extracted folder → Open → click Open in the
confirmation dialog. macOS remembers your choice from then on. - Your default browser opens to http://localhost:4321.
That's it. Your settings, projects, and logs live in the config/ folder
next to start.command — delete the folder to uninstall cleanly.
✅ What works in this build
- Full BatonBot UI on macOS 12+ (Apple Silicon)
- All bundled agents: Baton Code, Baton Code (Thinking), Aider, Cline, Telegram
- Anthropic, OpenAI-compatible, and LM Studio providers
- No Node, npm, or git required on the host machine
🐛 Bug fixes / changes in v3.2.3
- v3.2.3 — New: macOS Apple Silicon (arm64) portable bundle with
start.commandlauncher. - v3.2.3 — Refactored
scripts/build-portable/— extracted shared
logic intocommon.jssobuild-win.jsandbuild-mac.jsstay in sync. - v3.2.3 — README rewritten install-first: Portable is now listed as
Option A, ahead of the git-clone flow.
Windows users: the v3.2.2 Windows portable bundle is unchanged and continues
to ship in this release.
🔐 Verify your download (optional but recommended)
A SHA256 checksum is published alongside each ZIP. To verify on macOS:
shasum -a 256 batonbot-portable-mac-arm64.zipThe output should match the value in
batonbot-portable-mac-arm64.zip.sha256.
⚠️ Known issues / caveats
- Gatekeeper "unidentified developer" warning on first launch is
expected. This bundle is not Apple-notarized yet. The right-click →
Open workaround above is the standard Mac approach; macOS remembers your
choice after the first run. Alternatively, run
xattr -dr com.apple.quarantine .inside the unzipped folder once. - Intel Macs (x86_64): not in this release. Planned for a future
update. Intel-Mac developers should use thegit clone+npm install
flow from the README until then. - Linux portable bundle: not in this release. Planned for a future
update. Linux developers should use thegit clone+npm installflow. - Code signing: not yet. Signing/notarization is on the roadmap.
👩💻 Developers
The dev workflow is unchanged. git clone + npm install + npm run dev
continues to work as before. To build the portable bundles yourself:
# Windows x64 (bundled node.exe + start.cmd)
npm run build:portable:win
# macOS Apple Silicon (bundled node arm64 + start.command)
npm run build:portable:macBundles land in dist/batonbot-portable-win-x64.zip and
dist/batonbot-portable-mac-arm64.zip.
Full changelog
See ROADMAP.md item v3.2 — Portable for the full plan. Items still
open: Intel Mac portable, Linux portable, 30-second install GIF, launch
announcement post.
v3.2.2 — Portable (Windows)
BatonBot v3.2.2 — Portable (Windows)
Download. Unzip. Double-click. No git, no npm, no Python.
This is the first BatonBot release that runs on a fresh Windows machine without installing Node.js or cloning the repo. Just download the ZIP, unzip it, double-click start.cmd, and your browser opens to a working BatonBot.
🚀 Quick start (Windows)
- Download
batonbot-portable-win-x64.zipbelow. - Right-click → "Extract All…" (or use 7-Zip).
- Double-click
start.cmdinside the extracted folder. - Your browser opens to http://localhost:3000.
That's it. Your settings, projects, and logs live in the config/ folder next to start.cmd — delete the folder to uninstall cleanly.
✅ What works in this build
- Full BatonBot UI on Windows 10 / 11
- Cline orchestration (verified on a clean Windows 11 VM with Cline 3.0.34)
- Anthropic, OpenAI-compatible, and LM Studio providers
- Aider, Cline, Baton Code, and Telegram agents
🐛 Bug fixes in v3.2.x
- v3.2.2 — Fixed a silent hang where Cline tasks would never start on Windows. Root cause: Node's default open stdin pipe blocked Cline's first-call init forever.
spawnCompat()now usesstdio: ['ignore', 'pipe', 'pipe'], the Node equivalent of< nul. - v3.2.1 — Fixed Anthropic Claude Opus 4.7 rejecting requests with a 400 error. The
temperatureparameter is now omitted when not explicitly configured. - v3.2.1 — Fixed orchestration reporting "N succeeded, 0 failed" when Baton Code tasks actually failed. The agent wrapper now propagates true success/failure.
- v3.2.0 — Config (
prompts.json,.env,logs/) now lives in aconfig/folder next to the executable, so deleting the folder cleanly uninstalls everything.
🔐 Verify your download (optional but recommended)
A SHA256 checksum is published alongside the ZIP. To verify in PowerShell:
Get-FileHash batonbot-portable-win-x64.zip -Algorithm SHA256The output should match the value in batonbot-portable-win-x64.zip.sha256.
⚠️ Known issues / caveats
- Parallels shared folders (
C:\Mac\…): Cline can be slow or hang against the Parallels Mac share. Use a native path likeC:\Users\<you>\Desktop\<project>for best results. BatonBot will warn you when it detects this. - macOS / Linux portable bundles: Not in this release. Planned for v3.2.3. Mac/Linux developers should still use the
git clone+npm installflow from the README. - Code signing: This build is not signed yet. Windows SmartScreen may warn on first launch ("Windows protected your PC"). Click "More info" → "Run anyway". A signing strategy is on the roadmap.
👩💻 Developers
This release does NOT change the dev workflow. git clone + npm install + npm run dev continues to work as before. To build the portable bundle yourself:
npm run build:portable:winThe bundle lands in dist/batonbot-portable-win-x64.zip.
Full changelog
See ROADMAP.md item v3.2 — Portable (the adoption release) for the full plan. Items 3.2.2 (install-first README + GIF) and 3.2.3 (macOS + Linux bundles) are tracked for upcoming releases.
v3.0.0 — Front-end overhaul, Kanban board & Windows support
🎉 v3.0.0 — Front-end overhaul, Kanban board & Windows support
This is a major release with a redesigned front-end, a new Kanban-style task board, full cross-platform support (Windows / macOS / Linux), and major rewrites under the hood.
✨ New Features
- Kanban Task Board — Drag-and-drop board with
Pending,Queue, andCompletedcolumns. Drop cards from the agent palette, reorder the queue to shape execution order, and click cards to open a detail drawer for per-task prompt editing & history. Linear Pipeline view is still available. - Theming — New
modules/theme.js+board.cssadd a themable UI layer (light/dark + accent colors). - Windows support — BatonBot now runs natively on Windows 10/11 alongside macOS and Linux from a single codebase. Process spawning and child-tree termination are handled per-platform via
process.platformdetection. WSL2 also fully supported. - Pause control — New
POST /api/project/:id/tasks/pauseendpoint and a Pause button on the board lets you stop after the current task settles (vs. Cancel which terminates immediately). - Richer task states — Live SSE updates now include
planningandstoppedin addition topending/in_progress/done/failed. - Telegram agent —
telegramis now a first-class routable messenger.
🔧 Improvements
- Significant rewrite of
batonbot.js,index.html,terminal.js,sessions.js, andchat.jsfor stability and modularity. - Terminal module simplified (~370 → cleaner core).
- Session management improvements (~190 lines of new logic for persistence & restore).
- Updated base URL guidance for external agents: use
http://localhost:4321/v1. - New
.gitattributesfor consistent line endings across platforms.
📦 Dependencies
- Added
tree-kill@^1.2.2for reliable cross-platform child-process termination.
🪟 Windows notes
- Agent CLIs (
cline,aider,git) must be onPATH; BatonBot spawns throughcmd.exeon Windows so.cmdshims resolve correctly. - Use forward slashes or escaped backslashes in working directories.
- Bash test scripts (
test_api.sh,verify_isolation.sh) require Git Bash or WSL; the app itself does not. - Enable long-path support if your projects are deeply nested:
git config --system core.longpaths true.
⚠️ Breaking / Notable
- External-agent base URL changed from
http://localhost:4321/→http://localhost:4321/v1. Update your Cline/Aider/OpenAI-compatible client settings. - Front-end layout and module structure changed substantially; if you forked the UI, expect merge conflicts.
📁 New files
modules/board.js,modules/theme.js,board.css,.gitattributes
Full changelog: v2.1.0...v3.0.0
v2.1.0 — Telegram Signal-Chain Integration
What's New
Telegram Signal-Chain Integration
- Added "📨 Add Telegram" toggle in the chat UI
- When enabled, inserts Telegram notification messages between each pipeline step
- Auto-assigns
telegramagent to notification tasks
Improved Task Wrapping
- System prompt now preserves user-provided steps verbatim instead of rewriting them
- Better structure for the
<<TASK_N>>output format
Version
- Bumped to 2.1.0
v2.0.0 — Baton Code Agent & MCP Support
🧬 BatonBot v2.0.0 — Baton Code Agent & MCP Support
Biggest update yet. Baton now ships a native autonomous coding agent plus full MCP server support.
✨ Major New Features
Baton Code Agent System — native coding agent with autonomous planning and execution
- Two modes: Baton Code (standard) and Baton Code Thinking (extended reasoning)
- Agents can be assigned to any pipeline task via the orchestrator
- Automatic context injection between pipeline stages
- Real-time SSE streaming of agent progress, thinking, and plan phases
- Persistent session logs (Cline/Aider format)
MCP Server Support
- Configure MCP servers directly from the Settings panel
- Built-in Git MCP Server (
git_commit,git_push,git_diff,git_log,git_branch,git_status) - Toggle servers on/off with custom command + argument configuration
LLM Provider Auto-Configuration
- One-click provider selector for Global and Per-Project settings
- Supported: OpenAI, Anthropic, Google Gemini, X AI (Grok), Custom
- Auto-populates API Base URL and default model
🛠 Improvements
- Plan phase state management (
planning→in_progress→done) - Structured task summaries now persisted to project state
- Settings drawer reloads config when navigating tabs
- Enhanced override badges for project-level configuration
Stats: ~1,100 lines added across 14 files, 3 new modules
Ready to level up your AI coding pipelines? Update Baton now and try the new Baton Code Agent! 🚀