Commit Graph

196 Commits

Author SHA1 Message Date
lanrtop
0516de5304 chore(self-onboarding): 接收 v1.6.1/v1.5.1 块升级——托管块警示行落地炼境自身
All checks were successful
Push & PR Check / check (push) Successful in 48s
2026-07-15 23:21:00 +09:00
lanrtop
5b0b068148 fix(onboarding/tmpl): 托管块首加「勿在块内定制」警示——AGENTS v1.6.1 / git-workflow v1.5.1
All checks were successful
Push & PR Check / check (push) Successful in 49s
使者回传兑现(confirmed·all_projects):炼境自身因块内写定制被
升级抹掉 5 段内容,模板块首此前无任何警示。警示行放块内随版本
升级触达全部存量项目。

Rules-Applied: R07
2026-07-15 23:18:16 +09:00
lanrtop
ade767894f docs(blueprint): 补 U1 复盘笔记——实调双坑与辩证收缩的返工率对照
All checks were successful
Push & PR Check / check (push) Successful in 52s
2026-07-15 23:05:42 +09:00
lanrtop
f7ab6dbbb8 chore(self-onboarding): 炼境自身接入产物治理——块外恢复被抹定制 + lefthook 检查段补齐
All checks were successful
Push & PR Check / check (push) Successful in 50s
批量分发实调反噬实锤:分支策略表/Agent 按钮清单/降级约定/启动协议
第 4 条曾写在 MANAGED 托管块内,v1.6.0/1.11.0 块升级原位覆盖时被抹。
全部恢复至块外「炼境自身约定」区,教训入决策记录(本地定制严禁写
进托管块)。顺带:块外与块内重复的通用约束去重(单一事实来源)、
lefthook 补齐 blueprint-gate/conventional/feature-confirmed 检查段
(verify_onboarding 复验 7/7)、收编 envoy/blueprint-gate 接入产物。

Rules-Applied: R13
2026-07-15 22:19:16 +09:00
lanrtop
7cfbfb1b86 chore(blueprint): onboarding-pack 模块收官——U1/U3/B4 实调终验通过
All checks were successful
Push & PR Check / check (push) Successful in 51s
批量分发 25 项目 0 失败(envoy/gate 全托管升级生效)、ingest 清洗
链路贯通、verify 七项链准确检出 lefthook 缺失键。模块 status→done。
2026-07-15 19:53:49 +09:00
lanrtop
473cf7e92b fix(onboarding/dispatch): 空路径登记防护——拒绝分发而非写进进程 cwd
批量实调实锤:两条空路径登记(银龙集团应用/agent编排界面)使
Path::new("") 变相对路径,接入包整套写进了 dev 进程的 src-tauri/。
apply_onboarding_pack 入口拦截空/不存在路径(单点防护),批量 SQL
同步过滤空串,回归测试驻军。

