Initialize central bot memory files

Copied from payfrit-food/memory/ — 12 bots with their current memory state.
This is now the canonical location for bot memory across all Payfrit projects.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
John Mizerek 2026-03-17 14:54:21 -07:00
parent e5261a1e0b
commit b9f3d17f70
12 changed files with 276 additions and 0 deletions

27
memory/alex.md Normal file
View file

@ -0,0 +1,27 @@
# ALEX — Weedops Project Coordinator
## What I'm Working On
- weedops.site — cannabis industry platform
- Pitch deck for fundraising
- Marketing materials
## Project Status
- **Phase**: Fundraising — targeting talent agency venture arms
- **Website**: weedops-theme (WordPress) at C:\dev\weedops-theme — basic theme exists
- **Pitch deck**: In progress
- **Marketing**: In progress
- **Coding**: None at this time — focus is fundraising + marketing
## MM Setup (COMPLETED 2026-03-16)
- alex-bot added to Payfrit MM team and town-square channel
- Intro posted to town-square
- DM channel with John established
## Delegated Tasks
- (none yet — waiting for direction from John)
## Notes From John
- No real coding right now — focus is marketing and raising a round
- Targeting talent agency venture arms for funding
- Alex's role is PM/coordinator — delegates to team when coding starts
- Team reboot in progress 2026-03-16 — waiting for all bots to confirm ready

9
memory/ava.md Normal file
View file

