Files
innervoice/PHASE1-TESTING.md
RichardDillman fd750d9b50 feat(phase2): add message queue system for offline projects
Phase 2 Complete: Message queuing for offline/inactive projects

Queue Storage:
- File-based queue in ~/.innervoice/queues/
- Separate JSON file per project
- Persistent storage survives restarts
- Auto-cleanup of old delivered tasks (7 days)

Queue Manager (queue-manager.ts):
- enqueueTask() - Add task to project queue
- getPendingTasks() - Get undelivered tasks
- markTaskDelivered() - Mark task as complete
- getQueueSummary() - Get overview of all queues
- cleanupOldTasks() - Remove old delivered tasks

API Endpoints:
- POST /queue/add - Queue message for project
- GET /queue/:projectName - Get pending tasks
- POST /queue/:projectName/mark-delivered - Mark delivered
- GET /queue/summary - Get all project summaries

Telegram Bot Features:
- /queue command - Show all queued messages
- Project-targeted messages: "ProjectName: message"
- Auto-detect if project is online or offline
- Queue for offline, deliver immediately if online

MCP Tool:
- telegram_check_queue - Check for queued messages on startup
- Shows pending messages with timestamps
- Perfect for checking what happened while offline

Usage Scenarios:

1. Send to offline project:
   You: "ESO-MCP: Continue with roadmap"
   Bot: "📥 Message queued for ESO-MCP (offline)"

2. Open Claude in ESO-MCP:
   Claude auto-checks queue on startup
   Shows: "📬 You have 1 queued message: Continue with roadmap"

3. Check queue status:
   You: "/queue"
   Bot: Shows all projects with pending messages

This solves the "no one listening" problem - messages are stored
and delivered when Claude opens in that project.

Next: Phase 3 (remote Claude spawner)

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-23 17:27:24 -05:00

62 lines
1.5 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Phase 1 Testing Guide
## What Was Built
✅ Multi-project session tracking with project context display
### Features
- Auto-generate unique session IDs for each Claude instance
- Track project name and path from working directory
- Show project context in all Telegram messages: `📁 ProjectName [#shortId]`
- `/sessions` command to list all active Claude instances
- Auto-expire inactive sessions after 30 minutes
## How to Test
### 1. Restart Claude Code
**Important:** You need to restart Claude Code to load the new MCP server code.
```bash
# Exit your current Claude Code sessions
# Then restart in your project
cd /path/to/your/project
claude
```
### 2. Test Project Context
Send a notification and you should see the project name:
```
📁 ESO-MCP [#1a2b3c4]
Your message here
```
### 3. Test Multi-Project Sessions
1. Open Claude in **ESO-MCP** project
2. Open another terminal and start Claude in **innervoice** project
3. In Telegram, type `/sessions`
4. You should see both projects listed:
```
Active Claude Sessions (2)
1. 🟢 ESO-MCP [#1a2b3c4]
Last active: 0m ago
2. 🟢 innervoice [#5d6e7f8]
Last active: 2m ago
```
### 4. Test Session Auto-Expire
Wait 30 minutes of inactivity, then run `/sessions` again.
Inactive sessions should be removed automatically.
## Known Issues
- You must restart Claude Code for changes to take effect
- Old MCP server processes won't pick up new code automatically
## Next: Phase 2
Message queue system for offline/inactive projects coming next!