From bb1aedfe2a8d10502e8c4308e293f1696584875f Mon Sep 17 00:00:00 2001 From: gleb Date: Thu, 4 Jun 2026 20:22:23 +0300 Subject: [PATCH] fix: read teacher feedback from submission.grade.feedback BroJS stores teacher comments in submission.grade.feedback, not in the top-level comments array (which is always empty). Fixed priority: submission.grade.feedback -> submission.feedback -> data.feedback -> data.comments Co-Authored-By: Claude Sonnet 4.5 --- solve_task.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/solve_task.py b/solve_task.py index c0dae53..405028c 100644 --- a/solve_task.py +++ b/solve_task.py @@ -177,10 +177,20 @@ async def _get_task_meta(task_id: str) -> dict: print(f" [meta] Не удалось проверить Gitea: {e}") # 2. Читаем комментарии из BroJS + # BroJS хранит фидбэк преподавателя в submission.grade.feedback, + # а не в верхнеуровневом поле comments (которое всегда пустой массив). try: raw = await mcp_call("task_get", {"taskId": task_id}) data = json.loads(raw) - comments = data.get("comments") or data.get("feedback", "") or "" + submission = data.get("submission", data) + # Приоритет: submission.grade.feedback → data.feedback → data.comments + comments = ( + (submission.get("grade") or {}).get("feedback", "") + or submission.get("feedback", "") + or data.get("feedback", "") + or data.get("comments", "") + or "" + ) if isinstance(comments, list): comments = "\n".join( c.get("text", c.get("content", str(c))) for c in comments if c