feat: note scoring 60/6 with rating award + Minecraft theme

- Score max changed from 100 to 60, rating max from 10 to 6
- Note scoring now awards actual rating points (delta-based)
- Re-scoring only awards/deducts the difference
- Rating history shows note_score entries with problem link
- LLM prompt includes problem statement context for better evaluation
- LLM scoring dimensions: 题意理解/思路算法/代码记录/踩坑反思 (15 each)
- Minecraft-themed UI: 矿石鉴定, 探索笔记, 存入宝典, etc.
- Fallback scoring adjusted for 60-point scale
- Handle LLM markdown code fence wrapping in response

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
这个提交包含在:
cryptocommuniums-afk
2026-02-16 18:32:23 +08:00
父节点 7dd10bef2d
当前提交 9772ea6764
修改 7 个文件,包含 142 行新增46 行删除

查看文件

@@ -143,8 +143,19 @@ export default function MePage() {
first_ac: ["首次通过 ⭐", "First AC ⭐"],
code_quality: ["代码质量 🛠️", "Code Quality 🛠️"],
};
if (type === "daily_task" && taskLabels[note]) {
return isZh ? taskLabels[note][0] : taskLabels[note][1];
if (type === "daily_task") {
if (taskLabels[note]) {
return isZh ? taskLabels[note][0] : taskLabels[note][1];
}
// Note score: "note_score_1234"
const ns = note.match(/^note_score_(\d+)$/);
if (ns) {
return (
<a href={`/problems/${ns[1]}`} className="hover:underline text-[color:var(--mc-diamond)]">
{isZh ? `📜 探索笔记鉴定 P${ns[1]}` : `📜 Note Appraisal P${ns[1]}`}
</a>
);
}
}
// Solution view: "Problem 1234:Title"
const m = note.match(/^Problem (\d+):(.*)$/);