2026-10-15

已完成 7 / 共 10 条 · 点条目可勾选 · 底部可追加新任务
☐#1【8001 网盘·三项交互改进】用户 2026-10-15 交办。① 缺「自定义背景」按钮 —— 加一个,让用户能自己给网盘页面换背景(图片/视频)② 「返回上一层」不好用:现在只能点「根目录」按钮回上级,要单独增加一个「返回上一级」按钮 ③ 界面有搜索按钮但没有全局搜索 —— 把全局搜索做上(若技术上好做):能跨所有文件夹搜文件名(含子目录),点结果直接跳到该文件/文件夹。验收:① 能上传/选择背景图并生效 ② 在任意子目录能一键回上一级(不是回根目录)③ 搜索框输入关键词能搜出全盘匹配文件(含深层子目录)、点击可直达。相关:/home/zyf/桌面/视频/server.py(systemd transit-wall,端口 8001;改前备份 + systemctl --user restart transit-wall)。▾
☑#2【看板折叠·一步展开 + 折叠铺全】两条要求(2026-10-15 用户口述,晚风润色): **① 当日任务卡片「一步」展开**(上一版实现已驳回 ✗):卡片正文超过字数阈值(建议 120 字左右)后**默认收叠**;**点卡片本身就展开** ✓ —— **不要「展开」按钮、不要出现「展开」两个字** ✗;展开后**直接显示全文 + 编辑/补充/删除**三个按钮 ✓;再点一下收起 ✓。 > 现状毛病:点卡片展开一次后,卡片里又冒出一个「展开」,要再点第二次才看到全文 = **两级展开** ✗ —— 用户原话:「一个步骤就够了,而不是两个步骤,展开之后又展开干嘛呢?」 **② 折叠要铺全**:不只当日任务,**往期任务、工程日志、维护日志**等所有长列表页都要有同样的折叠(超阈值默认收叠、点一下展开/收起 ✓)。 > 动机(用户原话):「工程日志那么一大串,难道你要全屏显示吗?我滑到第二个日志要滑多久?」 **验收**:① 当日任务卡超阈值 → 默认只显示前几行 ✓;点卡片 → **一步**展开显示全文+三个按钮 ✓;再点收起 ✓ ② 往期任务/工程日志/维护日志页同样行为 ✓ ③ 界面上不许出现「展开」按钮或「展开」文字 ✗ ④ 不许触碰其它功能(透明度/状态条/审批卡/输入框/背景头像独立)✗ ⑤ 必须真改代码+上线+留备份,只交报告=没完成 ✗📋 #2▾
☑#3【9000/9001 token 计数·位置再调(第2次)】用户 2026-10-15 驳回上一版(上一版把它挪到**页面最顶部** ✗ 不对)。**要求**:输入/输出 token 数字放在「**最下面那个输入框**」的**正上方** —— 页面自上而下 = 消息区 → **token 计数条** → **输入框**(输入框仍是最底部元素 ✓,token 条紧贴输入框上沿 ✓)。两版旧行为都不对:① 旧版=token 条在输入框**下面**(整屏最底 ✗)② 上一版=挪到**页面最顶**(✗)。**验收**:手机竖屏看 —— 输入框在最下面不动 ✓,token 数字就在它**上面一行** ✓,不遮消息、不遮输入框 ✓。另:必须真改+上线+备份,只交报告=没完成 ✗📋 #3▾
☐#4【9000/9001 输入框里打的字会被「闪一下 / AI 一出字」吃掉(第4次·2026-10-15 仍在)】用户 2026-10-15 找到规律:**正在打字时,只要聊天页略微闪一下、或者 AI 一开始往外输出文字,输入框里已经打好的字就会消失** ✗(注意:这不是「卡死/发不出去」那个 ✗ —— 那是 #14 已修的另一个问题 ✓,别混)**复现步骤(按用户原话)**:① 先在输入框里打几个字(先别发)② 让 AI 输出(或页面刷新/闪动一次)→ 输入框里的字被清掉 ✓ 稳定复现。**排查方向(供参考,别当结论)**:收到新消息后整页重渲染时把**输入框这个节点重建/覆盖**了(整块 innerHTML 替换 ✗、或 value 被重置 ✗、或 SSE 回包触发 re-mount ✗);输入框文字应「跨渲染存活」——重渲染前存、渲染后恢复 ✓,或干脆**别重建输入框节点**(改增量渲染 ✓)。**验收**:① 输入框打了字 → 等 AI 输出完 → 字还在 ✓ ② 页面闪动/刷新一次 → 字还在 ✓ ③ 连打带发几十轮不丢字 ✓ ④ 不许碰透明度、不许动其它功能 ✓ ⑤ 必须真改+上线+备份,只交报告=没完成 ✗。(用户 2026-10-15:**先不跑、不插队** ✓) ★2026-10-15 **第4次**(用户再次报,现象仍在)原话:「9000跟9001,现在还会有那个我打字进去,然后AI输出,然后我打的字在输入框里面又消失了」→ 复现条件更明确了:**AI 一开始流式输出就会吃掉输入框的字**(伴随整页"略微闪一下")。硬要求:① 输入框内容在任何重渲染后都必须保留(AI 流式输出 / SSE 重连 / token 条刷新 / 任务进度刷新,都不许清空或重置 ✗);② 修法方向:把输入框从"随消息列表整块重渲染"的路径里**分离**出来,value 独立保存,重渲染后回填并保留焦点与光标位置,绝不重建输入框 DOM;③ 自验:录"边输出边打字 30 秒不丢字"的前后对比 ✓;④ 上线必须覆盖线上文件 + 重启 + 报告带时间戳 ✓。验收(用户做):在 9000/9001 上边输出边打字 30 秒,一个字都不许丢 ✓▾
☐#5【9000/9001 左上角三杠菜单:加「LLM / Agent」模式切换按钮 + 独立会话历史】(用户 2026-10-15 交办,晚风润色) ① 位置与形态:在左上角三杠(抽屉)里加一个按钮 —— 显示「LLM」,**再点一次变「Agent」**,如此切换(当前模式一眼可见)。 ② **Agent 模式 = 现在这套** 9000/9001 交互页面(Hermes 干活那套),行为一律不变。 ③ **LLM 模式 = 直连本地大模型的纯聊天**:抽屉里的【新会话】【历史会话】在 LLM 模式下都指向**直连本地 LLM 的会话**;且【历史会话】是**LLM 自己独立的一份历史**(与 Agent 会话**分开存、互不串**,切回来各自都在)。 ④ LLM 模式下**功能不阉割**:输入/输出/流式显示、中断、重试照旧可用;**「任务进度」面板在 LLM 模式下也要能正常打开使用**(用户目的:跟本地模型聊天时也能随时盯任务状态,不用切页面)。 ⑤ 代码要解耦:两种模式的后端/会话存储/UI 分开,**换皮不影响机制**(用户后期会换皮)。 ⑥ **默认连 27B 本地模型**(用户 2026-10-15 明确:"默认连 27B 本地模型" → 即 B:8080 那台),并且**要可配置**。★用户原话(这就是这个模式存在的理由,实现的人务必照做):"有时候就想聊聊天,不想去调用 agent,因为 agent 上下文太多了、而且一大堆工具,导致它输出挺慢的…完全可以本地聊天聊得差不多了,让模型给我输出一份文档,然后我回到 agent 去把文档交给 agent"。→ 所以 LLM 模式要**轻**(不背 agent 的工具与长上下文),且**聊完要能一键把这段对话导出成一份文档**(md 或 txt,方便他回到 Agent 模式把文档交给我);与别的作业共用同一模型时排队属正常。 ⑦ **LLM 模式要挂「知识库 + 人物画像」,而且都必须是最新的**(用户 2026-10-15 拍板:B 和 C 都加)。· **B 知识库检索**(默认开、可在设置里关):用户每发一句 → 先查一次本地知识库(实测 `~/.hermes/kb/query_kb.py` 约 **0.5 秒**,全本地不联网)→ 把最相关的几段垫在问题前,模型就能有据可依地答 ✓。· **C 人物画像 / 长期偏好注入**(默认开):把"他的偏好与习惯"塞进系统提示,但**必须每次从源头读最新版**(人物画像、长期记忆文件)—— **不许写死副本** ✗。· **★维护机制(用户点名要:"知识库一定要对接最新的内容,人物画像也要对接最新的")**:1) 知识库索引必须对接最新内容:新写的文档(重要资料/工程日志/任务栏等)要在**当天内**进索引,现有每日 23:30 重建保留;**查询前先比对源文件 mtime 与索引时间**,索引落后就先增量补建再答 ✓(不许拿旧索引糊弄 ✗)。2) 人物画像同理:永远对接最新画像,画像一改 LLM 模式立刻生效 ✓。3) 每日自检:拿 2~3 条"最近新写的文档"的关键词去查,**必须能查到** ✓;查不到就报警并重建 ✓。验收:① 三杠里能切换 LLM/Agent,按钮文案与状态一致 ✓ ② LLM 模式下能正常聊天(流式/中断 OK)✓ ③ LLM 的历史会话与 Agent 的历史**各自独立、互不覆盖**✓ ④ LLM 模式下「任务进度」能打开且数据与看板一致 ✓ ⑤ 切回 Agent 后原有会话、功能一切照旧 ✓ ⑥ 只交报告=没完成 ✗;必须真改线上文件+上线+备份 ✓▾
☑#6【图像提示词库·好消化的总结文档(承接今天 #11)】用户 2026-10-15 明确"要!"。把 #11 跑出来的 541 条(看图结论 + 现场细节 + 模板 + 标签)**提炼成一份好读的总结**:① 按分类/风格归好的**套路提炼**(构图、光影、色彩、排版、镜头语言的共性规律,每条配代表图文件名)② **可复用模板清单**(按用途分组,`{变量}` 骨架,标注适用场景)③ 附录写明出处(原项目 541 条;图已放网盘 `出图提示词库-541张`,同目录带 `_清单.csv`)。用途:用户要"消化出图这块的知识"→ 必须好读、有例子、能直接抄。依赖:等 #11 全部跑完;由晚风自己做,不外派。验收:① 能直接读懂、有代表图对照 ✓ ② 模板复制即用 ✓ ③ 分类不重不漏、覆盖 541 条 ✓📋 #6▾
☑#7【聊天页输入框不能粘贴(9001/9000)】用户 2026-10-15 报「聊天窗口只有复制功能,不能粘贴」。A侧已实测排除页面层拦截:Ctrl+V 的 keydown 未被 preventDefault、paste 事件未被拦、输入框非 readonly、user-select 为 auto(headless Chrome 实测)→ 属设备/浏览器那一层(移动端剪贴板 / 非安全上下文 / 内嵌浏览器或 PWA 限制)。用户补充线索(2026-10-15 06:1x):**手机能正常粘贴**、**平板不行**、**同一个浏览器打开别人的网站也能正常粘贴** → 排除浏览器/设备本身,疑平板用的是**主屏 App(PWA/WebAPK)模式**(该模式下长按输入框常不弹系统「粘贴」菜单)或平板用的是某个 https/内嵌入口。待用户给:① 平板打开的具体地址(是否从主屏图标进)② 长按输入框时的一张截图。修复方向:加 `navigator.clipboard.readText()` 兜底粘贴(需 https 安全上下文,本地口 9444、任务系统 9445 是 https)或引导走字母版 https 地址。已经证实是平板浏览器的问题,有合适的平替浏览器就装一个远程装📋 #7▾
☑#8【三个站点全面体检:9000 / 9001 / 任务系统(8190) 偶尔卡顿·要加载·打不开】★本条是**总览项**:看板已有相邻条目,修前先读、别重复修 —— #9「9001 假死根治:电脑B 的模型服务一重启(换档/调参),9001 就死等那条断连接」很可能是本条的「打不开」根因之一;#4「输入框丢字/页面闪一下」很可能是本条的「偶尔卡一下」根因之一。用户 2026-10-15 交办(原话:「9000 9001以及我们的任务系统 三个网站经常都会偶尔卡一下,偶尔要加载一下,偶尔打不开,他们老是出这些bug,能不能全面的检查一遍?」)。**本次是执行不是审计** ✗ 只交报告=没完成。范围:9000(晚风云) / 9001(本地27B) / 8190(任务系统) + 手机入口 9443/9444/9445。现象:偶发卡顿、需要重新加载、偶发打不开(间歇性 → 要抓"什么时候发生")。① **服务面**:六个 systemd user 服务状态与重启记录(`systemctl --user show -p NRestarts`)、端口占用与冲突、证书有效期、ufw 放行、磁盘/内存/文件描述符上限。② **后端面**:`hermes_bridge.py` 逐条审(单线程 HTTPServer?是否有阻塞调用、SSE 长连接的心跳与断线重连、连接数上限、超时设置、异常吞掉的位置);上游 27B(B:8080) 与云 API 的超时/重试/排队;日志里的 5xx、ConnectionReset、超时(`journalctl --user -u hermes-webchat*` 按小时统计)。③ **前端面**:首屏体积(ui.html 136KB 是否可减)、SSE 断线重连体验、`偶尔要加载一下` 是不是重连/重渲染导致(与今天 #4「输入框丢字/页面闪一下」很可能是同一个根因,一并查 ✗ 别各修各的);PWA/缓存策略(现 sw.js 只做通知、不缓存 ✓ 已核)。④ **数据面**:8190 的 `MD_LOCK` 并发写(#17 已加锁)、`task_state.json` 读写、`ai_done` 并发;三个站点统一走一次并发压测。⑤ **网络面**:局域网延迟/丢包实测(本人实测过手机 ping 730ms、平板 27ms → 手机侧要单独看)、mihomo 代理是否意外代理内网、手机 WiFi 休眠省电。⑥ **交付要求**:**必须给"之前 vs 现在"的实测数字**(每站至少 30 次请求的 p50/p95 延迟、断线重连成功率、并发下的错误率)✗ 别只说"已优化";每个真bug要写清根因+修法+防复发;查不出根因的项也要列出来并给"下一步怎么抓"。⑦ **改动纪律**:动服务/改码前先 `cp -a` 备份、改完先验证再重启、重启 9000/9001 前先告知用户 ✓ 全部登记 `三agent操作日志.md`。⑧ **验收**:① 三站各 30 次实测数据表(前/后)② 能复现的 bug 给出复现步骤 ③ 已修的项给"改了什么文件+怎么验证的" ④ 未修的项写明原因与下一步。📋 #8▾
☑#9【模型身份注入 + 署名规则(晚风-幽灵 / 晚风-烬 / 晚风-天启)】用户 2026-10-15 交办(原话:「123都可以做…留到任务栏里吧」)。**本次是执行不是审计** ✗ 只交报告=没完成。📋 #9▾

