diff --git a/.memory/worklog.json b/.memory/worklog.json index 480bb9a..a777007 100644 --- a/.memory/worklog.json +++ b/.memory/worklog.json @@ -1,26 +1,5 @@ { "entries": [ - { - "files_changed": 1, - "hash": "051750c", - "message": "auto-save 2026-05-07 18:34 (~1)", - "ts": "2026-05-07T18:34:35+08:00", - "type": "commit" - }, - { - "files_changed": 1, - "hash": "410ed58", - "message": "auto-save 2026-05-07 18:40 (~1)", - "ts": "2026-05-07T18:40:09+08:00", - "type": "commit" - }, - { - "files_changed": 1, - "hash": "20dfd2c", - "message": "auto-save 2026-05-07 18:45 (~1)", - "ts": "2026-05-07T18:46:01+08:00", - "type": "commit" - }, { "files_changed": 1, "hash": "8335626", @@ -3457,6 +3436,25 @@ "message": "auto-save 2026-05-09 19:09 (~5)", "hash": "0aba599", "files_changed": 5 + }, + { + "ts": "2026-05-09T19:15:37+08:00", + "type": "commit", + "message": "auto-save 2026-05-09 19:15 (~1)", + "hash": "31965bf", + "files_changed": 1 + }, + { + "ts": "2026-05-09T11:15:54Z", + "type": "session-heartbeat", + "message": "Codex 会话活跃 · 最近命令:codex · 分支 master · 1 项未提交变更 · 最近提交:auto-save 2026-05-09 19:15 (~1)", + "files_changed": 1 + }, + { + "ts": "2026-05-09T11:18:29Z", + "type": "session-heartbeat", + "message": "Codex 会话活跃 · 最近命令:codex · 分支 master · 3 项未提交变更 · 最近提交:auto-save 2026-05-09 19:15 (~1)", + "files_changed": 3 } ] } diff --git a/RULES.md b/RULES.md index 4a36564..89bdb03 100644 --- a/RULES.md +++ b/RULES.md @@ -16,8 +16,9 @@ - 飞书机器人列表:https://hermes.kang-kang.com/feishu/apps(只读展示 App ID / 回调地址,不含 Secret / Token) - 爱马仕前端「集成 → 飞书集成」可自助添加 / 更新飞书机器人;Secret / Token 只写入服务器 `/etc/hermes-feishu-bridge.env` - 爱马仕前端「仪表盘」同步了上游 Hermes 的快捷入口板块,个人版展示主站、API、飞书机器人列表、文档/解析入口 +- 爱马仕前端「仪表盘」活动热力图已重做为带摘要、月份标尺、紧凑格子和细分色阶的活动卡片 - 爱马仕前端「设置 → 连接」可自助维护 API 地址 / API Key 并测试连接;「对话 → 存周报」和「设置 → 周报记录」会在本地保存任务描述、上下文片段和最终周报 -- 当前前端静态壳缓存版本:`hermes-ui-v15` +- 当前前端静态壳缓存版本:`hermes-ui-v16` - 文档 / 解析:https://styles.kang-kang.com - 管理后台:待定 - 代码仓:https://git.kang-kang.com/kangwan/hermes-glass-ui-personal diff --git a/src/app.js b/src/app.js index a207ca2..cb54b23 100644 --- a/src/app.js +++ b/src/app.js @@ -1303,12 +1303,13 @@ function renderHeatmap() { el.innerHTML = ""; const b = bucketUsage(); - // 根据容器宽度动态决定多少列,每格至少 18px - const width = el.parentElement.clientWidth - 80; // 减去 padding 和 label 列 - const cellMin = 22; - const weeksCount = Math.max(12, Math.min(26, Math.floor(width / (cellMin + 8)))); + // 根据容器宽度动态决定多少列,保持格子紧凑不拉伸成大方块 + const width = el.parentElement.clientWidth - 64; // 减去内边距和星期 label 列 + const cellMin = 18; + const weeksCount = Math.max(14, Math.min(30, Math.floor(width / (cellMin + 6)))); el.style.setProperty("--hm-cols", weeksCount); + document.getElementById("heatmapMonths")?.style.setProperty("--hm-cols", weeksCount); // 绝对阈值: 每天消息数落在哪个区间 // 0 = 无活动 | 1-5 = 轻 | 6-15 = 一般 | 16-40 = 活跃 | 41+ = 高强度 @@ -1328,6 +1329,31 @@ function renderHeatmap() { const startMonday = new Date(today); startMonday.setDate(startMonday.getDate() - todayDow - (weeksCount - 1) * 7); + const monthEl = document.getElementById("heatmapMonths"); + if (monthEl) { + const monthNames = ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"]; + const monthCells = ['
']; + for (let w = 0; w < weeksCount; w++) { + const weekStart = new Date(startMonday); + weekStart.setDate(weekStart.getDate() + w * 7); + let label = ""; + for (let d = 0; d < 7; d++) { + const cursor = new Date(weekStart); + cursor.setDate(cursor.getDate() + d); + if (w === 0 || cursor.getDate() === 1) { + label = monthNames[cursor.getMonth()]; + break; + } + } + monthCells.push(`按天聚合消息量,颜色越深代表当天对话越活跃。
+