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 <noreply@anthropic.com>
This commit is contained in:
2026-06-04 20:22:23 +03:00
parent da40caa637
commit bb1aedfe2a
+11 -1
View File
@@ -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