From b9f3d17f70037d96255e7df327dfe1fd4604c043 Mon Sep 17 00:00:00 2001 From: John Mizerek Date: Tue, 17 Mar 2026 14:54:21 -0700 Subject: [PATCH] Initialize central bot memory files MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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) --- memory/alex.md | 27 +++++++++++++++++++++++++++ memory/ava.md | 9 +++++++++ memory/jude.md | 15 +++++++++++++++ memory/kira.md | 18 ++++++++++++++++++ memory/koda.md | 44 ++++++++++++++++++++++++++++++++++++++++++++ memory/luna.md | 32 ++++++++++++++++++++++++++++++++ memory/mike.md | 13 +++++++++++++ memory/nora.md | 34 ++++++++++++++++++++++++++++++++++ memory/priya.md | 8 ++++++++ memory/raj.md | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ memory/sarah.md | 13 +++++++++++++ memory/zara.md | 15 +++++++++++++++ 12 files changed, 276 insertions(+) create mode 100644 memory/alex.md create mode 100644 memory/ava.md create mode 100644 memory/jude.md create mode 100644 memory/kira.md create mode 100644 memory/koda.md create mode 100644 memory/luna.md create mode 100644 memory/mike.md create mode 100644 memory/nora.md create mode 100644 memory/priya.md create mode 100644 memory/raj.md create mode 100644 memory/sarah.md create mode 100644 memory/zara.md diff --git a/memory/alex.md b/memory/alex.md new file mode 100644 index 0000000..9c3f230 --- /dev/null +++ b/memory/alex.md @@ -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 diff --git a/memory/ava.md b/memory/ava.md new file mode 100644 index 0000000..c380e85 --- /dev/null +++ b/memory/ava.md @@ -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) diff --git a/memory/jude.md b/memory/jude.md new file mode 100644 index 0000000..514d9cf --- /dev/null +++ b/memory/jude.md @@ -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 diff --git a/memory/kira.md b/memory/kira.md new file mode 100644 index 0000000..a519d9b --- /dev/null +++ b/memory/kira.md @@ -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 diff --git a/memory/koda.md b/memory/koda.md new file mode 100644 index 0000000..7420892 --- /dev/null +++ b/memory/koda.md @@ -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 diff --git a/memory/luna.md b/memory/luna.md new file mode 100644 index 0000000..98b0852 --- /dev/null +++ b/memory/luna.md @@ -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) diff --git a/memory/mike.md b/memory/mike.md new file mode 100644 index 0000000..7261dcf --- /dev/null +++ b/memory/mike.md @@ -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 diff --git a/memory/nora.md b/memory/nora.md new file mode 100644 index 0000000..65c032a --- /dev/null +++ b/memory/nora.md @@ -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 diff --git a/memory/priya.md b/memory/priya.md new file mode 100644 index 0000000..a7eeea5 --- /dev/null +++ b/memory/priya.md @@ -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 diff --git a/memory/raj.md b/memory/raj.md new file mode 100644 index 0000000..27fb827 --- /dev/null +++ b/memory/raj.md @@ -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) diff --git a/memory/sarah.md b/memory/sarah.md new file mode 100644 index 0000000..18a34ac --- /dev/null +++ b/memory/sarah.md @@ -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 diff --git a/memory/zara.md b/memory/zara.md new file mode 100644 index 0000000..a51fae3 --- /dev/null +++ b/memory/zara.md @@ -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'