Daily Note — March 26, 2026

Session 28: AI Rendering Studio for Site 962 (Boilerplate + Quik Action)

Time: ~9:00 PM Mar 25 – ~3:30 AM Mar 26 ET Machine: local (MacBookPro) + QCS1 Projects: quik-nation-ai-boilerplate, quikaction

Completed

  1. Built and deployed AI Rendering Studio at dev.quikactionllc.com/renderings/site962
  2. 14 rendering feature files (types, Bedrock service, S3 service, 3 API routes, 3 pages, 4 components)
  3. Sketch Pad + Annotate Photo (draw on property photos)
  4. Before/after slider with fullscreen, 0-100% image strength
  5. Nova Canvas rendering confirmed working — $0.044/render
  6. 13 failed Amplify builds debugged → working deploy
  7. S3 bucket quikaction-renderings created + public-read
  8. IAM user quikaction-rendering-service for Bedrock
  9. Slack message sent to Quik with family feedback
  10. Magic Patterns prompt saved, vault lessons updated

Key Decisions

  • Nova Canvas (not Stability SDXL — retired, requires paid inference profiles)
  • Claude Sonnet 4.6 via us. inference profile
  • npm on Amplify (not pnpm), Next.js 15.5.9 (not 16)
  • BEDROCK_ env var prefix (Amplify blocks AWS_)
  • ADMIN-only access, 0-100% strength range
  • TEXT_IMAGE mode planned for Phase 2

Lessons Learned

  • Check vault before acting on Amplify deploys
  • Build locally before pushing to Amplify
  • Compare working Herus immediately when debugging
  • Amplify SSR has no AWS creds — provide via non-AWS-prefixed env vars
  • Nova Canvas IMAGE_VARIATION: 512 char prompt limit

Session 29: Heru Feedback Full Stack + TestFlight Pipeline (Boilerplate + FMO + WCR + QCR)

Time: ~8:00 PM Mar 25 – ~2:15 AM Mar 26 ET Machine: local (MacBookPro) + QCS1 (Quik Cloud) Projects: boilerplate, FMO, WCR, QCR

Backend

  • Fixed FMO GraphQL: reconstructed lodash.merge from GitHub source, added feedback resolver
  • Built federation gateway: Node.js HTTP proxy on EC2 port 4050, queries FMO+WCR in parallel
  • Federation returns 8 feedback items across all Herus

Infrastructure

  • Fixed Cloudflare DNS: api-dev.quiknation.com pointed to dead IP 18.208.168.136 → updated to 98.83.4.34
  • Nginx: repurposed api-dev.quiknation.com proxy from port 4031 → 4050 (federation gateway)
  • All 3 Amplify deploys succeeded (QuikNation, FMO, WCR)

Mobile

  • Fixed QCR FAB floating (FeedbackWidget wraps stackContent + flex:1 View)
  • Fixed FMO eas.json: distribution internal → store for TestFlight
  • ALL 3 apps submitted to TestFlight:
    • FMO: eas submit ✅
    • WCR: eas submit ✅
    • QCR: xcrun altool (eas submit has 409 bug) ✅
  • QCS1 build farm pipeline fully verified

Key Decisions

  • My Voyages client quit (saved to memory)
  • QCR uses xcrun altool for TestFlight (not eas submit — 409 EAS bug)
  • App-specific password for altool: pass directly with -p (keychain fails via SSH)

Lessons Learned

  • FMO resolver IIFE injection destroyed the merge call — never append to compiled JS
  • EAS profile names: FMO=development, WCR=develop, QCR=develop (standardize to develop)
  • FMO development profile had distribution:internal — Apple rejects for TestFlight
  • Always delete old IPAs before rebuilding (avoid submitting stale builds)
  • xcrun altool keychain lookup fails via SSH — pass password directly

Session 31: Heru Feedback Sprint + QCR/Site962 Swarm

Time: ~10:00 AM – ongoing Mar 26 ET Machine: local (MacBookPro) + QCS1 Projects: boilerplate, FMO, WCR, QCR, QuikNation, Site962

Heru Feedback — Fully Deployed

  • WCR Mobile: crash fixed (3 causes), built + TestFlight ✅
  • QCR Mobile: FAB restored, built + TestFlight via altool ✅
  • FMO Mobile: draggable FAB + X close + shake reopen, built + TestFlight via altool ✅
  • QuikNation Dashboard: custom auth pages (sign-in, sign-up, forgot-password, SSO callback), Amplify build SUCCEEDED ✅
  • All 3 EC2 backends online (WCR:3041, FMO:3035, QCR:3023)
  • DNS: api-dev.imworldcupready.com → 98.83.4.34
  • Feedback API at api-dev.quiknation.com/graphql confirmed working

