Commit Graph

159 Commits

Author SHA1 Message Date
Levi Neely 314d347e76 Add centralized audit log system
- 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
2026-02-17 22:07:39 +01:00
Levi Neely 359258f8c5 improve messaging 2026-02-17 18:58:06 +01:00
Levi Neely ff2bd372c1 improve send message api 2026-02-17 18:20:01 +01:00
Levi Neely a069a98ccc Add Archive button to Acme inbox message windows
- Added Archive to message window tag line
- Archive writes 'complete <msg-id>' to user/ctl
- Window closes after successful archive
- Added ID field to Message struct
- Added error handling for archive failures
2026-02-17 17:28:52 +01:00
Levi Neely 53bf135d01 Add dynamic inbox refresh to anvilweb
- Inbox badge updates every 5 seconds automatically
- Messages view auto-refreshes every 5 seconds when inbox tab is visible
- Archive buttons trigger immediate inbox refresh
- Fixed backend to return empty array instead of null for empty inbox
- Added user/ctl endpoint for completing messages
2026-02-17 17:19:53 +01:00
Levi Neely d35e884a54 Add Reply functionality to inbox message windows 2026-02-17 16:37:04 +01:00
Levi Neely 45356673ec Update mailbox message types and validation 2026-02-17 16:32:20 +01:00
Levi Neely e227aee097 Add persistent message types to communication system 2026-02-17 16:11:34 +01:00
Levi Neely 6d11416809 fix default role 2026-02-17 15:47:48 +01:00
Levi Neely b66e9822a2 Fix attach for new tmux session naming and clean up emacs prompts
Front-ends were constructing anvillm-{backend} but backend now uses
anvillm-{namespace}. Updated Assist and emacs to read tmux target from
the tmux file instead of constructing it from backend name.

Also removed broken direct prompt functionality from emacs (P and M-P
keybindings that used /in file directly).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-17 15:32:48 +01:00
Levi Neely 9ca7dcbc96 fix default role 2026-02-17 15:10:53 +01:00
Levi Neely a856da7a34 Remove Prompt command, use only Send via outbox 2026-02-17 14:52:08 +01:00
Levi Neely 27f6a48411 Reapply "Fix Assist to use mailbox system instead of direct 'in' file writes"
This reverts commit 8a9ce2c9e1.
2026-02-17 14:50:10 +01:00
Levi Neely 8a9ce2c9e1 Revert "Fix Assist to use mailbox system instead of direct 'in' file writes"
This reverts commit bdd0039eba.
2026-02-17 14:49:12 +01:00
Levi Neely 3f3b5e9f69 Test passed: messages received in order 2026-02-17 14:47:25 +01:00
Levi Neely fa127f1d44 Reduce idle window from 30 to 15 seconds before prompting agents 2026-02-17 14:40:21 +01:00
Levi Neely 35b3ff338e Fix 9p-read-inbox to strip .json extension when marking messages complete 2026-02-17 14:37:46 +01:00
Levi Neely 241e4b9818 Fix all UIs to use mailbox system for prompt sending
- cmd/anvillm: Added sendPrompt() using user/outbox
- cmd/anvilweb: Updated sendPrompt() to write to user/outbox
- elisp/anvillm.el: Changed to write JSON messages to user/outbox
- All UIs now queue prompts non-blocking via mailbox system
- Resolves blocking issue across all interfaces
2026-02-17 11:10:14 +01:00
Levi Neely bdd0039eba Fix Assist to use mailbox system instead of direct 'in' file writes
- Changed sendPrompt() to write JSON messages to user/outbox
- Messages now queue and deliver when session is idle (non-blocking)
- Fixed prompt window to stay open on send error
- Resolves blocking issue when bot is busy
2026-02-17 11:03:28 +01:00
Levi Neely 71605283ea Fix Assist to log sendPrompt errors instead of silently ignoring them 2026-02-17 10:47:06 +01:00
Levi Neely d865c50124 Move backend configs back to cfg/backends/ - they are AnviLLM configs 2026-02-17 10:37:11 +01:00
Levi Neely fed6bbdbdb Reorganize config structure: separate claude/ and kiro-cli/ directories 2026-02-17 10:35:31 +01:00
Levi Neely 6143bea7b1 Update IDEAS.md 2026-02-17 10:32:01 +01:00
Levi Neely 72ffd90bf3 Add Claude hooks integration for AnviLLM
- 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
2026-02-17 10:27:59 +01:00
Levi Neely aed0fe0061 Move idea to IDEAS.md (remove duplicate ideas file) 2026-02-16 23:12:19 +01:00
Levi Neely b8882dcf76 Add idea: state transitions via hooks for Claude Code backend 2026-02-16 23:11:26 +01:00
Levi Neely 50f8cde2ee Remove reserved flag and fix state transitions
- Remove reserved flag and all reservation logic (unnecessary for kiro-cli)
- Fix session ID file creation: detect kiro-cli runs directly in pane
- Add retry loop for FindBackendPID with kiro-cli detection
- Update hooks to use PPID's parent (kiro-cli PID) instead of 15569
- Remove 5-second delay from running->idle transition
- Clean up workflow scripts: remove explicit skill references and communication protocol sections
- Update researcher roles to use knowledge base, web, and codebase
2026-02-16 23:07:35 +01:00
Levi Neely cfa48ae593 Remove state machine verification document 2026-02-16 20:46:51 +01:00
Levi Neely 7dc3e6f4b5 Add state machine verification and error recovery transitions
- Created STATE_MACHINE_VERIFICATION.md documenting all states and transitions
- Added error→idle transition for manual recovery from error state
- Added error→starting transition for restart from error state
- Verified all 21 transition call sites across codebase
2026-02-16 20:46:30 +01:00
Levi Neely 825ce1e415 Implement state machine improvements with reservation system and condition variables 2026-02-16 20:26:50 +01:00
Levi Neely d95b18dab4 Fix: Transition to idle for all outbox messages
Agents were getting stuck in 'running' state after sending messages
to user. Previously only peer messages triggered idle transition.

