Changelog
Tagged releases — what changed and why
Annotated git tags, regenerated with npm run gen-changelog on each release.
Full history at Codeberg.
- NanoClaw upstream toggle (Option A git remote, fetch-only)
- check_upstream_updates + explain_upstream_commit MCP tools
- Installer refactor: host-first orchestrator architecture
- setup/pi-config, setup/jails, setup/platform, setup/upstream, setup/skills-memory
- Instrument Codex docs redesign — shared.css, NanoClaw guide, changelog, license pages
- Architecture diagram, status badges, Why Clawdie table on landing page
- BSD-3-Clause license with FreeBSD/PlayStation lineage explanation
- scripts/gen-changelog: annotated tag changelog auto-generation
- Brain A / Brain B split-brain memory model documented
- f7404aachorev0.5.0 prep — BSD-3 emphasis, changelog, license page
- dac11a2docsadd deploy helper, freshness badge, and built-in knowledge badge
- 6a0fec9docsadd docs.clawdie.si site and split-brain docs
- 918f21cdocsadd built-in knowledge spec
- 9ebcaeadocsdefine local knowledge bootstrap flow
- 19ce0bafeatsharpen FreeBSD differentiation and skills-memory bootstrap
- c35e6c5feat(landing)architecture diagram, status badges, Why Clawdie table
- e1693a5designInstrument Codex — docs redesign + NanoClaw upstream guide
- 4d79038featNanoClaw upstream toggle — Option A (git remote)
- 229d6d0featadd add-stripe and add-protonmail skills
- 799961edocsfix stale .claude/skills references in REFACTOR-PLAN to .agent/skills
- 7983917choreupdate stale clawdie-cp references in comments to AGENT_NAME notation
- 598951arefactor(phase-4)runtime naming cleanup — warden→jail, drop clawdie-cp prefix
- 0455a77refactor(phase-3)orchestrator host migration — AGENT_SUBNET_BASE + jail runner
- d58b288refactor(phase-2.2)installer steps — AGENT_NAME naming + pi-config + cleanup
- f53004crefactor(phase-2.1)AGENT_NAME namespace — jail-config + platform + jails step
- be4f9fedocsupdate refactor plan with naming and multi-agent decisions
- 8caf32cRemove PI-ZAI-KEY.md — notes absorbed into REFACTOR-PLAN.md
- 52c2bf6v0.4.0: host-first architecture plan, website redesign, name fix
- 606c8e9Document local git hosting plan
- 4795efaUpdate install flow and project status
- 17c3c36Align deployment profile defaults
- 75c3dfdImprove installer SSH guidance
- 928c03aRemove hardcoded host examples
- 943c52aSimplify operator user setup
- 738b3a4Add controlplane SSH bootstrap
- f7367f6Refine PI controlplane prerequisites
- ae7c066Removing stale Nanoclaw references
- 752081dRedesign /screenshots/ index with dd.mm.yyyy dates, sort toggle, centered layout
- 059f41bImprove /screenshots/ gallery with lightbox, sorting, date filter
- f09ece4Add auto-generated index.html for /screenshots/ + fix BASE_URL
- 2f42f6dFix ANSI color rendering in tmux screenshots + add install guide
- 2f5525eAdd clean slate rebuild guide + fix CMS IP
- 5768a91Add CMS deployment plan with screenshot strategy
- 64cf884Add screenshot security and failure handling
- 9d44d2aAdd wizard simulation test plan
- 11bb4daFix ZFS_PREFIX to read from .env for backward compat
- 08ac6b4Make project name-agnostic for multi-user support
- 9046a4eFix auth prompt on landing page - separate public img from protected screenshots
- 86eb0efAdd HTML website sources for clawdie.si and osa.smilepowered.org
- 4afd42fMinor links update
- Setup wizard: FreeBSD bsdinstall-style TUI for first-time setup
- Project-relative tmp/: No more /tmp usage
- Infrastructure as code: Ansible reads all IPs from .env
- Password-protected-site: Auto-generated htpasswd during wizard
This release was made possible with assistance from:
AI Systems: Openclaw, NanoClaw, z.ai, Anthropic Claude, OpenAI Codex, OpenRouter, Deepseek, Groq, Ollama, pi-tui
Human: Peter Steinberger
- 71df5efv0.3.0 - From Manual Setup to Guided Wizard
- c48d949Add CHANGELOG and release notes for v0.3.0
- 0e825c6Skip jail-specific tests when not running inside a jail
- 03bb97cAdd password-protected-site feature to setup wizard
- aacadcdAdd setup wizard screenshot generator
- 1330935Reserved IP allocation for jail services
- 679dfb5Ollama integration
- 1f95514Add AGENT_NAME parameterization foundation and Astro CV example
- 9ea0707Add rsync as core skill and update references
- c0484dcFixing /tmp problem
- ed4a268Apply RCTL memory limits and document session log convention
- b6a6f59Add PI coding agent prerequisites: tmux, ripgrep, fd-find
- 050c93cDocument core FreeBSD config files
- dcb3545Document bhyve/VMM prerequisites for future VM support
- a502bd2Add RCTL prerequisites for jail memory limits
- 5d2e605Add jail state tracking and standardize date formats
- 39b00d1Add test deployment plan
- a81ae2aAdd jail creation playbook and configure pi agent
- 23f222fComplete PGVector memory system
- 1a82089Add memory pipeline scripts (Phase 2)
- ad6fc7bAdd ai_brain schema and hybrid search function
- 19e709dInternal IP and domain redesign
- a903372Add hybrid memory schema plan
- 58582f5Wire db bootstrap into Ansible
- cde2963Refine PF rule placement
- 81794cbAdopt PostgreSQL 17 with pgvector
- 5d520ceAdd PF validation and forwarding guides
- 1cdee3aAdd controlplane operator doc
- 701cd25Propagate node service user model
- b09664eRecord successful PI install
- 4bec262Adopt shared npm service user
- a986837Fix uv package name on FreeBSD
- d6b0562Expand controlplane operator baseline
- 0355595Expand Ansible host operations
- e2c878bExpand freebsd-admin execution model
- 9f42a7aMigrate Warden docs to 10.0.0
- 4180c5aUse bash for operator accounts
- 56e5a6fRemoval of hardcoded URL paths
- 8afab7fsshd on controlplane
- 687598aImplement cms ansible deployment
- 69703dcAnsible install
- 1de5f8eAdd ansible FreeBSD scaffold
- 69c4ad4Astro/Strapi integration plan
- c6179cdDocument small codebase security benefit
- 9f6b666Add repo token badge
- d703a7bSecurity refinement
- d43fd7cRebranding fixes
- 86b7e52Harden PostgreSQL security and add nginx basic auth for screenshots
- 2d64c76Serve screenshots from nginx webroot at clawdie.si/screenshots
- dda26b7Add tmux-screenshot sample to README FreeBSD milestone section
- 740253bAdapt tmux-screenshot for FreeBSD: fix font paths, output dir, and document deps
- 127da92Add PostgreSQL security reference for multi-jail access control
- 91b3a6cAdd Strapi and Astro skills with cms jail model and memory budget
- bca992eAdd nginx skill and update clawdie.si with v0.2.0 milestone
- 7cbc972Expand signature database to 30 patterns with success detection and ZFS dry-run rule
- 2a21a2fRewrite setup, update, and clawdie-freebsd skills for FreeBSD/ZFS/Warden
- 5765a22Add skills catalog, doctor command, and restore ai.clawdie.si link
- 89dd56fRelease 0.2.0 milestone
- c7c58daAdd controlplane to Sanoid baseline
- b79b1e7Document Sanoid sample warning
- c9a38b3Capture Sanoid install baseline
- 11e5165Define rollback policy classes
- f477441Adopt day-first snapshot naming baseline
- 39714baStandardize ZFS snapshot naming
- f0729a1Add PostgreSQL jail IPC prerequisite
- 31bf118Capture observed Tailscale resolver state
- 8d2520dDocument Warden NAT and resolver baseline
- 9bcd14dCapture Bastille db troubleshooting signatures
- bc983d3Fix VNET gateway provisioning and bump version
- 2fad5f9Document successful db jail creation
- 993e5abClarify PostgreSQL memory install choices
- 63e1c55Refine PostgreSQL memory storage guidance
- a431b6fAdd PostgreSQL memory skill
- 6ec1cebAdd screenshot signature matching
- 6019227Improve tmux screenshot diagnostics
- ca5c19aAdd FreeBSD admin skill
- b205063Document host forwarding for Warden networking
- f1354c1Rename root package to controlplane
- 3785099Use controlplane as Bastille jail ID
- 28ced07Document Bastille destroy and pf warnings
- 6d5974dAdd browser VM skill
- 24eeee1Add Warden health skill
- 3a76bceAdd Telegram admin skill
- c5fe9acAdd nginx glasspane skill
- 6a026e5Add Sanoid skill
- 7392a13Add Warden bootstrap skill
- 7e4ab6aAdd Bastille network skill
- 0ff0dfaAdd Warden ZFS skill
- 6217e25Add Warden pf skill
- d9d15f6Force thick VNET control-plane jail
- eca1e91Add Bastille control-plane provisioning plan
- 07d43acExpand Warden runtime model
- 7d164f8Define Warden jail profiles
- 4459019Align default jail name with clawdie-cp
- f3fb4d8Handle Warden stdin EPIPE gracefully
- 9caac0cAdd runtime health tracking and doctor command
- 6a365beIntroduce Warden runtime naming
- c98c1a0Add Bastille and jail networking docs
- 2dd996dFix jail config migration and chat listing
- c3c56abReplace WhatsApp setup with Telegram auth
- 8254d78Remove Claude runtime path
- 11682feRename runtime tree to jail
- 4fd5ea0Drop legacy container config aliases
- d354405Rename jail runtime config types
- df06a9bStandardize memory files on AGENTS.md
- 372f26aFix build imports and setup branding
- d600f27Rename jail worker runtime types
- c6e5553Remove non-FreeBSD runtime paths
- a7877c6Switch default runtime to pi
- 3fc2aa6refactorreplace WhatsApp with Telegram, rename container→jail, migrate skills to .agent/
- d5462a6refactorreplace container paradigm with FreeBSD jails, rename all container refs
- da61a7edocsupdate token count to 38.4k tokens · 19% of context window
- 24001a2chorebump version to 1.1.3
- 11c2010refactorCI optimization, logging improvements, and codebase formatting (#456)
- bd2e236docsadd AmaxGuan to CONTRIBUTORS.md
- 9232c11docsadd rgarcia to CONTRIBUTORS.md
- 7d95ddfdocsadd pottertech to CONTRIBUTORS.md
- 3e578ebdocsadd tydev-new to CONTRIBUTORS.md
- 40882abdocsadd CONTRIBUTORS.md with Alakazam03
- ee1dab8choreadd gabi-simons as codeowner for core paths
- e0cf045choreremove .claude/settings.local.json
- ee7f720/add-slack (#366)
- bc05d5ffix(add-telegram)update test assertions for 5-arg onChatMetadata signature
- ae2f339chore(skills)rebase core skills (telegram, discord, voice) to latest main and fix db schema gaps
- 3dd48f3fix(add-gmail)restore YAML frontmatter to SKILL.md
- 8e164f6fix(add-gmail)graceful startup when credentials missing + poll backoff
- df0e5fcremove unused
- 6dd9082refactorremove GMAIL_CHANNEL_ENABLED env flag from add-gmail skill
- 18c0432Fix QR data handling in WhatsApp auth (#467)
- 5298449choreadd .nvmrc specifying Node 22 (#473)
- 41e2424refactorrestructure add-gmail skill for new skill architecture
- 1c31726add npm cache to gitignore
- 29a5dafrefactorremove deterministic caching system from skills engine (#453)
- 1448a14docsupdate token count to 38.2k tokens · 19% of context window
- 796906bchorebump version to 1.1.2
- 7631a5cfixadd error handling and tests for WA Web version fetch
- f4277b2docsupdate token count to 38.1k tokens · 19% of context window
- 3a876c1chorebump version to 1.1.1
- ec176a0fixuse fetchLatestWaWebVersion to prevent 405 connection failures (#443)
- 9f802bcdocsrewrite README for broader audience and updated feature set
- 1ff1fd6featadd official Qodo skills and codebase intelligence (#428)
- 226b520chorebump version to 1.1.0
- f59ca7cdocsmake /update skill discoverable, add auto version bumping
- 1216b5bfeatadd /update skill for pulling upstream changes (#372)
- 628d434docsupdate token count to 38.0k tokens · 19% of context window
- 9fb1790fiximprove type safety and add error logging (#378)
- 856f980Fix critical skills path-remap root escape (including symlink traversal) (#367)
- 264f855Replace 'ask the user' with AskUserQuestion tool in skills (#389)
- e59856fFix: filter empty messages from polling queries (#383)
- f5b2068docsupdate token count to 37.9k tokens · 19% of context window
- 5958175fixuse 'Assistant' as fallback name instead of 'AssistantNameMissing'
- 1046a79docsupdate token count to 37.8k tokens · 19% of context window
- 77f7423fixpass host timezone to container and reject UTC-suffixed timestamps (#371)
- 107aff8fixpass assistantName to container agent instead of hardcoding 'Andy'
- 6b85ac5docsupdate token count to 37.7k tokens · 19% of context window
- 02d8528fixpause malformed scheduled tasks
- c6391ccfixblock group folder path escapes
- 6d4277fdocsupdate token count to 37.0k tokens · 18% of context window
- 5fb1064fixmount project root read-only to prevent container escape (#392)
- ef00320Update README.md
- e8d1d1edocsupdate token count to 36.9k tokens · 18% of context window
- 92d1440refactormove setup scripts out of src/ to reduce build token count
- c1a2491docsupdate token count to 49.9k tokens · 25% of context window
- 8fc1c23Migrate setup from bash scripts to cross-platform Node.js modules (#382)
- ccef3bbfixblock symlink escapes in skills file ops
- 1980d97docsupdate token count to 36.8k tokens · 18% of context window
- 5f58941fixadd .catch() handlers to fire-and-forget async calls (#221) (#355)
- cb29440fixupdate voice note test to match empty-content skip behavior
- 6e22abbfixreplace hardcoded /Users/user fallback with os.homedir()
- 9003259docsupdate token count to 36.6k tokens · 18% of context window
- 3d8c0d1testadd coverage for isTaskContainer and idleWaiting reset
- c6b69e8fixcorrectly trigger idle preemption in streaming input mode
- 93bb94ffixonly preempt idle containers when scheduled tasks enqueue
- 6f177adfixskip empty WhatsApp protocol messages
- d336b32fixcopy skill subdirectories recursively (#175)
- 94ba537Decouple formatting test from
@Andy(#329) - 3c79c61docsfix README_zh consistency and remove Skills System CLI section
- 3d1859fdocs(zh)Apply stylistic and consistency improvements to README_zh.md (#328)
- 646411fdocsadd nanoclaw.dev link to README header
- 41e54a9fixpass filePath in setupRerereAdapter stale MERGE_HEAD cleanup
- 7181c49featadd /convert-to-apple-container skill, remove /convert-to-docker (#324)
- a407216featadd voice transcription as nanorepo skill (#326)
- 6b9b3a1docsupdate skills to use Docker commands after runtime migration (#325)
- a7faac6docsupdate token count to 36.3k tokens · 18% of context window
- 607623afeatconvert container runtime from Apple Container to Docker (#323)
- 51a50d4docsupdate token count to 36.4k tokens · 18% of context window
- c6e1bferefactorextract runtime-specific code into src/container-runtime.ts (#321)
- 8fd6791Update README.md (#316)
- 5a16a9dDocumentation improvements
- 646491cdocsupdate token count to 36.3k tokens · 18% of context window
- 51788deSkills engine v0.1 + multi-channel infrastructure (#307)
- a689f8bfixquote ASSISTANT_NAME in .env to handle special characters
- 6f71987docsupdate token count to 35.6k tokens · 18% of context window
- 802805dFix/WA reconnect, container perms, assist name in env (#297)
- f257b93choreupdate Discord invite link
- b7c9d98fixensure setup skill runs Docker conversion before building containers
- ff574a2choreupdate social preview with new subtitle
- b125cb1choreadd nanoclaw profile and sales images
- 88140ecfeatadd setup skill with scripted steps (#258)
- 5694ac9docsupdate token count to 35.5k tokens · 18% of context window
- 5031d0fciadd workflow_dispatch trigger to token count workflow (#254)
- c467941fixadd git pull --rebase before push in token count workflow (#253)
- e4d77cdfixuse GitHub App token for token count workflow
- 9261a25featadd is_bot_message column and support dedicated phone numbers (#235)
- c8ab3d9featadd repo-tokens GitHub Action with token count badge
- 6f2e10ffixtyping indicator now shows on every message, not just the first
- 5c68deefixrepair WhatsApp channel tests (missing Browsers mock and async flush)
- ae474fdfixuse available instead of paused when stopping typing indicator
- 658f6b0fixsend available presence on connect so typing indicators work consistently
- 1549ad5security: pass secrets via SDK env option and delete temp file (#213)
- 1a07869security: sanitize env vars from agent Bash subprocesses (#171)
- c30bd62docsupdate Chinese README and move language link to badge row
- b5a6757fixpass requiresTrigger through IPC and auto-discover additional directories
- acdc645fixWhatsApp auth improvements and LID translation for DMs
- 6863c0btestadd comprehensive WhatsApp connector tests (#182)
- a354997Add Apple Container Networking Setup documentation (#178)
- 4647353choreadd /groups/ and /launchd/ to CODEOWNERS
- 8eb80d4fixprevent infinite message replay on container timeout (#164)
- 2b56fecRefactor index (#156)
- 196abf6docsclarify agent swarms vs teams in Telegram skill
- b3f5814featmove to Claude's native memory management
- 116fba1fixbust shields.io cache for Discord badge
- 126b3f4featadd Telegram agent swarm skill
- 6f02ee5Adds Agent Swarms
- 6cd165ffeatAdd /add-telegram skill for Telegram channel support (#83)
- b2bd141Fix orphan container cleanup and update installation steps (#149)
- f26468cfixsetup skill reliability, requiresTrigger option, agent-browser visibility
- 675ed30fiximprove container error logging to include full stdout/stderr
- 8dd27bcfixdefend against missing structured output and message without content
- 2ecda36small tweak to acknowledgement prompt
- 44f0b3dfiximprove agent output schema, tool descriptions, and shutdown robustness
- ae17715featper-group queue, SQLite state, graceful shutdown (#111)
- 03df69efixaddress review feedback for per-group queue reliability
- eac9a6afeatper-group queue, SQLite state, graceful shutdown
- db216a4fixproper container lifecycle management to prevent stopped container accumulation
- abc1c06featAdd Chinese README and language switcher
- 3a4d340Fix duplicate responses caused by reconnect-stacking loops
- 1f8cd26Add voice transcription skill using OpenAI Whisper API (#77)
- 1179801refactordeduplicate logger into shared module (#39)
- 392ba62fixtranslate WhatsApp LID JIDs to phone JIDs for self-chat messages (#62)
- c9ca34aAdd X integration skill (#52)
- 3084fabRemove ToS gray areas section from README (#65)
- 7ff9a65Update setup skill to use claude setup-token for auth
- 21c66dfAdd prettier
- 1a32bffImprove setup UX with AskUserQuestion tool and security education (#60)
- 80e68dcAdd social preview image
- 7223511Add contribution guidelines and PR checks for skills-only model
- ff23125Add Docker support and integrate /convert-to-docker into setup flow
- 849b224Fix minor issues in add-parallel skill
- 1b960c5Add /add-parallel skill for Parallel AI integration (#28)
- 93e639fAdd /convert-to-docker skill for Docker migration (#23)
- fb5dbcbUpdate README.md
- 40d4154Update README.md
- 98f82b7Update README.md
- d20df2eUpdate README.md
- 4711ec4Add register_group IPC command for dynamic group registration
- 05a29d5Security improvements: per-group session isolation, remove built-in Gmail
- 22eb525Add Qwibit Ops context and NanoClaw Testing group
- 17f7b84Add /add-gmail skill for Gmail integration
- d000f33Add container output size limiting to prevent memory issues (#18)
- 33ef0c6Fix message cursor to only advance on successful processing (#17)
- c45f0efEscape regex metacharacters in ASSISTANT_NAME for trigger pattern (#16)
- e5b436aFix group metadata sync setting epoch timestamp for new groups (#15)
- df52232Pre-launch fixes: error handling, cleanup, consistency
- 48822ffAdd mount security allowlist for external directory access (#14)
- 5760b75Fix timezone handling and message filtering
- 066eeb9Make OpenClaw critique specific with actual numbers
- 016a1a0Add group metadata sync for easier group activation
- 572338bAdd context_mode option for scheduled tasks
- f6e7f7aMake main group respond to all messages without trigger prefix
- 6745a1cApply fixes from closed PRs: sentinel markers, JID lookup, schedule validation
- 7aa051fFix: only update lastAgentTimestamp on agent success
- a904c65Fix message loss when processMessage throws
- 092411dRemove message content from info-level logs
- a8155e2Fix hardcoded home directory fallback in container runner
- 6a94aecSecure IPC with per-group namespaces to prevent privilege escalation
- 49e7875Fix security: only expose auth vars to containers, not full .env
- c255451Move Quick Start section above Philosophy
- 1699dfcUpdate README.md
- 479ca16Add NanoClaw logo and branding assets
- 17e7b46Refactor: delete dead code, extract utils, rename files for clarity
- 847032dFix task deletion FK constraint error
- 2dedd18Fix scheduled tasks and improve task scheduling UX
- f25e0f9Remove redundant comments throughout codebase
- 732c624Fix security issues: IPC auth, message logging, container logs
- 552b26cAdd PreCompact hook for conversation archiving, remove /clear command
- aa6dcf3Add typing indicator while agent is processing
- 2026eafClean up README prose and add contribution FAQ
- e9c5187Rewrite README intro with balanced OpenClaw comparison
- fb4ce8dUpdate project and agent context files
- dbf39a9Rewrite documentation with project philosophy and RFS
- 1d4cf51Support OAuth token authentication as alternative to API key
- 8ca4c95Fix session persistence and auto-start container system
- 67e0295Fix container execution and add debug tooling
- 0ccdaaaMount project root for main channel
- ef24c45Update setup skill for container architecture
- 09c0e81Add containerized agent execution with Apple Container
- fa13b14Add built-in scheduler with group-scoped tasks
- 423d45cUpdate docs to reflect current architecture
- 0c08e8aUse date + time format in message timestamps
- 22bd3d7Store and display sender's WhatsApp name
- cbe33f4Keep trigger in prompt, simplify message formatting
- f2afb11Include missed messages when catching up the agent
- 4ec74e9Simplify runAgent: just pass the prompt
- 545cbc7Remove unnecessary shutdown handlers
- 0691601Extract database operations into separate db.ts module
- 78426c7Extract config and types into separate files, clean up index.ts
- fe5ae97Improve setup skill: better Gmail explanation, use placeholders
- 8a385c7Separate WhatsApp auth from daemon into standalone script
- e1867f8Replace QR code display with macOS notification
- 295c3e6Fix: exit gracefully when auth needed in daemon mode
- c17823aInitial commit: NanoClaw - Personal Claude assistant via WhatsApp