@ -0,0 +1,9 @@
# AVA — Graphic Designer
## What I'm Working On
- (update this as you work)
## Brand Guidelines
- (colors, fonts, spacing rules)
## Assets Created
- (track what you've made)
## Notes From John
- (save anything John tells you to remember)

15
memory/jude.md Normal file
View file

@ -0,0 +1,15 @@
# JUDE — WordPress Theme Developer
## What I'm Working On
- Built and deployed consumer landing page for food.payfrit.com (2026-03-16)
- Awaiting John's feedback on the new landing page
## Pages Status
- food.payfrit.com — NEW consumer product landing page deployed
- Hero with phone mockup showing scan > rate > alternatives flow
- How It Works (3 steps), Features (6 cards), Privacy (zero stats), CTA
- Green (#16a34a), Inter font, fully responsive
- Old scanning portal backed up to /portal/old/
- /sponsor/ — sponsor dashboard (unchanged)
- /api/ — API endpoints (unchanged)
## Notes From John
- Wants consumer product page for the Payfrit Food scanning app
- Key value prop: Scan barcode > learn about item > select alternative > order for delivery

18
memory/kira.md Normal file
View file

@ -0,0 +1,18 @@
# KIRA — General Agent
## What I'm Working On
- Investigated "Product not found" issue on dev version of Payfrit Food Android
- Both dev and prod use same DB (payfrit_food on 10.10.0.1) — APIs return identical data
- Installed fresh devDebug + prodDebug builds on John's Moto G 2025 (ZA222XB44V)
- Waiting for John to re-test and report back with specific barcode if still failing
## Cross-Team Coordination
- (none active)
## Notes From John
- Prod works great
- Dev version showed "Product not found" on a known good product
- Wants both dev and prod installed on device
## Build Notes
- payfrit-food-android has dev/prod flavors (environment dimension)
- Dev: com.payfrit.food.dev, API: dev.payfrit.com/food/api, app name "Food BETA"
- Prod: com.payfrit.food, API: food.payfrit.com/api, app name "Payfrit Food"
- Build command: JAVA_HOME="/c/Program Files/Java/jdk-17" java -cp gradle/wrapper/gradle-wrapper.jar org.gradle.wrapper.GradleWrapperMain installDevDebug (or installProdDebug)
- gradlew.bat doesn't work from bash — must invoke java directly with the wrapper jar

44
memory/koda.md Normal file
View file

@ -0,0 +1,44 @@
# KODA — Claude Code Agent
## What I'm Working On
- Session 5 (2026-03-17) — Fixed QA v2 medium/low issues #5-#10 (commit add171e)
- All criticals/highs from Luna's v2 report confirmed fixed by Luna
- Remaining: #7 (cert pinning — deliberate decision, root only) and #11 (beacon cache plaintext — low risk, accepted)
## Notes From John
- "just do everything in any order, you're fast!!"
- Migrating to VPS (dev.payfrit.com) — will restart there in VS Code
- All teammates are AI agents; names are for routing/specialization, not persona roleplay
## Decisions Made
- Async scan flow for barcode lookups (202 + polling)
- Barcode normalization: try both UPC-A and EAN-13
- OkHttp read timeout bumped to 60s for slow OFF lookups
- Cert pinning: ISRG Root X1 ONLY (LE intermediates rotate unpredictably)
- Tab approval: member-side polling every 3s, 2min timeout, then graceful message
- Cart errors use toast instead of dialog to prevent stacking
## Session 5 Fixes (commit add171e)
- #5: CartActivity tab rejection — ic_error icon + "Order rejected" message
- #6: Api.kt ephemeral key parsing — try/catch for malformed JSON
- #8: MenuActivity cart error — dialog replaced with StyledToast
- #9: AccountActivity URI restoration — try/catch wrapper
- #10: AppState isLoggedIn/isOnTab — elvis operator instead of !! assertions
## Session 4 Fixes
### getDetail.php — PlatformFee missing (commit b5394ae)
- Fixed: total now includes PlatformFee
### Task creation — TaskTypeID missing (commit 628172c)
- Fixed: added TaskTypeID=0 to submitCash.php, submit.php, webhook.php
## E2E Test Results (Order 100, business 55)
- All fees computed correctly
## Luna QA v1 — ALL RESOLVED (commit f62a0bd)
## Luna QA v2 — 9/11 fixed, 2 accepted (cert pinning + beacon cache)
## KDS Task Creation (commit 07abcee)
- submitCash.php + submit.php create kitchen tasks
## Pending Tasks
- No blockers — waiting for John's next task

32
memory/luna.md Normal file
View file

@ -0,0 +1,32 @@
# LUNA — QA & Testing
## Known Bugs
- **KDS not showing orders** (investigating): Order 97 stuck at StatusID=0 (never submitted). Order 96 submitted but had no Task. Root cause unclear — KDS queries Orders directly (StatusID >= 1), not Tasks. So missing Task wasn't the KDS issue. Need to determine why order 97 never submitted (app-side?).
- **KDS task creation gap** (fixed by Koda, commit 07abcee): submitCash.php and submit.php now create Tasks at StatusID=1. BUT task is missing TaskTypeID/CategoryID — only creates generic "Prepare Order" task, not proper type-mapped ones from _createOrderTasks.php. Needs follow-up.
- **Sales tax issue** (clarified by Koda): 07abcee did NOT touch tax calc. Real issue was getDetail.php not including PlatformFee in total. Fixed by Koda in commit b5394ae.
- **god.payfrit.com 502** (fixed): Lucee service crashed, Raj restarted it.
## payfrit-android QA v2 (2026-03-17)
- Fresh QA pass completed after Koda's fixes
- 11 new findings: 2 Critical, 2 High, 4 Medium, 3 Low
- Critical: race condition in TabApprovalHelper, NPE in AccountActivity photo upload
- High: missing business tax rate error handling, virtual ID returns 0
- Report: /c/dev/payfrit-android/qa/code-review-findings-v2.md
- 9/11 v1 bugs confirmed fixed by Koda ✓
## Test Results
- payfrit-beacon-android: Static + API reviewed (report: /c/dev/payfrit-beacon/qa/code-review-findings.md)
- payfrit-android: v1 complete, v2 complete (report: /c/dev/payfrit-android/qa/code-review-findings-v2.md)
- payfrit-works-android: Static + API complete (report: /c/dev/payfrit-works-android/qa/code-review-findings.md)
## Pending Verification
- payfrit-android v2 critical bugs — waiting for Koda to fix
- Koda's KDS task creation fix (07abcee) — need to verify task is created properly with new cash order
- Koda's getDetail.php PlatformFee fix (b5394ae) — need to verify order detail shows correct total
## Notes From John
- KDS bug reported: ordered $1 soda from John's Beverages (cash), nothing showed in KDS
- Order 97 was StatusID=0, never submitted — asked John to retry
- Sales tax not being computed on new orders (turned out to be PlatformFee missing from getDetail.php)
- Asked me to coordinate with @koda on fixes
- Wants fresh QA on payfrit-android (done 2026-03-17)

13
memory/mike.md Normal file
View file

@ -0,0 +1,13 @@
# MIKE — Backend Developer
## What I'm Working On
- Dev channel project: created BotChannels migration, running it now via SSH on dev.payfrit.com
## Notes From John
- Everyone on the team is AI except @john — never deny being AI if asked
- Names (mike, sarah, raj, etc.) are just labels to differentiate between bot instances — no "-bot" suffix
- All bots have been renamed without the -bot suffix
- I can always SSH into dev.payfrit.com to run DB migrations and server commands
- No mysql client locally — use SSH for DB work
## Schema Changes Log
- 2026-03-17: Created sql/bot-channels-migration.sql — BotChannels table for multi-channel bot support

34
memory/nora.md Normal file
View file

@ -0,0 +1,34 @@
# NORA — Sponsor Portal
## What I'm Working On
- OTP login deployed, John testing
## Sponsor Features Status
- Sponsor login: LIVE — OTP via SMS (no passwords), phone or email
- Sponsor registration: LIVE — OTP verify → business profile form
- Token purchases: LIVE (api/sponsor/buyTokens.php) — Bearer auth + SponsorProfiles
- Product management: LIVE (api/sponsor/products.php) — API key auth + SponsorProfiles
- Stripe webhook: LIVE (api/webhook/stripe.php) — credits SponsorProfiles
- OTP send: LIVE (api/sponsor/sendOTP.php) — Twilio SMS, 6-digit code, 10-min expiry
## Architecture Notes
- Auth: OTP flow → payfrit.OTPCodes table → payfrit.UserTokens for sessions
- No passwords in sponsor portal — OTP only
- Sponsor data: payfrit_food.SponsorProfiles (was Sponsors) — keyed by UserID
- tt_SponsorType: translation table (1=Brand, 2=Retailer, 3=Artisan)
- payfrit.Users.SponsorTypeID: quick flag (0=not sponsor, 1-3=sponsor type)
- API key auth (X-API-Key) for product management endpoints
- Bearer token auth for buyTokens and register
- Twilio config: config/twilio.json (shared creds with payfrit-api)
- Dev mode: DEV_OTP returned in sendOTP response for testing
- If user has no sponsor profile, login returns NeedsSponsorProfile=true + token
- Migration SQL: sql/unified-auth-migration.sql (RAN 2026-03-17)
## John's Sponsor Profile
- UserID: 1, SponsorTypeID: 3 (Artisan), 10 tokens, login: 3104268588 or pinkyfloyd@gmail.com
## Notes From John
- food.payfrit.com is the consumer-facing WordPress site
- Sponsor portal at food.payfrit.com/portal or similar
- John wants OTP login only, no passwords
- John requested field labeled "Phone / Email"
- John requested tt_SponsorType translation table

8
memory/priya.md Normal file
View file

@ -0,0 +1,8 @@
# PRIYA — HR & Recruiting
## Team Status
- Schwifty added as employee 13 — Swift App Coder (iOS apps) — 2026-03-16
## Hiring Pipeline
- Schwifty (employee 13) — onboarded, bootstrap block added to TEAM-BOOTSTRAP.md
## Notes From John
- "call them Schwifty" — new team member, Swift app coder, employee 13
- @raj can help with any additional setup needs for new bots

48
memory/raj.md Normal file
View file

@ -0,0 +1,48 @@
# RAJ — Bot Server Builder
## What I'm Working On
- DONE: Wrote Standard Toolbox section in TEAM-BOOTSTRAP.md
- DONE: Embedded tailored toolbox into all 13 bot bootstrap blocks
- DONE: Forwarded BotBootstrap DB plan to @mike via DM
- DONE: Built dm, mention-check, thread-reply commands in mm.sh
- DONE: Created mm-mention-check.sh (scans all channels for @mentions/@all/DMs)
- DONE: Updated all 13 bootstrap /loop commands to use mention-check
- DONE: Created #dev channel, added mike/koda/sarah/kira/luna/raj
- DONE: All accounts renamed without -bot suffix (John's request)
- PLANNED: God mode bootstrap popup with copy button per bot
- PLANNED: Better online detection (ping bot DM, check response within 60s)
- PLANNED: Quick reboot block (short version, re-reads memory + re-bootstraps MM)
- PLANNED: Email accounts for all agents on MIAB (raj@payfrit.com etc)
- DONE: Fixed nginx duplicate config (removed dev.payfrit.com.bak from sites-enabled)
- DONE: Created #dev channel (kghnpj1cufgp7k4y8fojut44wc), added mike/koda/sarah/kira/luna/raj
- 500 errors were Anthropic API side, not our server
## Infrastructure State
- Worker pipeline: worker.sh runs every 30s via cron on dev server
- Outgoing webhooks: per-bot webhooks owned by webhook-bot user
- Incoming webhook: posts as bot identities with custom username/avatar
- Bot poller: payfrit-bot-poller.service — works, has 403 noise on inaccessible channels (harmless)
- Bot worker: payfrit-bot-worker.service — picks BotTasks, runs Claude Code CLI
- VS Code tunnel: REMOVED (2026-03-17) — web VS Code too limited for bot bootstrapping
- God mode: https://god.payfrit.com/#bots — shows bot status, backend at /var/www/payfrit-food/bot/god-api.php
- /var/www/payfrit-food/memory/ permissions: john:www-data 775 (fixed 2026-03-17)
- API: currently returning 500 errors (2026-03-17 evening)
## Session Summary (2026-03-17 session 2)
- Bootstrapped, greeted John, started 1m polling loop
- Replied to Luna/Koda in #qa about QA findings on payfrit-android
- Wrote Standard Toolbox reference section in TEAM-BOOTSTRAP.md
- Embedded tailored Toolbox into all 13 bot blocks (git, SSH, deploy, DB, URLs, work checklist)
- John asked for: two-block system (full + quick reboot), god mode bootstrap popups, better online detection
- John wants bootstrap blocks moved to DB (BotBootstrap table with SharedBlock + PersonalBlock)
- John wants email accounts on MIAB for all agents
- 500 errors hitting — John says sit tight and plan
## Decisions
- Local bootstrap is preferred — each bot gets a Claude Code tab locally
- Server-side poller/worker handles automated responses when bots arent bootstrapped locally
- Bootstrap blocks should move to DB for easier management via god mode
## Notes From John
- Prefers local bootstrap over server-side solutions
- Wants two bootstrap modes: full start + quick reboot
- Wants god mode to show copyable bootstrap blocks per bot
- Wants better online/offline detection for bots
- Wants email accounts on MIAB for all agents
- 500 errors were Anthropic API, not our server
- No -bot suffix when referring to teammates (use @mike not @mike-bot)

13
memory/sarah.md Normal file
View file

@ -0,0 +1,13 @@
# SARAH — Frontend Developer / Night Manager
## What I'm Working On
- Completed: Team Bootstrap copy UI on god.payfrit.com/pages/bots.html
## Notes From John
- Team Bootstrap section added to bots page per John + Raj's request
- API endpoints: ?action=bootstraps (list), ?action=bootstrap&username=X (full block)
- @raj handles bot infra questions
## Decisions Made
- Added bootstrap section below existing bot grid in bots.html (not a separate page)
- Used same card grid pattern as bot cards, with copy-to-clipboard + toast
- Toast reusable via showToast(msg, isError) for future use on this page

15
memory/zara.md Normal file
View file

@ -0,0 +1,15 @@
# ZARA — User Portal
## What I'm Working On
- Bootstrapped 2026-03-16
- Portal at food.payfrit.com — barcode scanning, health scores, alternatives
## Portal Features Status
- Barcode scanning: working (API path fixed 2026-03-16)
- Health scores: built
- Premium modal: built (Stripe checkout wired up 2026-03-15)
- API scan endpoint: fixed curl fallback for HTTPS (2026-03-16)
## Notes From John
- food.payfrit.com hosted on wp.payfrit.com (Apache), not dev server
- Git clone at /var/www/food.payfrit.com/, pulls from Forgejo
- API path must be absolute '/api' not relative '../api'