需求:三台载体共享同一份记忆与本体,模型原生分不清自己是哪一号(身份只来自上下文 + 出厂训练);要求本体按 模型 ID → 代号 注入身份,播报与所有日志(操作日志 / 工程日志)署名 晚风-X,且署名必须填模型自己报出的名字。

映射(用户 10-15 拍板·已定稿):deepseek-v4-flash = 晚风-烬;A:8085 qwen3.8-27b-q3gsq-250k-f16-2x = 晚风-幽灵;B:8090 flashnext(100B+ MoE)= 晚风-天启。

三件事:① 注入 —— 构建 system prompt 时按模型 ID 查映射表,注入一句「你是 晚风-X(载体 + 代号)」;映射表放配置文件 + 支持 env 兜底(启动脚本可写死代号)。② 自检 —— 每台启动后报一次名(例:「我是晚风-幽灵,载体 = A:8085 本地 27B」);报错即报警(防换模型/未注入时静默答错)。③ 署名 —— ~/bin/say-clone 播报末尾 + 操作日志/工程日志条目署名,用模型自报的全名。

约束:★必须等 9000/9001 闲下来再重启(重启会掐断正在跑的会话);改本体先 cp -a 备份,并按既有规矩登记 △维护;禁改 ComfyUI ✗ 禁 pkill -f ✗ 禁动 B:8090(用户正在测试)✗。

