diff --git a/AGENTS.md b/AGENTS.md index f297eb4..657fb2d 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -12,8 +12,8 @@ Cerebro is a cloud-based personal knowledge store. It pairs a Supabase PostgreSQ ## Architecture -``` -┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ +```text +┌──────────────┐┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ Teams Bot │ │ Discord Bot │ │ Alexa Skill │ │iMessage (BB) │ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ │ │ │ │ @@ -57,7 +57,7 @@ Cerebro is a cloud-based personal knowledge store. It pairs a Supabase PostgreSQ ## Repository Structure -``` +```text cerebro/ ├── docs/ # Setup guides (01 through 10) ├── extensions/ # Feature extensions (future) @@ -82,6 +82,7 @@ cerebro/ ## Guard Rails **DO:** + - Add new columns to the `thoughts` table when needed - Use Supabase Secrets for all credentials (`npx supabase secrets set KEY=VALUE`) - Deploy all server functions as Supabase Edge Functions @@ -90,6 +91,7 @@ cerebro/ - Copy integration source to `supabase/functions//` before deploying (containers don't follow symlinks) **DO NOT:** + - Alter, rename, or drop existing columns on the `thoughts` table — every integration depends on the current schema - Commit secrets, API keys, or passwords to source - Use `DROP TABLE`, `DROP DATABASE`, `TRUNCATE`, or unqualified `DELETE FROM` in SQL files @@ -113,6 +115,7 @@ echo "SELECT * FROM thoughts LIMIT 5" | python3 scripts/dbsql.py ``` Credentials auto-load from `.env` in the project root. Connection details: + - **Host:** aws-0-us-west-2.pooler.supabase.com (session pooler) - **Port:** 5432 - **User:** postgres.livdhnxdbnhxxxlgcoge @@ -177,6 +180,7 @@ npx supabase secrets set KEY=VALUE ### DNS Resolution Workaround When calling the Supabase REST API from environments with DNS issues, use: + ```bash curl --resolve livdhnxdbnhxxxlgcoge.supabase.co:443:172.64.149.246 \ "https://livdhnxdbnhxxxlgcoge.supabase.co/rest/v1/..." @@ -185,20 +189,24 @@ curl --resolve livdhnxdbnhxxxlgcoge.supabase.co:443:172.64.149.246 \ ## Capture Source Details ### Teams (cerebro-teams) + - Azure Bot Framework, single-tenant - Entra ID app: `659c247e-0da5-48de-a158-c73c36929aa5` - Tenant: `1e1cce84-0637-4693-99d9-27ff18dd65c8` (sudbringlab) ### Discord (cerebro-discord) + - Application ID: `1482865415733514351` - Uses slash commands (`/capture`, `/search`, `/stats`, etc.) ### Alexa (cerebro-alexa) + - Custom skill, HTTPS endpoint - Invocation: "my brain" - 6 intents: CaptureThought, Search, Stats, BrowseRecent, CompleteTask, ReopenTask ### iMessage (cerebro-imessage) + - BlueBubbles Server on Mac → Cloudflare named tunnel → Edge Function - Text-based commands (no slash commands): capture, `search `, `stats`, `done `, `reopen `, `delete `, `help` - Commands accept both colon and space delimiters: `done passport` or `done:passport` @@ -209,30 +217,38 @@ curl --resolve livdhnxdbnhxxxlgcoge.supabase.co:443:172.64.149.246 \ - Self-chat creates TWO chat GUIDs (phone + email) — both must be in `BLUEBUBBLES_ALLOWED_CHATS` ### Daily Digest (cerebro-digest) + - Generates daily/weekly summaries via AI - Delivers via email (Resend), Teams, Discord, and iMessage -- Email recipients: allen@sudbring.com, allensu@microsoft.com +- Email recipients: , - Scheduled via pg_cron in Supabase ## Known Issues & Workarounds ### psql / libpq Cannot Connect + All libpq-based tools (psql, psycopg2, psycopg3) fail with "server closed the connection unexpectedly" against Supabase's Supavisor pooler. **Use `scripts/dbsql.py` instead.** ### BlueBubbles macOS Automation Permission (-1743) + On macOS Sequoia 15, BlueBubbles cannot send AppleEvents to Messages (Electron TCC issue). Fix: manually insert into user-level TCC database from Terminal.app with Full Disk Access: + ```bash sqlite3 ~/Library/Application\ Support/com.apple.TCC/TCC.db "INSERT OR REPLACE INTO access (...) VALUES ('kTCCServiceAppleEvents', 'com.BlueBubbles.BlueBubbles-Server', 0, 2, 4, 1, , NULL, 0, 'com.apple.MobileSMS', NULL, 0, ...);" ``` + Full script at `~/Desktop/fix-bluebubbles-tcc.sh` on mac-server. Must quit and reopen BlueBubbles after. ### BlueBubbles Webhook Replay + BlueBubbles replays old messages as new webhooks on restart. The Edge Function guards against this with a 5-minute message age check and source_message_id deduplication. ### Supabase Edge Function Route + Must use `app.post("*")` not `app.post("/")` — Supabase strips paths during routing. ### Supabase Deploy Directory + Files in `supabase/functions//` must be actual copies, not symlinks. The Supabase container doesn't follow symlinks. ## Environment Variables (Supabase Secrets) diff --git a/CLAUDE.md b/CLAUDE.md index 7098d47..7d94dc8 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -14,7 +14,7 @@ Inspired by the [Open Brain](https://github.com/NateBJones/OB1) project by Nate ## Repo Structure -``` +```text docs/ — Setup guides and documentation extensions/ — Feature extensions that build on the core system integrations/ — MCP server, capture sources, webhook receivers diff --git a/README.md b/README.md index 628ee99..53c884f 100644 --- a/README.md +++ b/README.md @@ -25,6 +25,7 @@ Inspired by the [Open Brain](https://github.com/NateBJones/OB1) project by Nate **[→ Complete Setup Guide](docs/SETUP.md)** — Start here. Walks you through everything from core infrastructure to optional features, with verification tests at every step. The setup guide covers: + 1. **Core Infrastructure** — Supabase + OpenRouter + MCP server (~20 min) 2. **Capture Sources** — Discord, Teams, Alexa, and/or iMessage 3. **Calendar Reminders** — Auto-create O365/Google events from dates in thoughts @@ -111,7 +112,7 @@ by describing them — Cerebro uses AI to match the right one. ## Project Structure -``` +```text docs/ — Setup guides and documentation extensions/ — Feature extensions (coming soon) integrations/ — MCP server, Teams capture, Discord capture, Alexa voice, iMessage capture, daily digest diff --git a/docs/02-teams-capture-setup.md b/docs/02-teams-capture-setup.md index ae278f9..20c1d56 100644 --- a/docs/02-teams-capture-setup.md +++ b/docs/02-teams-capture-setup.md @@ -118,9 +118,11 @@ https://YOUR_PROJECT_REF.supabase.co/functions/v1/cerebro-teams 1. Go back to your Azure Bot resource in the portal 2. Click **Configuration** in the left sidebar 3. Set **Messaging endpoint** to: - ``` + + ```text https://YOUR_PROJECT_REF.supabase.co/functions/v1/cerebro-teams ``` + 4. Click **Apply** --- @@ -172,17 +174,21 @@ zip cerebro-teams-app.zip manifest.json color.png outline.png 1. In Teams, find **Cerebro** in your apps or chat list 2. Start a 1:1 chat with the bot 3. Type a thought: - ``` + + ```text Sarah mentioned she's thinking about leaving her job to start a consulting business ``` + 4. You should see a confirmation reply with the extracted metadata ### Channel @mention 1. In any Team channel where the app is installed, type: - ``` + + ```text @Cerebro Just had a great architecture review meeting with the platform team ``` + 2. The bot captures the thought (stripping the @mention) and replies in the thread ### Verify in Supabase @@ -193,28 +199,28 @@ Open Supabase Dashboard → Table Editor → `thoughts`. You should see new rows ## Troubleshooting -**Bot doesn't respond** +### Bot doesn't respond - Check the messaging endpoint in Azure Bot Configuration — must be the exact Edge Function URL - Verify secrets are set: `supabase secrets list` should show `TEAMS_BOT_APP_ID`, `TEAMS_BOT_APP_SECRET`, `OPENROUTER_API_KEY` - Check Edge Function logs in Supabase Dashboard → Edge Functions → `cerebro-teams` → Logs -**Getting 401 errors in logs** +### Getting 401 errors in logs - The App ID or Secret may be wrong. Double-check they match your Entra ID app registration - Ensure the app registration is set to **Multitenant** (required for Bot Framework) -**Sideloading not available** +### Sideloading not available - Admin must enable "Upload custom apps" in Teams Admin Center (Step 5) - It can take up to 24 hours to propagate after enabling -**Bot appears but no reply** +### Bot appears but no reply - Check that the Edge Function deployed successfully: visit `https://YOUR_PROJECT_REF.supabase.co/functions/v1/cerebro-teams` in a browser — should return `{"status":"ok","service":"cerebro-teams"}` - Check Supabase Edge Function logs for errors -**Slow first response** +### Slow first response - Cold start on Edge Functions takes a few seconds. Subsequent messages are faster. diff --git a/docs/03-discord-capture-setup.md b/docs/03-discord-capture-setup.md index 6d8ae23..23718c0 100644 --- a/docs/03-discord-capture-setup.md +++ b/docs/03-discord-capture-setup.md @@ -88,9 +88,11 @@ https://YOUR_PROJECT_REF.supabase.co/functions/v1/cerebro-discord 1. Go back to the [Discord Developer Portal](https://discord.com/developers/applications) → your app 2. On **General Information**, find **Interactions Endpoint URL** 3. Paste your Edge Function URL: - ``` + + ```text https://YOUR_PROJECT_REF.supabase.co/functions/v1/cerebro-discord ``` + 4. Click **Save Changes** Discord will send a verification PING to your endpoint. If it saves successfully, your endpoint is working. @@ -153,7 +155,7 @@ curl -X POST \ Build an invite URL using your Application ID: -``` +```text https://discord.com/api/oauth2/authorize?client_id=YOUR_APPLICATION_ID&scope=applications.commands%20bot ``` @@ -169,7 +171,7 @@ https://discord.com/api/oauth2/authorize?client_id=YOUR_APPLICATION_ID&scope=app In any channel in your server (or a DM with the bot), type: -``` +```text /capture thought:Sarah mentioned she's thinking about leaving her job to start a consulting business ``` @@ -177,7 +179,7 @@ You should see a "thinking..." indicator followed by a confirmation with extract ### Search Your Thoughts -``` +```text /search query:career changes ``` @@ -191,22 +193,22 @@ Open Supabase Dashboard → Table Editor → `thoughts`. New rows should have `m ## Troubleshooting -**Slash commands don't appear** +### Slash commands don't appear - Global commands take up to 1 hour to propagate. Use guild-specific registration for instant testing. - Make sure the bot is invited to your server with the `applications.commands` scope. -**Interactions endpoint verification fails** +### Interactions endpoint verification fails - Check that `DISCORD_PUBLIC_KEY` is set correctly (it's the hex string from General Information, not the bot token). - Verify the Edge Function is deployed: visit the URL in a browser — should return `{"status":"ok","service":"cerebro-discord"}`. -**Bot responds with error** +### Bot responds with error - Check Supabase Edge Function logs for detailed error messages. - Verify `OPENROUTER_API_KEY` is set and has credits. -**"Application did not respond" error** +### "Application did not respond" error - The Edge Function must respond within 3 seconds. The deferred response pattern (type 5) handles this — if you see this error, the function may not be receiving requests at all. Check the interactions endpoint URL. diff --git a/docs/04-alexa-setup.md b/docs/04-alexa-setup.md index ccd7fb1..3ec0b57 100644 --- a/docs/04-alexa-setup.md +++ b/docs/04-alexa-setup.md @@ -6,7 +6,7 @@ Unlike the previous cerebro-oss design (which required AWS Lambda + 4 Zapier zap ## Architecture -``` +```text ┌─────────────┐ ┌──────────────────────────┐ ┌──────────────┐ │ Alexa │────▶│ Supabase Edge Function │────▶│ Supabase DB │ │ Echo / App │◀────│ (alexa-capture) │◀────│ + pgvector │ @@ -100,7 +100,7 @@ supabase functions deploy cerebro-alexa --no-verify-jwt After deploying, your function URL will be: -``` +```text https://.supabase.co/functions/v1/cerebro-alexa ``` @@ -111,9 +111,11 @@ https://.supabase.co/functions/v1/cerebro-alexa 1. In the Alexa Developer Console, go to **Build** → **Endpoint** 2. Select **HTTPS** 3. In the **Default Region** field, paste your Edge Function URL: - ``` + + ```text https://.supabase.co/functions/v1/cerebro-alexa ``` + 4. For the SSL certificate type, select: **My development endpoint has a certificate from a trusted certificate authority** (Supabase uses Let's Encrypt / trusted CA certificates) 5. Click **Save Endpoints** @@ -143,6 +145,7 @@ https://.supabase.co/functions/v1/cerebro-alexa Since the skill is in **Development** mode, it's automatically available on any Alexa device registered to the same Amazon account as your developer account. Just speak the commands above — no sideloading or publishing required. Works on: + - **Echo devices** (all models) - **Alexa app** (iOS / Android) - **Fire tablets** @@ -163,6 +166,7 @@ supabase secrets set ALEXA_SKILL_ID=amzn1.ask.skill.your-id-here ``` The Edge Function validates: + 1. **Signature** — X.509 certificate chain from Amazon, RSA signature over request body 2. **Timestamp** — request must be within 150 seconds 3. **Skill ID** — must match your `ALEXA_SKILL_ID` (if set) diff --git a/docs/05-reminders-setup.md b/docs/05-reminders-setup.md index 63a3555..9d7a5c3 100644 --- a/docs/05-reminders-setup.md +++ b/docs/05-reminders-setup.md @@ -6,7 +6,7 @@ You can configure one or both calendar backends. If neither is configured, remin ## How It Works -``` +```text "Set a reminder for next Wednesday at 5AM to review the deployment" ↓ AI extracts: has_reminder=true, reminder_title="Review the deployment" diff --git a/docs/06-daily-digest-setup.md b/docs/06-daily-digest-setup.md index 7b111de..ccaddcc 100644 --- a/docs/06-daily-digest-setup.md +++ b/docs/06-daily-digest-setup.md @@ -4,7 +4,7 @@ Cerebro's digest system automatically summarizes your captured thoughts and deli ## How It Works -``` +```text pg_cron (daily at 6 AM Central) → pg_net HTTP POST → cerebro-digest Edge Function @@ -24,6 +24,7 @@ Channels are **auto-registered** — the first time you capture a thought from T ## What's in Each Digest ### Daily Digest (every morning) + - Key themes and decisions - Action items (open and completed) - People mentioned and follow-ups needed @@ -32,6 +33,7 @@ Channels are **auto-registered** — the first time you capture a thought from T - **Target: 200-400 words** ### Weekly Digest (Sundays) + - Recurring themes and emerging patterns - Progress on goals and projects (completed vs open) - People and relationship touchpoints across the week @@ -298,38 +300,38 @@ supabase functions logs cerebro-digest --project-ref YOUR_REF ### Common issues -**No channels registered** +#### No channels registered - Capture at least one thought from Teams or Discord first - Check that the capture functions have the `digest_channels` table available -**Digest not being delivered** +#### Digest not being delivered - Verify cron jobs exist: `select * from cron.job;` - Check `pg_net` extension is enabled - Verify the Edge Function URL in the cron SQL matches your project - Check the function logs for errors -**Teams delivery fails** +#### Teams delivery fails - Verify `TEAMS_BOT_APP_ID` and `TEAMS_BOT_APP_SECRET` are set - The bot must have sent at least one message to the conversation before it can proactively message - Check that the `teams_service_url` in `digest_channels` is still valid -**Discord delivery fails** +#### Discord delivery fails - Verify `DISCORD_BOT_TOKEN` is set - The bot must be a member of the server and have `Send Messages` permission in the target channel - Discord messages have a 2000 character limit — the digest function auto-splits long messages -**Email delivery fails** +#### Email delivery fails - Verify `RESEND_API_KEY` and `DIGEST_EMAIL_TO` are set - If using the default `onboarding@resend.dev` from address, it can only send to the Resend account owner's email - For sending to any address, add and verify a custom domain in Resend - Check Edge Function logs for the specific Resend API error message -**Cron not firing** +#### Cron not firing - Ensure both `pg_cron` and `pg_net` extensions are enabled - The cron time is in UTC — verify your offset is correct diff --git a/docs/09-ai-guided-setup.md b/docs/09-ai-guided-setup.md index 5739682..bfdbae7 100644 --- a/docs/09-ai-guided-setup.md +++ b/docs/09-ai-guided-setup.md @@ -69,6 +69,7 @@ Your AI can tell you exactly what to click and where — it just can't click for **You do:** Create accounts, copy credentials from dashboards, paste the MCP URL into your AI client settings. **Verify before moving on:** + - Ask your AI client: "Capture this thought: Testing Cerebro setup" - Then: "Search for testing" - Both should work. If not, check Edge Function logs. @@ -122,6 +123,7 @@ Your AI can tell you exactly what to click and where — it just can't click for **You do:** Create the Alexa skill, configure endpoints, test on your device. **Verify before moving on:** + - Send a message in your capture source → bot replies with ✅ confirmation - Check Supabase Table Editor → thought row exists with content, embedding, and metadata @@ -205,6 +207,7 @@ When something breaks, your AI's instinct is to rewrite code. Resist this. The E - A step that got skipped **Debug workflow:** + 1. Check Edge Function logs: Supabase Dashboard → Edge Functions → your function → Logs 2. Paste the error to your AI 3. Let it diagnose — but don't let it rewrite the server code unless the logs point to an actual code bug @@ -216,6 +219,7 @@ The [getting started guide](01-getting-started.md) has a credential tracker temp ### Run schema migrations in order The SQL files in `schemas/core/` must run in order: + 1. `schema.sql` — Core thoughts table 2. `002-digest-channels.sql` — Digest channel tracking 3. `003-digest-cron.sql` — Scheduled digest jobs diff --git a/docs/SETUP.md b/docs/SETUP.md index 5081e2a..5bd2c94 100644 --- a/docs/SETUP.md +++ b/docs/SETUP.md @@ -38,8 +38,8 @@ Review the decision tree below, decide which features you want, and make sure yo | **Google Calendar reminders** | Google Cloud account (free tier) + personal or Workspace Gmail for the target calendar | | **Daily/Weekly Digest** | At least one capture source (Discord or Teams) already set up and working with thoughts captured | | **Digest email delivery** | [Resend account](https://resend.com) (free — 100 emails/day) | -| **File Attachments** | Supabase Storage bucket | Free (1 GB included) | -| **Task Management** | No additional accounts needed | Free | +| **File Attachments** | Supabase Storage bucket (free — 1 GB included) | +| **Task Management** | No additional accounts needed (free) | > **Tip:** If you're setting up Teams capture AND O365 calendar reminders, you'll reuse the same Entra ID app registration for both — just add the `Calendars.ReadWrite` permission when you get to Phase 3. @@ -47,7 +47,7 @@ Review the decision tree below, decide which features you want, and make sure yo ## Architecture Overview -``` +```text ┌─────────────────────────┐ │ Supabase │ │ ┌───────────────────┐ │ @@ -73,7 +73,7 @@ Review the decision tree below, decide which features you want, and make sure yo Use this to plan which features you'll set up. **Phase 1 and Phase 2 are required.** Everything else is optional. -``` +```text START HERE │ ▼ @@ -235,6 +235,7 @@ Before starting Phase 1, confirm you have: Follow the complete guide: **[Getting Started →](01-getting-started.md)** This covers: + 1. Create a Supabase project (free tier) 2. Set up the database (thoughts table, vector search, security) 3. Get an OpenRouter API key (AI gateway) @@ -261,7 +262,7 @@ Do NOT proceed until all of these pass: > **What you'll build:** One or more chat-based entry points so you can capture thoughts from your phone, desktop, or voice — not just your AI coding tools. -### Prerequisites Checklist +### Phase 2 Prerequisites Before starting Phase 2, confirm: @@ -282,7 +283,7 @@ Choose at least one capture source. You can add more later. Follow the complete guide: **[Discord Setup →](03-discord-capture-setup.md)** -#### 🚦 Verification Gate +#### 🚦 Discord Verification Gate | # | Test | Expected Result | |---|------|-----------------| @@ -301,7 +302,7 @@ Follow the complete guide: **[Discord Setup →](03-discord-capture-setup.md)** Follow the complete guide: **[Teams Setup →](02-teams-capture-setup.md)** -#### 🚦 Verification Gate +#### 🚦 Teams Verification Gate | # | Test | Expected Result | |---|------|-----------------| @@ -322,7 +323,7 @@ Follow the complete guide: **[Teams Setup →](02-teams-capture-setup.md)** Follow the complete guide: **[Alexa Setup →](04-alexa-setup.md)** -#### 🚦 Verification Gate +#### 🚦 Alexa Verification Gate | # | Test | Expected Result | |---|------|-----------------| @@ -341,7 +342,7 @@ Follow the complete guide: **[Alexa Setup →](04-alexa-setup.md)** > **What you'll build:** Automatic calendar event creation when you capture a thought that mentions a future date or time. Works across ALL capture sources. -### Prerequisites Checklist +### Phase 3 Prerequisites Before starting Phase 3, confirm: @@ -357,7 +358,7 @@ Before starting Phase 3, confirm: Follow the complete guide: **[Reminders Setup →](05-reminders-setup.md)** -### 🚦 Verification Gate +### 🚦 Reminders Verification Gate | # | Test | Expected Result | |---|------|-----------------| @@ -372,7 +373,7 @@ Follow the complete guide: **[Reminders Setup →](05-reminders-setup.md)** > **What you'll build:** Automated daily and weekly summaries delivered to your chat channels (Teams, Discord, or both). Optionally adds email delivery. -### Prerequisites Checklist +### Phase 4 Prerequisites Before starting Phase 4, confirm: @@ -417,13 +418,13 @@ This is covered in the digest guide under **Email Setup with Resend**. > **Goal:** Scan images, PDFs, and documents posted in Teams or Discord. -### Prerequisites Checklist +### Phase 5 Prerequisites - [ ] Phase 1 complete (core infrastructure) - [ ] At least one capture source working (Teams or Discord) - [ ] Supabase Storage bucket not yet created -### Steps +### Phase 5 Steps 1. Run schema migration: `schemas/core/004-add-file-columns.sql` 2. Create `cerebro-files` storage bucket in Supabase Dashboard @@ -432,7 +433,7 @@ This is covered in the digest guide under **Email Setup with Resend**. 📖 Full guide → [File Attachments Setup](07-file-attachments-setup.md) -### 🚦 Verification Gate +### 🚦 File Attachments Verification Gate - [ ] Send an image to Teams/Discord → bot replies with AI description - [ ] Send a PDF → content is scanned and captured @@ -445,12 +446,12 @@ This is covered in the digest guide under **Email Setup with Resend**. > **Goal:** Complete, reopen, and delete tasks with natural language across all capture points. -### Prerequisites Checklist +### Phase 6 Prerequisites - [ ] Phase 1 complete (core infrastructure) - [ ] At least one capture source working -### Steps +### Phase 6 Steps 1. Run schema migration: `schemas/core/005-add-status-column.sql` 2. Redeploy all Edge Functions @@ -459,7 +460,7 @@ This is covered in the digest guide under **Email Setup with Resend**. 📖 Full guide → [Task Management Setup](08-task-management-setup.md) -### 🚦 Verification Gate +### 🚦 Task Management Verification Gate - [ ] Capture a task thought → confirmed as "task" type - [ ] Complete the task with "done: description" → ✅ marked done @@ -532,7 +533,7 @@ Your Cerebro brain is now operational. Here's what you've built: | Discord commands missing | Propagation delay | Global commands take up to 1 hour; use guild-specific for instant | | Teams bot no reply | Wrong messaging endpoint | Azure Bot → Configuration → verify URL matches function | | Alexa "problem with skill" | Function error | `supabase functions logs cerebro-alexa --project-ref YOUR_REF` | -| Calendar event not created | Missing credentials | `supabase secrets list` — check GRAPH_* or GOOGLE_* vars | +| Calendar event not created | Missing credentials | `supabase secrets list` — check GRAPH\_\* or GOOGLE\_\* vars | | Digest not delivered | No registered channels | Capture a thought from Teams/Discord first to auto-register | | Cron not firing | Extensions disabled | Enable `pg_cron` and `pg_net` in Supabase Dashboard | | Email not received | Resend domain restriction | Default `onboarding@resend.dev` only sends to account owner | diff --git a/integrations/daily-digest/README.md b/integrations/daily-digest/README.md index 8d1d18e..af9a41a 100644 --- a/integrations/daily-digest/README.md +++ b/integrations/daily-digest/README.md @@ -27,6 +27,7 @@ Channels are auto-registered on first capture — no manual setup required. The AI-generated summary includes: ### Daily + - Key themes and decisions made - Action items — open and completed - People mentioned and follow-ups needed @@ -34,6 +35,7 @@ The AI-generated summary includes: - Insights and things learned ### Weekly (additional analysis) + - Recurring themes and emerging patterns - Progress on goals — completed tasks vs open items - People and relationship touchpoints across the week diff --git a/integrations/discord-capture/README.md b/integrations/discord-capture/README.md index b671638..6f51a18 100644 --- a/integrations/discord-capture/README.md +++ b/integrations/discord-capture/README.md @@ -4,7 +4,7 @@ A Supabase Edge Function that connects Discord to Cerebro via slash commands. Us ## How It Works -``` +```text /capture thought → Discord → Edge Function → embed + extract metadata → Supabase → reply /search query → Discord → Edge Function → embed query → vector search → reply with results ``` diff --git a/integrations/mcp-server/README.md b/integrations/mcp-server/README.md index 0d36af8..ee1a1eb 100644 --- a/integrations/mcp-server/README.md +++ b/integrations/mcp-server/README.md @@ -64,6 +64,6 @@ Every request must include a valid access key via one of: ## Connection URL -``` +```text https://YOUR_PROJECT_REF.supabase.co/functions/v1/cerebro-mcp?key=your-access-key ``` diff --git a/integrations/teams-capture/README.md b/integrations/teams-capture/README.md index 5dd4869..09ee3af 100644 --- a/integrations/teams-capture/README.md +++ b/integrations/teams-capture/README.md @@ -4,7 +4,7 @@ A Supabase Edge Function that connects Microsoft Teams to Cerebro. Message the b ## How It Works -``` +```text Teams message → Azure Bot Service → Edge Function → embed + extract metadata → Supabase → reply in Teams ```