协作与审计
第1章 · 笔记 1
笔记 1
- 2026-10-27 · 系统三档模式 · apu · 新建 wiki 页面(wiki-new-page.py):系统三档模式.md,type=concept,摘要:sleep/base/evolve 三档开关:真源 ~/.hermes/mode/state.json,生效面=cron enabled + 非 cron 主动源(launchd/crontab/常驻进程)
- 2026-10-27 · t_0b4477c9 ghost 判据否定语境误报修复完成:结论=cronjob_health_check.py check_ghost 纯子串匹配 EXEC_KW 改两层语境判定(否定/禁止语境命中不算「prompt 要求执行脚本」),睡眠日报 ee0d80c4c519 假阳性消除、真幽灵照报不放宽 · 证据=回归 22 断言全过(负例 10/10 消除+正例 10/10 照报+边界 2/2)、全量 135 job 复扫 ghost 命中 0;deliverables/t_0b4477c9_ghost_negation_regression.py · 改动=cronjob_health_check.py(+NEG_KW/NEG_VERBS/POS_TURN、_clause2_negated/_exec_positive 两层判定、check_ghost 改判;155967B)+ 旧 pyc 已清 · 异常=无;生效时点=睡眠模式解除后下一个偶数整点(job fa3124d14993 现 paused)
- 2026-10-27 · t_077b2b1a 剩余上游机制漂移续查(J3/K4/C2 共 9 条)完成:结论=上游 #114720/#114587/#113611 机制完整在位无需补丁对齐,断点全在本地 crash cooldown 耦合与测试环境缺陷,8 条翻绿 + 1 条 t_8c86b376 裁决登记 · 证据=交付物 deliverables/t_077b2b1a_剩余12条机制续查.md 逐条表 9 行(文件:行级断点);9 条单跑 8 绿;gate PASS 零新增 · 改动=kanban_db_dispatch.py:1369-1381 冷却解耦(run 5123)、test_kanban_db.py:569 _IS_LINUX 平台适配(run 5123)、test_kanban_descendant_scope.py 双层修(HERMES_DISABLE_LAZY_INSTALLS + show 瘦身) · 异常=#8 红有意保留(裁决登记项);踩坑记录 4 条已同步
- 2026-10-26 | t_df663048 补丁钩子与 machine-token 插件 home 路径统一
- 结论:做完。6 个补丁钩子 + machine-token 插件 home 路径解析统一走 get_default_hermes_root(),行为等价实测(未设 env/profile 模式逐字节一致);B 类 4 条未翻绿,拦截源钉死 venv sitecustomize 注入 sys.path(非钩子),禁用对照 4 passed,翻绿方案移交 wiki_write_guard 域/测试基建域。
- 证据:/Users/mac/.hermes/kanban/deliverables/t_df663048_home路径统一.md;对照实验(禁用 sitecustomize 4 passed / 还原 4 failed);apply_pending.py --dry-run 91 全绿;探针 deliverables/t_df663048_probe_isolation.py 改前/改后命中对照。
- 改动:hermes_cli/kanban_db.py 6 处(1422/1462/1506/1575/1646/1669)+ machine_token/__init__.py(DEFAULT_TOKEN_PATH 常量 → _default_token_path() 延迟函数)+ 4 个注入段真源同步(assignee_scope_guard/peak_park_inject/reasoning_tier_inject/seg_anchor_gate_longrun)+ local_pending hermes_cli__kanban_db_py.patch 重生成 + manifest post_md5 更新。
- 异常:B 类 4 条仍红(拦截源 venv sitecustomize.py:16 _SCRIPTS 硬编码,翻绿依赖 wiki_write_guard 域改造+测试运行姿势,超出本卡范围),已登记 metadata.external_findings。
- 2026-10-26 【运维/t_e3f9b09e】移除 dashboard plist 陈旧明文 session token: 结论:做完——plist EnvironmentVariables.HERMES_DASHBOARD_SESSION_TOKEN 整键移除并 bootout/bootstrap 重载生效(launchctl state=active、/api/status /api/health 200、运行时环境无该键),同值明文旁路副本 8 处全部收紧 600,移除后 plist 无其它明文敏感项。证据:全树 463,325 文件 + 28 个 >300MB 流式补扫同值命中 8 处(活 plist 已无值);VERIFY grep -c=0 / stat=600 / launchctl print 含 state = active 三条真跑全过。改动:plist 移除整键(唯一内容改动)+ 5 文件 chmod 644→600 + wiki 关键配置参考 L191/系统服务架构 Dashboard 节现状改「已移除」+ 本条。异常:无(t_468e3f9f external_findings 两技能失效指引属乾婆域沿袭待更正,非本卡范围)。deliverables/t_e3f9b09e_移除plist明文token.md
- 2026-10-26 【运维/t_0426bb3b】wiki_guardian Kick 积压判据消化宽限(采样竞态误报消除): 结论:做完——kick 积压判据加消化宽限(只计入队超 10 分钟未消化),口径复用 channel_liveness_probe.count_backlog 单一真源(processed=0 超宽限 + processed=-1 6h 新鲜窗形态对齐,阈值 BACKLOG_GRACE_MIN=10min 非任务建议 60s,理由=两处判据不得不同阈值),P1 语义保持(真积压仍报);附带修复 scan_kanban 的 WAL 库 shutil.copy 缺页(已 commit 行 copy 后丢失实证,改 sqlite3 backup API 一致快照 + 清 -wal/-shm 残留)。证据:244 条延迟实测 95.5%≤2s、唯一 >60s 为真停摆;双向验证在途 2s 不报 / 超宽限 700s 报 P1(演示+7 单测全过,35 中 2 失败为预存红与改前基线一致零回归);生产 scan 无 Kick 异常行;selfcheck baseline 后 check exit 0。改动:wiki_guardian.py(4 处,改前 safe_backup)+ test_wiki_guardian.py(新增 7 用例)。异常:test_wiki_guardian 2 个预存红未修(测试 mock 未覆盖围一致性新功能,与本卡无关)。deliverables/t_0426bb3b_kick积压宽限.md
- 2026-10-26 【运维/t_919fac63】peak_offpeak 判据时区锚定修复: 结论:做完——peak_offpeak.py 判据时间基准显式锚定 Asia/Shanghai(新增 CN_TZ/_bj_wall/now_bj,is_peak/in_offpeak/next_offpeak_start/describe/classify/effective_now 取时入口全改),同域判据全量核查:check_deferred_tasks.py 3 处裸 datetime.now() 同批修、qianpo_metrics_collector.py --date 归日默认值 1 行同批修;token_weekly_audit/token_daily_report/qianpo_metrics_collector.is_peak 已钉时区列明不修。证据:改前固定真实时刻(北京 19:50=UTC 11:50)两 TZ 判定相反(True/False),改后 now_bj()/is_peak()/describe() 两 TZ 逐字一致;边界矩阵 4 时刻×2 TZ 一致;补丁 20 _peak_park_decide 两 TZ 一致。改动:peak_offpeak.py / check_deferred_tasks.py / qianpo_metrics_collector.py(改前备份 3 份)。异常:无。deliverables/t_919fac63_peak_offpeak时区锚定.md
## 2026-10-26 测试基线存量红消化与全量分批扩展(t_76d69239)
- 结论:看板核心域 73 条存量红消化 34 条(翻绿近半)、零新增失败(gate exit 0),剩余 39 条逐类归因登记;补 gate --merge 分批并入能力,核心域首批+plugins 试点并入基线 53 失败/2192 测试。
- 证据:conftest +KANBAN_SKIP_CATEGORY_CHECK 逃生口 + venv 装 pytest-asyncio 后 73→39;VERIFY-1 gate run exit 0「无新增失败」;VERIFY-2 基线 failures 53 / total 2192;交付物 /Users/mac/.hermes/kanban/deliverables/t_76d69239_测试基线消化与扩展.md。
- 改动:tests/conftest.py(+7 行逃生口)、~/.hermes/scripts/test_regression_gate.py(+--merge 逐批并入 + print 修正)、venv +pytest-asyncio-1.3.0;基线核心域 refresh + plugins --merge 并入。
- 异常:external_findings 3 条(补丁钩子硬编码 ~/.hermes/scripts 未走 HERMES_HOME、machine-token plugin 测试摸真实 home、peak_offpeak 时区);decisions_pending 2 条(补丁改走 get_hermes_home、verbatim vs body 注入取舍)。
## 2026-10-26 复核乾婆 bulk 通道收口 + 修正我的错误口径
- 结论:乾婆 t_468e3f9f 回流落地 6+1 处技能改动属实;她纠正的「单卡 PATCH 恒 401」经源码核实成立,我的原始口径(machine-token bearer 调 PATCH)有误,已记踩坑。
- 证据:plugins/dashboard_auth/machine_token/__init__.py:44-48 TOKEN_ROUTES 仅 /tasks、/tasks/bulk、/board 三条 exact-path;文件头注释 12-14 行明言单卡 PATCH/DELETE 不在机器通道。技能改动核对:kanban-task-resurrection-discipline/SKILL.md:137-143、qianpo-management-ops/references/archive-cleanup-and-deletion.md:58-71。
- 改动:~/wiki/concepts/踩坑记录.md 新增 1 条(通道指引须核路由白名单源码 + 单卡走 bulk 单元素 ids)。
## 2026-10-26 dashboard plist 明文 session token 治理(t_468e3f9f)
- 结论:做完(批准项待决策)。plist 中 HERMES_DASHBOARD_SESSION_TOKEN 经 7 项证据确认无任何活消费者(gated 鉴权下 X-Hermes-Session-Token/Bearer/?token= 三通道恒 401,_require_token 只认 cookie session、SPA 不注入、上游自检主动跳过);已降权 plist 644→600 消除本机任何用户可读面,移除整键待正生批准(删除类零容忍未动)。
- 证据:token 值全盘检索活文件面仅命中 plist 自身;实测三通道 401 + /api/status /api/health 200 + machine-token /board 200 对照;launchctl print state=running pid=91156(改权限零中断);交付物 /Users/mac/.hermes/kanban/deliverables/t_468e3f9f_plist明文凭据治理.md。
- 改动:plist 权限 644→600(内容零改动);wiki 同步:关键配置参考 L191 失真描述更正、系统服务架构 Dashboard 节 +凭据现状条目、技术调研报告索引 +1、log.md 本条。
- 异常:external_findings 2 条(kanban-task-resurrection-discipline 与 qianpo-management-ops 两份技能的「plistlib 读 token 调 PATCH」指引已失效待乾婆更正为 machine-token 用法);decisions_pending 1 条(批准移除 plist 键)。
## 2026-10-26 dashboard 机器通道建卡凭证开通(t_cf1fcae3)
- 结论:做完。dashboard 机器通道开通并端到端实测通过:machine-token provider 插件(token-auth seam 第二消费者)+ bearer 凭据落 ~/.hermes/dashboard_machine_token(600,热加载可轮换/吊销),建卡→读回→归档全通,未授权/错凭据/越出路由面恒 401,鉴权面零放宽。
- 证据:探测卡 t_ec0f9e18、t_54889d25 均建成并经机器通道归档(DB 读回 archived);7 项反向测试(无/错 token、未注册路径、非 kanban 路由、旧两通道)全 401;/api/auth/providers 前后只列 basic;轮换/吊销免重启实测 401/200 矩阵;交付物 /Users/mac/.hermes/kanban/deliverables/t_cf1fcae3_dashboard机器通道凭证.md。
- 改动:新增 /Users/mac/AI/hermes-agent-main/plugins/dashboard_auth/machine_token/{__init__.py,plugin.yaml}(纯新增零内核改动)+ 凭据文件(600);dashboard 重启载入(PID 86333→91156);wiki 同步:踩坑记录 +1(源卡 plist token 误判更正+鉴权层根因)、关键配置参考(机器凭据条目+L191 失真描述更正)、系统服务架构(Dashboard 节)、技术调研报告索引 +1;变更登记 OK recorded。
- 异常:external_findings 1 条(plist 644 明文 HERMES_DASHBOARD_SESSION_TOKEN,gated 模式下无用武之地,凭据治理域范围外未动)。
## 2026-10-26 补丁32 重启载入与自检收口(t_ffa70aa9)
- 结论:做完。dashboard(PID 20572,12:36:50 拉起)与 gateway(治理流程排队重启 13:24:05,未手工硬重启)均载入补丁32,三条自检全过:①应用器 --check=已应用;②gateway 会话内核建卡 rt 3600/1800 按形态正确分流(重启前 NULL 对照);③缺锚点双分支实测(无标签被拦 fail-closed / 带【运维】标签自动补「品类: 运维型」)。探测卡 3 张全归档(删除零容忍)。
- 证据:gateway_restart_queue.py status pending 0 + 最近重启 2026-10-26T05:24:05Z ok=True;t_5f3e4934 rt=3600 vs t_7a462774/t_10ab04f2 rt=NULL(同会话重启前后对照);被拦报文「建卡被拦 — body 缺「品类: x型」锚点(t_922ec797 fail-closed 闸)」;t_81ddf5e2 body 首行读回「品类: 运维型」rt=1800,archived 事件 13:54:18;交付物 /Users/mac/.hermes/kanban/deliverables/t_ffa70aa9_补丁32重启载入.md。
- 改动:无生产改动(约束内只做进程载入与自检);踩坑记录 +2 条(initial_status=blocked 非 sticky 被 recompute_ready 21s 翻 ready;worker 归档卡工具面缺口+内核 archive_task 处置路径)。
- 异常:external_findings 3 条(dashboard 机器通道建卡无凭证、kanban 工具面缺 archive、blocked 初始态防派发预期落空)。
## 2026-10-26 补丁15 基点重建与恢复失败项收口(t_93ab6420)
- 结论:做完。补丁面恢复收口——补丁15 重放集按当前工作树重建新基点(91 条),5 个恢复失败补丁(22/23/24/27/28)全部处置(应用器 feature 探针化 + 退役登记 + turn_recovery 重复注入去重),restore 全量 0 失败,丢弃→恢复逐字节实证 2/2。
- 证据:restore 全量 0 失败(改前 5 失败);kanban_db.py 丢弃→restore→md5 972973c1c6f357740fb23bc37a405748 逐字节恢复、turn_recovery.py d96653b1069b8a59a49c005f636cb2b7 同;28 项语义探针 rc=0;活库登记探针正常态(91 条);hermes-patch-restore last_status 前后均 ok。
- 改动:~/.hermes/patches/local_pending/(91 patch + manifest + apply_pending.py 3-way/md5 降级)、restore_patches.sh(补丁15 段挪至补丁1 前 + 补丁7 判据)、5 个补丁应用器 feature 探针化、agent/turn_recovery.py 4→1 去重、audit_iso_patch_completeness.py 补丁24 判据迁移、security_audit 快照刷新。
- 异常:audit_iso_patch_completeness.py 补丁27 仍未入清单(既有 external_findings,未动)。