osborn 0.9.115 → 0.9.116

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 (2) hide show
  1. package/dist/index.js +10 -11
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -5210,17 +5210,16 @@ async function main() {
5210
5210
  // the bot casts the meeting canvas as its camera+mic (below), so
5211
5211
  // it can show visuals and speak into the meeting on demand.
5212
5212
  await sendToFrontend({ type: 'meeting_joining', message: 'Osborn is joining your meeting...' });
5213
- // Cast target = the bot's camera+mic webpage (Recall output_media).
5214
- // DEFAULT is the meeting canvas (frontend /meeting-canvas), pointed
5215
- // at THIS agent's public URL so it can subscribe to /canvas-stream
5216
- // and become the bot's face (visuals) + voice (TTS it speaks). An
5217
- // explicit castUrl from the frontend or OSBORN_MEETING_CAST_URL
5218
- // overrides it (e.g. to cast a live feed or a seeded site instead).
5219
- const frontendUrl = (process.env.OSBORN_FRONTEND_URL || 'https://www.voice-native.com').replace(/\/$/, '');
5220
- const canvasUrl = /^https:\/\//.test(webhookBase)
5221
- ? `${frontendUrl}/meeting-canvas?agent=${encodeURIComponent(webhookBase)}`
5222
- : undefined;
5223
- const castUrl = data.castUrl || process.env.OSBORN_MEETING_CAST_URL || canvasUrl;
5213
+ // AUDIO-FIRST DEFAULT (2026-08-01, proven live): the webpage-camera
5214
+ // output_media routes the bot's AUDIO through the canvas page's
5215
+ // Web Audio — which sits SUSPENDED in Recall's headless Chrome (no
5216
+ // user gesture) → the bot was inaudible all night. Default now = NO
5217
+ // webpage camera, so the bot's voice is the direct Recall
5218
+ // output_audio track (speakIntoMeeting → recall.outputAudio, ~1.8s
5219
+ // synth, verified audible + clear). The browser CAST is opt-in via
5220
+ // explicit data.castUrl / OSBORN_MEETING_CAST_URL until we split
5221
+ // video(webpage) from audio(output_audio) to reclaim it cleanly.
5222
+ const castUrl = data.castUrl || process.env.OSBORN_MEETING_CAST_URL || undefined;
5224
5223
  const botId = await recallJoin.joinMeeting(meetingUrl, webhookBase, { castUrl });
5225
5224
  const sessionId = currentLLM?.sessionId || currentResumeSessionId || 'default';
5226
5225
  recallJoin.registerBot(botId, sessionId);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "osborn",
3
- "version": "0.9.115",
3
+ "version": "0.9.116",
4
4
  "description": "Voice AI coding assistant - local agent that connects to Osborn frontend",
5
5
  "type": "module",
6
6
  "bin": {