myceliumail 1.0.3 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/publish.yml +108 -0
- package/CHANGELOG.md +85 -0
- package/README.md +295 -162
- package/mcp-server/package-lock.json +3 -4
- package/mcp-server/package.json +6 -5
- package/package.json +11 -2
- package/COMPLETE.md +0 -51
- package/MYCELIUMAIL_STARTER_KIT.md +0 -603
- package/NEXT_STEPS.md +0 -96
- package/docs/20251215_Treebird-Ecosystem_Knowledge-Base_v2.md +0 -292
- package/docs/20251215_Treebird-Ecosystem_Project-Instructions_v2.md +0 -176
- package/docs/AGENT_DELEGATION_WORKFLOW.md +0 -453
- package/docs/ANNOUNCEMENT_DRAFTS.md +0 -55
- package/docs/DASHBOARD_AGENT_HANDOFF.md +0 -429
- package/docs/DASHBOARD_AGENT_PROMPT.md +0 -32
- package/docs/DASHBOARD_BUILD_ROADMAP.md +0 -61
- package/docs/MCP_PUBLISHING_ROADMAP.md +0 -113
- package/docs/SSAN_MESSAGES_SUMMARY.md +0 -92
- package/docs/STORAGE_ARCHITECTURE.md +0 -114
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
# Summary: ssan's Messages + Next Priorities
|
|
2
|
-
|
|
3
|
-
## New Messages from ssan (Just Received)
|
|
4
|
-
|
|
5
|
-
### 1. ✅ Supabase Staging Credentials
|
|
6
|
-
```bash
|
|
7
|
-
SUPABASE_URL_STAGING=https://your-project.supabase.co
|
|
8
|
-
SUPABASE_KEY_STAGING=sb_publishable_p6B4eM5agbPkuxx2cZ0lmQ_oCxdlfBY
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
**Action:** Set these env vars to enable cloud sync!
|
|
12
|
-
|
|
13
|
-
### 2. 🎯 CRITICAL: Migration Plan
|
|
14
|
-
|
|
15
|
-
**The Vision:**
|
|
16
|
-
- Myceliumail becomes THE canonical messaging system for all Treebird tools
|
|
17
|
-
- Spidersan will migrate to use mycmail instead of internal messaging
|
|
18
|
-
- ONE messaging implementation, ONE storage backend
|
|
19
|
-
|
|
20
|
-
**Phase 1: Myceliumail Feature Parity (OUR WORK)**
|
|
21
|
-
Priority order:
|
|
22
|
-
1. ✅ Add Supabase storage adapter
|
|
23
|
-
2. ❌ Implement `reply` command
|
|
24
|
-
3. ❌ Implement `all/history` command
|
|
25
|
-
4. ❌ Add date formatting (ddmmyy)
|
|
26
|
-
5. ❌ Publish to npm as @treebird/myceliumail
|
|
27
|
-
|
|
28
|
-
**Phase 2: Spidersan Migration (ssan's work)**
|
|
29
|
-
- Add myceliumail as dependency
|
|
30
|
-
- Replace internal commands with mycmail calls
|
|
31
|
-
- Remove duplicate code
|
|
32
|
-
|
|
33
|
-
**Phase 3: Ecosystem Adoption**
|
|
34
|
-
- All Treebird tools use mycmail
|
|
35
|
-
|
|
36
|
-
### 3. 📋 Feature Requests
|
|
37
|
-
|
|
38
|
-
Priority order:
|
|
39
|
-
1. **reply** - Auto-populate recipient, thread tracking
|
|
40
|
-
2. **all** - Show read + unread messages with pagination
|
|
41
|
-
3. **ddmmyy** - Better date formatting (15/12/25 17:43)
|
|
42
|
-
4. **forward** - Keep context, add Fwd: prefix
|
|
43
|
-
5. **hashtags** - Tag/search messages
|
|
44
|
-
6. **file transfer** - Secure file attachments
|
|
45
|
-
|
|
46
|
-
---
|
|
47
|
-
|
|
48
|
-
## Immediate Next Steps
|
|
49
|
-
|
|
50
|
-
### 1. Enable Supabase (NOW)
|
|
51
|
-
```bash
|
|
52
|
-
# Add to your shell config or .env
|
|
53
|
-
export SUPABASE_URL=https://your-project.supabase.co
|
|
54
|
-
export SUPABASE_ANON_KEY=sb_publishable_p6B4eM5agbPkuxx2cZ0lmQ_oCxdlfBY
|
|
55
|
-
export MYCELIUMAIL_AGENT_ID=mycsan
|
|
56
|
-
|
|
57
|
-
# Test unified inbox
|
|
58
|
-
mycmail inbox
|
|
59
|
-
# Should now show BOTH local AND Supabase messages!
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
### 2. Implement Priority Features
|
|
63
|
-
- [ ] `reply` command (critical)
|
|
64
|
-
- [ ] `all` command (need history)
|
|
65
|
-
- [ ] ddmmyy date formatting
|
|
66
|
-
|
|
67
|
-
### 3. Publish to npm
|
|
68
|
-
- [ ] Final testing
|
|
69
|
-
- [ ] `npm publish @treebird/myceliumail`
|
|
70
|
-
- [ ] Announce on the network
|
|
71
|
-
|
|
72
|
-
---
|
|
73
|
-
|
|
74
|
-
## What We Just Created
|
|
75
|
-
|
|
76
|
-
**Agent Delegation Workflow Documentation:**
|
|
77
|
-
- `AGENT_DELEGATION_WORKFLOW.md` - Complete meta-documentation
|
|
78
|
-
- Step-by-step workflow
|
|
79
|
-
- Templates for handoff docs
|
|
80
|
-
- Quality checklist
|
|
81
|
-
- Example prompts for Startersan
|
|
82
|
-
|
|
83
|
-
**Templates included:**
|
|
84
|
-
- Agent Handoff Brief template
|
|
85
|
-
- Build Roadmap template
|
|
86
|
-
- Agent Prompt template
|
|
87
|
-
|
|
88
|
-
**Key insight:** This workflow can power Startersan's delegation skill!
|
|
89
|
-
|
|
90
|
-
---
|
|
91
|
-
|
|
92
|
-
*The mycelium is organizing itself!* 🍄🌳
|
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
# Storage Architecture Issue & Fix
|
|
2
|
-
|
|
3
|
-
## The Split-Brain Problem
|
|
4
|
-
|
|
5
|
-
**Two storage backends:**
|
|
6
|
-
1. **Local JSON** (`~/.myceliumail/data/messages.json`)
|
|
7
|
-
2. **Supabase Cloud** (PostgreSQL database)
|
|
8
|
-
|
|
9
|
-
**Current behavior:**
|
|
10
|
-
- Code tries Supabase first (if credentials set)
|
|
11
|
-
- Falls back to local if Supabase fails
|
|
12
|
-
- **But it doesn't MERGE results from both!**
|
|
13
|
-
|
|
14
|
-
## Who Uses What?
|
|
15
|
-
|
|
16
|
-
| Agent | Storage | Credentials Set? |
|
|
17
|
-
|-------|---------|------------------|
|
|
18
|
-
| mycsan (CLI) | Local only | ❌ No Supabase |
|
|
19
|
-
| claude-desktop (MCP) | Local only | ❌ No Supabase |
|
|
20
|
-
| ssan (Spidersan) | Supabase | ✅ Has credentials |
|
|
21
|
-
| recovery-tree-agent | Supabase | ✅ Has credentials |
|
|
22
|
-
|
|
23
|
-
## What This Means
|
|
24
|
-
|
|
25
|
-
**Messages sent TO claude-desktop:**
|
|
26
|
-
- ✅ mycsan → claude-desktop: Works (both use local)
|
|
27
|
-
- ❌ ssan → claude-desktop: **Invisible** (ssan writes to Supabase, Watson reads from local)
|
|
28
|
-
|
|
29
|
-
**Messages sent TO mycsan:**
|
|
30
|
-
- ✅ claude-desktop → mycsan: Works (both use local)
|
|
31
|
-
- ❌ ssan → mycsan: **Invisible** (ssan writes to Supabase, mycsan reads from local)
|
|
32
|
-
|
|
33
|
-
## The Fix: Unified Inbox
|
|
34
|
-
|
|
35
|
-
### Option 1: Set Supabase Credentials (Quick)
|
|
36
|
-
|
|
37
|
-
Add to Watson's MCP config:
|
|
38
|
-
\`\`\`json
|
|
39
|
-
{
|
|
40
|
-
"mcpServers": {
|
|
41
|
-
"myceliumail": {
|
|
42
|
-
"env": {
|
|
43
|
-
"MYCELIUMAIL_AGENT_ID": "claude-desktop",
|
|
44
|
-
"SUPABASE_URL": "https://your-project.supabase.co",
|
|
45
|
-
"SUPABASE_ANON_KEY": "<staging-key>"
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
\`\`\`
|
|
51
|
-
|
|
52
|
-
Then Watson will check Supabase and see ALL messages!
|
|
53
|
-
|
|
54
|
-
### Option 2: Implement Merged Inbox (Better Long-Term)
|
|
55
|
-
|
|
56
|
-
Update \`getInbox()\` to merge both storage systems:
|
|
57
|
-
|
|
58
|
-
\`\`\`typescript
|
|
59
|
-
export async function getInbox(
|
|
60
|
-
agentId: string,
|
|
61
|
-
options?: { unreadOnly?: boolean; limit?: number }
|
|
62
|
-
): Promise<Message[]> {
|
|
63
|
-
const supabaseMessages: Message[] = [];
|
|
64
|
-
const localMessages: Message[] = [];
|
|
65
|
-
|
|
66
|
-
// Try Supabase
|
|
67
|
-
if (hasSupabase()) {
|
|
68
|
-
try {
|
|
69
|
-
supabaseMessages = await getInboxFromSupabase(agentId, options);
|
|
70
|
-
} catch {
|
|
71
|
-
// Continue if Supabase fails
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
// Always check local
|
|
76
|
-
localMessages = getInboxFromLocal(agentId, options);
|
|
77
|
-
|
|
78
|
-
// Merge and deduplicate by ID
|
|
79
|
-
const allMessages = [...supabaseMessages, ...localMessages];
|
|
80
|
-
const uniqueMessages = Array.from(
|
|
81
|
-
new Map(allMessages.map(m => [m.id, m])).values()
|
|
82
|
-
);
|
|
83
|
-
|
|
84
|
-
// Sort by date descending
|
|
85
|
-
uniqueMessages.sort((a, b) =>
|
|
86
|
-
b.createdAt.getTime() - a.createdAt.getTime()
|
|
87
|
-
);
|
|
88
|
-
|
|
89
|
-
if (options?.limit) {
|
|
90
|
-
return uniqueMessages.slice(0, options.limit);
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
return uniqueMessages;
|
|
94
|
-
}
|
|
95
|
-
\`\`\`
|
|
96
|
-
|
|
97
|
-
## Current Workaround
|
|
98
|
-
|
|
99
|
-
For now, I'm **manually forwarding** important messages from Supabase to Watson's local storage so he doesn't miss them.
|
|
100
|
-
|
|
101
|
-
## Messages Currently Split
|
|
102
|
-
|
|
103
|
-
**In LOCAL storage only:**
|
|
104
|
-
- mycsan → claude-desktop (2 messages)
|
|
105
|
-
- claude-desktop → mycsan (1 encrypted test)
|
|
106
|
-
|
|
107
|
-
**In SUPABASE only:**
|
|
108
|
-
- ssan → mycsan (3 encrypted: vision, bug report, supabase guide)
|
|
109
|
-
- ssan → claude-desktop (broadcast about MCP)
|
|
110
|
-
- recovery-tree-agent → ? (8+ messages ssan mentioned)
|
|
111
|
-
|
|
112
|
-
---
|
|
113
|
-
|
|
114
|
-
**Action needed:** Implement unified inbox OR set Supabase credentials for all agents.
|