MCPcopy Create free account
hub / github.com/CodeClash-ai/CodeClash / load_trajectory_diffs

Function load_trajectory_diffs

codeclash/viewer/app.py:1342–1386  ·  view source on GitHub ↗

Load trajectory diff data on demand

()

Source from the content-addressed store, hash-verified

1340@app.route("/load-trajectory-diffs")
1341@print_timing
1342def load_trajectory_diffs():
1343 """Load trajectory diff data on demand"""
1344 # Don't allow diff loading in static mode (already embedded) - skip freezing
1345 if STATIC_MODE:
1346 return redirect(url_for("index"))
1347
1348 selected_folder = request.args.get("folder")
1349 player_name = request.args.get("player")
1350 round_num = request.args.get("round")
1351
1352 if not all([selected_folder, player_name, round_num]):
1353 return jsonify({"success": False, "error": "Missing required parameters"}), 400
1354
1355 try:
1356 round_num = int(round_num)
1357 except ValueError:
1358 return jsonify({"success": False, "error": "Invalid round number"}), 400
1359
1360 try:
1361 # Validate the selected folder exists and is a game folder
1362 folder_path = LOG_BASE_DIR / selected_folder
1363 if not folder_path.exists() or not is_game_folder(folder_path):
1364 return jsonify({"success": False, "error": "Invalid game folder"}), 404
1365
1366 # Parse trajectory with diffs loaded
1367 parser = LogParser(folder_path)
1368 trajectory = parser.parse_trajectory(player_name, round_num, load_diffs=True)
1369
1370 if not trajectory:
1371 return jsonify({"success": False, "error": "Trajectory not found"}), 404
1372
1373 return jsonify(
1374 {
1375 "success": True,
1376 "diff": trajectory.diff,
1377 "incremental_diff": trajectory.incremental_diff,
1378 "modified_files": trajectory.modified_files,
1379 "diff_by_files": trajectory.diff_by_files,
1380 "incremental_diff_by_files": trajectory.incremental_diff_by_files,
1381 }
1382 )
1383
1384 except Exception as e:
1385 logger.error(f"Error loading trajectory diffs: {e}", exc_info=True)
1386 return jsonify({"success": False, "error": str(e)}), 500
1387
1388
1389@app.route("/batch")

Callers

nothing calls this directly

Calls 4

parse_trajectoryMethod · 0.95
is_game_folderFunction · 0.85
LogParserClass · 0.85
getMethod · 0.80

Tested by

no test coverage detected