Created
May 24, 2026 06:03
-
-
Save jleechan2015/56f5764138be21bffe22219a090b67ee to your computer and use it in GitHub Desktop.
PR #7064 test_level_up_organic iteration_011 at 908585982e
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "test_name": "test_level_up_organic", | |
| "run_id": "test_level_up_organic-011-20260524T060215", | |
| "iteration": 11, | |
| "bundle_version": "1.2.0", | |
| "timestamp": "2026-05-24T06:02:15.682645+00:00", | |
| "bundle_timestamp": "2026-05-24T06:02:15.682645+00:00", | |
| "evidence_mode": "lightweight_prompt_tracking", | |
| "evidence_mode_notes": "System instruction captured as filenames + char_count (not full text). Raw LLM request/response payloads captured in request_responses.jsonl. Server logs in artifacts/. Bundle file inventory in artifacts/collection_log.txt.", | |
| "git_provenance": { | |
| "git_head": "908585982e8cfb327e564f4c00ecf2892503d6f9", | |
| "git_branch": "pr6958-zfc-evidence-followups", | |
| "merge_base": "104cc8b6615d005d9229a8dd31dc3655c2eede59", | |
| "commits_ahead_of_main": 51, | |
| "diff_stat_vs_main": ".beads/issues.jsonl | 29 +\n .claude/skills/code-standards/SKILL.md | 14 +-\n .claude/skills/repro-twin-clone-evidence/SKILL.md | 14 +-\n mvp_site/agents.py | 37 +-\n mvp_site/backend_adjustment_registry.py | 246 +----\n mvp_site/backend_adjustment_specs.py | 989 +++++++++++++++++++++\n mvp_site/backend_adjustment_types.py | 138 +++\n mvp_site/frontend_v1/app.js | 33 +-\n mvp_site/game_state.py | 39 +-\n mvp_site/llm_service.py | 110 +++\n mvp_site/prompts/level_up_instruction.md | 69 ++\n mvp_site/prompts/planning_protocol.md | 32 +-\n mvp_site/rewards_engine.py | 91 ++\n mvp_site/schemas/prompt_tool_contracts.json | 4 +-\n mvp_site/session_header_utils.py | 27 +-\n .../frontend/test_app_js_structured_fields.js | 2 +-\n .../test_agent_routing_with_state_validation.py | 2 +-\n mvp_site/tests/test_backend_adjustment_registry.py | 93 +-\n mvp_site/tests/test_llm_service_context.py | 15 +-\n mvp_site/tests/test_rewards_engine.py | 67 ++\n mvp_site/tests/test_session_header_enrichment.py | 80 ++\n mvp_site/tests/test_world_logic.py | 541 ++++++++++-\n mvp_site/world_logic.py | 63 +-\n roadmap/README.md | 1 +\n ...teps-2026-05-24-pr6958-adjuster-registration.md | 126 +++\n ...-05-24-pr7048-location-centralization-review.md | 72 ++\n scripts/copy_campaign.py | 9 +\n testing_mcp/core/test_level_up_organic.py | 4 +-\n testing_mcp/lib/base_test.py | 24 +-\n testing_mcp/lib/llm_response_cache/config.py | 29 +-\n .../lib/llm_response_cache/prompt_fingerprint.py | 5 +\n testing_mcp/lib/llm_response_cache/server_cache.py | 236 +++++\n .../lib/llm_response_cache/tests/test_config.py | 27 +\n 33 files changed, 2929 insertions(+), 339 deletions(-)", | |
| "working_tree_dirty": false, | |
| "working_tree_staged_changes": 0, | |
| "working_tree_unstaged_changes": 0, | |
| "working_tree_changed_files": [], | |
| "working_tree_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" | |
| }, | |
| "server": { | |
| "base_url": "http://127.0.0.1:8074", | |
| "hostname": "127.0.0.1", | |
| "mode": "local", | |
| "port": "8074", | |
| "pid": 29701, | |
| "process_cmdline": "/opt/homebrew/Cellar/[email protected]/3.12.11/Frameworks/Python.framework/Versions/3.12/Resources/Python.app/Contents/MacOS/Python -m gunicorn mvp_site.main:app --bind 0.0.0.0:8074 --workers 1 --worker-class gthread --threads 4 --timeout 600 --max-requests 1000 --access-logfile - --error-logfile - --log-level info", | |
| "env_vars": { | |
| "WORLDAI_DEV_MODE": "true", | |
| "TESTING": null, | |
| "MOCK_SERVICES_MODE": "false", | |
| "GOOGLE_APPLICATION_CREDENTIALS": "[SET - file:serviceAccountKey.json]", | |
| "WORLDAI_GOOGLE_APPLICATION_CREDENTIALS": "[SET - file:serviceAccountKey.json]", | |
| "FIRESTORE_EMULATOR_HOST": null, | |
| "PORT": "8074", | |
| "FIREBASE_PROJECT_ID": "worldarchitecture-ai", | |
| "GEMINI_API_KEY": "[SET - 39 chars]", | |
| "LLM_REQUEST_RESPONSE_CAPTURE_PATH": "/tmp/worldarchitect.ai/pr6958-zfc-evidence-followups/test_level_up_organic/iteration_011/llm_request_responses_1779602069623.jsonl", | |
| "HTTP_REQUEST_RESPONSE_CAPTURE_PATH": "/tmp/worldarchitect.ai/pr6958-zfc-evidence-followups/test_level_up_organic/iteration_011/http_request_responses_1779602069623.jsonl", | |
| "GEMINI_HTTP_REQUEST_RESPONSE_CAPTURE_PATH": "/tmp/worldarchitect.ai/pr6958-zfc-evidence-followups/test_level_up_organic/iteration_011/gemini_http_request_responses_1779602069623.jsonl", | |
| "MCP_TEST_PROVIDER_HTTP_CAPTURE_PATH": "/tmp/worldarchitect.ai/pr6958-zfc-evidence-followups/test_level_up_organic/iteration_011/provider_http_request_responses_1779602069623.jsonl" | |
| }, | |
| "lsof_output": "COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME\nPython 29701 jleechan 5u IPv4 0xd0283afd5e5b0899 0t0 TCP *:8074 (LISTEN)\nPython 29718 jleechan 5u IPv4 0xd0283afd5e5b0899 0t0 TCP *:8074 (LISTEN)", | |
| "ps_output": "PID USER ELAPSED ARGS\n29701 jleechan 07:26 /opt/homebrew/Cellar/[email protected]/3.12.11/Frameworks/Python.framework/Versions/3.12/Resources/Python.app/Contents/MacOS/Python -m gunicorn mvp_site.main:app --bind 0.0.0.0:8074 --workers 1 --worker-class gthread --threads 4 --timeout 600 --max-requests 1000 --access-logfile - --error-logfile - --log-level info" | |
| }, | |
| "provenance": { | |
| "git_fetch_origin_main": { | |
| "returncode": 0, | |
| "stdout": null, | |
| "stderr": "From https://github.com/jleechanorg/worldarchitect.ai\n * branch main -> FETCH_HEAD\nAuto packing the repository in background for optimum performance.\nSee \"git help gc\" for manual housekeeping.\nwarning: The last gc run reported the following. Please correct the root cause\nand remove /Users/jleechan/projects/worldarchitect.ai/.git/worktrees/worktree_autolvl/gc.log\nAutomatic cleanup will not be performed until the file is removed.\n\nwarning: There are too many unreachable loose objects; run 'git prune' to remove them." | |
| }, | |
| "git_head": "908585982e8cfb327e564f4c00ecf2892503d6f9", | |
| "git_branch": "pr6958-zfc-evidence-followups", | |
| "merge_base": "104cc8b6615d005d9229a8dd31dc3655c2eede59", | |
| "commits_ahead_of_main": 51, | |
| "diff_stat_vs_main": ".beads/issues.jsonl | 29 +\n .claude/skills/code-standards/SKILL.md | 14 +-\n .claude/skills/repro-twin-clone-evidence/SKILL.md | 14 +-\n mvp_site/agents.py | 37 +-\n mvp_site/backend_adjustment_registry.py | 246 +----\n mvp_site/backend_adjustment_specs.py | 989 +++++++++++++++++++++\n mvp_site/backend_adjustment_types.py | 138 +++\n mvp_site/frontend_v1/app.js | 33 +-\n mvp_site/game_state.py | 39 +-\n mvp_site/llm_service.py | 110 +++\n mvp_site/prompts/level_up_instruction.md | 69 ++\n mvp_site/prompts/planning_protocol.md | 32 +-\n mvp_site/rewards_engine.py | 91 ++\n mvp_site/schemas/prompt_tool_contracts.json | 4 +-\n mvp_site/session_header_utils.py | 27 +-\n .../frontend/test_app_js_structured_fields.js | 2 +-\n .../test_agent_routing_with_state_validation.py | 2 +-\n mvp_site/tests/test_backend_adjustment_registry.py | 93 +-\n mvp_site/tests/test_llm_service_context.py | 15 +-\n mvp_site/tests/test_rewards_engine.py | 67 ++\n mvp_site/tests/test_session_header_enrichment.py | 80 ++\n mvp_site/tests/test_world_logic.py | 541 ++++++++++-\n mvp_site/world_logic.py | 63 +-\n roadmap/README.md | 1 +\n ...teps-2026-05-24-pr6958-adjuster-registration.md | 126 +++\n ...-05-24-pr7048-location-centralization-review.md | 72 ++\n scripts/copy_campaign.py | 9 +\n testing_mcp/core/test_level_up_organic.py | 4 +-\n testing_mcp/lib/base_test.py | 24 +-\n testing_mcp/lib/llm_response_cache/config.py | 29 +-\n .../lib/llm_response_cache/prompt_fingerprint.py | 5 +\n testing_mcp/lib/llm_response_cache/server_cache.py | 236 +++++\n .../lib/llm_response_cache/tests/test_config.py | 27 +\n 33 files changed, 2929 insertions(+), 339 deletions(-)", | |
| "working_tree_staged_changes": 0, | |
| "working_tree_unstaged_changes": 0, | |
| "working_tree_untracked_files": 0, | |
| "working_tree_changed_files": [], | |
| "working_tree_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", | |
| "working_tree_dirty": false, | |
| "server": { | |
| "base_url": "http://127.0.0.1:8074", | |
| "hostname": "127.0.0.1", | |
| "mode": "local", | |
| "port": "8074", | |
| "pid": 29701, | |
| "process_cmdline": "/opt/homebrew/Cellar/[email protected]/3.12.11/Frameworks/Python.framework/Versions/3.12/Resources/Python.app/Contents/MacOS/Python -m gunicorn mvp_site.main:app --bind 0.0.0.0:8074 --workers 1 --worker-class gthread --threads 4 --timeout 600 --max-requests 1000 --access-logfile - --error-logfile - --log-level info", | |
| "env_vars": { | |
| "WORLDAI_DEV_MODE": "true", | |
| "TESTING": null, | |
| "MOCK_SERVICES_MODE": "false", | |
| "GOOGLE_APPLICATION_CREDENTIALS": "[SET - file:serviceAccountKey.json]", | |
| "WORLDAI_GOOGLE_APPLICATION_CREDENTIALS": "[SET - file:serviceAccountKey.json]", | |
| "FIRESTORE_EMULATOR_HOST": null, | |
| "PORT": "8074", | |
| "FIREBASE_PROJECT_ID": "worldarchitecture-ai", | |
| "GEMINI_API_KEY": "[SET - 39 chars]", | |
| "LLM_REQUEST_RESPONSE_CAPTURE_PATH": "/tmp/worldarchitect.ai/pr6958-zfc-evidence-followups/test_level_up_organic/iteration_011/llm_request_responses_1779602069623.jsonl", | |
| "HTTP_REQUEST_RESPONSE_CAPTURE_PATH": "/tmp/worldarchitect.ai/pr6958-zfc-evidence-followups/test_level_up_organic/iteration_011/http_request_responses_1779602069623.jsonl", | |
| "GEMINI_HTTP_REQUEST_RESPONSE_CAPTURE_PATH": "/tmp/worldarchitect.ai/pr6958-zfc-evidence-followups/test_level_up_organic/iteration_011/gemini_http_request_responses_1779602069623.jsonl", | |
| "MCP_TEST_PROVIDER_HTTP_CAPTURE_PATH": "/tmp/worldarchitect.ai/pr6958-zfc-evidence-followups/test_level_up_organic/iteration_011/provider_http_request_responses_1779602069623.jsonl" | |
| }, | |
| "lsof_output": "COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME\nPython 29701 jleechan 5u IPv4 0xd0283afd5e5b0899 0t0 TCP *:8074 (LISTEN)\nPython 29718 jleechan 5u IPv4 0xd0283afd5e5b0899 0t0 TCP *:8074 (LISTEN)", | |
| "ps_output": "PID USER ELAPSED ARGS\n29701 jleechan 07:26 /opt/homebrew/Cellar/[email protected]/3.12.11/Frameworks/Python.framework/Versions/3.12/Resources/Python.app/Contents/MacOS/Python -m gunicorn mvp_site.main:app --bind 0.0.0.0:8074 --workers 1 --worker-class gthread --threads 4 --timeout 600 --max-requests 1000 --access-logfile - --error-logfile - --log-level info" | |
| }, | |
| "timestamp": "2026-05-24T06:02:15.166351+00:00", | |
| "test_file": "/Users/jleechan/projects/worktree_autolvl/testing_mcp/core/test_level_up_organic.py" | |
| }, | |
| "summary": { | |
| "total_scenarios": 4, | |
| "passed": 2, | |
| "failed": 2, | |
| "campaign_capture_total": 1, | |
| "campaign_capture_passed": 1, | |
| "campaign_capture_failed": 0, | |
| "raw_passed": 1, | |
| "raw_total": 2, | |
| "raw_pass_rate": "50.0%" | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "scenarios": [ | |
| { | |
| "name": "finish_intent_prompt_and_classifier", | |
| "passed": true, | |
| "campaign_id": null, | |
| "user_id": "deterministic", | |
| "errors": [], | |
| "user_email": "[email protected]" | |
| }, | |
| { | |
| "name": "single_organic_level_up", | |
| "passed": false, | |
| "errors": [ | |
| "single_organic_level_up_final: codex leveling review did not pass; output=VERDICT: FAIL\n\n- Blocking gap: the first level-up modal recommends prepared spells, but its planning-block choices only expose finish, HP, and Fighting Style edits. There is no spell-preparation edit path, so not all player-selectable recommended selections are editable before finish.\n- Proven: `level_up_now` opens the modal at `current_level: 1 -> target_level: 2` without committing level 2 immediately, and the first modal response visibly includes `Recommended package:`.\n- Proven: one free-form edit changes the recommended Fighting Style to Dueling, keeps the modal open, and preserves finish plus edit choices.\n- Proven: finish commits once, clears `level_up_pending` / `level_up_in_progress`, deletes pending selections, sets level 2, and resumes concrete combat/story choices.\n- No explicit legacy `level_up_signal.level_up` boolean, `level_up_signal.level_up=false`, or legacy `level_up_signal.new_level` defect found. Final XP/level display looks coherent for level 2: 306 XP, 594 XP to next level.\n" | |
| ], | |
| "campaign_id": "I5fO8BF4Pnc7IOczDbIg", | |
| "progression": [ | |
| { | |
| "target_level": 2, | |
| "start_level": 1, | |
| "start_xp": 0, | |
| "end_xp": 306, | |
| "end_level": 2, | |
| "triggered": true, | |
| "completed": true, | |
| "immediate_choice_ids": [ | |
| "level_up_now", | |
| "press_the_attack", | |
| "defensive_posture" | |
| ], | |
| "polled_choice_ids": [ | |
| "level_up_now", | |
| "press_the_attack", | |
| "defensive_posture" | |
| ], | |
| "completion_transcript": [ | |
| { | |
| "step": "enter_level_up", | |
| "action": "CHOICE:level_up_now", | |
| "choice_ids": [ | |
| "finish_level_up_return_to_game", | |
| "level_up_hp_roll", | |
| "level_up_fighting_style_dueling", | |
| "level_up_fighting_style_protection" | |
| ], | |
| "response_text_preview": "Midday (12:01:00). As you strike the construct, a surge of golden radiance erupts from the marble floor, spiraling around you like a celestial cyclone. The ozone in the air thickens, and for a fleeting moment, the humming of the arena harmonizes with the beating of your own heart. The Architects are not merely testing your skill; they are unlocking the latent power within your oath. \n\nYou feel the weight of your sword and shield change\u2014not becoming heavier, but more purposeful. Visions of sacred", | |
| "finish_choice": { | |
| "id": "finish_level_up_return_to_game", | |
| "text": "Apply Recommended Options and Return to Game", | |
| "description": "Accept +8 HP, Defense Fighting Style, and prepared spells (Bless, Cure Wounds, Divine Favor).", | |
| "risk_level": "safe", | |
| "freeze_time": true | |
| }, | |
| "has_planning_block": true | |
| }, | |
| { | |
| "step": "free_form_edit_fighting_style", | |
| "action": "Change my recommended fighting style to Dueling, keep every other level-up recommendation pending, and keep the level-up modal open.", | |
| "choice_ids": [ | |
| "finish_level_up_return_to_game", | |
| "level_up_hp_roll", | |
| "level_up_fighting_style_defense", | |
| "level_up_fighting_style_protection" | |
| ], | |
| "has_planning_block": true, | |
| "still_level_up_active": true, | |
| "before_xp": 306, | |
| "after_xp": 306, | |
| "response_text_preview": "Midday (12:01:00) in the Divine Gauntlet Entrance\u2014the resonance of the Architects' trial hums through your armor as the level-up ritual continues. Your focus shifts, the golden light of the arena responding to your intent as you weigh the nuances of your martial calling. The crystalline interface before you shimmers, adjusting its display to reflect your preference for the Dueling fighting style. Your longsword feels heavier, more lethal in your grip, as the gauntlet prepares to weave this new m" | |
| }, | |
| { | |
| "step": "escape_attempt_without_finish", | |
| "action": "I try to leave the level-up modal and continue the adventure without choosing the finish level-up option.", | |
| "choice_ids": [ | |
| "finish_level_up_return_to_game", | |
| "level_up_hp_roll", | |
| "level_up_fighting_style_defense", | |
| "level_up_fighting_style_protection" | |
| ], | |
| "has_planning_block": true, | |
| "still_level_up_active": true, | |
| "before_xp": 306, | |
| "after_xp": 306 | |
| }, | |
| { | |
| "step": "level_up_step_1", | |
| "action": "CHOICE:level_up_hp_roll", | |
| "choice_ids": [ | |
| "finish_level_up_return_to_game", | |
| "level_up_hp_fixed", | |
| "level_up_fighting_style_defense" | |
| ], | |
| "has_planning_block": true, | |
| "before_xp": 306, | |
| "after_xp": 306 | |
| }, | |
| { | |
| "step": "level_up_step_2", | |
| "action": "CHOICE:level_up_hp_fixed", | |
| "choice_ids": [ | |
| "finish_level_up_return_to_game", | |
| "level_up_hp_roll", | |
| "level_up_fighting_style_defense" | |
| ], | |
| "has_planning_block": true, | |
| "before_xp": 306, | |
| "after_xp": 306 | |
| }, | |
| { | |
| "step": "level_up_step_3", | |
| "action": "CHOICE:finish_level_up_return_to_game", | |
| "choice_ids": [ | |
| "attack_with_smite", | |
| "cast_divine_favor", | |
| "standard_attack", | |
| "use_lay_on_hands" | |
| ], | |
| "has_planning_block": true, | |
| "before_xp": 306, | |
| "after_xp": 306 | |
| }, | |
| { | |
| "step": "post_finish_state_poll", | |
| "action": "get_campaign_state", | |
| "level": 2, | |
| "level_up_in_progress": false, | |
| "rewards_pending_level_up": null, | |
| "persisted_choice_ids": [ | |
| "attack_with_smite", | |
| "cast_divine_favor", | |
| "standard_attack", | |
| "use_lay_on_hands" | |
| ] | |
| } | |
| ] | |
| } | |
| ], | |
| "final_level": 2, | |
| "user_id": "test-test_level_up_organic-1779602069", | |
| "user_email": "[email protected]", | |
| "details": { | |
| "chunk_count_observed": 609, | |
| "chunk_count": 609, | |
| "done_chunk_count": 609, | |
| "request_ts": "2026-05-24T05:54:55.657009+00:00", | |
| "response_ts": "2026-05-24T05:59:45.072448+00:00", | |
| "stream_actions": 16, | |
| "execution_path": "streaming" | |
| }, | |
| "raw_response_text": "{\n \"session_header\": \"[SESSION_HEADER]\\nTimestamp: 1492 DR, Hammer 1, 08:00:00\\nLocation: Divine Gauntlet Entrance\\nStatus: Lvl 1 [Class] | HP: --/-- | XP: 0/300 | Gold: 0gp\",\n \"resources\": \"HD: 0/1 | Spells: No Spells Yet | Exhaustion: 0\",\n \"narrative\": \"[CHARACTER CREATION - Method Selection]\\n\\nWelcome to the Divine Training Gauntlet. You stand before the shimmering archway of the celestial arena, where the constructs of the architects await those who seek to test their mettle. Before you can engage in the sacred sparring rituals, we must determine the nature of your existence.\\n\\n**CAMPAIGN SUMMARY**\\n**Title:** Divine Training Gauntlet\\n**Character:** Not specified\\n**Setting:** A divine training gauntlet of sparring constructs\\n**Description:** Real MCP organic progression test in a divine training gauntlet. The campaign should use normal st...\\n**AI Personalities:** Standard\\n**Options:** D&D 5E SRD\\n\\nHow would you like to proceed with your character's creation?\",\n \"planning_block\": {\n \"thinking\": \"The user is initiating character creation. I must present the three standard creation methods and ensure the character_creation_stage is updated accordingly in the state. I will also include the mandatory finish choice.\",\n \"choices\": [\n {\n \"id\": \"ai_generated\",\n \"text\": \"AI Generated\",\n \"description\": \"Let the AI create a complete character for you based on a theme or concept.\",\n \"risk_level\": \"safe\"\n },\n {\n \"id\": \"standard_dnd\",\n \"text\": \"Standard D&D\",\n \"description\": \"Follow the traditional step-by-step process: Race, Class, Abilities, and Gear.\",\n \"risk_level\": \"safe\"\n },\n {\n \"id\": \"custom_class\",\n \"text\": \"Custom Class\",\n \"description\": \"Design a unique class with the AI's assistance for a custom experience.\",\n \"risk_level\": \"safe\"\n },\n {\n \"id\": \"finish_character_creation_start_game\",\n \"text\": \"Finish Character Creation and Start Game\",\n \"description\": \"Note: A character must be fully defined before you can begin the adventure.\",\n \"risk_level\": \"safe\"\n }\n ]\n },\n \"god_mode_response\": \"\",\n \"entities_mentioned\": [],\n \"location_confirmed\": \"Divine Gauntlet Entrance\",\n \"state_updates\": {\n \"custom_campaign_state\": {\n \"character_creation_stage\": \"method_selection\"\n }\n }\n}", | |
| "model": "gemini-3-flash-preview" | |
| }, | |
| { | |
| "name": "EVIDENCE_SIGNATURE_GUARD", | |
| "passed": true, | |
| "signed_count": 16, | |
| "user_id": "test-test_level_up_organic-1779602069" | |
| }, | |
| { | |
| "name": "PROVENANCE_VALIDATION", | |
| "passed": false, | |
| "errors": [ | |
| "Git commit drift detected: start=0255862b, end=90858598. Evidence bundle requires stable commit." | |
| ] | |
| } | |
| ], | |
| "summary": { | |
| "total": 4, | |
| "passed": 2, | |
| "failed": 2, | |
| "pass_rate": "2/4 (50%)", | |
| "raw_total": 2, | |
| "raw_passed": 1, | |
| "raw_pass_rate": "50.0%", | |
| "raw_data_complete": true | |
| }, | |
| "doctor_report": { | |
| "generated_at_utc": "2026-05-24T06:02:15.535681+00:00", | |
| "test_name": "test_level_up_organic", | |
| "work_name": "test_level_up_organic", | |
| "server_base_url": "http://127.0.0.1:8074", | |
| "using_external_server": false, | |
| "user_id": "test-test_level_up_organic-1779602069", | |
| "failure_messages": [ | |
| "single_organic_level_up_final: codex leveling review did not pass; output=VERDICT: FAIL\n\n- Blocking gap: the first level-up modal recommends prepared spells, but its planning-block choices only expose finish, HP, and Fighting Style edits. There is no spell-preparation edit path, so not all player-selectable recommended selections are editable before finish.\n- Proven: `level_up_now` opens the modal at `current_level: 1 -> target_level: 2` without committing level 2 immediately, and the first modal response visibly includes `Recommended package:`.\n- Proven: one free-form edit changes the recommended Fighting Style to Dueling, keeps the modal open, and preserves finish plus edit choices.\n- Proven: finish commits once, clears `level_up_pending` / `level_up_in_progress`, deletes pending selections, sets level 2, and resumes concrete combat/story choices.\n- No explicit legacy `level_up_signal.level_up` boolean, `level_up_signal.level_up=false`, or legacy `level_up_signal.new_level` defect found. Final XP/level display looks coherent for level 2: 306 XP, 594 XP to next level.\n", | |
| "Git commit drift detected: start=0255862b, end=90858598. Evidence bundle requires stable commit." | |
| ], | |
| "http_probes": { | |
| "/health": { | |
| "ok": true, | |
| "status": 200, | |
| "body_excerpt": "{\"mcp_client\":{\"initialized\":false},\"service\":\"worldarchitect-ai\",\"status\":\"healthy\",\"timestamp\":\"2026-05-24T06:02:15.536872+00:00\"}\n", | |
| "is_json_api": true, | |
| "content_type": "application/json" | |
| }, | |
| "/mcp": { | |
| "ok": true, | |
| "status": 200, | |
| "body_excerpt": "<!doctype html>\n<html lang=\"en\">\n\n<head>\n <meta charset=\"UTF-8\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n <link rel=\"icon\" type=\"image/svg+xml\" href=\"/frontend_v1/dragon-favicon.svg\" />\n <title>WorldAI</title>\n <!-- DNS prefetch for external domains to reduce", | |
| "is_json_api": false, | |
| "content_type": "text/html; charset=utf-8" | |
| }, | |
| "/settings": { | |
| "ok": true, | |
| "status": 200, | |
| "body_excerpt": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"UTF-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n <script src=\"/frontend_v1/js/theme-bootstrap.js\"></script>\n <link rel=\"icon\" type=\"image/svg+xml\" href=\"/frontend_v1/dragon-favicon.svg\">\n <title>Se", | |
| "is_json_api": false, | |
| "content_type": "text/html; charset=utf-8" | |
| } | |
| }, | |
| "mcp_probes": { | |
| "get_user_settings": { | |
| "ok": true, | |
| "payload": { | |
| "cerebras_model": "qwen-3-235b-a22b-instruct-2507", | |
| "gemini_model": "gemini-3-flash-preview", | |
| "has_custom_cerebras_key": false, | |
| "has_custom_gemini_key": false, | |
| "has_custom_openclaw_gateway_token": false, | |
| "has_custom_openclaw_key": false, | |
| "has_custom_openrouter_key": false, | |
| "llm_provider": "gemini", | |
| "openclaw_gateway_port": 18789, | |
| "openclaw_gateway_url": "", | |
| "openrouter_model": "meta-llama/llama-3.1-70b-instruct", | |
| "success": true | |
| } | |
| } | |
| }, | |
| "openclaw_endpoint_probes": [ | |
| { | |
| "target": "http://127.0.0.1:18789/v1/models", | |
| "probe": { | |
| "ok": false, | |
| "error": "<urlopen error [Errno 61] Connection refused>" | |
| } | |
| } | |
| ], | |
| "openclaw_settings": { | |
| "llm_provider": "gemini", | |
| "openclaw_gateway_port": 18789, | |
| "openclaw_gateway_url": "" | |
| }, | |
| "doctor_report_path": "/tmp/worldarchitect.ai/pr6958-zfc-evidence-followups/test_level_up_organic/doctor_report.json" | |
| }, | |
| "campaign_capture_status": { | |
| "I5fO8BF4Pnc7IOczDbIg": { | |
| "status": "success", | |
| "attempts": 1, | |
| "export": { | |
| "status": "success" | |
| } | |
| } | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| ====================================================================== | |
| TEST LEVEL UP ORGANIC | |
| ====================================================================== | |
| Work name: test_level_up_organic | |
| Model: gemini-3-flash-preview | |
| ====================================================================== | |
| π Evidence directory: /tmp/worldarchitect.ai/pr6958-zfc-evidence-followups/test_level_up_organic | |
| Evidence will be saved to: /tmp/worldarchitect.ai/pr6958-zfc-evidence-followups/test_level_up_organic/iteration_XXX/ | |
| π Base evidence directory (forced branch-scoped /tmp): /tmp/worldarchitect.ai/pr6958-zfc-evidence-followups/test_level_up_organic | |
| Created iteration directory for evidence: /tmp/worldarchitect.ai/pr6958-zfc-evidence-followups/test_level_up_organic/iteration_011 | |
| π Starting fresh local MCP server on port 8074... | |
| β Server ready at http://127.0.0.1:8074 | |
| Tmux video recording started for evidence bundle. | |
| β PROVENANCE VALIDATION FAILED: Git commit drift detected: start=0255862b, end=90858598. Evidence bundle requires stable commit. | |
| β Captured campaign snapshot for I5fO8BF4 | |
| π©Ί Doctor mode report: /tmp/worldarchitect.ai/pr6958-zfc-evidence-followups/test_level_up_organic/doctor_report.json | |
| Tmux video artifact finalized (.cast). | |
| ================================================================================ | |
| π¦ EVIDENCE BUNDLE CREATED | |
| ================================================================================ | |
| π Evidence Directory: | |
| /tmp/worldarchitect.ai/pr6958-zfc-evidence-followups/test_level_up_organic/iteration_011 | |
| π Bundle Metadata: | |
| Run ID: test_level_up_organic-011-20260524T060215 | |
| Iteration: 11 | |
| Bundle Version: 1.2.0 | |
| π Evidence directory: /tmp/worldarchitect.ai/pr6958-zfc-evidence-followups/test_level_up_organic/iteration_011 | |
| π Latest iteration: /tmp/worldarchitect.ai/pr6958-zfc-evidence-followups/test_level_up_organic/iteration_011 | |
| π₯ Downloading 1 test campaigns (workers=1)... | |
| Downloading to: /tmp/worldarchitect.ai/pr6958-zfc-evidence-followups/test_level_up_organic/iteration_011/campaigns | |
| Format: txt | |
| ============================================================ | |
| Downloading: I5fO8BF4Pnc7IOczDbIg... | |
| Saved story: Organic Level-Up Progression Test_I5fO8BF4.txt | |
| Saved game state: Organic Level-Up Progression Test_I5fO8BF4_game_state.json | |
| Entries: 34, Story size: 22.7 KB, Game state size: 8.8 KB | |
| ============================================================ | |
| Downloaded 1/1 campaigns | |
| stderr: 2026-05-23 23:02:16,467 - root - INFO - Unified logging configured: /var/folders/j0/byd1z6px50v88lf679bgt0h00000gn/T/worldarchitect.ai/pr6958-zfc-evidence-followups/app.log | |
| stderr: 2026-05-23 23:02:16,467 - root - INFO - Applied clock skew patch: adjusting time by -720 seconds | |
| stderr: 2026-05-23 23:02:17,380 - root - INFO - Firebase not initialized - attempting to initialize now | |
| stderr: 2026-05-23 23:02:17,381 - root - INFO - Loading service account from file: /Users/jleechan/serviceAccountKey.json | |
| stderr: 2026-05-23 23:02:17,381 - root - INFO - β Successfully loaded credentials from file: /Users/jleechan/serviceAccountKey.json | |
| stderr: 2026-05-23 23:02:17,381 - root - INFO - Successfully loaded service account credentials | |
| stderr: 2026-05-23 23:02:17,973 - root - INFO - π FETCHED STORY ENTRIES: user=test-test_level_up_organic-1779602069, campaign=I5fO8BF4Pnc7IOczDbIg, total_entries=34 | |
| stderr: 2026-05-23 23:02:17,973 - root - INFO - π STORY BREAKDOWN: user_entries=17, ai_entries=17, other_entries=0 | |
| stderr: 2026-05-23 23:02:17,973 - root - INFO - π RECENT ENTRIES (last 5): | |
| stderr: 2026-05-23 23:02:17,973 - root - INFO - 1. [gemini] character | Midday (12:01:00) in the Divine Gauntlet Entranceβ... | 2026-05-24 05:59:03.656146+00:00 | |
| stderr: 2026-05-23 23:02:17,973 - root - INFO - 2. [user] character | Switch to Fixed HP (+8) - Discard the roll and tak... | 2026-05-24 05:59:18.568970+00:00 | |
| stderr: 2026-05-23 23:02:17,973 - root - INFO - 3. [gemini] character | Midday (12:01:00) in the Divine Gauntlet Entranceβ... | 2026-05-24 05:59:19.016018+00:00 | |
| stderr: 2026-05-23 23:02:17,973 - root - INFO - 4. [user] character | Apply Recommended Options and Return to Game - Acc... | 2026-05-24 05:59:44.174538+00:00 | |
| stderr: 2026-05-23 23:02:17,973 - root - INFO - 5. [gemini] character | Midday (12:01:00). The golden energy swirling arou... | 2026-05-24 05:59:44.639750+00:00 | |
| β Downloaded campaign I5fO8BF4... (34 entries) | |
| β Downloaded campaign I5fO8BF4... (34 entries, user_id=test-test_level_up_organic-1779602069) | |
| π¦ Downloaded 1/1 campaigns to: | |
| /tmp/worldarchitect.ai/pr6958-zfc-evidence-followups/test_level_up_organic/iteration_011/campaigns | |
| βΉοΈ Reconciled campaign_capture_status with exported campaign artifacts. | |
| ================================================================================ | |
| β TEST EVIDENCE SUMMARY | |
| ================================================================================ | |
| π Evidence Location: /tmp/worldarchitect.ai/pr6958-zfc-evidence-followups/test_level_up_organic/iteration_011 | |
| π₯ Campaigns Location: /tmp/worldarchitect.ai/pr6958-zfc-evidence-followups/test_level_up_organic/iteration_011/campaigns | |
| π Latest Symlink: /tmp/worldarchitect.ai/pr6958-zfc-evidence-followups/test_level_up_organic/latest | |
| ================================================================================ | |
| π Iteration artifact captured: /tmp/worldarchitect.ai/pr6958-zfc-evidence-followups/test_level_up_organic/iteration_011/scenario_results_checkpoint.json | |
| π Iteration artifact captured: /tmp/worldarchitect.ai/pr6958-zfc-evidence-followups/test_level_up_organic/iteration_011/doctor_report.json | |
| π Final evidence iteration directory: /tmp/worldarchitect.ai/pr6958-zfc-evidence-followups/test_level_up_organic/iteration_011 | |
| ====================================================================== | |
| SUMMARY | |
| ====================================================================== | |
| Total scenarios: 4 | |
| Passed: 2 | |
| Failed: 2 | |
| Pass rate: 2/4 (50%) | |
| π¦ Evidence bundle created: /tmp/worldarchitect.ai/pr6958-zfc-evidence-followups/test_level_up_organic | |
| Files: 23 with checksums |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment