# 2026-02-27 Daily Notes## Telegram Per-Model Channels — Full Fix Log### What we wantedTwo Telegram group channels, each bound to a different agent/model:- PSB-thinking (-1003721745215) → `psb-thinking` agent → OpenRouter Auto- Hackerspace (-1003728588536) → `psb-hacker-claude` agent → Claude Opus 4-6### Fix 1: Remove Ollama (from last night)- Removed Ollama provider, `psb-ollama` agent, PSB channel binding, and PSB group config- Had to edit `openclaw.json` directly because `config.patch` merges objects (doesn't delete keys)- Lesson: **config.patch merges, it doesn't remove.** Edit the JSON file directly for deletions.### Fix 2: Bot not responding in groups- Groups were configured with `groupPolicy: "open"` and `enabled: true`- Bot privacy mode was already off in @BotFather- Messages were reaching the gateway but being skipped: `"reason": "no-mention"`- `groupPolicy: "open"` only controls **who** can talk, not **when** the bot responds### Fix 3: Tried `trigger: "all"` — BROKE CONFIG- Added `trigger: "all"` to group config — **not a valid key**- OpenClaw schema rejected it: `Unrecognized key: "trigger"`- Config became invalid, bot stopped responding entirely- `openclaw doctor --fix` auto-removed the bad keys- Lesson: **OpenClaw schema is strict. Don't guess config keys — check docs first.**### Fix 4: `requireMention: false` — THE ACTUAL FIX- Found in docs: `docs/channels/groups.md`- The correct key is `requireMention: false` on each group- Default behavior requires @mention to trigger a response- Set `requireMention: false` on both groups → bot now responds to all messages- Docs reference: `groups: { "123456789": { requireMention: false } }`### Final working config for each group```json{ "groupPolicy": "open", "enabled": true, "requireMention": false}```### Key Lessons1. `config.patch` merges — use direct file edit for deletions2. `groupPolicy` = who can talk; `requireMention` = when bot responds3. Don't invent config keys — OpenClaw schema rejects unknowns and breaks the config4. Always check `/docs/channels/groups.md` for group behavior settings## Model Switch- Switched this session (psb-hacker-claude) from Claude Opus → OpenRouter Auto → back to Claude Opus## OpenClaw Update- Updated to v2026.2.26## Evening Updates (Feb 27, 2026)### Gmail API Enabled- Enabled Gmail API on Google Cloud project (57290199244)- Successfully scanned 5 days of PSB inbox: 146 emails total- Categories: Action Needed (10), Financial (11), Business Ops (33), Community/Events (27)### Toast Invoice Auto-Filer- Created script: `/home/HHS/.openclaw/scripts/toast_invoice_filer.sh`- Runs twice daily at 7:00 AM and 7:00 PM ET- Scans Gmail for Toast invoice emails, downloads PDF attachments- Files to: `Toast/YYYY/MM/Invoices/` on Google Drive- Creates year/month folders automatically- Notifies Telegram when invoice filed- First invoice filed: INV8845317 → Toast/2026/02/Invoices/### Auto-Expenses Folder- Created "Auto-Expenses" folder in BrewBusiness Drive (ID: 1Qyf7cp5nE_lb-bmjEd3hsU0bJlMZ1EpD)- Created PSB-2026-Expenses spreadsheet in Auto-Expenses folder- Workflow: Susan drops receipts/docs → I scan → add to spreadsheet- Categories: supplies, payroll, rent, utilities, marketing, equipment- Edge case: Amazon orders without context → flag and ask in PSB channel### Crontab Rebuild (Full Rewrite)- Consolidated all cron jobs under `/home/HHS/.openclaw/logs/`- Morning standup: 7:00 AM ET (weather + calendar + 24h metrics)- Health check: 6:55 AM- Toast invoice filer: 7:00 AM & 7:00 PM- TILT monitor: every 6 hours- TILT auto-discovery: 10:00 PM- Credits check: 11:00 PM- Weekly report: Sunday 8:00 PM- Removed old `/tmp/openclaw/standup.log` path### Morning Standup Updated- Added 24h metrics section: - Emails scanned (last 24h) - Attachments/Auto-Expense docs processed (24h)- Script: `/home/HHS/.openclaw/scripts/morning_standup.sh`- Logs to: `/home/HHS/.openclaw/logs/standup.log`### Email Draft Workflow Discussion- Discussed drafting email replies for Susan- Topics: templates, tone, categories, approval flow- Table for now - need Susan's input on workflow- Memory entry created: `psb_memory_2026_02_27_2234.md`### OpenRouter Credits- Remaining: ~$9.80 (total $120, used $110.72)- Claude: No API key loaded in this environment-.psb-gemma uses Ollama MiniMax M2.5 (local, no credits)- Failover discussion tabled### Agent Alias- Internal agent ID remains `psb-gemma`- User-facing name: "PSB" (alias only)- No config changes needed## Expense Automation Built (Feb 27 evening)### PSB-2026-Expenses Spreadsheet- Created in Auto-Expenses folder- Columns: Date, Vendor, Category, Description, Amount, Payment Method, Receipt, Notes- Categories: Supplies, Equipment, Ingredients, Payroll, Utilities, Rent, Marketing, Maintenance, CO2, Other- Manual entry: Arc3 Gases $76.52 CO2 invoice added### Auto-Expense Scanner Script- Script: /home/HHS/.openclaw/scripts/auto_expense_scanner.sh- Runs: 4:00 AM ET daily- Process: 1. Scans Auto-Expenses folder for new files 2. Extracts data from PDF/image (vendor, amount, date, category) 3. Adds to PSB-2026-Expenses spreadsheet 4. Moves processed file to Toast/YYYY/MM/Invoices/- Supports: PDF, JPEG, PNG, GIF, BMP, TIFF (via pdftotext + tesseract OCR)- Dynamically creates month folders if needed- Count saved to /home/HHS/.openclaw/data/expenses_24h_count.txt### Toast Invoice Filer (updated)- Script: /home/HHS/.openclaw/scripts/toast_invoice_filer.sh- Runs: 7:00 AM & 7:00 PM ET- Scans Gmail for Toast invoice emails, downloads PDF, files to Toast/YYYY/MM/Invoices### Morning Standup (updated)- Now includes: "Auto-Expense entries added: X" in 24h metrics### Cron Jobs- 4:00 AM — auto_expense_scanner.sh- 6:55 AM — health check- 7:00 AM — morning_standup.sh- 7:00 PM — toast_invoice_filer.sh### OpenRouter/Claude Fixes- Switched all PSB channels to Ollama MiniMax M2.5 (local/cloud, no credits)- Added DM binding for Topher (user 8267783628) to psb-gemma- Updated OpenRouter API key to new key- Removed duplicate BrewBuisness typo folder