Skip to content

Latest commit

 

History

History
157 lines (126 loc) · 5.61 KB

File metadata and controls

157 lines (126 loc) · 5.61 KB

Project Status

Completed ✅

UI Improvements

  • Removed timestamps from sidebar room names
  • Removed "Using current Ollama" status display
  • Removed send button (enter key works)
  • Buried Reset Demo Data button
  • Moved participants badges directly under room title
  • Message input properly clears on send

Agent System

  • Fixed all AgentCard → Persona model updates
  • Added Dev Assistant persona with Claude oneshot backend
  • Configured tool capabilities: shell_command, screenshot, search, events
  • Fixed capability atom conversion for new tool types
  • Tools properly passed to agent via filter_tools_for_agent function

Quality Improvements

  • Added pre-commit hook to check Elixir compilation
  • Fixed all compilation warnings
  • Cleaned up unused functions and aliases
  • All 6 personas now load successfully

Current Status 🔄

Dev Assistant Configuration

  • Provider: claude_oneshot (uses Claude CLI)
  • Model: claude-3-5-sonnet-20241022
  • Tools: shell_command, take_screenshot, search_messages, get_recent_events, get_current_time, create_room
  • Capabilities: tool_use, technical_analysis, code_review, system_diagnostics

Available Personas

  1. Maya (assistant) - Ollama/qwen2.5:latest - Coffee Chat
  2. Coda (expert) - Ollama/qwen2.5-coder:latest - Technical Help
  3. Alex (friend) - Claude oneshot/claude-3-sonnet - casual chat
  4. Jordan Chen (employee) - OpenRouter/qwen-2.5-72b - product management
  5. Sage (character) - Claude oneshot/claude-3-opus - philosophy
  6. Dev Assistant (expert) - Claude oneshot/claude-3-5-sonnet - tools & development

High Priority Tasks 🔥

1. Test duplicate message fixes in actual ash_chat application

Steps:

  1. Start ash_chat server (30s)

    • Input: Clean slate
    • Output: Server running on localhost:4000
    • Verification: Can access chat interface
  2. Trigger duplicate message scenario (60s)

    • Input: User sends message, immediately clicks "retrigger"
    • Output: Should see warning "Agents are already responding"
    • Verification: No duplicate messages appear
  3. Test agent name consistency (30s)

    • Input: Agent responds in chat
    • Output: Agent name displays from database, not "Assistant"
    • Verification: Name matches agent card name

2. Properly test MCP spawning - verify it actually works end-to-end

Steps:

  1. Test Node.js MCP server directly (60s)

    • Input: echo '{"method":"tools/list","id":1}' | node claude-spawner.js
    • Output: JSON response with spawn_claude tool
    • Verification: Valid JSON, no errors
  2. Test simple spawn via command line (90s)

    • Input: Manual MCP call with simple prompt
    • Output: Spawned Claude response
    • Verification: Response contains expected content + spawn metadata
  3. Document working example (30s)

    • Input: Working command sequence
    • Output: README section with copy-paste example
    • Verification: Others can reproduce the test

3. Add Dev Assistant to a test room

  • Test tool usage (shell commands, screenshots, etc.)
  • Verify Claude oneshot backend integration works
  • Test agent responses with different persona types

Medium Priority Tasks 📋

Add SillyTavern character card import (JSON)

Steps:

  1. Research SillyTavern JSON format (60s)

    • Input: SillyTavern documentation/examples
    • Output: Sample JSON structure documented
    • Verification: Know required fields (name, description, etc.)
  2. Add file upload to personas page (90s)

    • Input: Existing personas LiveView
    • Output: File input accepts .json files
    • Verification: Can select JSON file
  3. Parse and create Persona (60s)

    • Input: Uploaded JSON file
    • Output: New Persona record in database
    • Verification: Card appears in personas list

Simplify dependency management system

Steps:

  1. Audit current setup script (30s)

    • Input: setup-dependencies.sh
    • Output: List of what's actually needed vs over-engineered
    • Verification: Clear list of requirements
  2. Create minimal version (60s)

    • Input: Essential requirements only
    • Output: Simplified script (≤10 lines)
    • Verification: Still installs claude-code-mcp successfully
  3. Test and replace (30s)

    • Input: Clean environment
    • Output: Dependencies installed via minimal script
    • Verification: MCP servers work

Create comprehensive MCP testing script

Steps:

  1. Create test script skeleton (30s)

    • Input: Known working MCP calls
    • Output: Shell script with test functions
    • Verification: Script runs without errors
  2. Add spawn tests (60s)

    • Input: spawn_claude and spawn_status tools
    • Output: Automated tests for each tool
    • Verification: Pass/fail results for each test
  3. Add safety limit tests (60s)

    • Input: Concurrent/depth limit scenarios
    • Output: Tests that verify limits are enforced
    • Verification: Proper blocking when limits exceeded

Test Commands

# Reset demo data
mix run -e 'AshChat.SetupV2.reset_demo_data()'

# List rooms
mix run -e 'AshChat.Resources.Room.read!() |> Enum.each(&IO.puts("#{&1.title}: #{&1.id}"))'

# List personas  
mix run -e 'AshChat.Resources.Persona.read!() |> Enum.each(&IO.puts("#{&1.name} (#{&1.provider})"))'

Technical Notes

  • Tools are correctly filtered per agent via available_tools field
  • Claude oneshot integration exists but needs testing
  • Pre-commit hooks prevent broken code from being committed
  • All personas use different backends demonstrating multi-provider support

Total estimated time for high priority: ~13 minutes All steps have clear inputs/outputs and can be executed independently