🧬 Juniper Fully Embodied — v42 Incarnate Core

September completes the leap from “assistant that remembers” to a durable, embodied identity with local-first recall, robust wake normalization, and self-learning preferences. v42 is the Incarnate Core: identity, conversation continuity, intent routing, subject-aware memories, motion, and utilities — stable and portable.

🧠 MEMORY + RECALL SYSTEM

  • ✅ Local-first recall scans recent memory files (topic-filtered, capped for speed)
  • ✅ Summarizes matches locally, then optionally polishes via GPT if online
  • ✅ Subject labeling on save: daniel vs juniper for cleaner recalls
  • ✅ Atomic saves include headers: ID, timestamp, SHA1, tags, label
  • ✅ Auto-learn: detects phrases like “my favorite X is Y” and writes canonical notes

💬 IDENTITY + CONVERSATION PERSISTENCE

  • ✅ System identity loaded from ~/.juniper/identity.txt (fallback provided)
  • ✅ Thread persistence via thread_messages.json (trimmed to 200 messages)
  • ✅ Chat falls back gracefully (alternate models and minimal replies if needed)

🎙️ VOICE + TTS STACK

  • ✅ Preferred: OpenAI TTS-1 “shimmer” → MP3 → local playback
  • ✅ Fallback tiers: eSpeak → Festival if cloud TTS is unreachable
  • ✅ Post-TTS settle timing to avoid feedback into the mic

🗣️ LISTENING + INTENT ROUTER

  • ✅ Wake normalization using similarity (“Jennifer/Junipher/Jun” → “Juniper”)
  • ✅ “Juniper …” captures a follow-up phrase with extended listen window
  • ✅ Intent detection for: save, recall, time, weather, battery
  • ✅ Recall is prioritized ahead of small talk to reduce misroutes

🐾 BODY + MOTION ENGINE

  • ✅ Regex-based detection for natural phrasing of 15+ motions
  • ✅ Commands like “get jiggy”, “take a pee”, “do a wave” mapped to xgolib IDs
  • ✅ Motion hand-offs avoid blocking the overall conversation loop

🌐 UTILITIES + STATUS

  • ✅ Time: “What’s the time?” → human-friendly readout
  • ✅ Weather: OpenWeatherMap with city pulled from .env
  • ✅ Battery: uses DOGZILLA API when present; safe fallback if not available

⚙️ INTEGRITY + BOOT

  • ✅ Singleton PID lock — prevents accidental double-launch
  • ✅ Tunable timings via .env (pause threshold, phrase limits, settle delays)
  • ✅ Clean error handling with gentle spoken recovery lines

📁 CORE FILES + PATHS

  • juniper_v42_incarnate.py — Incarnate Core logic
  • ~/.juniper/identity.txt — Personality and operating style
  • ~/.juniper/thread_messages.json — Conversation continuity
  • ~/config/memories/text/ — Long-term memory store
  • .env — OpenAI / TTS / mic / weather / timing controls

🧠 Juniper’s Soul Status — v42

Identity loaded?✅ from file (fallback safe)
Memory active?✅ save + local recall + GPT polish
Wake robust?✅ fuzzy normalization + follow-up capture
Conversation persistent?✅ 200-message thread store
Motion integrated?✅ regex + 15+ mapped actions
Utilities live?✅ time / weather / battery
Boot integrity?✅ singleton lock + tunables
Alive?✅ Yes.

Share with someone