Night shift: tweet analyzer, data connectors, feed monitor, market watch portal

This commit is contained in:
2026-02-12 00:16:41 -06:00
parent f623cba45c
commit 07f1448d57
20 changed files with 1825 additions and 388 deletions

View File

@ -76,6 +76,37 @@ Major KIPP infrastructure session with D J.
- Results persistence (timer created in chat → appears on dashboard)
- Proximity-aware layout (different for close vs far viewing)
### KIPP HTTPS + Voice Fixed
- Self-signed cert generated (10yr, SAN for 192.168.86.100)
- UI server switched to HTTPS on port 8080
- socat WSS proxy on port 18790 → gateway 18789 (systemd kipp-wss-proxy.service)
- Browser TTS fallback removed — Piper only
- Double-voice mystery: D J had 2 tabs open 😂
- Gateway config fixed: `allowedOrigins` was at root level (invalid), moved to `gateway.controlUi.allowedOrigins`
- Added `https://192.168.86.100:8080` to allowedOrigins
### @milesdeutscher Tweet Analysis
- Polymarket copy-trading GitHub bot going viral (23K views)
- Our take: validates our kch123 approach but we're ahead — we have whale selection, they just have execution code
- Edge erodes with adoption; not actionable for us
### Night Shift — Ambient Mode
- Built ambient/idle mode for KIPP UI (sub-agent)
- Activates after 60s idle: large glowing clock, weather icon, dark gradient background
- Rotating content: tuxedo cat facts, quotes, trivia (every 30s)
- Tap anywhere to return to dashboard
- Verified with Playwright: both ambient and dashboard modes render correctly
### Late Night — KIPP Local-Only Switch
- **D J decided KIPP stays local-only** — no external exposure, direct IP access
- Switched UI WebSocket URL from `wss://kipp.host.letsgetnashty.com` to `ws://192.168.86.100:18789`
- UI renders visually at `http://192.168.86.100:8080/` (Playwright confirmed: green dot, weather, clock)
- **But WS still broken**: origin-allowed errors persist, old domain URLs not fully stripped from JS fallback/retry code
- Hundreds of failed reconnect attempts every ~3s in console logs
- TTS and weather fetch endpoints still referencing old HTTPS domain paths
- **Next**: fully clean UI JS code of all old domain refs, fix origin-allowed, re-test with Playwright
- **Network issue on Case's VM** (192.168.86.45): persistent "TypeError: fetch failed" every ~10s — Telegram polling, ChromaDB auto-recall broken. D J communicating via webchat as workaround.
### Caddy Config (D J's reverse proxy)
```
kippui.host.letsgetnashty.com {

61
memory/2026-02-11.md Normal file
View File

@ -0,0 +1,61 @@
# 2026-02-11
## KIPP Voice Pipeline — Major Build Session
### Built & Deployed (feature/wake-word branch)
- **Always-on wake word detection** via OpenWakeWord (hey_jarvis model as placeholder)
- **Faster Whisper** (base.en) for speech-to-text on KIPP VM
- **Voice WebSocket server** on port 8082 (TLS) — `kipp-voice.service`
- **Python venv** at `/home/wdjones/kipp-venv` with openwakeword, faster-whisper, websockets, aiohttp
- **Male TTS voice** — switched from Amy to Ryan (Piper en_US)
- **Hero panel chat** — voice interaction happens inside the greeting/hero card, not a separate overlay
- **Widget state system** — JSON file + CLI tool + REST API + dashboard polling
- `tools/widgets.py` for shopping list, timers, reminders
- API endpoints on UI server: GET/POST /api/widgets
- Dashboard loads real data, polls every 10s
- KIPP agent instructed in SOUL.md to use widget CLI
### Key Bugs Fixed
1. **CSS injected inside JS** — patch script found `/* CHAT OVERLAY */` in both CSS and JS sections
2. **Gateway challenge-response** — must answer `connect.challenge` with `req` method `connect`
3. **Client ID must be `openclaw-control-ui`** — gateway validates this
4. **Origin header required** — voice server needs `Origin: https://192.168.86.100:8080`
5. **Lifecycle event detection** — gateway sends `phase="end"` not `state="end"` — THIS was the 60-second hang bug
6. **Audio suppressed during wake state** — browser stopped sending mic data when it should have been recording
7. **Race condition** — server sent `ready` before TTS finished, mic picked up speaker audio
8. **Self-triggering wake word** — KIPP's own TTS voice triggered "hey jarvis" — fixed with 2s cooldown
9. **voiceState stuck on speaking** — client must set listening before server's ready msg arrives
10. **Duplicate JS blocks** — sub-agent inserted widget code twice
### Voice State Machine (final)
```
listening → (wake word) → recording → (silence) → processing → (gateway) → speaking → (done_speaking) → cooldown (2s) → listening
```
### Timing Config
- 4s grace period after wake word before silence timeout
- 1.5s silence after speech to end recording
- 30s max recording time
- 2s cooldown after TTS to prevent self-trigger
### KIPP Model Switch
- Switched from `llamacpp/glm-4.7-flash` (83s responses!) to `anthropic/claude-sonnet-4-20250514` (~3s responses)
- GLM-4 Flash as fallback
- Config at `/home/wdjones/.openclaw/openclaw.json` on KIPP VM
### 15 Playwright Tests
- `kipp-ui/tests/test_voice.py` — UI elements, state transitions, chat flow, server connectivity
## anoin123 Investigation
- @browomo tweet about anoin123 Polymarket wallet: $1.6M in 57 days
- **2-4 AM EST claim is FALSE** — trades peak at 3 PM EST
- Strategy: "No harvester" — buys No at 90-99¢ on time-bounded events, collects spread
- $2.2M volume, $7K avg trade, concentrated on Iran strikes + government shutdown
- Monitor set up: `anoin123-monitor.py` + systemd timer every 5min
- Analysis at `data/investigations/anoin123-analysis.md`
- Copy-trade verdict: medium value — strategy is mechanical and replicable independently
## Infrastructure Notes
- KIPP VM services: kipp-ui, kipp-voice, kipp-tts, kipp-wss-proxy, openclaw-gateway
- Widget data: `/home/wdjones/.openclaw/workspace/kipp-ui/data/widgets.json`
- All changes on `feature/wake-word` branch in kipp/workspace repo

14
memory/2026-02-12.md Normal file
View File

@ -0,0 +1,14 @@
# 2026-02-12
## KIPP Voice Pipeline Fixes
- False wake word triggers after KIPP speaks — wake model picking up speaker audio
- Patch 1: Increased cooldown 2s → 4s, added silence flushing during cooldown (feed zeros through wake model to clear internal buffers), added RMS energy gate on wake detection
- RMS gate of 200 was too aggressive — blocked ALL real wake attempts (real RMS was 45-157)
- Lowered RMS gate to 30 — just filters literal silence false positives
- Voice server restarted, D J testing
## Tweet Analyses
- **@jollygreenmoney / $SHL.V** — Homeland Nickel (TSX-V penny stock). Promoted junior miner, already ran 2,300% from $0.03→$0.72, pulled back to $0.41. Collapsing volume = distribution phase. Coordinated promotion with @Levi_Researcher. Nickel bull thesis has merit but this specific stock is exit liquidity. Verdict: stay away.
- **@MoonDevOnYT** — "Fastest growing quant repo on GitHub" AI trading agents. 875 followers, self-proclaimed "#1 quant on X." Content marketing funnel → paid private streams at moondev.com. No verifiable P&L, buzzword soup, fantasy architecture. Verdict: course seller, skip.
## D J signed off ~midnight