# 2026-02-16

## Briefing Preference
- Johan prefers X/Twitter as primary news source for briefings over legacy media
- Speed matters — X breaks news hours before traditional outlets
- Lean into high-engagement posts, real-time threads, not CNN/Reuters rewrites

## OpenClaw Source Patches (reapply after updates)
1. **Scope preservation with dangerouslyDisableDeviceAuth**
   - File: `dist/gateway-cli-DbznSfRg.js`
   - Change: `if (scopes.length > 0)` → `if (scopes.length > 0 && !disableControlUiDeviceAuth)`
   - Why: Without this, `dangerouslyDisableDeviceAuth` nullifies device → clears scopes → operator.read/write denied

2. **Index deleted session transcripts in memory search**
   - File: `dist/sqlite-C54NeA1C.js`
   - Change: `.filter((name) => name.endsWith(".jsonl"))` → `.filter((name) => name.endsWith(".jsonl") || name.includes(".jsonl.deleted."))`
   - Why: Daily session reset marks old transcripts as `.deleted`, making them invisible to memory search

## TTS → Tablet Pipeline (idea)
- Generate high-quality TTS (Fish Audio S1 / ElevenLabs) → mp3
- Serve from forge (dashboard server or simple http)
- Play via `media_player.play_media` on Fully Kiosk tablets
- Tablets: `media_player.lenovo_tab_m8_*` (many), `media_player.casita_tbl`, etc.
- **Office tablet only for testing** (people sleeping!)
- Could become James's "voice" — intercom-style announcements with a premium voice
- Need to identify which media_player entity maps to the office tablet

## Smart Home Voice Vision
- Goal: push smart home to next level with contextual voice announcements
- Pipeline proven: Edge TTS → mp3 → media_player on Fully tablets ✅
- Use cases:
  - "The UPS driver is approaching the front door" (before doorbell)
  - "Misha is arriving" (car in driveway)
  - "The dryer upstairs finished" (Miele integration)
  - Russian announcements for MiL/FiL (ru-RU voices)
  - Delivery alerts tied to tracker
- Russian voices for in-laws — house speaks their language
- Need Tanya's buy-in before expanding beyond office tablet
- Fish Audio S1 ($5/mo) for premium voice quality when ready

## Wake Permission
- Johan allows James to wake him from **8:00 AM ET** onwards
- Only for **genuinely important** events (Kaseya critical, urgent emails, etc.)
- No FYI-level noise — real alerts only

## Fish Audio S1 — LIVE ✅
- API key: stored in memory (need to add to Vaultwarden when session refreshed)
- Voice: **Adrian** (reference_id: `bf322df2096a46f18c579d0baa36f41d`)
- Model: `s1`
- Pricing: $5/M UTF-8 bytes (pay-as-you-go, no subscription needed)
- API: `POST https://api.fish.audio/v1/tts` with Bearer auth
- Successfully generated and played on office tablet (media_player.lenovo_tab_m8_7)
- Johan picked Adrian over Ethan, Andrew (Edge), Guy (Edge), Brian (Edge), Christopher (Edge)
- Pipeline: Fish API → mp3 → python http server on :8199 → media_player.play_media
- TODO: Make persistent TTS service (not ad-hoc python server), store key in Vaultwarden

## Tablet Entity Mapping Correction
- `media_player.lenovo_tab_m8_6` = **pbed.tbl** (parent bedroom), NOT master bedroom
- `media_player.mbed_tbl` = **master bedroom tablet** (Fully Kiosk only, no HA Companion)
- mbed tablet has NO notify TTS entity — must use media_player.play_media route
- Fish Audio Adrian voice works on mbed_tbl but speaks too slowly — need speed adjustment

## Network Note
- Home network is a /22 — 192.168.0.x and 192.168.1.x are on the same subnet, fully routable
- Tablets (192.168.0.x) can reach forge (192.168.1.16) directly

