Clawdie AI

Annotated git tags, regenerated with npm run gen-changelog on each release. Full history at Codeberg.

v0.5.0 Skill Forge 13.03.2026

- 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
v0.3.0 From Manual Setup to Guided Wizard 10.03.2026

- 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