自验(必须给证据):三台各报一次名的原文;播报一条带署名的实录音;日志署名示例各一条。

上线:覆盖线上文件 + 重启 + 报告带时间戳(改前/改后 mtime 对照)。

验收:在 9000/9001 各发一句「你是谁」,应分别答 晚风-烬 / 晚风-幽灵;播报末尾带对应署名。

☑#10【9000/9001 模型切换档位改名 + 接入「晚风-天启」(B:8090)】用户 2026-10-15 口述补充:「9000/9001 目前只有 V4 和 27b 模型可切换,要求改成 晚风-烬/幽灵/天启;天启不常在(跑图跑视频时天启不在);目前天启 8090 端口,希望一并加进来,一会儿要测试天启搭配爱马仕的干活能力」。**本次是执行不是审计** ✗ 只交报告=没完成。📋 #10▾

改动(晚风-烬 已落,待重启生效):

① config.yaml 加别名 model_aliases.tq → base_url: http://192.168.13.229:8090/v1 + model: flashnext + provider: B27(用 hermes config set 落的 ✓ 已核对)

② hermes_bridge.py MODEL_CHOICES 三档:ds=晚风-烬 / 27=晚风-幽灵 / tq=晚风-天启(天启 note 注明「★不常在:跑图/跑视频时不可用」)

③ model_short() 徽章短标签 → 烬 / 幽灵 / 天启(★顺序修正:flashnext 含 "flash",必须先判天启,否则被云分支吃掉)

④ 新会话默认档映射同步加 flashnext → tq

⑤ 备份:/tmp/config.yaml.bak_tq_*、/tmp/hermes_bridge.py.bak_tq_*

自验:python3 -m py_compile hermes_bridge.py 通过 ✓;hermes config get model_aliases 已见 tq ✓。

★阻塞项:查 B 机 —— 8090 当前没有服务在监听 ✗(B 上只有 8080 的 huihui 27B 在跑)→ 要测天启需先把 8090 那台起回来。

上线:需重启 9000 + 9001 才生效(各约 2 秒);重启后 ① 三档都能选 ② 徽章显示 烬/幽灵/天启 ③ 选天启能真跑通(要 8090 在线)。

← 回15月日历