11 KiB
#====================================================================================================
START - Testing Protocol - DO NOT EDIT OR REMOVE THIS SECTION
#====================================================================================================
THIS SECTION CONTAINS CRITICAL TESTING INSTRUCTIONS FOR BOTH AGENTS
BOTH MAIN_AGENT AND TESTING_AGENT MUST PRESERVE THIS ENTIRE BLOCK
Communication Protocol:
If the testing_agent is available, main agent should delegate all testing tasks to it.
You have access to a file called test_result.md. This file contains the complete testing state
and history, and is the primary means of communication between main and the testing agent.
Main and testing agents must follow this exact format to maintain testing data.
The testing data must be entered in yaml format Below is the data structure:
user_problem_statement: {problem_statement}
backend:
- task: "Task name"
implemented: true
working: true # or false or "NA"
file: "file_path.py"
stuck_count: 0
priority: "high" # or "medium" or "low"
needs_retesting: false
status_history:
-working: true # or false or "NA"
-agent: "main" # or "testing" or "user"
-comment: "Detailed comment about status"
frontend:
- task: "Task name"
implemented: true
working: true # or false or "NA"
file: "file_path.js"
stuck_count: 0
priority: "high" # or "medium" or "low"
needs_retesting: false
status_history:
-working: true # or false or "NA"
-agent: "main" # or "testing" or "user"
-comment: "Detailed comment about status"
metadata:
created_by: "main_agent"
version: "1.0"
test_sequence: 0
run_ui: false
test_plan:
current_focus:
- "Task name 1"
- "Task name 2"
stuck_tasks:
- "Task name with persistent issues"
test_all: false
test_priority: "high_first" # or "sequential" or "stuck_first"
agent_communication:
-agent: "main" # or "testing" or "user"
-message: "Communication message between agents"
Protocol Guidelines for Main agent
1. Update Test Result File Before Testing:
- Main agent must always update the test_result.md file before calling the testing agent
- Add implementation details to the status_history
- Set needs_retesting to true for tasks that need testing
- Update the test_plan section to guide testing priorities
- Add a message to agent_communication explaining what you've done
2. Incorporate User Feedback:
- When a user provides feedback that something is or isn't working, add this information to the relevant task's status_history
- Update the working status based on user feedback
- If a user reports an issue with a task that was marked as working, increment the stuck_count
- Whenever user reports issue in the app, if we have testing agent and task_result.md file so find the appropriate task for that and append in status_history of that task to contain the user concern and problem as well
3. Track Stuck Tasks:
- Monitor which tasks have high stuck_count values or where you are fixing same issue again and again, analyze that when you read task_result.md
- For persistent issues, use websearch tool to find solutions
- Pay special attention to tasks in the stuck_tasks list
- When you fix an issue with a stuck task, don't reset the stuck_count until the testing agent confirms it's working
4. Provide Context to Testing Agent:
- When calling the testing agent, provide clear instructions about:
- Which tasks need testing (reference the test_plan)
- Any authentication details or configuration needed
- Specific test scenarios to focus on
- Any known issues or edge cases to verify
5. Call the testing agent with specific instructions referring to test_result.md
IMPORTANT: Main agent must ALWAYS update test_result.md BEFORE calling the testing agent, as it relies on this file to understand what to test next.
#====================================================================================================
END - Testing Protocol - DO NOT EDIT OR REMOVE THIS SECTION
#====================================================================================================
#====================================================================================================
Testing Data - Main Agent and testing sub agent both should log testing data below this section
#====================================================================================================
user_problem_statement: | PezkuwiChain Mobile App - Kurdish Digital Citizenship Platform Complete rebuild from scratch with Kurdish design theme, user authentication (Supabase), and blockchain integration (HEZ/PEZ tokens). Multi-language support, profile management, wallet functionality with 30 quick actions, and bottom tab navigation.
backend:
-
task: "Supabase Authentication - Sign Up" implemented: true working: false file: "backend/server.py" stuck_count: 1 priority: "high" needs_retesting: false status_history:
- working: "NA" agent: "main" comment: "Implemented /api/auth/signup endpoint with Supabase integration. Creates user in Supabase Auth and stores profile data in users table with first_name, last_name, phone, referral_code, language, tiki_count, trust_score."
- working: false agent: "testing" comment: "CRITICAL: Supabase configuration issues prevent signup. Auth user creation works, but profile data insertion fails with RLS policy violation. Backend using anon key instead of service role key. Users table may be missing required columns (first_name, last_name, etc.). Error: 'Could not find the first_name column of users in the schema cache' (PGRST204). Requires service role key for server-side operations or proper RLS policy configuration."
-
task: "Supabase Authentication - Sign In" implemented: true working: "NA" file: "backend/server.py" stuck_count: 0 priority: "high" needs_retesting: true status_history:
- working: "NA" agent: "main" comment: "Implemented /api/auth/signin endpoint with Supabase. Returns user profile data along with access and refresh tokens."
-
task: "Get User Profile" implemented: true working: "NA" file: "backend/server.py" stuck_count: 0 priority: "medium" needs_retesting: true status_history:
- working: "NA" agent: "main" comment: "Implemented /api/auth/user/{user_id} endpoint to fetch user profile from Supabase users table."
-
task: "Blockchain Balance API" implemented: true working: "NA" file: "backend/server.py" stuck_count: 0 priority: "medium" needs_retesting: false status_history:
- working: "NA" agent: "main" comment: "Previously implemented. Fetches HEZ/PEZ balances from blockchain via localtunnel RPC."
frontend:
-
task: "Language Selection Screen" implemented: true working: true file: "frontend/src/screens/LanguageScreen.tsx" stuck_count: 0 priority: "high" needs_retesting: false status_history:
- working: true agent: "main" comment: "Kurdish-themed design with gradient, sun logo, 6 language options. Navigation to HumanVerification screen working."
-
task: "Human Verification Screen" implemented: true working: "NA" file: "frontend/src/screens/HumanVerificationScreen.tsx" stuck_count: 0 priority: "high" needs_retesting: true status_history:
- working: "NA" agent: "main" comment: "Simple math captcha (5+3) with Kurdish design theme. Navigates to Auth screen on correct answer."
-
task: "Auth Screen (Sign In/Sign Up)" implemented: true working: "NA" file: "frontend/src/screens/AuthScreen.tsx" stuck_count: 0 priority: "high" needs_retesting: true status_history:
- working: "NA" agent: "main" comment: "Complete auth flow with toggle between Sign In and Sign Up. Integrates with AuthContext. Sign Up requires: first_name, last_name, phone, email, password, optional referral_code. Loading states implemented."
-
task: "Auth Context & AsyncStorage" implemented: true working: "NA" file: "frontend/src/contexts/AuthContext.tsx" stuck_count: 0 priority: "high" needs_retesting: true status_history:
- working: "NA" agent: "main" comment: "Created AuthContext with signIn, signUp, signOut functions. User data persisted in AsyncStorage. Calls backend auth endpoints."
-
task: "Home Screen - Profile & Navigation" implemented: true working: "NA" file: "frontend/src/screens/HomeScreen.tsx" stuck_count: 0 priority: "high" needs_retesting: true status_history:
- working: "NA" agent: "main" comment: "Bottom tab navigation (Home, Wallet, Citizens, Referral, Profile). Home tab shows profile image upload (base64), trust score badge, QR/notifications/settings buttons, announcement widget, and 30 quick action buttons."
-
task: "Wallet Screen" implemented: true working: "NA" file: "frontend/src/screens/HomeScreen.tsx" stuck_count: 0 priority: "medium" needs_retesting: true status_history:
- working: "NA" agent: "main" comment: "Displays HEZ and PEZ balance cards with logos (currently mock data). Send/Receive/Swap action buttons. Need to integrate with blockchain balance API."
-
task: "Profile Image Upload (Base64)" implemented: true working: "NA" file: "frontend/src/screens/HomeScreen.tsx" stuck_count: 0 priority: "medium" needs_retesting: true status_history:
- working: "NA" agent: "main" comment: "expo-image-picker integrated. User can select profile image, converted to base64. Currently stored locally, need backend endpoint to save."
metadata: created_by: "main_agent" version: "1.0" test_sequence: 1 run_ui: false
test_plan: current_focus: - "Supabase Authentication - Sign Up" - "Supabase Authentication - Sign In" - "Auth Screen (Sign In/Sign Up)" - "Auth Context & AsyncStorage" - "Home Screen - Profile & Navigation" stuck_tasks: [] test_all: false test_priority: "high_first"
agent_communication:
-
agent: "main" message: | Implemented complete authentication flow with Supabase:
- Backend: signup, signin, get user profile endpoints
- Frontend: AuthContext with AsyncStorage persistence
- AuthScreen with loading states and error handling
- HomeScreen with profile image upload (base64) and bottom tab navigation
- 30 quick action buttons in HomeTab
- Wallet tab with HEZ/PEZ balance display (mock data currently)
Ready for backend testing. Need to test:
- Auth endpoints (signup, signin)
- User profile creation in Supabase
- Token persistence
- Navigation flow: Language -> HumanVerification -> Auth -> Home
After backend testing passes, frontend testing will validate UI flow.