Nanda Kumar Kondreddy commited on
Commit ·
b8c69e2
1
Parent(s): c256e38
CRITICAL RUNTIME FIX: Remove tuple unpacking from environment handlers - graders now return FLOAT only, not tuples
Browse files- server/config_debug_environment.py +15 -5
- server/env.py +15 -3
server/config_debug_environment.py
CHANGED
|
@@ -56,15 +56,25 @@ class ConfigDebugEnvironment(Environment):
|
|
| 56 |
task_id = self._current_task_id()
|
| 57 |
task = get_task(task_id)
|
| 58 |
|
| 59 |
-
# Run the grader
|
| 60 |
-
|
| 61 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 62 |
|
| 63 |
self.current_step += 1
|
| 64 |
self._global_step += 1
|
| 65 |
-
self.bugs_found_so_far =
|
| 66 |
self.previous_reward = round(reward, 4)
|
| 67 |
-
self.current_error_message =
|
| 68 |
|
| 69 |
# Check if task is complete
|
| 70 |
task_done = reward >= 0.99 or self.current_step >= MAX_STEPS_PER_TASK
|
|
|
|
| 56 |
task_id = self._current_task_id()
|
| 57 |
task = get_task(task_id)
|
| 58 |
|
| 59 |
+
# Run the grader - now returns FLOAT ONLY for validator compatibility
|
| 60 |
+
grader_result = task.grader(action.fixed_config)
|
| 61 |
+
|
| 62 |
+
# Handle result gracefully (should be float)
|
| 63 |
+
if isinstance(grader_result, float):
|
| 64 |
+
reward = grader_result
|
| 65 |
+
elif isinstance(grader_result, tuple) and len(grader_result) > 0:
|
| 66 |
+
# Fallback for legacy tuple format
|
| 67 |
+
reward = grader_result[0]
|
| 68 |
+
else:
|
| 69 |
+
reward = 0.01 # Safe default
|
| 70 |
+
|
| 71 |
+
reward = max(0.01, min(0.99, reward))
|
| 72 |
|
| 73 |
self.current_step += 1
|
| 74 |
self._global_step += 1
|
| 75 |
+
self.bugs_found_so_far = 0 # Default since grader no longer returns this
|
| 76 |
self.previous_reward = round(reward, 4)
|
| 77 |
+
self.current_error_message = "" # Default since grader no longer returns this
|
| 78 |
|
| 79 |
# Check if task is complete
|
| 80 |
task_done = reward >= 0.99 or self.current_step >= MAX_STEPS_PER_TASK
|
server/env.py
CHANGED
|
@@ -284,13 +284,25 @@ def ui_step(fixed_config):
|
|
| 284 |
|
| 285 |
task_id = _get_current_task_id()
|
| 286 |
task = get_task(task_id)
|
| 287 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 288 |
reward = max(0.01, min(0.99, reward))
|
| 289 |
|
| 290 |
env_state.current_step += 1
|
| 291 |
-
env_state.bugs_found_so_far =
|
| 292 |
env_state.previous_reward = round(reward, 4)
|
| 293 |
-
env_state.current_error_message =
|
| 294 |
|
| 295 |
task_done = reward >= 0.99 or env_state.current_step >= MAX_STEPS_PER_TASK
|
| 296 |
|
|
|
|
| 284 |
|
| 285 |
task_id = _get_current_task_id()
|
| 286 |
task = get_task(task_id)
|
| 287 |
+
|
| 288 |
+
# Run the grader - now returns FLOAT ONLY for validator compatibility
|
| 289 |
+
grader_result = task.grader(fixed_config)
|
| 290 |
+
|
| 291 |
+
# Handle result gracefully (should be float)
|
| 292 |
+
if isinstance(grader_result, float):
|
| 293 |
+
reward = grader_result
|
| 294 |
+
elif isinstance(grader_result, tuple) and len(grader_result) > 0:
|
| 295 |
+
# Fallback for legacy tuple format
|
| 296 |
+
reward = grader_result[0]
|
| 297 |
+
else:
|
| 298 |
+
reward = 0.01 # Safe default
|
| 299 |
+
|
| 300 |
reward = max(0.01, min(0.99, reward))
|
| 301 |
|
| 302 |
env_state.current_step += 1
|
| 303 |
+
env_state.bugs_found_so_far = 0 # Default since grader no longer returns this
|
| 304 |
env_state.previous_reward = round(reward, 4)
|
| 305 |
+
env_state.current_error_message = "" # Default since grader no longer returns this
|
| 306 |
|
| 307 |
task_done = reward >= 0.99 or env_state.current_step >= MAX_STEPS_PER_TASK
|
| 308 |
|