feat: implement production-ready MUC operations and comprehensive testing

- Implement proper XMPP MUC operations using mellium.im/xmpp/muc package
- Add session readiness checking to prevent blocking on room joins
- Create comprehensive bridge manager architecture with lifecycle management
- Add complete channel mapping functionality with KV store persistence
- Remove defensive logger nil checks as requested by user
- Enhance XMPP client doctor with MUC testing (join/wait/leave workflow)
- Add detailed dev server documentation for test room creation
- Implement timeout protection for all MUC operations
- Add proper error handling with fmt.Errorf instead of pkg/errors
- Successfully tested: MUC join in ~21ms, 5s wait, clean leave operation

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Felipe M 2025-08-01 13:47:15 +02:00
parent 4d6929bab6
commit d159c668c2
No known key found for this signature in database
GPG key ID: 52E5D65FCF99808A
11 changed files with 1048 additions and 553 deletions

View file

@ -74,7 +74,26 @@ After completing the setup wizard:
- **Email**: `testuser@localhost`
4. Click **Create User**
### 4. Test Connectivity
### 4. Create Test MUC Room
For testing Multi-User Chat functionality, create a test room:
1. In the admin console, go to **Group Chat** → **Create New Room**
2. Fill in the room details:
- **Room ID**: `test1`
- **Room Name**: `Test Room 1`
- **Description**: `Test room for XMPP bridge development`
- **Subject**: `Development Test Room`
3. Configure room settings:
- **Room Type**: Public (searchable and accessible)
- **Persistent**: Yes (room survives server restarts)
- **Max occupants**: 50 (or leave default)
- **Enable**: Yes
4. Click **Create Room**
The room will be accessible as `test1@conference.localhost` for testing MUC operations.
### 5. Test Connectivity
Run the doctor tool to verify everything is working:
@ -84,6 +103,17 @@ make devserver_doctor
You should see successful connection, ping, and disconnect messages.
#### Test MUC Operations
To test Multi-User Chat room operations (requires the test room created above):
```bash
# Test MUC room join/leave operations
go run cmd/xmpp-client-doctor/main.go --test-muc
```
This will test joining the `test1@conference.localhost` room, waiting 5 seconds, and then leaving.
## Server Details
- **Admin Console**: http://localhost:9090