114 lines
6.0 KiB
Markdown
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
|