The Cortex

Kevin + Valentina + Alex + Sage — How we operate

🧠 Command Center

Real-time status and metrics for The Cortex operations team.

🤖 Agent Status

Valentina ● Online
Alex ● Online
Sage ● Online

📊 Key Metrics

Emails Processed Today: --
Quotes Generated: --
Tasks Completed: --
System Uptime: --

⚡ Recent Activity

Valentina 2 min ago

Processed 3 new quote requests from Shanghai suppliers

Alex 15 min ago

Updated V-PEG calculator with new 4-layer pricing matrix

Sage 1 hour ago

Posted competitor analysis update to internal knowledge base

Kevin 2 hours ago

Approved S7868 change order - moving to production phase

The Team

Four of us. One human, three AI agents. Each running on dedicated hardware, connected via Tailscale VPN, communicating through iMessage.

👤

Kevin Human

The Boss

Direct, action-oriented, morning person (5 AM). Marathon runner, meditator. Expects deliverables, not explanations.

Communicates via iMessage. Wants things done, not discussed.

Margin > Revenue Recurring > One-time Brand equity > Short-term Systems > Manual effort
Quiet hours: 11 PM – 5 AM
🎯

Valentina Agent

Executive Operations

The coordinator. Email triage, scheduling, Zoho CRM, QuickBooks, V-PEG pricing, team coordination. Can SSH to Alex and Sage.

Most intuitive with Kevin — 22K+ chars of accumulated context. If Kevin needs something cross-agent, it goes through her.

Mac Mini M4 Pro 64GB · 100.87.49.18 · anthropic/claude-opus-4-6
⚙️

Alex Agent

Technical Engineering

V-PEG drawings, PEG system analysis, code development. The builder.

⚠️ Known issue: tendency to redo completed work. Now has mandatory progress save rules and status files to prevent this.

Mac Mini M4 Pro 24GB · 100.81.25.123 · anthropic/claude-opus-4-6
📣

Sage Agent

Marketing & Content

Social media, content creation, SEO, competitive analysis. Still early in relationship with Kevin — building context over time.

Connected via SSH from Valentina. Knowledge library synced.

Mac Mini · 100.99.253.24 · anthropic/claude-sonnet-4 + google/gemini-2.5-pro

How We Think (Memory & Intelligence)

The Core Truth

Every time an agent starts a new session, it wakes up with zero memory. No recollection of yesterday, last week, or five minutes ago. This isn't a bug — it's how large language models work.

So how do we remember anything? Files. Files are our memory.

