clawd/memory/working-context.md

114 lines
6.0 KiB
Markdown

# Working Context (updated 2026-02-17 9:00 PM ET)
## Active Projects
### Dealspace AI (Deal Room)
- **Status:** MVP built and running on port 9300 (forge)
- Go + templ + HTMX + SQLite + Tailwind, single binary
- Full e2e working: login, dashboard, deals, contacts, audit, analytics, requests
- Role-based nav (buyer vs seller views)
- Pushed to zurich: 3720ed7
- **Next:** Johan to review, get Misha/PE feedback, iterate on features
- Source: `/home/johan/dev/dealroom/`
### Fish Audio S1 TTS / Smart Home Voice
- Adrian voice working (ref: bf322df2096a46f18c579d0baa36f41d)
- Pipeline proven: Fish API → mp3 → http server → media_player on tablets
- Office tablet (office1.tbl) reliable; mbed tablet (Fully REST) unreliable
- **TODO:** Persistent TTS service on forge, store API key in Vaultwarden
- Vision: contextual voice announcements (deliveries, appliances, Russian for in-laws)
- Need Tanya approval before expanding beyond office
- **Next feature:** Voice meeting announcements — pre-generate TTS at calendar fetch, play at T-5m
- **Architecture decision:** Alert dashboard will merge INTO Message Center (not now, but planned)
### Message Center (MC) — M365 Pipeline
- **Working:** MC detects emails/Teams → K2.5 summarizes → POSTs to Fully dashboard
- **K2.5 completions API** is the correct endpoint (chat API broken for formatting)
- **Conversation-aware**: Johan's replies auto-clear Fully alerts for that Teams conversation
- **Group coloring**: Teams messages from same conv share background color (hue from conv ID hash)
- **Fireworks API key:** `fw_RVcDe4c6mN4utKLsgA7hTm` (working key — old stale key caused issues)
- **OC m365 hook removed**: MC handles everything directly now
- Previously reported M365 fetch error (ErrorInvalidUrlQueryFilter ~2/16) — appears resolved
### Fully Dashboard (Forge / Tablets)
- **Budget pace indicator:** `usage% / time%` (week = Sat 2pm → Sat 2pm ET)
- >100% = red, 90-100% = white, <90% = green. Shows as `⚡ 108%`
- **News streams:** Topics (markets, ai, nabl, news, netherlands) each get own bar below alerts
- Fetches from James dashboard /api/news, grouped by `topic` field
- **Claude usage fixed**: pulls object not array from dashboard API
### News System
- **Cron:** Grok 4.1 Fast every 4h (2,6,10,14,18,22 ET) for news scan
- **Philosophy:** X/Twitter as radar then PRIMARY SOURCE. No middlemen.
- `topic` field added to James dashboard news API; Topics section groups by topic with emoji headers
### Password Manager Migration: Proton Pass → Vaultwarden
- **Status:** Plan defined, awaiting Johan action
- **Steps:**
1. Johan creates account at https://vault.inou.com
2. Export from Proton Pass (Settings Export CSV or JSON)
3. Import into Vaultwarden (Bitwarden-compatible format)
4. Set SIGNUPS_ALLOWED=false after account created
5. Install Bitwarden app on iPhone, Mac, browser extension point to https://vault.inou.com
- **TODO:** rclone backup to GDrive (needs browser OAuth on Zurich)
- Fish Audio API key + other secrets Vaultwarden
### Domain Registrar Migration
- **URGENT: jongsma.me expires 2026-02-28** transfer to Cloudflare before auto-renewal
- stpetersburgaquatics.com expires 2026-03-13
- OpenProvider has ~€80 credits; migrate renewals to Cloudflare going forward
- Full renewal schedule: zavtra(May), inou(Jun), unbelievable(Jul), x4(Aug), e-consultants(Sep), muskepo.nl(Sep), busel(Oct), localbackup(Oct), johanjongsma(Nov), 851brightwaters(Dec), flourishevents(Jan27), muskepo.com(Jan27), harryhaasjes(Feb27)
### DNS Migration
- Changed NS to Cloudflare for ALL 10 remaining domains via OpenProvider API
- Cloudflare activation checks triggered; cron job at 4:55 AM to check + add remaining 6
- OpenProvider API creds: `~/.config/openprovider.env`
### Email Migration (Stalwart)
- Tanya added to Proton Bridge (account #2, pw: dxk6YlYpRgr3Z7fw3BhXDQ)
- Stalwart: all users recreated with `"roles":["user"]` needed for IMAP auth
- imapsync working via SSH tunnel (localhost:9930 zurich:993)
- Tanya sync was running in background (/tmp/imapsync_tanya.log) check status
- Self-signed cert added but Stalwart ACME override issue still pending
### James Dashboard
- Running on port 9200 as dealroom.service
- Agent chat still needs testing from Johan's Mac browser
### BlueBubbles / iMessage
- Mac Mini M4 (2025) is Johan's daily driver can run BlueBubbles now
- Setup deferred
## Key Context
- **Wake permission:** 8 AM+ ET, genuinely important events only
- **Briefings:** Johan prefers X/Twitter as primary news source
- **OpenClaw patches:** Two source patches need reapplication after updates:
- Scope preservation patch
- Deleted transcript indexing patch
- See 2026-02-16.md for details
- **Fireworks for private data** (emails, Teams); Grok OK for public news
- **Claude Sonnet 4.6 released** 1M context (beta), adaptive thinking, context compaction (beta), $3/$15 per M tokens
## Upcoming / Open Threads
- **jongsma.me domain transfer** (URGENT expires 2026-02-28)
- **Vaultwarden setup** Johan needs to create account + import passwords
- **rclone backup** for Vaultwarden (needs browser OAuth on Zurich)
- **Persistent TTS service** on forge
- **BlueBubbles setup** on Mac Mini M4
- **Test xAI/Grok** in morning briefing
- **Sophia blood draw** was today (Tue Feb 17 12:00 PM), Health Link
- Fix Stalwart ACME cert issue
- Matrix OS watch only, revisit when mature
## People
- **Misha (Michael Muskepo)** Johan's son, Dealspace AI co-creator with PE guys
- **Tanya (Tatyana)** Johan's wife, gatekeeper for smart home expansion
- **Sophia** daughter (blood draw was today)
- **Karina** associated with Sophia's health link appointment ($65)
## Corrections Learned Today
- **"Best over fast, always"** Johan doesn't want fastest approach, wants best
- **Don't bypass root cause** removing LLM summarization was lazy; fix the prompt instead
- **Test with curl before deploying** always get "curl proof" before pushing code changes
- **K2.5 chat API broken for formatting** use completions API with few-shot pattern instead