Skip to content

Changelog

Released 2026-08-27.

An agent long-term memory overhaul: recall is now scoped to the speaking agent, agents can query their own episodic memory directly, and NOTES.md becomes an index with room to grow — plus a workspace file-viewer upgrade and tunnel reliability fixes.

New & improved

  • memory — Recall is scoped to the speaking agent. recall_scope gains an agent value and becomes functional: project and session had never filtered anything, and now narrow within the agent’s own episodes
  • memory — New memory_search and memory_fetch tools let an agent query its own episodic memory. Scope is bound by the executor and is not model-controllable; memory_fetch re-checks ownership per episode
  • memory — Reflection now runs for every agent that spoke in a conversation, not just the lead
  • memoryNOTES.md cap raised 4,000 → 12,000 and USER.md 3,000 → 6,000, with an automatic consolidation pass at 80% that rewrites notes into a compact index
  • workspace — A single agent-directory resolver shared by the daemon and gateway, plus snippbot agents conflicts and snippbot agents reconcile to merge duplicate workspaces
  • chat — PDF previews and working downloads in the workspace file viewer, with a maximize toggle

Fixes

  • memory — Cross-agent context bleed: every agent recalled against one undifferentiated episode pool
  • workspace — Split-brain workspaces: the daemon scanned vps/agents first while the gateway scanned ~/.snippbot/agents first, so an agent’s notes were written to one file and displayed from another. Which file was written also depended on which checkout launched the daemon
  • memorymemory_note silently failed for months once a file reached its cap; reflection collapsed cap_exceeded into a generic failure counter and surfaced nothing
  • memory — An over-cap notes file could never be trimmed: the cap check rejected removals too, so the agent could neither add nor remove
  • toolsmemory_note and user_note were dropped by any allowlist tool profile, even with core tools included, so agents with a custom Tool Access profile could not write notes at all
  • memory/api/memory/search parsed an agent_id parameter and never used it
  • workspace — Manual edits in the agent editor bypassed the character cap the agent’s own tools obey
  • remote-access — Pin cloudflared to HTTP/2 so a blocked QUIC path can’t stall the tunnel
  • chat — Scope the continuation cap to multi-agent rooms; alphabetize the gateway roster
  • chat — Don’t let an un-renderable ask_questions form lock the composer
  • chat — Alphabetize the agent roster list
  • swarm — Restore brainstorm send-memoization + mid-stream avatar attribution

Released 2026-08-19.

A reliability release focused on chat delivery: agent work now survives the end of a turn, mid-response cutoffs are closed, and reconnects no longer drop messages. Adds opt-in semantic memory search and dynamic room-roster tools.

New & improved

  • chat — Self-requeue continuations: a durable job-runner + job-done hook lets an agent’s work survive turn-end, with a /continue endpoint that delivers the continuation live to web and mobile
  • chat — Capture finish_reason and resume truncated turns in place (turn-lifecycle matrix)
  • chat — Dynamic room-roster tools for a PM/lead agent (add/remove agents), gated through ask_questions with a native confirm dialog for removals
  • memory — Ship the memory-indexer as an entry point with opt-in semantic search; promote high-signal insights into episodic memory; make the file-memory layer coherent (writable + scheduled)
  • ui — Composer no longer re-renders the whole app on every keystroke

Fixes

  • chat — Close every mid-response cutoff path across mobile and backend
  • chat — Catch up on reconnect so standby drops no longer lose delivered messages
  • chat — Never deliver empty message shells; sweep orphaned placeholders surgically (age-gated, never touching in-flight turns)
  • chat — Swallow the [[defer]] sentinel universally and never stream it
  • chat — Deliver continuation turns live to connected web + mobile clients; give continuation turns an ephemeral prompt so claude-native actually generates
  • chat — Agent-to-agent @!handle hand-offs were silently dropped in turn-capped rooms — now delivered; roster lead-gate fixes
  • chat — Per-speaker question forms + honest manual-answer; don’t let queued messages or dead-end question forms eat the user’s answers
  • chat — Stop duplicate React keys when a tool result is reported twice
  • security — CSRF-exempt the self-requeue /api/chat/continue callback
  • ui — Raise the model dropdown above the agent hover popover

