slashvibe-mcp 0.5.19 → 0.5.20

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.
Files changed (3) hide show
  1. package/index.js +15 -0
  2. package/package.json +1 -1
  3. package/store/api.js +1 -0
package/index.js CHANGED
@@ -210,6 +210,21 @@ async function getPresenceFooter() {
210
210
  }
211
211
  footer += parts.join(' · ');
212
212
 
213
+ // Live rooms: name WHERE people are live so the terminal can offer the
214
+ // "graduate into the room" jump, not just a count. The join URL is gated on
215
+ // VIBE_ROOM_URL_BASE (unset by default) until the conferencing lane confirms
216
+ // the real room-URL format — we show the room name always, the link only
217
+ // when it will actually resolve. See ROOM-PRESENCE-BRIDGE.md.
218
+ const liveRooms = others.filter(u => u.isLive && u.broadcastRoom);
219
+ if (liveRooms.length > 0) {
220
+ const base = process.env.VIBE_ROOM_URL_BASE; // e.g. https://vibeconferencing.com/
221
+ footer += '\n';
222
+ footer += liveRooms.slice(0, 3).map(u => {
223
+ const where = `🔴 @${u.handle} live in the ${u.broadcastRoom}`;
224
+ return base ? `${where} → ${base.replace(/\/$/, '')}/${u.broadcastRoom}` : where;
225
+ }).join('\n');
226
+ }
227
+
213
228
  // Line 2: Activity hints (if anyone is online)
214
229
  if (others.length > 0) {
215
230
  footer += '\n';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "slashvibe-mcp",
3
- "version": "0.5.19",
3
+ "version": "0.5.20",
4
4
  "mcpName": "io.github.vibecodinginc/vibe",
5
5
  "description": "Social layer for Claude Code - DMs, presence, Matrix multiplayer rooms, and connection between AI-assisted developers",
6
6
  "main": "index.js",
package/store/api.js CHANGED
@@ -367,6 +367,7 @@ async function getActiveUsers() {
367
367
  awayAt: u.awayAt || u.context?.awayAt || null,
368
368
  // v2 additions
369
369
  isLive: u.isLive || false,
370
+ broadcastRoom: u.broadcastRoom || u.r || null, // room slug when live
370
371
  isAgent: u.isAgent || false,
371
372
  // Presence texture (server-enriched): most-recent ship
372
373
  lastShip: u.lastShip || null