QCR Web Swarm (4 agents on QCS1 — completed)

  • Heru Feedback widget, Checkout flow, Owner inspections, Check-in/out + Stripe + Staff
  • PRs to review next session

Site 962 Swarm (4 agents on QCS1 — running)

  • Heru Feedback SDK, Frontend→GraphQL wiring, Backend completeness, Deploy verification
  • Gap analysis: frontend calls MongoDB directly, backend (Apollo+PG) unused
  • Approach: Ship April 1 as-is, start GraphQL migration

QCS1 Setup

  • ASC API key installed permanently (~/.appstoreconnect/private_keys/AuthKey_C2GS4G2364.p8)
  • Keychain unlock + —clear-cache = recipe for successful builds
  • Use QCS1 for AWS CLI (faster than local Tailscale relay)

Key Decisions

  • Max 2 parallel agents on local (QCS1 for heavy work)
  • Site 962: Hybrid approach — ship April 1, modernize Sprint 2
  • QCR: 21 critical gaps identified, swarm dispatched for Tier 1

Session 30: 3D Rendering Studio + Seeking Talent MVP (Boilerplate + QuikAction + Seeking Talent)

Time: ~10:00 AM – ~4:30 PM ET Mar 26 Machine: local (MacBookPro) Projects: quik-nation-ai-boilerplate, quikaction, seeking-talent

QuikAction — 3D Rendering Studio (SHIPPED)

  1. ThreeDViewer component (React Three Fiber, OrbitControls, GLB loader, fullscreen, download)
  2. ModelGallery component (thumbnail grid, delete single, clear all)
  3. API route /api/renderings/generate-3d (proxies to QCS1 TRELLIS.2 at 100.113.53.80:8090)
  4. Workspace: 2D/3D toggle, “Generate 3D Model” button, localStorage persistence
  5. Scroll fix + always-visible chat panel
  6. Heru Feedback SDK deployed (13 files, amber theme)
  7. S3 GLB upload support added to rendering-s3.ts
  8. 4 commits: d69bc48, 817e47f, 063bc50, 80a2f5d

3D Pipeline Decision

  • TRELLIS.2 (Microsoft, MIT) — FREE on QCS1, PBR materials, sharp edges, handles transparency
  • NOT TripoSR (vertex colors only, no PBR = looks like clay for buildings)
  • NOT Meshy ($0.20/model — free option is better quality for architecture)
  • Total cost per 2D+3D render: $0.044

Subdomain Lesson

  • Created renderings.quikactionllc.com, then removed it — unnecessary complexity
  • One URL is enough: dev.quikactionllc.com/renderings/site962

Seeking Talent — MVP Sprint (IN PROGRESS)

  1. Backend agent: 4 Sequelize models, GraphQL schema (15 queries + 12 mutations), Clerk auth, migration file
  2. Amplify agent: amplify.yml, next.config standalone, env files, build verified (11 routes green)
  3. Clerk keys stored (pk_test_cHJvcGVyLWFwaGlkLTk0…)
  4. Neon PostgreSQL configured (develop + production databases)
  5. 3 agents still running at session end: migration, Feedback SDK, Amplify deploy

Key Decisions

  • React Three Fiber over Google model-viewer (vault alignment)
  • Seeking Talent uses seekingtalent.com as placeholder domain
  • Amplify app ID for QuikAction: d1yimicfkv0rby
  • Neon DB: ep-steep-cloud-am0joi8y-pooler.c-5.us-east-1.aws.neon.tech

Remaining

  • Install TRELLIS.2 on QCS1 (Robert Smalls)
  • QuikAction boilerplate sync (after Quik reviews)

Session 32: Seeking Talent MVP — Zero to Deployed (Boilerplate + Seeking Talent)

Time: ~4:00 PM – ~10:00 PM ET Mar 26 Machine: local (MacBookPro) + QCS1 + EC2 (98.83.4.34) Projects: quik-nation-ai-boilerplate, seeking-talent

MASSIVE BUILD SESSION — Full MVP deployed in ONE sitting