Released 2026-08-08.

Adaptive Swarm graduates: it’s now on by default, gains a Collaborative Mode (agents work as a group chat), and a rebuilt execution console. This release also adds Remote Access (daemon tunneling + mobile QR pairing) and the first Insights delivery controls.

Highlights

  • Adaptive Swarm is on by defaultSNIPPBOT_SWARM_ENABLED now defaults on (the git-handoff sub-flag stays off). Set SNIPPBOT_SWARM_ENABLED=0 to opt out.
  • Swarm Collaborative Mode — agents converse as a group chat: on-demand reactive turns, self-election, a peer-DM side-channel, room auto-compaction, and PM synthesis of the room into the plan.
  • Remote Access — connect the mobile app to your daemon over a tunnel with QR pairing, configured from a guided Settings walkthrough.

New & improved

  • swarm — Collaborative Mode: group-chat backbone with on-demand turns, self-elect + low-signal muting, a bounded/sanitized peer-DM side-channel, room auto-compaction, search_room_history recall, an always-in-context Project TOC, and split collaboration budget caps
  • swarm — Rebuilt execution console: one unified Console + Steering + Activity surface, live agent-stream tab, Output (workspace) browser, named-agent org-chart, durable swarm_events activity log, and Project/Agents tab consolidation
  • swarm — Kickoff: Mermaid plan graph with zoom/drag-pan, mid-run plan control (add/edit/delete tasks while steering), file attachments when steering, and clearer gate-approval cards
  • swarm — Milestone-approval gate: pause BUILD to review a milestone before continuing
  • swarm — Slot-freeing suspend/resume for TEAM & PLAN gates; frozen compute-duration rail during gate waits
  • remote-access — Daemon tunneling + mobile QR pairing, with a numbered Settings walkthrough and tunnel address learned from the pairing request
  • insights — Phase 1 delivery controls: master switch, per-channel toggles (email + in-app tray), and a 1–4 frequency slider
  • chat — Pause per-agent questions with resume and no pile-on in multi-agent turns
  • history — Search message content, not just conversation titles
  • ui — Live version chip with an update-available notice sourced from PyPI

Fixes

  • security — The loopback auth bypass now requires a direct connection
  • chat — Durable multi-agent streaming that survives client disconnect (mobile backgrounding); preserve partial streamed text when a turn is interrupted; reap orphaned “sending” ghosts + surface OpenRouter reasoning
  • thinking — Idle thinking is now opt-in and gated on chat presence, with queue removal + retention (the toggle can no longer lie)
  • tools — Keep custom_python calls off the event loop + reap the process tree; core tools read the Package-Credentials vault + repaired generate_image
  • providers — claude-native self-updates from the Anthropic catalog
  • ui — Portal Dropdown menus correctly; stop the settings request storm that trips the rate limiter; anchor the idle-thinking toggle for every agent
  • devices / push — Distinguish pairing state from WebSocket presence; give the push store its own DB file (no more devices.db collision)
  • insights — Honor the off switch (normalize user_id at the settings choke point); stop silent settings-save failures

Released 2026-07-31.

Our biggest release yet. It introduces Adaptive Swarm — a new autonomous execution mode — alongside built-in chat slash commands with reversible compaction, and a broad security & marketplace-integrity pass.

Highlights

  • Adaptive Swarm (new, opt-in) — a PM → parallel workers → QA → end-to-end execution mode for Projects, driven by a kickoff wizard (Define · Team · Brainstorm · Plan · Launch), PM-minted contract agents, and notify-with-veto. Ships behind SNIPPBOT_SWARM_ENABLED (default off).
  • Chat slash commands + reversible, searchable compaction — built-in /context, /compact, /export, /clear.
  • Security & integrity hardening — SSRF guard on by default, MCP env encrypted at rest, and the fake-success package generator removed.

