Repository navigation
v1.10.0
AI 署名政策、排他性检测与一键整合。
AI 署名是明确的政策
前置字段新增 ai: required | optional | forbidden,默认 optional,老文档不受影响。required 要求每条提交信息带一个 AI 署名 trailer(Assisted-by: / Generated-by: / Co-authored-by: 都认),forbidden 只拦 AI 专用 trailer——人类结对提交的 Co-authored-by: 不算违规。检查读的是提交正文:commitCompliance() 的 git log 格式从 %H%x00%s 改成 %H%x00%s%x00%b%x1e,以前只读标题,所以根本看不到 trailer。和其它规则一样:面板始终标出,只有 strict: true 时才真的拒绝提交。
冲突会被报出来,不会被悄悄投票
conventionsConflicts() 把「管同一批提交」的文档三方对比——工作区 <工作区>/.dsh/GIT_CONVENTIONS.md、当前仓库自己的、以及祖先仓库的:字段(status / framework / strict / language / ai)与规则(标题长度、type 词表、小写、句号、祈使句)都比,但只有双方都明确写了同一个字段且取值不同才算冲突,沉默不算。有冲突时,每一步注入给助手的提示里都会带上这份分歧清单,并明确要求「不要自己选边,先问用户」——所以中途才加入工作区的插件、模型也不会闷头照旧规范写。
一键整合到工作区文档
「查看并合并」先把并集方案预览出来(新增几节、改写几节、哪些文档会被并掉),按「写入并备份」才落盘,落到 <工作区>/.dsh/GIT_CONVENTIONS.md。并集语义:长度取最严、type 取词表并集、布尔规则「任一方要求即生效」,各文档正文小节都会搬过来(同名标注来源)。每一份被替换的文件都留一份 .bak-<年月日-时分秒>,仓库级文档改成指针文件(inherited from …)——想退回随时能退。
助手自己也能查
打开 agentTool 后会注册 git_conventions 工具(action: check 列冲突、action: consolidate 出合并计划),不带 write: true 时只出计划不动盘。
接口与测试
新增 /git/conventions/conflicts、/git/conventions/consolidate,ai 透传到写入、预览、设置、工作区四条既有路由;locale 键 166 → 181。test-host 232/232(新增 [17] AI 署名、[18] 冲突与合并、[19] 工具三段),preview-tab 增加 tier-4 一段(AI 三态开关、冲突条、先预览后写入)。
这次 host 与客户端都动了,装完必须重启 DSH。