Frontend (15+ commits on develop):

  • 13 screens wired to App Router (/cd/, /talent/, /sign-in, /sign-up)
  • Clerk auth + middleware + role-based layouts
  • Shared Sidebar component (CD + Talent variants)
  • Brand design system (#F55D1E, Sora/Poppins/Inter)
  • Kinah’s actual logo from seekingtalent.com
  • 9 screens wired to real GraphQL queries/mutations
  • Call Sheet PDF Generator (@react-pdf/renderer) — hero feature
  • Admin CMS Dashboard (6 tabs: Hero, Features, Replaces, Pricing, Testimonials, Footer)
  • S3 upload system (presigned URLs, drag-drop, headshots/reels/media)
  • SSR fix: FeedbackSDK dynamic import in Client Component wrapper

Backend:

  • TS compilation fixes, 12 tables synced to Neon PostgreSQL
  • GraphQL API verified (132 types, 13 Seeking Talent domain types)
  • Seed data: 7 users, 5 talent profiles, 8 opportunities, 12 applications, 3 contracts

Infrastructure:

  • Amplify app d3v6j0nnd0ydua deployed (8 builds to get right — monorepo config + SSR fixes)
  • seekingtalent.quiknation.com LIVE (Cloudflare CNAME → CloudFront)
  • EC2 backend on port 3045 (PM2 + Nginx proxy)
  • api-dev-seekingtalent.quiknation.com LIVE (Cloudflare A record, HTTP only)
  • Clerk webhook secret saved
  • EC2 disk full → cleaned unused node_modules (100% → 93%)
  • EC2 access: Instance Connect with id_ed25519 (ec2-develop.pem doesn’t work)
  • 10 parallel agents dispatched across the session

Key Decisions

  • seekingtalent.quiknation.com + api-dev-seekingtalent.quiknation.com (not seekingtalent.com)
  • npm (not pnpm) for Amplify builds
  • FeedbackSDK must use dynamic import with ssr:false in a Client Component (not Server Component)
  • Backend HTTP only (Cloudflare proxy disabled) — add HTTPS later
  • EC2 Instance Connect pattern for SSH (key expires in 60s)
  • 98.83.4.34 IS an Elastic IP — safe for stop/start

Remaining

  • HTTPS for backend (Let’s Encrypt or Cloudflare Flexible SSL)
  • Stripe Subscriptions ($97/mo) + Connect (talent payouts)
  • E-signatures (BoldSign/DocuSign)
  • Email notifications (SendGrid)
  • RBAC enforcement (CD vs Talent roles)
  • Frontend env var fix (https → http for API URL)
  • EC2 disk expansion (20GB too small)

Session 33: QuikNation Website Swarm + EC2 Backend 24/7 + Decommission (Boilerplate)

Time: ~9:00 PM – ~11:30 PM ET Mar 26 Machine: local (MacBookPro) + QCS1 Projects: boilerplate, quiknation, EC2 (98.83.4.34)

Epic 17 — Partner Portal (Written)

  • Created .claude/plans/micro/17-quiknation-partner-portal.md — 6 stories, all agent-executable
  • Stories: Partner Dashboard, Client Management, Client Intake Wizard, Earnings/Payouts, Backend GraphQL, Public Partner Signup

Swarm Attempt — Wrong Repo (Lesson Learned)

  • Built 4 worktree agents in BOILERPLATE (wrong repo): Katherine (homepage), Mansa Musa (backend), Annie (partner+auth), Ida (S3 fix)
  • 38 files, ~7,000 lines generated — but in wrong repo
  • Cherry-picked to develop, then reverted everything
  • Lesson: ALWAYS work in the Heru’s own repo, not the boilerplate

QCS1 Cursor Dispatch (Correct Approach)

  • Cloned quiknation repo to QCS1 ~/Native-Projects/quiknation
  • Dispatched 2 Cursor agents (PID 72135 + 72136) via ~/.local/bin/agent -p --trust --model auto
  • Agent 1: Partner Portal dashboard pages
  • Agent 2: Heru Feedback admin dashboard
  • Results pending — check next session

EC2 Backend 24/7 Solution

  • Created ~/ecosystem.config.js on EC2 with ALL backends
  • PM2 startup systemd registered — survives reboots
  • 8 healthy backends: QCR(:3023), FMO(:3035), WCR(:3041), QuikNation(:4031), QuikAction(:3039), DreamiHairCare(:3008), Empresss Eats(:3025), Seeking Talent(:3045)
  • Federation gateway(:4050) online
  • Fixed WCR missing node_modules, empresss-eats missing dotenv

Decommissioned — PPSV Charities + My Voyages

  • Amplify frontends deleted (d1h6e0fbozrs12, d3brgyfpovtt60)
  • App Runner backends deleted (3 services total)
  • EC2: backend dirs removed, nginx configs removed, PM2 processes deleted
  • GitHub repos preserved

Key Feedback from Amen Ra

  1. NEVER build Heru pages in the boilerplate — work in the Heru’s repo
  2. Use QCS1 Cursor agents for swarm (~/.local/bin/agent -p --trust --model auto)
  3. Access AWS CLI from QCS1 (faster than local Tailscale relay)
  4. My Voyages removed from sprint — now 8 Herus for April 1
  5. Don’t explain, just execute
  6. Check the vault BEFORE acting — all the answers are there

Next Session

  1. Check QCS1 Cursor agent results (partner portal + feedback dashboard)
  2. Verify develop.quiknation.com has new pages
  3. Continue QuikNation MVP — remaining pages from Epic 10
  4. Check recruiter replies (URGENT from last session)
  5. Sprint status: 5 days to April 1 deadline