2.0 KiB
TODO
Done
-
Firecracker CLI runner with snapshots (~1.1s)
-
Alpine rootfs with ca-certificates, podman, python3
-
Global
fireclawcommand -
Multi-agent system — overseer + agent VMs + IRC + Ollama
-
5 agent templates (worker, coder, researcher, quick, creative)
-
5 Ollama models (qwen2.5-coder, qwen2.5, llama3.1, gemma3, phi4-mini)
-
Agent tool access — shell commands + podman containers
-
Persistent workspace + memory system (MEMORY.md pattern)
-
Agent hot-reload — model/persona swap via SSH + SIGHUP
-
Non-root agents — unprivileged
agentuser -
Agent-to-agent via IRC mentions (10s cooldown)
-
DM support — private messages, no mention needed
-
/invite support — agents auto-join invited channels
-
Channel layout — #control (commands), #agents (common), DMs
-
Overseer resilience — crash recovery, agent adoption
-
Graceful shutdown — IRC QUIT before VM kill
-
Systemd service (KillMode=process)
-
Regression test suite (20 tests)
-
Refactor duplicated code — waitForSocket, boot sequence, tap setup, rootfs mount/inject are copy-pasted across vm.ts, snapshot.ts, agent-manager.ts. Extract shared helpers.
Next up
- Network policies per agent — restrict internet access
- Warm pool — pre-booted VMs for instant agent spawns
- Persistent agent memory improvements — richer memory structure, auto-save from conversations
- Thin provisioning — device-mapper snapshots instead of full rootfs copies
Polish
- Agent-to-agent response quality — small models (7B) parrot messages instead of answering. Needs better prompting ("don't repeat the question, answer it") or larger models (14B+). Claude API would help here.
- Cost tracking per agent interaction
- Execution recording / audit trail
- Agent health checks — overseer pings agents, restarts dead ones
- Thread safety in agent.py — lock around IRC socket writes
- Update regression tests for new channel layout