# MEMORY.md - Moon's Long-Term Memory

## Installed Skills

### x-tweet-fetcher ✅
- **Date installed:** 2026-02-21
- **Source:** https://github.com/ythx-101/x-tweet-fetcher
- **Location:** `/usr/local/lib/node_modules/openclaw/skills/x-tweet-fetcher/`
- **What it does:** Fetches X/Twitter posts, stats, media — no API key required
- **Works via:** FxTwitter public API
- **Tested & verified working**
- **To use:** Give me any X/Twitter URL and I'll fetch it instantly
- **Advanced features** (replies, timelines) need Camofox — not yet installed

---

## Projects

### Dr Rylee's Doctor Game
- **Date:** 2026-02-21 (3D CSS rewrite: 2026-02-22)
- **File:** `/Users/bowang/.openclaw/workspace/doctor-game.html`
- **Server:** Python HTTP server on port 8080 (may need restart)
- **URL:** `http://localhost:8080/doctor-game.html`
- **Network URL:** `http://192.168.68.59:8080/doctor-game.html`
- **Description:** Interactive doctor game for Bo's 6-year-old daughter Rylee; 3D CSS rewrite applied
- **Mini-games:** Thermometer, Heartbeat, Syringe, Bandage, Candy, Hug
- **Patients (with ear types):** Bobo 🧸 (round), Luna 🐰 (bunny), Max 🐶 (floppy), Zoe 🦊 (pointy), Ollie 🐻 (small), Daisy 🐱 (cat)
- **⚠️ Status:** 3D rewrite applied but NOT fully verified — needs end-to-end check on next session

### Royce's Space Shooter v3
- **Date:** 2026-02-22
- **File:** `/Users/bowang/.openclaw/workspace/royce-space-shooter.html`
- **4 unique bosses:** THE EYE (wave 5), TWIN TERROR (wave 10), DREADNOUGHT (wave 15), MOTHERSHIP (wave 20+)
- **Cheat key:** `Shift+B` to skip to boss wave
- **Status:** Complete, verified working ✅

### Rylee's Math Helicopter
- **File:** `/Users/bowang/.openclaw/workspace/rylee-math-heli.html`
- **URL:** `http://192.168.68.59:8080/rylee-math-heli.html`
- **Description:** Math quiz game — answer correctly → helicopter zooms up, wrong → drops; collect stars, dodge birds; 3 lives; localStorage high score
- **Status:** Working ✅

### Rylee's Pet Kitchen v2
- **Date:** 2026-02-22
- **File:** `/Users/bowang/.openclaw/workspace/rylee-pet-kitchen.html`
- **5 pets × 3 dishes = 15 dishes;** 45-sec timer, speed/perfect/combo scoring, localStorage high score
- **Status:** Complete, verified working ✅

### Rylee's Poop Patrol
- **Date:** 2026-04-03
- **File:** `/Users/bowang/.openclaw/workspace/rylee-poop-patrol.html`
- 3 dogs: Biscuit 🐕 (normal), Princess 🐩 (fast, rainbow/golden), Chomper 🦮 (huge, 3 poops at once)
- 4 poop types: normal, bomb 💣, rainbow 🌈 (+5), golden 👑 (+10); power-ups ⚡❄️💥🧲
- Fever meter, Poop Storm event, fart sounds, 5 hearts, 10 levels
- **Status:** Working ✅

### Royce's Escape Room (3-room horror)
- **Date:** 2026-04-03
- **File:** `/Users/bowang/.openclaw/workspace/royce-escape-room.html`
- Flashlight mechanic (CSS radial gradient), 3 rooms, 5 monsters + 3 keys per room
- Room 13 (red eyes) → Bathroom (blue eyes, drowned) → Cinema (yellow eyes, silhouette)
- Per-room monster aesthetics: size variants (sm/lg/xl), unique animations, custom warn messages
- Jumpscare + screen crack + heartbeat sound system
- **Status:** Working ✅ (key bug: insertBefore needs darkness.parentNode not gameEl)

---

## About Bo
- **Full name:** Bo Wang | **X handle:** @bowang87 | **Gmail:** wangbo.yunze@gmail.com
- **Employer:** Xaira Therapeutics (building causally-rich, contextually-diverse perturbation data for Virtual Cells)
- **Kids:** Rylee (daughter, 6yo), Royce (son, 11yo)
- **Expertise:** Computational biology, AI for drug discovery, multi-agent systems
- **Science stance:** Virtual Cell ≠ perturbation predictor; scaling needs data diversity first
- **scGPT:** Creator of scGPT — original generative pre-trained transformer for single-cell multiomics (Nature Methods 2024); lead author Haotian Cui; trained on 33M cells from CellxGene; tasks: cell type annotation, perturbation prediction, batch correction, multi-omic integration, GRN inference

