Sense Makers - Staging QA Test Commands
Base44 Staging QA (API only) - cURL Commands & Postman Collection
Setup
Endpoint: https://czifxiwestltvhvcpgph.functions.supabase.co/chat-with-openai-v2
Expected Version:
SM-DEPLOY-031
Scenario A — Low Clarity Entry (Triage 1)
Version Check (GET)
Expected: X-Debug-Version: SM-DEPLOY-031
curl -X GET "https://czifxiwestltvhvcpgph.functions.supabase.co/chat-with-openai-v2" -H "x-client-info: b44-1.2.3" -v 2>&1 | grep -i "x-debug-version"A1. Triage 1 - Kickoff (Create Chat)
⚠️ Save the chat_id from response
curl -X POST "https://czifxiwestltvhvcpgph.functions.supabase.co/chat-with-openai-v2" \
-H "Content-Type: application/json" \
-H "x-client-info: b44-1.2.3" \
-d '{
"user_text": "Kickoff – triage 1",
"base44_inquiry_id": "qa-'$(date +%s)'",
"journey_stage": "triage_selected_1",
"debug_persist": true
}' | jqA2. Probe
curl -X POST "https://czifxiwestltvhvcpgph.functions.supabase.co/chat-with-openai-v2" \
-H "Content-Type: application/json" \
-H "x-client-info: b44-1.2.3" \
-d '{
"user_text": "next",
"chat_id": "<PASTE_CHAT_ID_HERE>",
"set_stage_to": "triage_followup_2",
"debug_persist": true
}' | jqA3. Suggestion Bridge
curl -X POST "https://czifxiwestltvhvcpgph.functions.supabase.co/chat-with-openai-v2" \
-H "Content-Type: application/json" \
-H "x-client-info: b44-1.2.3" \
-d '{
"user_text": "bridge",
"chat_id": "<PASTE_CHAT_ID_HERE>",
"override_stage": "suggestion_bridge",
"set_stage_to": "suggestion_bridge",
"debug_persist": true
}' | jqA4. Solution Hub
curl -X POST "https://czifxiwestltvhvcpgph.functions.supabase.co/chat-with-openai-v2" \
-H "Content-Type: application/json" \
-H "x-client-info: b44-1.2.3" \
-d '{
"user_text": "choose",
"chat_id": "<PASTE_CHAT_ID_HERE>",
"override_stage": "solution_type",
"set_stage_to": "solution_type",
"debug_persist": true
}' | jqA5a. Artefact Offer
curl -X POST "https://czifxiwestltvhvcpgph.functions.supabase.co/chat-with-openai-v2" \
-H "Content-Type: application/json" \
-H "x-client-info: b44-1.2.3" \
-d '{
"user_text": "I want resources",
"chat_id": "<PASTE_CHAT_ID_HERE>",
"override_stage": "artefact_offer",
"set_stage_to": "artefact_offer",
"debug_persist": true
}' | jqA5b. Facilitator Match Intent
curl -X POST "https://czifxiwestltvhvcpgph.functions.supabase.co/chat-with-openai-v2" \
-H "Content-Type: application/json" \
-H "x-client-info: b44-1.2.3" \
-d '{
"user_text": "I want to speak with an expert",
"chat_id": "<PASTE_CHAT_ID_HERE>",
"override_stage": "facilitator_match_intent",
"set_stage_to": "facilitator_match_intent",
"debug_persist": true
}' | jqScenario B — Some Clarity Entry (Triage 2)
B1. Triage 2 - Kickoff
Then follow A2-A5 with this chat_id
curl -X POST "https://czifxiwestltvhvcpgph.functions.supabase.co/chat-with-openai-v2" \
-H "Content-Type: application/json" \
-H "x-client-info: b44-1.2.3" \
-d '{
"user_text": "Kickoff – triage 2",
"base44_inquiry_id": "qa-'$(date +%s)'-b",
"journey_stage": "triage_selected_2",
"debug_persist": true
}' | jqScenario C — Knows Support Type (Triage 3)
C1. Triage 3 - Kickoff
curl -X POST "https://czifxiwestltvhvcpgph.functions.supabase.co/chat-with-openai-v2" \
-H "Content-Type: application/json" \
-H "x-client-info: b44-1.2.3" \
-d '{
"user_text": "Kickoff – triage 3",
"base44_inquiry_id": "qa-'$(date +%s)'-c",
"journey_stage": "triage_selected_3",
"debug_persist": true
}' | jqC2. Jump to Solution Type
curl -X POST "https://czifxiwestltvhvcpgph.functions.supabase.co/chat-with-openai-v2" \
-H "Content-Type: application/json" \
-H "x-client-info: b44-1.2.3" \
-d '{
"user_text": "choose",
"chat_id": "<PASTE_CHAT_ID_HERE>",
"override_stage": "solution_type",
"set_stage_to": "solution_type",
"debug_persist": true
}' | jqWhat to Verify on Each Response
1. Stage Fields
stage= stored stagedebug.effective_stage= stage that assembled this turn
2. Modules Assembled (debug.module_names)
- suggestion_bridge: includes
suggestion_bridge__A_reflect_and_ask,suggestion_bridge__B_curated_paths - solution_type: includes
solution_type__hub - artefact_offer: includes
artefact_offer__summary_brief - facilitator_match_intent: includes
facilitator_match_intent__soft_gate
3. Heartbeat
debug.last_message_at is non-null and updates
4. OpenAI Integration
debug.used_openai= true (when enabled)debug.oai_status= 200debug.modelshows the model used
Postman Collection (Import JSON)
Copy this JSON and import it into Postman
{
"info": {
"name": "Sense Makers QA - Staging",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
},
"variable": [
{
"key": "FN",
"value": "https://czifxiwestltvhvcpgph.functions.supabase.co/chat-with-openai-v2"
},
{
"key": "chat_id",
"value": ""
}
],
"item": [
{
"name": "0. Version Check (GET)",
"request": {
"method": "GET",
"header": [
{
"key": "x-client-info",
"value": "b44-1.2.3"
}
],
"url": "{{FN}}"
}
},
{
"name": "A1. Triage 1 - Kickoff",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const res = pm.response.json();",
"pm.collectionVariables.set('chat_id', res.chat_id);"
]
}
}
],
"request": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "x-client-info",
"value": "b44-1.2.3"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"user_text\": \"Kickoff – triage 1\",\n \"base44_inquiry_id\": \"qa-{{$timestamp}}\",\n \"journey_stage\": \"triage_selected_1\",\n \"debug_persist\": true\n}"
},
"url": "{{FN}}"
}
}
]
}