clawd/memory/working-context.md

6.0 KiB

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