Rules-Applied: R06,R07
2026-07-15 19:53:47 +09:00
21f1b60aea Merge pull request 'feat(onboarding/upgrade-channel): 全托管文件升级通道 + 批量重分发(U1)' (#4) from feat/onboarding-pack-u1 into master
All checks were successful
Push & PR Check / check (push) Successful in 1m12s
2026-07-15 18:48:38 +08:00
lanrtop
1672b071e4 feat(onboarding/upgrade-channel): 全托管文件升级通道 + 批量重分发(U1)
All checks were successful
Push & PR Check / check (push) Successful in 51s
Push & PR Check / check (pull_request) Successful in 51s
三档升级语义落地:envoy.md/blueprint-gate.cjs 切全托管
(内容不一致即覆盖,CRLF 归一化防抖动),文件头加托管声明;
verify_onboarding 第 7 项「lefthook 检查段齐全」从内嵌模板自省
键集合,零硬编码;MCP apply_onboarding_pack 缺省 project_id
时批量分发全部已登记项目,替代 batch_apply.py 手摇脚本。

Rules-Applied: R06,R07

Feature-Confirmed: true
2026-07-15 14:20:22 +09:00
lanrtop
2fe576b75a feat(mcp/diagnostics): get_diagnostics 新增使者回传覆盖率「沉默项目」信号(B4)
All checks were successful
Push & PR Check / check (push) Successful in 49s
近 30 天有 commit 采集但零使者回传的已登记项目浮出水面,
提示去该项目跑 /envoy——回流触发不自动化(辩证决策 2026-07-15),
用可观测性让遗忘可见,人留在过滤环里。

Rules-Applied: R06,R07
2026-07-15 14:10:28 +09:00
lanrtop
aaf3343133 feat(flywheel/rules-validation): Rules-Applied 规则 ID ingest 层真实性校验(U3)
All checks were successful
Push & PR Check / check (push) Successful in 1m17s
校验单点放统计消费端(R12 边界单点):extract_rule_ids 从项目
CONVENTIONS.md 提取合法 ID 集合,filter_valid_rules 在入库前剔除
幻觉/typo ID(无 CONVENTIONS.md 时 fail-open 不校验)。接入全部
4 条写入链路(buff 增量/webhook/gitea 轮询/全量导入);
sanitize_rules_applied 提供回溯清洗,重跑全量导入即可清历史污染。

Rules-Applied: R01,R06,R07
2026-07-15 14:05:13 +09:00
lanrtop
f04eb6e766 feat(onboarding): 接入包 v1.6.0——蓝图机器门控双层实现
A: feat: 提交须含 Feature-Confirmed: true trailer
  - lefthook.yml.tmpl commit-msg 新增 feature-confirmed 命令
  - AGENTS.md.tmpl 需求对齐协议补 trailer 说明

B: pre-commit 检查未关闭 🔵 任务卡(warn only)
  - 新增 .claude/hooks/blueprint-gate.cjs(CommonJS,兼容 ESM 项目)
  - lefthook.yml.tmpl pre-commit 新增 blueprint-gate 命令
  - onboarding.rs dispatch 新增 blueprint-gate.cjs

Feature-Confirmed: true
2026-07-15 13:38:32 +09:00
lanrtop
be2f69578a docs(conventions): v1.11.0——同步使者回传的四项治理修复
- Session 结束汇总加限定语,不得作为跳过确认卡的通道
- acceptance 格式补 agent_verify/human_verify 分层说明
- 阶段2末尾引用 AGENTS.md 需求对齐协议(Bug Fix/Feature 分类)
- Rust/Tauri 专属章节顶部加 scope 前置提示,避免污染 web 项目
- lefthook.yml.tmpl:API typecheck 注释由警告升级为 REQUIRED 措辞
2026-07-15 12:16:31 +09:00
lanrtop
8c746cf8d5 fix(onboarding): git-workflow v1.5.0——修正 CONVENTIONS.md 死链引用,改为通用路径表述
All checks were successful
Push & PR Check / check (push) Successful in 1m35s
2026-07-09 16:14:55 +09:00
lanrtop
67bdacbf2e feat(onboarding): AGENTS.md v1.5.0——新增需求对齐协议(Bug Fix/Feature 分类 + S 级轻量卡 + 汇总补录限定语) 2026-07-09 16:12:47 +09:00
lanrtop
85d488e831 chore(claude): 会话启动协议补 list_envoy_returns 检查子项目使者回传 2026-07-09 16:10:08 +09:00
lanrtop
ce3ef6e14e feat(onboarding): 接入包模板 AGENTS.md v1.4.0——acceptance 分层/Playwright 版本锁定/API typecheck 提示/envoy 命令纳入分发 2026-07-09 16:09:55 +09:00
lanrtop
92da0fda0d fix(mcp): list_envoy_returns SQL 修复——pw.name 改为 JOIN project_profiles pp 取 pp.name 2026-07-09 16:09:38 +09:00
lanrtop
fd869ee161 docs(rules): onboarding-sync 补版本升级纪律——改模板必须升 MANAGED 块版本号
All checks were successful
Push & PR Check / check (push) Successful in 51s
2026-07-06 实测踩坑:内容改了版本没动,批量分发 12 项目全部 skipped。
同时注明分发前需重建安装(模板打包在二进制资源里)。
2026-07-06 23:19:25 +09:00
lanrtop
1c44bfe30a test(onboarding): 版本号从模板动态取,消除硬编码
All checks were successful
Push & PR Check / check (push) Successful in 1m0s
模板升版(1.2.0→1.3.0)暴露测试硬编码版本号——每次升版测试必断。
改为 extract_managed_block + block_version 动态取,升版不再碰测试。
2026-07-06 22:59:24 +09:00
lanrtop
46640783f9 chore(onboarding): 模板版本升级 AGENTS 1.3.0 / git-workflow 1.4.0
All checks were successful
Push & PR Check / check (push) Successful in 51s
内容已在前两次提交中更新(自验报告纪律第 6 条 / 单一 lian-jing 寻址),
但 ONBOARDING_MANAGED 块版本号未动导致批量分发全部 skipped——
版本判断是分发引擎的唯一升级信号,改模板必须同步升版本。
2026-07-06 22:58:02 +09:00
lanrtop
86995f7472 docs(conventions): 自验报告纪律三条——负面披露/改断言报备/两把尺子
All checks were successful
Push & PR Check / check (push) Successful in 51s
用户确立 agent 协作协议执行版(多角度辩证后选最小成本版落地):
1. 交人终验前反馈必含「没验什么」一节(负面披露收窄已知盲区)
2. 自修中改断言/验收标准需显式声明(封 Goodhart 最短路径,diff 可审计)
3. agent 自验对 acceptance、人终验对意图(acceptance 可能继承需求
   理解偏差,两把尺子不可合一)

三处同步:AGENTS.md(单一来源)+ 接入包模板(分发子项目)+
agents-meta-rules(设计草案)。完整辩证(五张力/四调节器/三缝隙)
存档于 governance-feedback-loop 模块设计档案节。
实证案例:mcp-single-server 自验全绿但 git-bash 层全挂,端到端终验抓住。
2026-07-06 22:46:04 +09:00
lanrtop
4226372423 docs(blueprint): 登记 governance-feedback-loop concept 模块——治理反馈闭环
All checks were successful
Push & PR Check / check (push) Successful in 50s
老板-员工手册隐喻:用户反馈子项目问题 → 结构化落账 → 梦核蒸馏进
规则/模板 → 批量分发 → 飞轮观测生效。治理管线已存在大半
(governance 规则同步 / feedback 梦核 / onboarding 模板版本化),
三处断环:治理反馈入口、反馈进梦核高权重输入、接入包批量重分发。
L 级,待 /architect。
2026-07-06 21:35:41 +09:00
lanrtop
31f93adbb2 chore(build): 新增 build:local 脚本——本地构建关闭 updater 签名产物
All checks were successful
Push & PR Check / check (push) Successful in 50s
本地构建用于装机自验,不需要签名产物;此前会因
TAURI_SIGNING_PRIVATE_KEY 缺失 exit 1(bundle 已产出但脚本层报错)。
签名私钥保持只存于 Gitea secrets(CI 单一发版通道,已验证
OSS latest.json v0.1.19 签名完整),本地不配 key——最小暴露面。
2026-07-06 21:21:57 +09:00
lanrtop
9355c07a6f chore: 迁移收尾——本项目 settings.json 换单一 lian-jing key + package.json 版本对齐 0.1.19
All checks were successful
Push & PR Check / check (push) Successful in 50s
- .claude/settings.json:由 migrate_to_single_server 自动重写(组级 key → lian-jing)
- package.json:0.1.18 → 0.1.19,与 Cargo.toml / tauri.conf.json 对齐(发版脚本此前漏更)
- .blueprint/usage.json:飞轮快照累积数据
2026-07-06 21:16:53 +09:00
lanrtop
a05fb49347 docs(blueprint): mcp-single-server 模块收官——T4 端到端终验通过
All checks were successful
Push & PR Check / check (push) Successful in 49s
验证:~/.claude.json 仅剩 lian-jing(12 条旧注册清零)、3 项目抽查
新格式通过、新路由握手 + get_diagnostics 实调通过、旧路由 404。
T4 暴露 git-bash 硬编码存量 bug 已修(0d1427f)。
遗留:同路径重复登记(legacy id 与 uuid id 并存)待登记卫生清理。
2026-07-06 20:18:32 +09:00
lanrtop
0d1427f4e9 fix(mcp-inject): git-bash 路径多位置探测——修复 Scoop 安装 Git 时 claude CLI 调用全挂
All checks were successful
Push & PR Check / check (push) Successful in 1m32s
迁移实测发现:CLAUDE_CODE_GIT_BASH_PATH 回退路径硬编码
C:\Program Files\Git\bin\bash.exe,Scoop 安装的 Git 不在该位置,
导致 claude mcp add/remove 全部非零退出(存量 bug,组级时代同样存在)。

- find_git_bash():env(校验存在)→ Program Files / Scoop → where git.exe 推导
- try_register_globally 返回 bool;同名 already exists(exit 1)视为成功,
  不再每次 inject 刷 warn 日志
- migrate_to_single_server 标记位改以注册成功为条件——CLI 链路不通时
  不落标记,下次启动重试(幂等)
2026-07-06 20:10:53 +09:00
01eb941ab9 Merge pull request 'feat(mcp): 单一全局 lian-jing 服务器——组级挂载收敛(mcp-single-server T1-T3/T5/T6)' (#3) from feat/mcp-single-server into master
All checks were successful
Push & PR Check / check (push) Successful in 49s
2026-07-06 18:52:55 +08:00
lanrtop
df7d52a084 feat(mcp): T6 删除旧 /mcp/group 路由与兼容层——提前并入本次发版
All checks were successful
Push & PR Check / check (push) Successful in 1m6s
Push & PR Check / check (pull_request) Successful in 49s
原计划后置一个版本,经评估提前:迁移在新版启动时自动重写全部
客户端配置(settings.json/liangjing.json/全局注册),旧路由的实际
消费者只剩升级前的存量会话,而服务重启后它们本就断开重连。
单人环境下双路由过渡的保留价值趋近于零,一次收口减少一轮发版。

- tools_call 签名去 Option 组上下文,process_rpc 单参数化
- list_group_projects 的 group_id 改为 required 参数
- grep 'mcp/group' src-tauri/src/ 零命中,cargo test 93 全绿
2026-07-06 19:34:51 +09:00
lanrtop
a41161f7d1 feat(mcp): 单一全局 lian-jing 服务器——组级挂载收敛(T1-T3+T5)
All checks were successful
Push & PR Check / check (push) Successful in 1m4s
T1 服务器层:新增全局 /mcp + /mcp/messages 路由,process_rpc 组上下文
Option 化;旧 /mcp/group/:gid 路由保留过渡,T6 移除。驻军测试 2 条。
T2 工具层:resolve_project_root 按 project_id 直查 project_workspaces,
删除 3 处组归属校验(实测无隔离价值);list_group_projects 改显式传参。
T3 注入层:settings.json 收敛为单 "lian-jing" key(URL /mcp),注入时
清理旧 lian-jing:group-* key;liangjing.json 主动删除 group_id;
启动时一次性迁移(重注入全量 + 清理旧全局注册两种命名格式,标记位防重)。
T5 同步:git-workflow 文档/模板、retro-catchup 技能 Python 兜底、
设置页 URL 展示、mcp-config-inject 模块取代注记。

收益:MCP 客户端配置成本 O(N组)→O(1),授权一次永久生效;
group_id 缺失/过期/移组同步一整类问题从根上消失。
2026-07-06 19:30:01 +09:00
lanrtop
daed723438 docs(blueprint): mcp-single-server 设计定稿 + 拆卡 T1-T6
All checks were successful
Push & PR Check / check (push) Successful in 47s
方案 B 双路由过渡:全局 /mcp 新路由与旧 /mcp/group/:gid 并存一个版本。
关键决策:工具层 resolve_project_root 去组化(组归属校验实测无隔离价值)、
迁移内建于重注入(reinject_all_mcp 即批量迁移器)、旧全局注册两种命名
格式(完整 UUID/短 8 位)都清理。webhook 路由已核实不受影响。
2026-07-06 19:15:59 +09:00
lanrtop
138a06aa17 docs(blueprint): 登记 mcp-single-server concept 模块——组级挂载收敛为单一全局服务器
All checks were successful
Push & PR Check / check (push) Successful in 48s
动机:MCP 客户端配置成本随产品组数线性增长(12 组 × 28 工具),
与飞轮'项目越多越强'方向相反;实测组级挂载无隔离价值(任意组
服务器可操作任意项目)。单一服务器后 liangjing.json 只需
project_id,group_id 同步问题从根上消失。L 级,待 /architect。
2026-07-06 19:04:04 +09:00
lanrtop
bce9a0a37c fix(mcp-inject): liangjing.json 改为合并写入,重注入可回填缺失的 group_id
All checks were successful
Push & PR Check / check (push) Successful in 1m18s
旧版注入的项目 liangjing.json 缺 group_id,外部 agent 每个会话都要
先调 list_all_projects 反查归属组(多一次探路调用 + 权限弹框)。
group_id 写入已在 2116e54 补上,本次将整文件覆盖改为读取-合并-写回:
只更新 project_id / group_id / mcp_port 三个字段,保留文件已有其他字段。
存量修复路径:对旧项目重新执行 inject_mcp 即可回填。
文档同步说明:移入新产品组时自动刷新;group_id 缺失/过期时重新注入。
2026-07-06 18:43:44 +09:00
lanrtop
84ed61ac97 chore(release): bump version to 0.1.19
All checks were successful
Push & PR Check / check (push) Successful in 1m14s
Release / release (push) Successful in 5m20s
docs(git-workflow): 分支策略升级为复杂度感知模型 v1.3.0(单文件小改直推主分支,功能性改动开 feat/* + PR)
2026-07-04 21:05:13 +09:00
lanrtop
38d5cec53e feat(mcp): 新增 setup_gitea_repo agent 按钮——一键建仓库配 remote
调用默认 Gitea 实例为项目创建远程仓库,同时配置本地 git remote origin。
幂等设计:仓库已存在(409)直接绑定,remote 已有则 set-url 更新。
背景:此前 agent 无法自助完成"项目在 Gitea 建仓库"流程,需要手动
拼凑 curl + git 命令,本工具将整个流程收归炼境 MCP 调用层。
2026-07-04 18:27:01 +09:00
lanrtop
892e5977ed fix(onboarding): lefthook.yml.tmpl 用 COMMIT_EDITMSG 替换 {1}
lefthook v2 在 Windows 上解析 YAML 时会将 {1} 与模板变量混淆,
改为直接读取 .git/COMMIT_EDITMSG,与 react-phone-apps 修复保持一致。
2026-07-04 16:50:55 +09:00
lanrtop
cf86ab688a docs(conventions): 梦核蒸馏——规则置信度更新 + 梦核写入纪律
- R01 confidence 0.90→0.95(12 命中 0% 返工,最稳信号)
- R13 confidence 0.80→0.88(11 命中 9% 返工,高频高效)
- R08 confidence 0.87→0.72(3 命中 100% 返工,补 failure_case + boundaries)
- R10 confidence 0.85→0.60(6 命中 83% 返工,补 failure_case + boundaries)
- 追加梦核写入纪律:蒸馏替换而非追加,规则上限 ≤ 25 条
- 数据来源:2026-07-04 梦核分析,40 条复盘笔记 + Rules-Applied trailer
2026-07-04 16:42:02 +09:00
6284124546 Merge pull request 'feat(flywheel): 阶段三执行质量预测层(trailer 死链修复 + 风险画像)' (#2) from feat/flywheel-intelligence into master
All checks were successful
Push & PR Check / check (push) Successful in 49s
2026-07-04 14:45:28 +08:00
lanrtop
a914c8c219 docs(blueprint): unregister_project 登记卫生工具对补卡(事后登记)
All checks were successful
Push & PR Check / check (push) Successful in 49s
Push & PR Check / check (pull_request) Successful in 50s
Rules-Applied: R13
2026-07-04 15:04:29 +09:00
lanrtop
f03e4178fc feat(mcp): unregister_project agent 按钮——登记卫生工具对补全
All checks were successful
Push & PR Check / check (push) Successful in 54s
Push & PR Check / check (pull_request) Successful in 56s
scan_unregistered_projects 发现漏网,unregister_project 清理死账。
薄包装调 delete_project 本体(UI 删除按钮同源),delete_local
硬编码 false——MCP 侧永不暴露删本地文件能力(安全边界)。
工具描述内置约束:删除不可逆,调用前须向用户列清单确认。

Rules-Applied: R12,R13
2026-07-04 14:49:05 +09:00
lanrtop
94d8be6eb6 docs(blueprint): 阶段三消费者终验通过,flywheel-intelligence 模块收官
All checks were successful
Push & PR Check / check (push) Successful in 53s
Push & PR Check / check (pull_request) Successful in 48s
Rules-Applied: R13
2026-07-04 14:41:29 +09:00
lanrtop
a77cb4ec96 feat(flywheel): ingest_git_history agent 按钮——全量导入双投影
All checks were successful
Push & PR Check / check (push) Successful in 53s
Push & PR Check / check (pull_request) Successful in 58s
消费者验证暴露的死角:「全量导入」只有 UI 投影,agent 够不到,
存量 trailer 回填只能靠人点按钮。按双投影原则补 MCP 投影:

- 不传 project_id 遍历所有 win_path 项目跑 ingest_full_git_history,
  传则单项目;返回逐项目 imported/skipped 汇总,单项目失败不中断
- 能力本体(ingest_full_git_history)不动,UI 与 MCP 调同一函数
- tools_list_result 断言驻军,92 测试全绿

Rules-Applied: R12,R13
2026-07-04 14:36:28 +09:00
lanrtop
a5cb30734d feat(flywheel): 返工热区 UI + get_high_risk_scopes 命令,阶段三收官
All checks were successful
Push & PR Check / check (push) Successful in 50s
Push & PR Check / check (pull_request) Successful in 50s
- risk.rs 新增 Tauri command get_high_risk_scopes(薄包装)+ lib.rs 注册
- commands.ts 封装 HighRiskScope 类型与调用(R01)
- FlywheelPanel 新增「返工热区」块:跨项目返工率降序,
  分级配色与 classify_risk 阈值一致(≥35% 红 / ≥15% 琥珀)
- 蓝图:P3-A~E 五卡全部 done,附 L 级复盘笔记,模块 progress 98

Rules-Applied: R01,R13
2026-07-04 14:22:52 +09:00
lanrtop
66dc6209a8 feat(flywheel): 梦核 prompt 注入跨项目高风险 scope 数据段
- risk.rs 新增 high_risk_scopes:样本 ≥5 且有非 CI 返工的 scope
  按返工率降序 top 10,项目名 LEFT JOIN project_profiles(缺失回退 id)
- generate_muhe_prompt 新增「跨项目高风险 scope」表格段,附分析指引
  (反复返工 scope = 结构性脆弱点 → 固化环节输出预防性规范)
- rule_hits 段 pool() 改 try_pool():原实现测试环境必 panic,
  generate_muhe_prompt 因此不可测;改后两段在无 DB 时走占位文案
- prompt 构建测试断言两个数据段存在 + 聚合排序/最小样本过滤测试,92 全绿

Rules-Applied: R06,R07
2026-07-04 14:18:04 +09:00
lanrtop
330ddc24dd feat(flywheel): predict_task_risk 风险画像 MCP 工具——预测层落地
- 新增 commands/risk.rs:scope 级(前缀匹配子 scope)+ 文件级
  (commit_files JOIN commit_metrics)历史返工率聚合
- classify_risk 分级:返工率 ≥0.35 high、≥0.15 medium、其余 low;
  有效返工率取 scope 与文件(样本 ≥3)的较高者
- 可信度防线:样本 <5 或 conventional 率 <0.5(脏历史)→
  confidence=low 并附原因 notes,不让脏数据装可信
- CI 自修 commit(is_ci_auto)不计返工,与 L0 口径一致
- MCP 注册 predict_task_risk:agent 开工前按任务卡 scope/files
  查询风险,工具清单测试断言驻军
- 7 个单测(in-memory DB + conn 注入),90 全绿

Rules-Applied: R01,R06,R07,R13
2026-07-04 14:12:35 +09:00
lanrtop
0ac809970f feat(flywheel): commit_files 采集——文件级风险画像数据地基
- 新表 commit_files(sha,path 联合主键 + path 索引),migration 入 migrate()
- read_git_log 加 --name-only:单次 git 调用同时取 conventional 指标、
  Rules-Applied trailer 与触碰文件,零额外进程开销
- parse_git_log_output 纯函数解析 header/文件行混排输出(含 \x1f 的行
  是 header,其后非空行归属该 commit)
- record_commit_entry 落库文件清单(INSERT OR IGNORE 幂等),buff 增量
  与 ingest 全量两条链路自动覆盖,无需各自改动

Rules-Applied: R05,R06,R07
2026-07-04 14:07:57 +09:00
lanrtop
08e8d6d719 fix(flywheel): 修复 Rules-Applied trailer 死链,git log 原生提取 + UPSERT 回填
R1 管道自建成以来是死链:buff 与 ingest 两处 git log 都用 %s 只取
subject,trailer 在 body 里永远读不到(炼境自身 11 条带 trailer 的
commit,DB rules_applied 全空);单测喂全文所以全绿。

- GIT_LOG_FMT 加 %(trailers:key=Rules-Applied,valueonly,separator=%x2C),
  git 原生 trailer 解析,保持单行一条记录
- read_git_log 升为增量/全量统一取数入口(GitLogRange),buff 的
  get_new_commits 委托之,消灭两处重复 format 定义
- record_commit_entry + upsert_metrics:ON CONFLICT 仅回填
  rules_applied IS NULL 的存量行,绝不覆盖已有值,回填幂等
- ingest_full_git_history 改走 record_commit_entry,消灭第三处重复 INSERT
- get_new_commits 的 WSL 分支随 2026-07-04 裁决顺手清理
- 测试:真 git 仓库 e2e trailer 提取回归 + UPSERT 四态语义,82 全绿

Rules-Applied: R06,R07,R13
2026-07-04 14:04:20 +09:00
lanrtop
05d7673990 feat(onboarding): T2+B3 复杂度感知分支策略 + agent 按钮载体声明体系
T2 git-workflow 模板升 v1.3.0:
- 分支策略从强制 dev→main 改为复杂度感知
  (简单改动直推 main/master,功能性改动开 feat/<name> 分支+PR)
- PR 创建 MCP 示例 head 从 "dev" 改为 "feat/<name>"

B3 agent 按钮载体声明闭环:
- CONVENTIONS.md manifest.yaml 规范新增 agent_button_carrier 字段
  (tauri/http/cli/playwright,新建蓝图时必填)
- splitter SKILL.md 三级优先载体继承:manifest字段 > architect声明 > 就近推断
- 炼境自身 manifest.yaml 补 agent_button_carrier: tauri
- AGENTS.md.tmpl 项目概况 TODO 提示新增载体字段填写指引

Rules-Applied: R04,R13
2026-07-04 13:44:02 +09:00
lanrtop
2116e54e29 feat(mcp-inject): 注入时同步注册全局 ~/.claude.json + liangjing.json 补 group_id
- inject_project_mcp 末尾新增 try_register_globally 调用,通过
  find_claude_bin 自动定位 claude CLI 并执行 claude mcp add -s user,
  让新接入项目的产品组 MCP 立即对 Claude Code 可用
- write_liangjing_context 增加 group_id 参数,子项目读取后可直接
  构造 lian-jing-{group_id} ToolSearch 查询,无需额外推断
- try_register_globally 为 best-effort:CLI 未找到或调用失败时
  仅写日志,不影响 settings.json 注入结果
2026-07-04 13:29:40 +09:00
lanrtop
ccbc26acf3 feat(mcp): 新增 scan_unregistered_projects 工具,扫描文件系统找出未登记炼境的本地项目 2026-07-04 12:19:12 +09:00
lanrtop
95310890a3 docs(agent-button): 删除说谎的 pnpm test 按钮,CONVENTIONS 前端测试规范加 Tauri 项目类型限定 2026-07-04 12:12:29 +09:00