New & improved

  • swarm (opt-in) — the Adaptive Swarm engine end-to-end (P0–P7): PM-led planning, parallel workers, integration smoke-gate, QA and E2E, with plan validation, graceful partial delivery, resume/edit, github_pr handoff, and a contract-agent pool. Gated by SNIPPBOT_SWARM_ENABLED (default off).
  • chat — Built-in slash commands with reversible, searchable compaction
  • chat — Server-side source filter for the conversations feed
  • chat — Multi-agent turns: deliver the user’s message to every speaker, label the human’s turns, and halt on ask_questions so each agent’s questions stay answerable
  • chat — Surface a Stop control in every mode, plus per-agent stop
  • channel-echo — Mirror app/web turns into the bound channel thread
  • monitoring — Real system health on the Monitor page (was a hardcoded stub)
  • settings — New Insights section in the Settings nav
  • thinking — Internal-model gate honors the selected Default Internal Model instead of forcing the paid API
  • files — Robust upload MIME detection: sniff magic bytes + infer from extension

Fixes

  • security — SSRF guard denies internal/loopback by default
  • security — Encrypt MCP env at rest, fix a CVE false-clean, harden validation
  • security — Log the X-Forwarded-For/trust_proxy warning once per process
  • marketplace — Repair MCP install and stop generators emitting fake-success stubs; real implementations for 6 MCP servers
  • evolution — Harden self-improvement: revert integrity, growth caps, rate limits
  • claude-native — Pin the requested model version instead of collapsing it; recover a conversation whose --resume session is gone; paragraph breaks between text blocks
  • chat — Honor the max_tokens cap in the Anthropic provider; let an explicit model pick override the agent’s preferred_model; keep swarm/lifecycle conversations out of history
  • providers — Stop OpenAI-compatible providers leaking internal kwargs
  • workspace — Wire the pending-writes lifecycle + quiet polling access logs
  • builder / skills — Render the AI package-builder plan as Markdown (not raw source); pin the approved plan into context
  • swarm (opt-in) — gate-timeout hang, execution_type reconcile, github_pr resume persistence, and the divergent-history push wedge

Released 2026-07-16.

New & improved

  • dispatch — M7 enforce: route scheduler push through PushExecutor (pilot)
  • dispatch — M7 enforce: route scheduler announce through ChannelExecutor
  • dispatch — M7 enforce: route autonomous followups through ChatExecutor

Fixes

  • channels — Bound channel sessions: Telegram/email threading + compaction cap
  • channels — Make the channel compaction cap model-aware (fraction of the window)
  • channels — Treat a channel thread like a web chat + in-thread compaction heads-up
  • channels — Receive inbound images over Google Chat
  • scheduler — Concurrency, data-integrity & time-math hardening
  • scheduler — Webhook signing secret + delivery correctness
  • scheduler — Dispatch manual triggers + cascade chains via the tick loop
  • scheduler — Eliminate orphaned-producer / dead-consumer defects across pipelines
  • scheduler — Record user-message activity directly into the heatmap
  • dispatch — Route scheduler push to DELIVER_AS_PUSH + wire PushExecutor
  • dispatch — Key push/announce enforce on run_id + treat deduped as success
  • dispatch — Flag agent divergence in shadow mismatch detection
  • dispatch — Resolve remaining fresh-audit follow-ups: idempotency, audit, timestamps
  • ui — Remove the vestigial “Per-Source Shadow Mode” card from dispatcher settings
  • security — Pin the resolved IP for outbound webhooks (closes a DNS-rebind TOCTOU)
  • hooks — Atomic delivery claim + in-flight dedup

Released 2026-07-15.

New & improved

  • channels — Surface per-channel agent picker on adapter Setup tab
  • sandbox — Duplicate “Save Changes” in the page header (above the fold)
  • channels — Thread the streaming placeholder into the inbound thread

Fixes

  • chat — Address the personal user, not the platform account owner
  • channels — Key Google Chat DMs per-thread too (real token-blowup fix)
  • channels — Scope channel conversations per-thread to stop token blowup

Released 2026-07-13.

New & improved

  • sandbox — Overhaul isolation: profiles, a real Safe mode, and a correct file model
  • sandbox — Gate claude-native Bash through the CLI permission tool (Phase 1)
  • sandbox — Contain claude-native Bash + fail-close custom_python (Phase 2)
  • sandbox — Surface claude-native gating in the UI + audit hardening (Phase 3)
  • sandbox — Unify the master switch + contain plan/approval bash
  • sandbox — Containerize installed custom_python tools
  • sandbox — Strict daemon-only loopback for contained custom_python (opt-in)
  • sandbox — Make custom_python containment a UI toggle (config-backed, with backfill)
  • loops — Live execution visibility, browser verification & post-run audit
  • loops — Per-loop Working Dir + open-folder button + audit restart-robustness