Now all outbox messages (user and peer) trigger transition to idle,
allowing agents to receive new messages and preventing stuck states.

Verified by comprehensive state machine simulation covering all
transitions, edge cases, concurrency, and session lifecycle.
2026-02-16 18:13:41 +01:00
Levi Neely 4ec64e9124 Rename skills script to anvillm-skills
- 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
2026-02-16 18:06:12 +01:00
Levi Neely 7123c417d5 more useful skills 2026-02-16 17:35:42 +01:00
Levi Neely 9d58f8a9fc fix(session): synchronous message delivery with proper retry handling
- Drain all outbox messages in batch instead of one per tick
- Process inbound messages synchronously to ensure delivery before completion
- Keep failed messages in inbox for retry instead of re-delivering
- Simplify control flow with early continue pattern
2026-02-16 17:12:44 +01:00
Levi Neely c1b3f525da anvilweb: fix attach button, improve UI
- Fix Attach button to launch foot terminal with tmux attach
- Add tmux file to 9P server to expose session:window target
- Replace action buttons with cleaner layout: main actions visible,
  secondary actions in dropdown menu
- Add browser notifications for session state changes
- Preserve open dropdown menu across table refresh
- Remove disabled state from Prompt button (mailbox queues prompts)
2026-02-16 16:41:58 +01:00
Levi Neely 0dd4980392 p9: auto-transition sender to idle on peer message
When an agent sends a message to another agent (not user),
automatically set sender state to idle. This ensures agents
can receive responses without needing explicit STATUS_UPDATE.
2026-02-16 16:01:58 +01:00
Levi Neely 0bd36ea3fd anvillm-communication: clarify STATUS_UPDATE required every interaction 2026-02-16 15:55:26 +01:00
Levi Neely 194fbfe550 Make STATUS_UPDATE to user mandatory in anvillm-communication skill 2026-02-16 15:48:39 +01:00
Levi Neely 9ff6262d62 Rename peer-bot skill to anvillm-communication
- Rename skill to reflect broader scope (agent-to-agent, agent-to-user)
- Add AnviLLM references to all workflow agent contexts
- Update README example to use mailbox pattern
- Fix heredoc delimiter conflict (EOF -> MSGEOF) in injected prompt
2026-02-16 15:35:46 +01:00
Levi Neely e95c9ad8cd Simplify idle transition via mailbox
Message to user now triggers idle state automatically.
Removed separate idle signal instruction from prompts.
Single action (send to user) replaces two-step process.
2026-02-16 15:11:39 +01:00
Levi Neely 7b950c4eef Add user mailbox for unified communication
- Add agent/user/ directory with inbox/outbox/completed
- User is first-class participant (not a session)
- Bot->user: bot writes to outbox with to="user"
- User->bot: user writes to user/outbox with to="{session-id}"
- User inbox messages written to sender's log file
2026-02-16 15:05:51 +01:00
Levi Neely 8fe92c1182 Fix uneven columns in Assist main window
Change ID column width from 5 to 8 chars to match session ID length.
2026-02-16 14:46:48 +01:00
Levi Neely f070940070 Add Jenkins CI task configuration
- Read-only access to ~/.jenkins and ~/.netrc for credentials
- Network access for ports 443 (HTTPS) and 8080 (Jenkins default)
- Environment variables JENKINS_USER_ID and JENKINS_API_TOKEN
2026-02-16 13:35:38 +01:00
Levi Neely 37f38aa6d6 anvilweb: sortable data columns 2026-02-16 09:36:51 +01:00
Levi Neely e6766999dc fix: overly aggressive error state detection 2026-02-16 09:33:21 +01:00
Levi Neely 9936792d6b updates to workflows and roles 2026-02-16 08:48:04 +01:00
Levi Neely 2a6e2f7ce9 Fix Planning workflow: use AGENT_MOUNT and substitute session IDs in contexts 2026-02-15 21:39:39 +01:00
Levi Neely 20e661147c Update Approval Gates to use mailbox system with human notifications 2026-02-15 21:30:10 +01:00
Levi Neely e7145ae663 Remove Context Utilization State - slash commands rely on sanitized terminal output 2026-02-15 21:27:52 +01:00
Levi Neely 24f88f5957 Remove Fan-Out Workflows from IDEAS.md - supported by mailbox system 2026-02-15 21:26:10 +01:00