107 lines
2.7 KiB
Markdown
107 lines
2.7 KiB
Markdown
|
|
# Room Code Image Upload - Implementation Status
|
||
|
|
|
||
|
|
## Phase 1: Research (IN PROGRESS)
|
||
|
|
|
||
|
|
### 1.1 Enhanced WebSocket Monitor ✅ COMPLETE
|
||
|
|
- Added binary WebSocket frame detection
|
||
|
|
- Added HTTP request/response logging
|
||
|
|
- Added file chooser event handling
|
||
|
|
- Added automatic file upload triggering (with manual fallback)
|
||
|
|
- Logs to both console and `image-upload-capture.log`
|
||
|
|
|
||
|
|
### 1.2 Capture Real Upload ⏳ WAITING FOR USER
|
||
|
|
**Action Required:** Run the monitor and upload an image
|
||
|
|
|
||
|
|
```bash
|
||
|
|
cd /Users/erikfredericks/dev-ai/HSO/irc-kosmi-relay
|
||
|
|
./monitor-ws
|
||
|
|
```
|
||
|
|
|
||
|
|
Then manually upload `blurt.jpg` in the Kosmi chat interface.
|
||
|
|
|
||
|
|
**What We're Looking For:**
|
||
|
|
1. HTTP endpoint for image upload (POST/PUT request)
|
||
|
|
2. Request format (multipart/form-data, JSON, binary)
|
||
|
|
3. Required headers (Authorization, Content-Type, etc.)
|
||
|
|
4. Response format (JSON with URL?)
|
||
|
|
5. OR: GraphQL mutation for file upload via WebSocket
|
||
|
|
|
||
|
|
### 1.3 Document Findings ⏳ PENDING
|
||
|
|
Once upload is captured, create `KOSMI_IMAGE_UPLOAD.md` with:
|
||
|
|
- Upload method (HTTP vs WebSocket)
|
||
|
|
- Endpoint URL
|
||
|
|
- Authentication requirements
|
||
|
|
- Request/response format
|
||
|
|
- Go implementation strategy
|
||
|
|
|
||
|
|
## Phase 2: Image Generation (READY TO IMPLEMENT)
|
||
|
|
|
||
|
|
Can proceed independently of Phase 1 research.
|
||
|
|
|
||
|
|
### 2.1 Room Code Image Generator
|
||
|
|
Create `bridge/jackbox/roomcode_image.go`:
|
||
|
|
- Black background (RGB 0,0,0)
|
||
|
|
- White monospace text
|
||
|
|
- 200x100 pixels
|
||
|
|
- Best-fit font size with padding
|
||
|
|
- Centered text
|
||
|
|
- Returns PNG bytes
|
||
|
|
|
||
|
|
### 2.2 Configuration
|
||
|
|
Add to `matterbridge.toml`:
|
||
|
|
```toml
|
||
|
|
EnableRoomCodeImage=false
|
||
|
|
```
|
||
|
|
|
||
|
|
## Phase 3: Kosmi Upload Client (BLOCKED)
|
||
|
|
|
||
|
|
Waiting for Phase 1.2 findings.
|
||
|
|
|
||
|
|
## Phase 4: IRC Formatting (READY TO IMPLEMENT)
|
||
|
|
|
||
|
|
Can proceed independently.
|
||
|
|
|
||
|
|
### 4.1 IRC Formatting Helper
|
||
|
|
Create `bridge/irc/formatting.go`:
|
||
|
|
- `FormatRoomCode(code string) string`
|
||
|
|
- Returns `"\x02\x11" + code + "\x0F"`
|
||
|
|
- IRC codes: 0x02=bold, 0x11=monospace, 0x0F=reset
|
||
|
|
|
||
|
|
## Phase 5: Integration (BLOCKED)
|
||
|
|
|
||
|
|
Waiting for Phases 2, 3, and 4.
|
||
|
|
|
||
|
|
## Phase 6: Testing (BLOCKED)
|
||
|
|
|
||
|
|
Waiting for Phase 5.
|
||
|
|
|
||
|
|
## Current Blockers
|
||
|
|
|
||
|
|
1. **Phase 1.2** - Need user to run monitor and capture image upload
|
||
|
|
2. **Phase 1.3** - Need to analyze captured traffic and document findings
|
||
|
|
3. **Phase 3** - Need Phase 1 findings to implement upload client
|
||
|
|
|
||
|
|
## Can Proceed Now
|
||
|
|
|
||
|
|
- Phase 2 (Image Generation) - Independent task
|
||
|
|
- Phase 4 (IRC Formatting) - Independent task
|
||
|
|
|
||
|
|
## Next Steps
|
||
|
|
|
||
|
|
**Immediate (User Action):**
|
||
|
|
1. Run `./monitor-ws`
|
||
|
|
2. Upload `blurt.jpg` in Kosmi chat
|
||
|
|
3. Press Ctrl+C when done
|
||
|
|
4. Share `image-upload-capture.log` contents
|
||
|
|
|
||
|
|
**After Capture:**
|
||
|
|
1. Analyze log file
|
||
|
|
2. Document upload protocol
|
||
|
|
3. Implement upload client
|
||
|
|
4. Continue with integration
|
||
|
|
|
||
|
|
**Meanwhile (Can Start Now):**
|
||
|
|
1. Implement image generation (Phase 2)
|
||
|
|
2. Implement IRC formatting (Phase 4)
|
||
|
|
|