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.
@@ -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.