Bump to v0.1.3. Since v0.1.2:
- Install script with verbose output and error handling
- Uninstall script
- Alpine rootfs in setup.ts (was Ubuntu)
- DNS fix for all chroot operations
- Stale tap cleanup before every createTap
- Dynamic binary paths (no hardcoded /usr/local/bin)
- Node.js upgrade handling
- Shellcheck clean
- !status command and web search tool
- Battle-tested on Ubuntu GPU server deployment
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
deleteTap before createTap in all four call sites:
snapshot restore, cold boot, agent start, snapshot create.
Prevents "Device or resource busy" from leftover taps.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Don't overwrite the host's resolv.conf with hardcoded 8.8.8.8.
The host's DNS config is already correct for both build and runtime.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Copy host /etc/resolv.conf into chroot before apk install (fixes DNS)
- Set static DNS (8.8.8.8) after chroot install for runtime
- Use PATH-based mkfs.ext4 instead of hardcoded /usr/sbin/
- Show chroot package install output (stdio: inherit)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- setup.ts now downloads Alpine Linux minirootfs instead of Ubuntu squashfs
- Installs Alpine packages (openssh, python3, curl, ca-certificates) in chroot
- Fixes install script failing on non-Alpine base rootfs (adduser syntax)
- Clean up unused imports and lint warnings
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- !status: shows agent count, load, RAM, disk, uptime, Ollama model loaded
- web_search tool: agents can search via SearXNG (searx.mymx.me)
Works in both structured and text-based tool call paths
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Re-read agents.json immediately before writing in startAgent to avoid
one start overwriting another's entry. Also clean stale sockets before
starting new agents.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Trigger only matches when nick is at start of message, not mid-text
Fixes: "coder: say hi to worker" no longer triggers worker
- Network policies per agent: "full" (default), "local" (LAN only), "none" (IRC+Ollama only)
Configured via template "network" field, applied as iptables rules per agent IP
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- IRC socket writes protected by threading.Lock in agent.py
- Overseer runs periodic health check (30s interval)
- Detects dead agent processes, cleans up resources, announces in #agents
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>