feat: release 2.4.0 with original cases and automatic human review
This commit is contained in:
1 parent
baf069854b
commit
4dc2057d43
66 files changed
+1390
-206
No files matched your search
@@ -84,6 +84,9 @@ def _list_sessions_sync():
|
||||
with store.connection() as connection:
|
||||
exploration_runs = exploration_metadata(connection)
|
||||
jobs_by_id = store.jobs_for_sessions([str(row.get("session_id")) for row in rows])
|
||||
recorded_models = session_repo.get_recorded_model_info_map(
|
||||
[str(row.get("session_id")) for row in rows]
|
||||
)
|
||||
video_rec_map = session_repo.get_video_recordings_map()
|
||||
latest_recordings = session_repo.get_latest_video_recordings_map()
|
||||
agent_names_by_session = session_repo.get_agent_trace_names_map()
|
||||
@@ -217,6 +220,13 @@ def _list_sessions_sync():
|
||||
print(f"[list_sessions] Failed to update orphaned sessions: {e}")
|
||||
|
||||
for row in result:
|
||||
# Session history must not inherit today's global model configuration.
|
||||
row["model_info"] = {
|
||||
**row["model_info"],
|
||||
"id": "",
|
||||
"provider": "",
|
||||
**recorded_models.get(str(row.get("session_id")), {}),
|
||||
}
|
||||
if row.get("exploration_kind") == "validation" and row.get("exploration_case_name"):
|
||||
row["display_name"] = row["exploration_case_name"]
|
||||
model = row.pop("exploration_model", None)
|
||||
|
||||
@@ -441,6 +441,24 @@ async def get_status():
|
||||
)
|
||||
|
||||
model_info = model_service.get_active_model_info(active_profile)
|
||||
model_sid = running_sid if is_running else latest_session_id
|
||||
if model_info and model_sid:
|
||||
recorded_model = session_repo.get_recorded_model_info_map([str(model_sid)]).get(
|
||||
str(model_sid)
|
||||
)
|
||||
if not isinstance(recorded_model, dict):
|
||||
matching_task = next(
|
||||
(
|
||||
item
|
||||
for item in state.queue_items
|
||||
if isinstance(item, dict) and str(item.get("session_id")) == str(model_sid)
|
||||
),
|
||||
None,
|
||||
)
|
||||
override = (matching_task or {}).get("runtime_overrides") or {}
|
||||
model = override.get("model")
|
||||
recorded_model = {"id": model, "provider": "openai"} if model else {}
|
||||
model_info = {**model_info, "id": "", "provider": "", **recorded_model}
|
||||
|
||||
# Unified Global Queue: merge web tasks and external SDK/CLI device queue tickets
|
||||
global_queued = DeviceExecutionLock.get_queued_tasks()
|
||||
@@ -508,6 +526,12 @@ async def get_status():
|
||||
is_paused = state.is_paused
|
||||
conn_profile = conn_info.get("profile") or active_profile
|
||||
conn_model_info = model_service.get_active_model_info(conn_profile)
|
||||
if conn_model_info and model_info:
|
||||
conn_model_info = {
|
||||
**conn_model_info,
|
||||
"id": model_info["id"],
|
||||
"provider": model_info["provider"],
|
||||
}
|
||||
return {
|
||||
"status": "paused" if is_paused else "running",
|
||||
"paused_error": state.paused_error if is_paused else None,
|
||||
|
||||
Reference in new issue
Block a user