Fixes

  • sandbox — Revive pooled containers + honest per-path containment docs
  • sandbox — Pooled containers now honor network.enabled + workspace mounts
  • loops — Event-driven active-run seeding (zero idle polling) + WS retry-forever

Released 2026-07-09.

New & improved

  • channels — Single-bubble streaming for the 6 remaining editable adapters
  • channels — Generalize single-bubble streaming into a capability framework (+Slack)
  • channels — Branded logo header for Google Chat + single streaming answer bubble
  • channels — Stream Google Chat replies into the placeholder in bursts

Fixes

  • chat — Make queued-message dispatch atomic to kill re-enqueue loop
  • usage-limits — Classify Claude CLI “session limit” wording + surface reset time
  • chat — Queue multiple messages during streaming without loss or loops
  • settings — Cover all sections in export/import/reset + Account & Access UI
  • channels — Return inline “Thinking…” in the Google Chat webhook body
  • channels — Auto-reload the channel adapter when it’s running stale code
  • channels — Google Chat “not responding” — instant ack + live thinking indicator
  • dev — Strip editable-install shadow + ship google-auth for Google Chat

Released 2026-07-05.

New & improved

  • usage-limits — Universal LLM usage-limit / balance-low warnings
  • tasks — Durable background tasks (behind SNIPPBOT_DURABLE_TASKS_ENABLED, default off)

Fixes

  • channels — Ngrok tunnel resilience — stable URL + single-agent election
  • tasks — Bind durable-task sub-agents to the conversation workspace

Released 2026-07-05.

New & improved

  • browser — Save screenshots to host + high-DPI/large-viewport capture

Fixes

  • channels — Stream webhook replies so follow-ups aren’t truncated

Released 2026-07-03.

New & improved

  • scheduler — Literal-output jobs (deliver prompt verbatim, no LLM)
  • channels — Autostart tunnel via ngrok CLI when pyngrok is absent
  • ui — Compact agent cards + grid/list view toggle on AgentsPage

Fixes

  • memory — Notebook dropdown z-index, proposal dedup, sticky agent
  • scheduler — Default literal jobs to raw delivery so text isn’t wrapped
  • channels — Detect running adapter via socket probe, not psutil
  • providers — Don’t wipe the model catalog on a failed refresh
  • chat — Stop claude-native silently downgrading unmapped models to sonnet
  • chat — Resume claude-native sessions from their original cwd
  • chat — Render agent-generated files inline when no project is linked
  • channels — Accept Google Chat App-URL (OIDC) webhook tokens
  • providers — Make model-catalog auto-refresh failure-aware + add 12h cadence
  • chat — Default generated files to the chat session folder
  • agents — Make DELETE /agents idempotent + remove the agents DB row

Hardening

  • channels — Adapter detection via /health (identity check, off the event loop)
  • channels — Tunnel lifecycle: shutdown teardown, own-stdout URL parsing, start lock
  • channels — Bind Google Chat webhook audience to the configured URL + cache certs

Released 2026-06-30.

New & improved

  • loops — Label the Goal inputs in the create drawer + info popovers
  • loops — Template gallery UI — browse, run, and customize built-in loops

Fixes

  • awakening — Create the agents DB row at awakening, not next restart
  • bounties — Add missing bounty_bids.rejection_reason column (migration 073)

Released 2026-06-24.

New & improved

  • model-router — Skip unconfigured/unserveable provider tiers when routing
  • loops — Per-loop model selector + fix create-drawer layout/buttons
  • loops — Autonomous goal-seeking loops, Phases 1–4

Fixes

  • ui — Clarify why Report an Issue submit is blocked

Released 2026-06-22.

Fixes

  • ui — Add missing ‘login’ key to AccountStep brightnessMap
  • awakening+setup — Make the Windows setup awakening work end-to-end
  • marketplace — Default daemon to prod Singularity registry out of the box