## Master Bedroom Tablet (mbed.tbl) — Fully REST API
- IP: 192.168.0.186
- Fully password: 3005
- Fully version: 1.52 (PLUS licensed)
- Device ID: 41cc4036-3eb303c9
- HA shows unavailable (Browser Mod issue) but Fully REST works fine
- **playSound:** `http://192.168.0.186:2323/?cmd=playSound&url=<mp3_url>&password=3005`
- **textToSpeech:** `http://192.168.0.186:2323/?cmd=textToSpeech&text=<text>&locale=en_US&password=3005`
- **screenOn:** `http://192.168.0.186:2323/?cmd=screenOn&password=3005`
- playSound may be unreliable — sometimes plays, sometimes doesn't. Needs investigation.

## Fully Kiosk Integration
- Fire Tablet running Fully Kiosk: 192.168.2.243
- Password: 3005 (assuming same as mbed)

## 15:05 — Message Center Issues Detected
- M365 email fetch broken: `ErrorInvalidUrlQueryFilter` every minute since at least 14:58
- MC LLM triage API key invalid (401 from what looks like OpenRouter/vLLM)
- Proton (tj_jongsma_me) is working — got 1 new message (Desire Cruises marketing email) but couldn't triage it
- `/messages/new` endpoint returns null — possibly because messages fall through without triage
- Posted warning alert to Fully dashboard
- **Action needed:** Fix M365 query filter config and update MC triage API key

## House Showing Prep (2:30 PM)
- All lights on at 4000K 100% (initially tried 6500K daylight but kitchen was too blue)
- 24 auto-off automations disabled for showing, re-enabled after
- Family room excluded initially (Sophia napping?), turned on at 2:15
- Monoprice all 12 zones turned on at 2:15, off after showing
- Light switches (foyer chandelier, mcloset, breakfast chandelier, halls, etc.) turned on manually
- HA bulk light operations generate MASSIVE JSON responses — rule added to AGENTS.md: always use K2.5 subagent for HA bulk ops
- Subagent approach worked great: lights-off task took 3min, automations re-enable took 7s, main context stayed clean

## Tablet Entity Mapping (corrected)
- `media_player.lenovo_tab_m8_6` = **pbed.tbl** (parent bedroom), NOT master bedroom!
- `media_player.lenovo_tab_m8_7` = **office1.tbl** ✅
- `media_player.mbed_tbl` = master bedroom (Fully Kiosk only, shows unavailable in HA)
- mbed tablet IP: 192.168.0.186, Fully password: 3005
- mbed has NO HA Companion notify TTS entity — must use Fully REST API or media_player.play_media
- Fully REST playSound unreliable on mbed — sometimes works, sometimes doesn't
- Office tablet (office1.tbl) = reliable for both media_player and notify TTS

## Monoprice Multi-Zone Amp
- Entities: media_player.zone_11 through zone_26 (12 zones)
- zone_11=Kitchen, zone_12=Dining, zone_13=Bed1, zone_14=Office, zone_15=Zone15, zone_16=Casita
- zone_21=Foyer, zone_22=Retreat, zone_23=Bed2, zone_24=MBed, zone_25=MBath, zone_26=MBalcony

## Network
- Home network is /22 — 192.168.0.x and 192.168.1.x same subnet, fully routable

## Fire Tablet in Office
- IP: 192.168.2.243
- Runs Fully Kiosk showing James Dashboard
- Different device from the Lenovo Tab M8 (office1.tbl) which runs HA

## Dashboard Alerts
- Message Center: M365 email fetch failing with ErrorInvalidUrlQueryFilter
- LLM triage API key invalid (401)
- Both need config fixes — TODO

## Sophia
- Blood draw TOMORROW Tue Feb 17 at 12:00 PM
- Health Link Mobile Phlebotomy, 851 Brightwater Blvd NE, St Pete
- Staff: Karina, $65 due