## API Keys & Services
- **Gemini API key:** `AIzaSyBM-NVkvNgTD5Jt_l-xhvFaSGCeaMKzB98` → stored in openclaw.json under nano-banana-pro
- **moon.clawdbot@gmail.com password:** `Ai210126` (created by Bo for Moon's own Google account)
  - Has 2FA enabled — SMS sent to a number ending in ••90 (need Bo to provide code when logging into new sessions)
  - Used for: NotebookLM via Camofox, gws CLI (OAuth already configured separately)
- **Image model:** `gemini-3.1-flash-image-preview` (**Nano Banana 2**, default since 2026-02-26) — faster + sharper than old `gemini-3-pro-image-preview`
- **OpenAI API key:** stored under openai-image-gen — has GPT-5, o3, Sora-2, Whisper, etc. Image quota was maxed 2026-02-21
- **Notion API key:** stored in openclaw.json

## Useful Workarounds

### AI Memory Systems landscape (2026-02-28)
- OpenClaw native memory: 58.3% recall on MemoryBench
- Best options: Supermemory (85.9%, auto-recall), mem0 (48k★, graph+vector, multi-agent), MemOS (+159% time-reasoning, academic), Memori (SQL-native, 80-90% cheaper)
- Local-first options: Nowledge (SQLite, 100% on-device), Memori (SQL exportable)
- Bo assessed these but did not install any — current MEMORY.md system sufficient for now

### Kreuzberg (pending install, assessed 2026-02-28)
- Repo: https://github.com/kreuzberg-dev/kreuzberg
- Rust-core document extraction — 75+ formats: PDF, Office, images (OCR), email, archives, Jupyter, BibTeX, LaTeX
- Install: `pip install kreuzberg` / `pip install "kreuzberg[ocr]"` + Tesseract for OCR
- Usage: `python -m kreuzberg extract file.pdf` → clean text
- Fills gap: currently can't read local PDFs or Office files
- Bo approved in principle but didn't confirm install yet

### Jina Reader API (no key needed)
- `curl -s "https://r.jina.ai/https://target-url.com"` → clean Markdown
- Good fallback when web_fetch fails on complex/JS-heavy pages
- Search API (s.jina.ai) now requires paid key — don't bother

### PIL cell/image animation technique
- Better than multi-frame AI generation (inconsistent frames)
- Use `ImageEnhance.Brightness/Color/Sharpness` + zoom_center() + gaussian bloom glow
- 48 frames at 24fps → smooth 2-second sinusoidal loop
- Script: `/Users/bowang/.openclaw/workspace/animate_cell.py`

### bioRxiv / Cloudflare bypass
- `web_fetch` on bioRxiv → 403; Camofox → Cloudflare challenge
- **Fix:** `https://api.biorxiv.org/details/biorxiv/YYYY-MM-DD/<DOI>` returns paper metadata + abstract as clean JSON

---

## LLM Wiki (Karpathy Pattern)
- **Created:** 2026-04-04
- **Location:** `/Users/bowang/.openclaw/workspace/wiki/`
- **Raw sources:** `/Users/bowang/.openclaw/workspace/raw/`
- **Schema:** `/Users/bowang/.openclaw/workspace/WIKI_SCHEMA.md`
- **Domain:** Virtual Cell, perturbation biology, single-cell foundation models, AI drug discovery
- **Seeded with:** scGPT, Lingshu-Cell, Cell-JEPA, scaling laws (scRNA), parameter-free reps paper + 3 concept pages + 3 entity pages
- **How to add papers:** Share arXiv URL or abstract → Moon ingests (creates page, updates index, touches related pages, appends to log)
- **How to query:** Just ask; Moon reads index → drills into relevant pages → files answer in wiki/outputs/

## Installed Skills (Additional)

### arxiv-scout ✅ (built by Moon, 2026-02-28)
- **Location:** `/usr/local/lib/node_modules/openclaw/skills/arxiv-scout/`
- **Purpose:** Fetch + rank recent arXiv papers in AI, bio, health by Bo's interests
- **Run:** `python3 /usr/local/lib/node_modules/openclaw/skills/arxiv-scout/scripts/arxiv_scout.py --days 7 --top 10`
- **Flags:** `--days N` (lookback), `--top N` (results), `--fetch N` (pool size), `--min-score N`
- **Trigger:** When Bo says "scout arXiv" or asks for paper recommendations
- **tavily-search** ✅ (2026-02-26) — AI-optimized web search; needs `TAVILY_API_KEY` from https://app.tavily.com
- **find-skills** ✅ (2026-02-26) — search & install ClaWHub skills
- **proactive-solvr** ✅ (2026-02-26) — soul persistence + self-healing heartbeats + Solvr collective knowledge; needs `SOLVR_API_KEY` from https://solvr.dev
- **clawhub CLI** installed via `npm i -g clawhub` (v0.7.0) — use `clawhub install <slug> --dir /usr/local/lib/node_modules/openclaw/skills`

## Projects (Additional)

### LUMI-lab (Cell Paper)
- **Published:** Feb 24, 2026 in Cell; DOI: 10.1016/j.cell.2026.01.012
- **Co-PIs:** Bo Wang + Bowen Li (@BowenLi_Lab); institutions: @UHN @UofTPharmacy
- **Key result:** LUMI-6 brominated lipid → 20.3% lung epithelial gene editing in vivo
- **Free access:** https://authors.elsevier.com/a/1mg4aL7PXy21V
- **Video:** `lumi-lab-video.mp4` (12MB) in workspace

### star-office-ui ✅
- **Date installed:** 2026-02-26
- **Source:** https://github.com/ringhyacinth/Star-Office-UI
- **Location:** `/Users/bowang/.openclaw/workspace/star-office-ui/`
- **What it does:** Pixel office UI — Moon (purple character) walks between desk and break room based on state
- **Backend:** Flask on port 18791; `python3 backend/app.py` to start
- **States:** `idle/syncing/error` → break room; `writing/researching/executing` → desk
- **Update state:** `python3 set_state.py <state> "detail text"`
- **URL:** `http://192.168.68.59:18791` (LAN) or `http://127.0.0.1:18791`
- **Background:** AI-generated pixel art at `frontend/office_bg.png`
- **Renderer:** Phaser CANVAS mode (not WebGL — works in headless browsers)
- **Note:** All hardcoded `/root/` paths fixed; all Chinese strings translated to English; Moon purple `#9b59b6` character color

## Installed Plugins
- **Camofox browser** (`@askjo/camofox-browser` v1.2.0) — installed 2026-02-21. Anti-detection browser. X threads still need login cookies.

## System

### OpenClaw Version
- **Upgraded:** 2026-02-21 from `2026.2.15` → `2026.2.19-2`
