send_message.sh is not on PATH outside the MCP context; use
bash <(9p read anvillm/tools/send_message.sh) instead.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Remove the internal/supervisor Go package and cron-driven orphan check
script. Replace with a single anvillm-supervisor script invoked by cron
that handles both orphan bead recovery (--orphans, every 5m) and idle
worker nudging (--nudge, every 1m). Nudges use send_message.sh as user,
consistent with existing mail processing. anvilsrv no longer runs any
supervisor goroutine.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Tasks window Put handler prefix changes:
~ → c (claim)
^ → u (unclaim)
o (open/promote deferred)
d (defer)
x, f, -, + unchanged
Orphan check now skips beads claimed by "user" — human-held beads
are not orphans.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Orphan cron now only detects dead assignees and unclaims the bead.
BeadReady fires with full bead JSON; waiting bots pick it up via
wait_for_bead.sh. No agent spawning, no bootstrap prompt injection.
bootstrap_session.sh removed — the event payload is the bootstrap.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Event.Agent renamed to Event.Source (json: "source") — more accurate since
the field carries a session ID for session events and a subsystem identifier
for infrastructure events.
BeadReady source is now "beads/<mount>" so listeners can filter by mount
without fetching. BeadReady data is now the full bead JSON including comments,
eliminating the round trip a listener would need to decide whether to claim.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
scripts/anvillm-orphan-check: scans all mounted beads projects every
5 minutes, finds in_progress beads whose assignee session has died,
and spawns a replacement agent with a bootstrap_session.sh prompt.
mkfile: install anvillm-orphan-check to $HOME/bin; add cron-install
and cron-remove targets for idempotent crontab management.
Default backend for replacement agents is $ANVILLM_DEFAULT_BACKEND
(falls back to "claude").
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add ~/.local/share/anvillm to sandbox write allowlist so agents can
archive mail. Remove scripts/mail_history.sh (superseded by
mcptools/mail_history.sh).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- inbox_refresh.py: watches agent/events for UserRecv, refreshes /AnviLLM/inbox acme window
- msgtrace.py: display agent alias (when set) instead of ID, show role parenthetically
- Remove bot-templates/ entirely
- Add scripts/anvilspawn: spawn a bot by role+workdir, hash-prefixed alias
ties bots to the same workdir for organic collaboration
- Add roles: solo-developer, developer, reviewer, tester, devops, author,
technical-editor, researcher, taskmgr
- Standardize all roles to: Responsibilities / Prohibited Activities /
Workflow / Response Format
- Remove explicit delegation protocols from all roles; delegation is emergent
- Remove inbox-check startup steps; messages are delivered automatically
- Update mkfile to install anvilspawn
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- OUTPUT_PROTOCOL.md: shared protocol injected at session start for all backends
- anvillm-hook: injects OUTPUT_PROTOCOL.md via Kiro agentSpawn
- claude/agent/anvillm-agent.md: Output Protocol section (Claude session-start equivalent)
- bot-templates: Output Protocol block in Conductor and Taskmaster contexts
- anvillm-communication skill: structured body schemas for all message types
- install-hooks.sh: also installs anvillm-agent.md to ~/.claude/agents/
- kiro-cli/README.md: install instructions for prompt files
Co-authored-by: Levi Neely <lkn@darkstar.example.net>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
- Added dual-mode support: JSON stdin or event name as argument
- Updated agent config to use agent-hook with event names
- Centralizes all hook logic in one script
- Works with both wrapper scripts and direct Kiro hooks
- Added agent-hook for future use with wrapper script
- Created SKILLS_PROMPT.md for automatic skill loading
- Updated mkfile to install both
- Kept explicit commands in agent config (agent-hook needs wrapper)
- Simplified Claude hooks to use AGENT_ID instead of PID lookup
- Updated 9p-read-inbox to use AGENT_ID env var
- Removed temporary file creation in tmux.go
- Much cleaner and more reliable approach
- Created internal/audit package for centralized logging
- Replaced per-session log files with single agent/audit file
- Updated all UIs (TUI, web, Emacs) to use centralized audit log
- Modified mailbox manager to log all message deliveries with aliases
- Updated Alog script to stream centralized audit log
- Removed session-specific log streaming in favor of global audit log
- Created install-claude-hooks.sh to merge hooks into existing settings.json
- Updated mkfile to use merge script instead of overwriting settings.json
- Made agent name configurable via CLAUDE_AGENT_NAME env var
- Added Claude agent configuration and hook scripts
- Removed unused NewClaudeWithContinue/NewClaudeWithResume functions
- Fixed script to search for SKILL.md files in subdirectories
- Renamed scripts/skills to scripts/anvillm-skills for clarity
- Updated mkfile to install as anvillm-skills
- Add global.yaml base config (renamed from sandbox.yaml)
- Add backend-specific configs (claude.yaml, kiro-cli.yaml)
- Add role configs (developer, reviewer, tester, architect, etc.)
- Add task configs (git, docker, go, rust, python, nodejs, etc.)
- Implement config merging: global + backend + role + tasks
- Update workflows to use roles and tasks
- Create tester role with read-only source, execute-only bins
- Fix reviewer role to use rox for bin directories
- Auto-create RW directories that don't exist
- Make backend configs required (fail if missing)
- Update mkfile to install cfg files to ~/.config/anvillm
- Remove Role-Based Sessions from IDEAS.md (now implemented)
- Remove PID column from session list display in main.go
- Rename workflow scripts: Claude-DevReview.sh -> DevReview, Kiro-Planning.sh -> Planning
- Make workflow scripts backend-agnostic (accept backend as first argument)
- Install workflow scripts to $INSTALL_PATH/Workflows/ in mkfile