diff --git a/PROGRESS.md b/PROGRESS.md index ad34984..39c0e36 100644 --- a/PROGRESS.md +++ b/PROGRESS.md @@ -21,6 +21,11 @@ ## 已完成关键能力 +### 2026-06-24 / 微信任务徽章改品牌绿 + 微信 logo + 整行绿边(bump 0.23.1) + +- 上一版徽章复用 `.badge.active`(蓝灰),与旁边「进行中」状态徽章撞色、不显眼。 +- 新增 `.badge.wx`(微信品牌绿 `#07C160` + 白字 + 内嵌微信 logo SVG)与 `.task-row.wx`(绿色左边框 + 极淡绿底 + hover 加深),让置顶的微信任务从普通任务里跳出来。文件:`web/static/dev.html`(CSS)、`web/static/js/chat.js`(`WECHAT_ICON` 常量 + badge/row class)。 + ### 2026-06-24 / 微信对话 task 渠道标记 + 置顶(bump 0.23.0) - 痛点:微信常驻 task 与网页常规 task 结构相同,只能靠 description 魔法值反推;且 `created_at` 固定后随用户开新 task 越沉越深,这个「渠道收件箱」反而最难找。 diff --git a/core/__init__.py b/core/__init__.py index 5185426..0cb192f 100644 --- a/core/__init__.py +++ b/core/__init__.py @@ -1,3 +1,3 @@ # zcbot 版本号单一事实源:web/app.py 的 FastAPI version、/healthz 返回、前端展示都引这里。 # 改版本只动这一行。 -__version__ = "0.23.0" +__version__ = "0.23.1" diff --git a/web/static/dev.html b/web/static/dev.html index f791e65..651f2c6 100644 --- a/web/static/dev.html +++ b/web/static/dev.html @@ -544,6 +544,14 @@ .badge.completed { background: var(--c-green-bg); color: var(--c-green); } .badge.abandoned { background: var(--accent-soft); color: var(--accent); } .badge.active { background: #eef; color: #336; } + /* 微信渠道专属:品牌绿徽章(白字 + 内嵌微信图标),与蓝灰状态徽章拉开区分 */ + .badge.wx { background: #07C160; color: #fff; display: inline-flex; align-items: center; + gap: 3px; vertical-align: 1px; } + .badge.wx svg { width: 11px; height: 11px; fill: currentColor; display: block; } + /* 整行标记:绿色左边框 + 极淡绿底,让置顶的微信任务从普通任务里跳出来 */ + .task-row.wx { border-left: 3px solid #07C160; padding-left: 9px; background: rgba(7,193,96,.05); } + .task-row.wx:hover { background: rgba(7,193,96,.10); } + .task-row.wx.active { background: var(--accent-soft); border-left-color: #07C160; } .empty { padding: 24px; color: var(--muted); text-align: center; font-size: 13px; } /* ───── chat ───── */ diff --git a/web/static/js/chat.js b/web/static/js/chat.js index c648a68..65c7684 100644 --- a/web/static/js/chat.js +++ b/web/static/js/chat.js @@ -10,6 +10,9 @@ import { api } from "./api.js"; import { escapeHtml, fmtTime, fmtTokens, fmtTimeAgo, taskUsageTooltip, formatTaskUsage, formatContextStats, formatUsageStats } from "./format.js"; import { renderMd, highlightIn } from "./markdown.js"; import { mqPhone, setMobileView } from "./layout.js"; + +// 微信 logo(simple-icons WeChat path),用于渠道任务徽章;fill 走 currentColor(徽章里为白) +const WECHAT_ICON = ``; import { logout } from "./auth.js"; import { openFilePreview, openPasteFilePreview, closePreviewIfShowing } from "./preview.js"; import { loadFiles, scheduleFilesRefresh, uploadFiles, formatUploadProgress } from "./files.js"; @@ -124,12 +127,14 @@ function renderTaskList(tasks, append = false) { const desc = t.description || ""; const statusLabel = statusLabels[t.status] || t.status; const rowTitle = `${taskName}\n${t.task_id}`; // hover 出全名 + 完整 id(替代 meta 里被去掉的 id8) - // 微信渠道任务:置顶 + 名前打绿色「微信」徽章,一眼可辨(后端已强制排最上) - const wechatTag = t.channel === "wechat" - ? `微信` + // 微信渠道任务:置顶 + 名前打微信绿徽章(含 logo)+ 整行绿边,一眼可辨(后端已强制排最上) + const isWechat = t.channel === "wechat"; + const wechatTag = isWechat + ? `${WECHAT_ICON}微信` : ""; + const wxRow = isWechat ? " wx" : ""; return ` -