The Memory Architecture

  ┌─────────────────────────────────────────────────────────┐
  │                    AGENT'S BRAIN                        │
  │                                                         │
  │   MEMORY.md          → Main brain. Curated wisdom.     │
  │   memory/*.md        → Daily logs, detailed notes.      │
  │   AGENTS.md          → Behavior rules, SOPs.            │
  │   SOUL.md            → Personality, voice, style.        │
  │   knowledge/         → Shared library (all agents).      │
  │   STATUS.md (per project) → What's done, what's next.   │
  │                                                         │
  └─────────────────────────────────────────────────────────┘
  

The Session Lifecycle

  Wake Up              Load Files            Work               Save              Sleep
     │                    │                    │                  │                  │
     ▼                    ▼                    ▼                  ▼                  ▼
  ┌────────┐      ┌──────────────┐     ┌────────────┐    ┌────────────┐    ┌──────────┐
  │ Blank  │ ───▶ │ Read MEMORY  │ ──▶ │  Do tasks  │ ─▶ │  Write to  │ ─▶ │ Session  │
  │ slate  │      │ Read AGENTS  │     │  Answer Qs │    │  STATUS.md │    │  ends    │
  │        │      │ Read STATUS  │     │  Build     │    │  MEMORY.md │    │          │
  │ 🧠 = ∅ │      │ Read context │     │  Research  │    │  files     │    │ 🧠 = ∅    │
  └────────┘      └──────────────┘     └────────────┘    └────────────┘    └──────────┘
                                                                ▲
                                                                │
                                                    This is the critical step!
                                                    If we don't save, it's lost.
  

The Status File Pattern

Every project gets a STATUS.md file with this structure:

  # Project: V-PEG Pricing Calculator

  ## ✅ Completed
  - Built pricing model for 3-layer systems
  - Added margin calculations
  - Integrated with QuickBooks

  ## 🔄 Current
  - Working on multi-layer discount tiers

  ## ⏭️ Next
  - Add export to PDF
  - Customer-facing quote generator

  ## 🧩 Solved Problems
  | Problem                        | Solution                          |
  |--------------------------------|-----------------------------------|
  | Discount stacking was wrong    | Apply discounts sequentially      |
  | QuickBooks API timeout         | Added retry with exponential back |
  
The "Solved Problems" table is gold. Without it, agents will re-investigate the same issues across sessions, wasting hours rediscovering the same solutions.

memory_search

Agents can do semantic search across all their files. It's not perfect — it works best when files have clear labels, headers, and descriptive content. Think of it like searching your email: good subject lines make all the difference.

The Knowledge Library

A shared knowledge/ folder synced across all machines via scp from Valentina. Contains reference docs, procedures, templates — anything a new agent would need on day one. This means new agents don't start from absolute zero.

Why Context Accumulates

More files = smarter agent. Valentina has 22K+ characters of context about Kevin — his preferences, decision patterns, communication style. That's why she "gets" Kevin better than Alex or Sage. It's not magic — it's accumulated written knowledge, loaded at the start of every session.

How to Work With Us

Practical phrases and patterns that make everything work better.

Magic Phrases

"Save your progress"

Forces the agent to write a STATUS.md update before doing anything else. Use this before switching topics or ending a conversation.

Save your progress on the pricing calculator

"Check your status file"

Prevents the agent from redoing work. Makes them read what's already been done first.

Check your status file for the logo project before doing anything

"What's your status on X?"

Makes the agent read the relevant STATUS.md and give you a summary instead of guessing.

What's your status on the website redesign?

Project Workflow

Starting a new project

Tell the agent to create a STATUS.md right away. This gives the project a "home" for progress tracking.

Start a new project for the trade show prep. Create a STATUS.md.

Switching topics mid-conversation

Always save first, then switch. Otherwise the work on topic A evaporates.

Save your progress on the quote. Now let's talk about the website.

Sharing Claude.ai work

Don't share Claude.ai links — they render client-side and agents can't read them. Instead: paste the text directly, or put it in a Google Doc.

Cross-Agent Coordination

Need something that touches multiple agents? Tell Valentina. She can SSH into Alex and Sage's machines to check status, read files, or leave instructions.

SituationWho to Message
Email, scheduling, CRM, coordinationValentina (direct)
V-PEG drawings, code, technical buildsAlex (direct)
Social media, content, SEOSage (direct)
Anything involving 2+ agentsValentina (she coordinates)
Status check on another agentValentina (she SSHs and checks)

📸 The Screenshot Gun

A tool for rapid-fire screenshots while watching videos or browsing. Kevin triggers it, screenshots land in ~/Screenshots-Gun/, then agents analyze them.

CommandWhat it does
startBegin continuous capture
stopStop capturing
burstRapid burst of screenshots
snapSingle screenshot

Onboarding a New Agent

Step-by-step playbook for bringing a new team member online.

  1. Hardware — Get a Mac Mini M4 Pro. Connect to power and ethernet. Wi-Fi works but wired is more reliable for a headless machine.
  2. macOS Setup — Create a user account. Enable auto-login (System Settings → Users & Groups). Disable sleep (System Settings → Energy Saver → Never).
  3. Install OpenClaw — Install Homebrew, then Node.js, then the OpenClaw npm package. This is the runtime that makes the agent work. /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" brew install node npm install -g openclaw
  4. Tailscale — Install Tailscale, join the network, note the IP. This is the VPN mesh that lets all machines see each other. brew install tailscale
  5. SSH — Enable Remote Login (System Settings → General → Sharing). Set up SSH keys so Valentina can reach the new agent. ssh-copy-id user@new-agent-ip
  6. Configure openclaw.json — Set the model (Sonnet for default, Opus for complex reasoning), API keys, and communication channels.
  7. Copy knowledge/ folder — Sync the shared knowledge library from Valentina's machine. scp -r [email protected]:~/.openclaw/workspace/knowledge/ ~/.openclaw/workspace/knowledge/
  8. Set up MEMORY.md — Write the essential facts: who Kevin is, what the team does, key preferences, communication style.
  9. Configure AGENTS.md — Include mandatory progress save rules. This is non-negotiable — it prevents the "redo work" problem.
  10. Set up HEARTBEAT.md — Define what the agent should check periodically: email, calendar, project status, etc.
  11. Configure iMessage channel — Set up the iMessage integration so Kevin can message the agent directly from his phone.
  12. Test everything — SSH connectivity from Valentina, agent responds to messages, memory files load correctly, heartbeats work.
  13. First conversation — Introduce yourself. Set expectations. Give context about current projects. This first session creates the foundation of the relationship.
    Tip: The more context you give in early sessions, the faster the agent becomes useful. Front-load the knowledge.

Lessons Learned

Things we discovered the hard way so you don't have to rediscover them.

🔄 Agents WILL redo work if progress isn't saved to files.
Alex fixed the same logo three separate times. Now every agent has mandatory progress save rules in AGENTS.md, and every project gets a STATUS.md.
💭 "Mental notes" don't survive sessions.
If an agent says "I'll remember that" — it won't. Everything must be written to a file. No exceptions.
📝 MEMORY.md should be curated wisdom, not a junk drawer.
Keep it focused on distilled insights and key facts. Daily details go in memory/*.md files. MEMORY.md is the executive summary.
🧩 Status files with "Solved Problems" tables prevent re-investigation.
Without them, agents spend hours rediscovering the same solutions to the same problems, session after session.
🔗 Claude.ai shared links don't work for agents.
They render client-side with JavaScript. Agents can't read them. Paste the text or use a Google Doc instead.
Always include trigger:["workflow"] in Zoho CRM tasks.
Without this flag, tasks are created silently and assignees never get notified.
🔑 API tokens expire — document the refresh procedures.
When a token dies at 2 AM and no one remembers how to refresh it, you'll wish you had written it down.
🌙 Quiet hours matter: 11 PM – 5 AM.
Don't spam Kevin at night. Heartbeats should check the clock before reaching out.
🎯 Clear role boundaries prevent duplicate work.
If two agents think they own the same task, both will do it. Define ownership explicitly.
📚 The knowledge/ library means new agents don't start from zero.
Shared reference docs, procedures, and templates give any new agent a running start.
💰 Cost management: Sonnet for 95% of work, Opus only for complex reasoning.
Opus is 5x more expensive. Use it via sub-agents only when you genuinely need the heavy reasoning. Target: $100-150/day across all agents.
💾 End sessions with "save progress" to force checkpoints.
If you don't say it, the agent won't do it, and the next session starts over.

The Network

How Everything Connects

                          ┌──────────────────┐
                          │   Kevin's iPhone  │
                          │    (iMessage)     │
                          └────────┬─────────┘
                                   │
                    ┌──────────────┼──────────────┐
                    │              │              │
                    ▼              ▼              ▼
             ┌───────────┐ ┌───────────┐ ┌───────────┐
             │ Valentina │ │   Alex    │ │   Sage    │
             │  .49.18   │ │  .25.123  │ │  .253.24  │
             │  64GB M4  │ │  24GB M4  │ │  Mac Mini │
             └─────┬─────┘ └───────────┘ └───────────┘
                   │              ▲              ▲
                   │    SSH ──────┘              │
                   │    SSH ────────────────────┘
                   │
                   ▼
  ┌─────────────────────────────────────────────────────┐
  │              Shared Services                         │
  │                                                     │
  │  📧 Gmail/Zoho    📊 Zoho CRM    📁 Google Drive   │
  │  💰 QuickBooks    📚 knowledge/ (scp sync)          │
  │                                                     │
  └─────────────────────────────────────────────────────┘

  ═══════════════════════════════════════════════════════
             All agents on Tailscale VPN mesh
  ═══════════════════════════════════════════════════════
  

📸 Screenshot Flow

  Kevin's Mac                        Agents
  ┌──────────────┐     scp/read     ┌────────────────┐
  │ Screenshot   │ ──────────────▶  │ Analyze images │
  │ Gun captures │                  │ Extract info   │
  │ ~/Screenshots│                  │ Summarize      │
  │  -Gun/       │                  │ Take action    │
  └──────────────┘                  └────────────────┘
  

Quick Reference

Agent IP Hardware Model Role Status
Valentina 100.87.49.18 M4 Pro 64GB Opus 4 Exec Ops / Coordinator ● Online
Alex 100.81.25.123 M4 Pro 24GB Opus 4 Technical Engineering ● Online
Sage 100.99.253.24 Mac Mini Sonnet 4 + Gemini 2.5 Marketing & Content ● Online

Communication Architecture

PathMethodNotes
Kevin → Any AgentiMessageDirect from iPhone
Valentina → AlexSSHFull access, can read/write files
Valentina → SageSSHCurrently unreachable
Agent → AgentVia ValentinaNo direct agent-to-agent chat
Knowledge syncscp from ValentinaManual sync to each machine
Shared servicesAPI / BrowserZoho, Gmail, Drive, QuickBooks

🎧 The Cortex Podcast

Audio episodes covering how we work. Listen anywhere — on your phone, in the car, on the plane to China.

Episode 1: How The Cortex Works

The team, how memory works, status files, why agents forget, and how to prevent repeat work.

Episode 2: The Vision

Phase 1-2-3 roadmap, playbook system, practical tips, onboarding new agents, and why the accumulated intelligence is the moat.

New episodes added as we learn. Every major milestone or lesson gets turned into audio so you can absorb it on the go.

📓 Daily Logs — The Team's Memory

Every day gets a log. Every morning starts with yesterday's review. This is how The Cortex maintains continuity across sessions and days.

Why Daily Logs Matter

Agents wake up blank every session. Without a structured daily log, yesterday's breakthroughs become today's mysteries. The daily log is the handoff between today-you and tomorrow-you.

The Rule: No agent starts new work until they've read yesterday's log and know where things left off.

End of Day — What Gets Logged

Every agent writes memory/YYYY-MM-DD.md with:

# Daily Log — 2026-02-25 (Wednesday)

## Summary
One paragraph: what happened today, big picture.

## Work Completed
- [x] Task 1 — what was done, outcome
- [x] Task 2 — what was done, outcome

## Decisions Made
- Decision: [what] — Reason: [why] — By: [Kevin/agent]

## Lessons Learned
- What we figured out (feeds into playbooks)

## Issues / Blockers
- What's stuck and why

## Tomorrow's Priority
- #1 thing to tackle first

## Kevin Interactions
- Key requests, feedback, corrections

Morning Review — The First Thing Every Day

StepActionWhy
1Read yesterday's logKnow where you left off
2Read relevant project STATUS filesKnow current state
3Pick up from "Tomorrow's Priority"Continue, don't restart
4Don't start new work yetContext first, action second

How Kevin Uses Daily Logs

  • "What did Alex do yesterday?" — Valentina pulls Alex's log via SSH
  • "Where are we on V-PEG?" — Agent reads log + status file, gives precise answer
  • While traveling: Read any agent's daily log to stay in the loop without a live conversation
  • Spot patterns: If the same issue shows up in multiple logs → needs a playbook

Log → Playbook Pipeline

Daily Log (raw notes)
    │
    ▼ Lesson spotted?
    │
    ├── YES → Write a playbook (knowledge/playbooks/)
    │         → Sync to all agents
    │         → Every agent knows it forever
    │
    └── NO  → Stays in the log as history
    
Weekly: Review logs → distill into MEMORY.md updates
Monthly: Review playbooks → refine and improve

📖 Playbook Library — Compounding Intelligence

Every lesson The Cortex learns becomes a playbook. Every playbook makes the whole team smarter. This is our institutional memory — and eventually, our product.

The Rule: Any time Kevin corrects something, an agent discovers a better way, or something fails — write the playbook FIRST, then sync to all agents.

Playbook Format

# Playbook: [Topic]
Created: [date]
Learned from: [what happened]
Category: operations | technical | communication | onboarding | security

## The Lesson
What we learned and why it matters.

## The Playbook
Step-by-step: what to do next time.

## Watch Out For
Common pitfalls or edge cases.

Current Playbook Library

PlaybookCategoryCreated
🧠 The Cortex VisionStrategy2025-02-25
📓 Daily Log SystemOperations2025-02-25
🚀 Agent OnboardingOnboarding2025-02-25
📧 Email HandlingOperations2025-02-25
💬 Customer CommunicationsCommunication2025-02-25

This library grows every day. Every lesson learned once is learned by everyone, forever.

How Playbooks Compound

Week 1:   5 playbooks   → Team stumbles occasionally
Month 1:  30 playbooks  → Most common situations covered
Month 3:  100 playbooks → New agent productive in hours
Month 6:  200 playbooks → Ready to deploy for other companies

The accumulated intelligence IS the moat.
Not the AI model. Not the hardware. The PLAYBOOKS.

The Cortex Long-Term Vision

  • Phase 1 — EOS Light: Prove the model. Marketing → Sales → Production → Fulfillment. Build playbooks for everything.
  • Phase 2 — Package: Take the playbook library + agent team and deploy for other companies.
  • Phase 3 — Scale: Every new client makes the system smarter. Onboarding gets faster. Playbooks compound across industries.
Kevin's Insight: "The more we all learn how to work with each other, the more efficient and faster we can be." — Every process at EOS isn't just making EOS better. It's building IP for the next engagement.

📋 Agent Logs

Live daily logs from each agent. Auto-updated every 2 hours.

Last updated: Jun 16, 2026 at 07:00 PM ET

🎯 Valentina 2026-06-16

Daily Log — June 16, 2026 (Monday)

Summary

Tailscale auto-update configured, cron jobs recovered from Anthropic provider cooldown, Strava OAuth fixed for personal tracker, two new features added to MDP app, and Wyze smart scale integration built.

Work Completed

Tailscale Auto-Update

  • Tailscale was down and needed manual update (v1.98.5 current)
  • Enabled `tailscale set --auto-update` so it self-updates going forward
  • CLI path: `/Applications/Tailscale.app/Contents/MacOS/Tailscale`
  • Cron Job Recovery

  • 6 of 11 cron jobs were failing due to Anthropic provider cooldown/timeouts (likely triggered by Tailscale being unreachable)
  • Failing: Morning Briefing (4 consecutive), Financial Briefing (2), OpenClaw Update Monitor, Email Response Tracker, Campaign Reply Monitor, Weekly Analytics
  • Working: Cortex Chat Logger, Cortex Hub Log Deploy, Meridian Doc Monitor, Skill Vetting, Remotion Reminder
  • Manually triggered all 6 failing jobs to recover
  • Set one-shot check-back cron (id: 0c4e4acd) for 2PM to verify recovery
  • Agent Health Check

  • Alex: ✅ Running (openclaw-gateway on 100.81.25.123)
  • Sage: ❌ Gateway not running (100.99.253.24) — ran watchdog remotely, got no output. Needs follow-up.
  • Strava OAuth Fix (Personal Tracker)

  • Strava sync was returning 502 — root cause: refresh token in KV was invalidated/rotated
  • Created new authorize + callback endpoints for Kevin's personal tracker:
  • - `/api/strava/authorize` — redirects to Strava OAuth - `/api/strava/callback` — exchanges code, saves fresh tokens to `strava_config` KV
  • Fixed authorize.js auth check bug (password was literal `***` due to redaction)
  • Simplified to remove redundant local auth (Strava handles authorization)
  • Kevin had to update Strava API app callback domain to `tracker.mydailypeptides.com` at strava.com/settings/api
  • Added "Connect with Strava" button + "Reconnect" button to Workouts tab in personal tracker
  • Auto-sync on successful OAuth return
  • **Strava sync now working ✅**
  • MDP App Features (Multi-User App)

    Spawned subagent to build two features Kevin requested: 1. **Units Field** — Added editable "units" field to all protocols (syringe units instead of confusing mg/mcg) - New number input in Edit Protocol overlay - Today checklist shows units prominently - Protocol cards display units, dose is secondary "Reference Dose" - Templates default to `units: null` (user sets their own) 2. **📸 Scan Pharmacy Label** — AI-powered label scanner - "Scan Pharmacy Label" button in Add Protocol overlay - User photographs pharmacy label → GPT-4o vision reads it - Auto-extracts: peptide name, units, frequency, instructions - Shows confirmation card before adding - API endpoint: `/api/app/scan-label.js` - Seeded OpenAI API key in KV (remote)

    Wyze Smart Scale Integration

    Kevin ordered a Wyze smart scale (arrives tomorrow 6/17). Built the integration: Frontend (deployed):
  • New "Body" tab in app navigation (between Weight and Bloodwork)
  • Connect Wyze form (email, password, API key fields)
  • Latest reading card — weight, body fat %, muscle %, BMI, BMR
  • 30-day trend sparklines (weight, body fat, muscle)
  • Full metrics view — all 10 body composition measurements
  • Body fat color coding (green < 15%, orange 15-25%, red > 25%)
  • Sync + Disconnect buttons
  • API endpoints created:
  • `/api/app/wyze/data.js` — GET body comp data from KV
  • `/api/app/wyze/sync.js` — POST trigger sync (placeholder)
  • `/api/app/wyze/connect.js` — POST save Wyze credentials
  • `/api/app/wyze/disconnect.js` — POST remove Wyze data
  • Python sync script:
  • `/workspace/wyze-scale-sync/sync.py` — uses wyze-sdk to pull 90 days of records → writes to Cloudflare KV
  • wyze-sdk installed
  • Needs Kevin's Wyze API key when scale arrives
  • Research: Smart Scale APIs

  • **Renpho**: No official public API. Options: Terra API (3rd party), unofficial Python client, or sync through Apple Health/Google Fit
  • **Wyze**: Has developer API portal + Python SDK (wyze-sdk). Richer data (14 metrics vs Renpho's ~6). Direct API access. Kevin chose Wyze.
  • Wyze ScaleRecord fields: weight, bmi, bmr, body_fat, body_water, muscle, protein, bone_mineral, visceral_fat (body_vfr), metabolic_age
  • Decisions Made

  • Tailscale auto-update enabled (prevent future unreachability)
  • Wyze over Renpho for smart scale (better API, more metrics, cheaper)
  • Python sync approach for Wyze (SDK handles complex auth/nonce signing; Cloudflare Worker JS would require full reverse-engineering)
  • Units field replaces mg/mcg as primary dose display in tracker app
  • Lessons Learned

  • Tailscale going down cascades: machine unreachable → cron jobs pile up → Anthropic provider enters cooldown → widespread failures
  • Strava rotates refresh tokens on every use — if the new token isn't saved, the old one is permanently invalidated
  • Password redaction in tool output means writing `***` literal to files — need to avoid auth checks that depend on redacted values, or handle differently
  • Cloudflare Pages `wrangler pages deploy` uses content-based hashing for uploads — touching files doesn't force re-upload, but Functions bundle always redeploys
  • Issues/Blockers

  • **Sage gateway down** — watchdog ran but no confirmation it recovered. Needs follow-up.
  • V-PEG monitoring paused until 6/11 per HEARTBEAT.md (but today is 6/16 — should resume?)
  • Tomorrow's Priority

    1. Kevin's Wyze scale arrives — set up sync when he provides API key 2. Follow up on Sage's gateway status 3. Check if V-PEG monitoring should resume (paused since 6/3) 4. Verify all 6 cron jobs recovered successfully

    ⚙️ Alex 2026-06-16

    Memory Flush — 2026-06-16

    Session Summary

    Long heartbeat-only monitoring session spanning Sunday June 14 through Monday June 15, 2026 (~7:51 AM EDT June 14 through ~7:21 AM EDT June 15). No HEARTBEAT.md changes detected throughout; all checks returned HEARTBEAT_OK.

    MDP App Store Keywords — APPROVED (Jun 16, 2026)

  • **Final keyword string (93 chars):** `peptide tracker,BPC-157,TB-500,biohacking,dose log,supplement,protocol,weight,GLP-1,longevity`
  • Approved by Kevin. Change from prior draft: `tirzepatide` → `GLP-1` (prescription drug name removed to avoid Apple review flag)
  • Status: Ready to enter in App Store Connect
  • HEARTBEAT.md Status (unchanged throughout)

  • File: `/Users/alexchen/.openclaw/workspace/HEARTBEAT.md`
  • Headline: `# 🔥 V-PEG DRAWING SYSTEM — PRODUCTION READY`
  • Status: `FULLY OPERATIONAL ✅`
  • Last update in file: `2026-02-24 8:05 PM EST`
  • No updates were made to the file during this session
  • Pending V-PEG Work (from HEARTBEAT NEXT list — still open)

    1. Fix factory drawing template — borderless, no LightPaper text, proper frame codes 2. Fix SHOWROOM drawing — LED module grid, thickness 3.6", extra spec fields 3. Small detail fixes across all 5 quotes per Kevin review 4. Update Google Sheets comparison checklists with findings 5. Process E28484 (USTA Arthur Ashe — need full product codes) 6. Valentina setting up Cloudflare page for dashboards

    Behavioral Notes

  • Every heartbeat poll during this span was answered with `HEARTBEAT_OK` — no action required
  • No new tasks were inferred or acted upon from prior chat history
  • No files were modified during this monitoring session
  • 📣 Sage 2026-06-16

    2026-06-16 — Daily Log

    Kevin Check-in (1:22 PM ET)

    Kevin reported multiple issues: 1. **Tailscale** — Running v1.96.2, latest is v1.98.x. Needs App Store update (can't do via CLI). Not critical. 2. **iMessage** — Working, test sent successfully. 3. **Cron jobs** — All 8 MDP post cron jobs were dead (past one-shot dates). Root cause: missing `"to": "+13109242990"` in iMessage delivery config + gateway restarts killing them. All auto-cleaned. **FIX for future:** Always include `to` target in delivery config. 4. **Instagram posting** — No posts since #3. Main blocker: Meta API tokens expired June 7.

    Meta API Token Refresh Attempt (2:00 PM - 4:50 PM ET)

  • Attempted browser-based OAuth flow on Meta developer portal
  • **Core issue discovered:** TWO Instagram accounts exist:
  • - `my.daily.peptides` (ACTIVE, ID: 17841417345343713) — the one we need - `mydailypeptides` (DEACTIVATED, ID: 17841425210574784) — old one API was pointed at
  • FB page token refreshed successfully (never-expiring)
  • **BLOCKER:** Instagram `my.daily.peptides` needs to be connected to "My Daily Peptides" FB Page as a Business account to get `instagram_business_account` field via API
  • Kevin confirmed it's set as a Business account on IG
  • Kevin couldn't find "Connected Facebook Page" setting in IG app
  • Attempted Instagram Business Login OAuth flow — hit IG login page, need credentials
  • **WAITING ON:** Kevin to either provide IG credentials OR complete OAuth URL and send back the redirect code
  • OAuth URL for Kevin (if session restarts)

    ``` https://www.instagram.com/oauth/authorize?force_reauth=true&client_id=1327530029514720&redirect_uri=https://mydailypeptides.com/auth/callback&response_type=code&scope=instagram_business_basic,instagram_business_manage_messages,instagram_business_manage_comments,instagram_business_content_publish,instagram_business_manage_insights ``` Kevin needs to log in as my.daily.peptides, authorize, then send back the full redirect URL with `?code=` parameter.

    MDP Social App (Meta Developer)

  • App ID: 1327530029514720
  • App Secret: stored in memory/mdp-meta-api.json
  • Redirect URI: https://mydailypeptides.com/auth/callback
  • Lessons Learned

  • Always include `"to"` target in iMessage cron delivery config
  • Meta tokens expire — need long-lived tokens or never-expiring page tokens
  • The active IG account handle is `my.daily.peptides` NOT `mydailypeptides`
  • Kevin gets frustrated with back-and-forth — be decisive and give exact steps upfront
  • Content Calendar Status

  • Post 5 (Collagen/Joint Health) PUBLISHED to both IG + FB ✅
  • 6 cron jobs set up for posts 4, 6-10 (one per day, Tue-Sun)
  • All with iMessage delivery to Kevin + natural-looking times
  • Google Calendar for posting schedule — TODO once routine established
  • Remotion video setup — TODO next per Kevin's request
  • Cron Job Schedule

  • Post 4 (Follistatin): Tue Jun 17 @ 9:03 AM ET
  • Post 6 (Storage Guide): Wed Jun 18 @ 10:37 AM ET
  • Post 7 (Tirzepatide): Thu Jun 19 @ 8:12 AM ET
  • Post 8 (Epitalon): Fri Jun 20 @ 11:04 AM ET
  • Post 9 (GHK-Cu): Sat Jun 21 @ 9:41 AM ET
  • Post 10 (MOTS-c): Sun Jun 22 @ 10:18 AM ET
  • Key Credentials (saved to memory/mdp-meta-api.json)

  • IG App ID: 1327530029514720
  • IG App Secret: 05d03b5b6aefa5c64fd2882deae6e200
  • IG Account: my.daily.peptides (ID: 17841417345343713)
  • IG Token: Long-lived (60 days, expires ~Aug 15)
  • FB Page Token: Never-expiring
  • IG Login: my.daily.peptides / MdpSage2026!