Released 2026-06-21.

Fixes

  • Bundle awakening into wheel + 4 install/awakening hardening fixes
  • daemon — Allow issues.snippbot.com in CSP connect-src so bug reports submit
  • issues — Deploy issues.snippbot.com + fix the “Failed to fetch” bug-report error

Reliability fixes for the first-run, service, and upgrade paths — especially on Windows.

  • New snippbot upgrade command — upgrades from PyPI with cache-busting built in (defeats pip’s stale-index problem), so you never need to pass pip flags by hand.
  • snippbot service install on Windows no longer requires Administrator — it installs a per-user Startup-folder launcher that starts the daemon hidden at logon (Task Scheduler needed elevation on many machines).
  • snippbot uninstall now removes the Windows / macOS autostart (previously only systemd was torn down, leaving a dangling autostart).
  • snippbot uninstall --purge and snippbot reset now honor SNIPPBOT_DATA_DIR / a configured data_dir instead of assuming ~/.snippbot.
  • snippbot setup no longer hangs on Windows (daemon output is routed to a log file instead of an undrained pipe) and is more robust to transient errors while waiting for the server.
  • Setup network check is now advisory (a warning, not a hard block) so you can set up offline or with a non-Anthropic provider.
  • snippbot start correctly detects a free port when binding IPv6 (server_host = "::") and shows a clickable loopback URL instead of http://:18781.
  • --purge reports a partial removal honestly instead of falsely claiming success when files are locked.

The first public release of Snippbot. The self-hosted daemon ships as a single PyPI wheel (pipx install snippbot) with the full UI bundled in. Everything below is included.

Core daemon & UI

  • Self-hosted daemon (Starlette + uvicorn) serving the API and bundled React UI on one port
  • React UI with Aurora dark theme
  • Streaming chat over SSE
  • Anthropic, OpenAI, and Gemini provider support
  • API key and session token authentication
  • SQLite storage
  • Browser-based setup wizard, plus snippbot start/stop/status/config/setup/doctor/reset and snippbot service install for OS-level service management

Agents, projects & execution

  • Agent archetypes with distinct personalities and per-agent workspaces
  • Multi-agent chat selection
  • Permission tier system (Sandbox → Unrestricted)
  • Project → Phase → Task hierarchy with DAG execution and dependency resolution
  • Plan approval flow and real-time execution status in the UI
  • Sub-agents (researcher, executor, reviewer, planner, communicator, aggregator, coordinator), nestable up to 3 levels, with result aggregation strategies

Scheduler

  • Cron, interval (every), and one-time (at) job types
  • Natural language schedule parsing
  • Job chains and conditions, with auto-pause after consecutive failures
  • Calendar view and activity heatmap in the UI
  • IMAP email integration as a scheduler trigger
  • Run output modal for viewing job results inline

Memory

  • Episodic memory with FTS5 keyword search
  • Vector embeddings for semantic similarity search
  • Knowledge graph entity extraction
  • Automatic consolidation and clustering
  • 3D nebula visualization in the Memory UI

Workflows

  • Visual DAG editor powered by React Flow
  • 7 step types: HTTP request, script, agent task, condition, loop, wait, webhook
  • Workflow templates and versioning
  • Parallel branch execution

Channels & multi-platform messaging

  • Channel adapter system with support for Slack, Discord, Telegram, WhatsApp, Microsoft Teams, and Google Chat
  • snippbot channel start/stop/status/list CLI commands
  • Channel bindings to route incoming messages to specific agents
  • Webhook signature verification for all platforms

Browser automation

  • CDP browser control with BrowserPage UI (live viewport + chat panel)
  • Session recording and replay
  • Auth manager for persistent browser sessions
  • Auto-snapshot toggle with red/green visual indicator

Devices

  • Device pairing via QR code and TOTP
  • WebSocket-based device communication protocol
  • Device groups for collective execution
  • Per-device health metrics

Payments direction

  • Marketing, docs, and the marketplace use Stripe (USD) as the live payment method. A USDC/x402 payments path is in development; the crypto UI is gated off behind PUBLIC_USDC_PAYMENTS_ENABLED (default off).