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 |
|
lanrtop
|
3df7550337
|
fix(onboarding): lefthook commit-msg 单行避免 Windows shell {-block 解析失败
|
2026-07-04 12:02:49 +09:00 |
|
lanrtop
|
ffaecc6ad8
|
chore(blueprint): 记录放弃 WSL 路径项目的裁决
Push & PR Check / check (push) Successful in 46s
只保留 win_path 项目;DB 2 条 WSL 残留已清(零数据损失);
新代码不写 WSL 分支,存量 111 处触碰时顺手清;
wsl-proxy/v2rayn 代理功能不在此范围。V1 复盘 WSL 遗留销项。
|
2026-07-04 11:37:15 +09:00 |
|
lanrtop
|
f68d172687
|
fix(onboarding): Windows PATH 兜底补 lefthook.cmd shim 解析
Push & PR Check / check (push) Successful in 48s
pnpm add -g lefthook 安装的是 .cmd shim,CreateProcess 对裸名
"lefthook" 只解析 .exe,导致 PATH 兜底永远 missing_binary
(批量接入 6 项目实测踩坑)。兜底顺序改为逐候选尝试:
本地 .bin → 全局 lefthook → 全局 lefthook.cmd(仅 Windows)。
Rules-Applied: R10
|
2026-07-04 11:33:11 +09:00 |
|
lanrtop
|
85c79631b9
|
fix(dashboard): mappedIds 限定在当前空间项目,修复跨空间计数偏高
Push & PR Check / check (push) Successful in 50s
|
2026-07-04 11:25:16 +09:00 |
|
lanrtop
|
b9f77e75a2
|
fix(dashboard): 看板 Tab 命名自洽 — 已加入产品组 / 未加入产品组
Push & PR Check / check (push) Successful in 49s
|
2026-07-04 11:17:26 +09:00 |
|
lanrtop
|
16556e1dcc
|
fix(manage): 产品组概览项目 tag 补 × 移除入口,与 detail 视图自洽
Push & PR Check / check (push) Successful in 49s
|
2026-07-04 10:40:49 +09:00 |
|
lanrtop
|
aeacb9dcf9
|
feat(manage): 产品组概览「项目数量」改为罗列项目名称
Push & PR Check / check (push) Successful in 47s
|
2026-07-04 10:34:44 +09:00 |
|
lanrtop
|
1229d1b579
|
chore(blueprint): onboarding-pack 新立 T2 任务卡 — git-workflow 分支策略升级为复杂度感知
|
2026-07-04 10:20:08 +09:00 |
|
lanrtop
|
8e9c53f182
|
chore(git-workflow): 炼境自身分支策略 — complexity-gated feat/* + PR CI 覆盖
Push & PR Check / check (push) Successful in 46s
|
2026-07-04 09:45:40 +09:00 |
|
lanrtop
|
9881b568b6
|
feat(manage): 项目/产品组多视图 — 全览/分组/概览/健康度四视图
Push Check / check (push) Successful in 46s
|
2026-07-04 09:26:17 +09:00 |
|
lanrtop
|
bc7bcb2fe1
|
docs(agent-button): 接入包简化为单档,去除最小接入方案
|
2026-07-04 09:26:04 +09:00 |
|
lanrtop
|
ccf87ae09a
|
feat(onboarding): V1 接入生效验收——lefthook 分发即激活 + verify_onboarding 六项检查链
Push Check / check (push) Successful in 45s
分发成功 ≠ 功能生效:接入包此前只写 lefthook.yml 从不激活,
文件在 hook 死 → conventional 不强制 → 飞轮数据脏。
- apply_onboarding_pack 分发后自动 lefthook install(本地 .bin 优先/
PATH 兜底/静默),OnboardingReport 新增 hook 三态
- 新 MCP 工具 verify_onboarding:管理块版本/hook 真挂/origin 命中
Gitea 实例/CI workflow 存在/近 30 天飞轮数据 六项检查链 JSON
- 判定纯函数化 5 条单测 + in-memory DB 全链集成测试
- commands.ts 补 TemplateResult 缺失的 updated/appended 态(T1 旧债)
- AGENTS.md 去掉写死的工具计数(防腐:以 tools_list_result 自省为准)
Rules-Applied: R01,R06,R07,R13
|
2026-07-04 08:27:39 +09:00 |
|
lanrtop
|
2da50890ea
|
chore(blueprint): onboarding-pack 新立 V1 接入生效验收卡
Push Check / check (push) Successful in 45s
lefthook 分发后从不激活 + verify_onboarding 消费者角色验证,
acceptance 按可执行验证路径格式拆好,供下轮直接开工。
|
2026-07-04 08:13:53 +09:00 |
|
lanrtop
|
dc501f74e2
|
fix(cicd): PR CI 模板同款 lint 语法雷,防止复制到子项目
Push Check / check (push) Successful in 51s
炼境自身 pr-check.yml 刚踩的 pnpm lint --if-present 必挂 bug,
源头就是 build_pr_ci_workflow 模板——每个经炼境生成 CI 的子项目
都会领到坏 workflow。改为 pnpm run --if-present 语法(本地实测
exit 0),并在 pr_ci_template_is_correct 加回归断言驻军。
Rules-Applied: R07,R10
|
2026-07-04 08:08:01 +09:00 |
|
lanrtop
|
a1a4748c58
|
fix(ci): pr-check lint 步骤语法错误导致必挂
Push Check / check (push) Successful in 2m15s
pnpm 的 --if-present 只对 run 子命令有效,pnpm lint --if-present 把 lint
当外部命令执行报 ERR_PNPM_RECURSIVE_EXEC_FIRST_FAIL(本地已复现)。
项目无 lint script,删除该步骤;补 pnpm test 对齐基线档定义
(push CI = typecheck + vitest),tsc --noEmit 改用 typecheck script。
|
2026-07-04 07:58:16 +09:00 |
|
lanrtop
|
1aa26966f4
|
docs(agent-button): 体系文档层补全
Push Check / check (push) Failing after 54s
- docs/ai-context/agent-button-system.md: 新建,agent 按钮体系完整设计文档(四层体系 + 载体选择 + 自验失败降级)
- docs/templates/agents-meta-rules.md: v1.1.0,新增 Agent 按钮体系章节 + Acceptance 写法规范(可分发)
- .blueprint/CONVENTIONS.md: 新增 Acceptance 写法规范章节(引用 agent-button-system.md)
- AGENTS.md: ONBOARDING_MANAGED 块补充炼境自己的 Agent 按钮清单 + 自验失败降级约定
|
2026-07-03 21:48:38 +09:00 |
|
lanrtop
|
3b9de9a23c
|
refactor(mcp)+fix(ci)+fix(test): 三项优化
Push Check / check (push) Failing after 1m7s
- CI: pr-check 改为 push master 触发 + tsc --noEmit(原 branches: [main] 永不触发)
- mcp_server.rs 拆分:mcp_tools.rs(工具schema+dispatch+实现)+ mcp_webhook.rs(webhook+测试)
mcp_server.rs 从 1385 行瘦身至 145 行(纯协议路由层)
- mcp_tools 新增工具 schema 完整性测试(73 passed,较之前 +2 条)
- onboarding 测试版本号跟进 v1.1.0 → v1.2.0(模板版本升级后断言未同步)
|
2026-07-03 21:38:20 +09:00 |
|
lanrtop
|
d8bd4a23e0
|
chore(blueprint): 同步 gitea-integration/onboarding-pack 状态
- gitea-integration: done 100%(/ship MCP 化闭环)
- onboarding-pack: in_progress 98%(B3 完成,B4 后置)
|
2026-07-03 21:12:37 +09:00 |
|
lanrtop
|
731fa11456
|
feat(onboarding+skill): B3 acceptance 可执行化 + template v1.2.0 + skill 升级
- AGENTS.md.tmpl: v1.2.0,新增 rule#5 acceptance 可执行化([载体] 调用→断言)
- 炼境 AGENTS.md: ONBOARDING_MANAGED 同步至 v1.2.0
- /architect: 新增 Step 3.5 声明验证路径载体(Tauri/HTTP/CLI/Playwright 优先级表)
- /splitter: acceptance 格式升级为可执行验证路径,含三类示例
|
2026-07-03 21:12:22 +09:00 |
|
lanrtop
|
def53d739c
|
fix(gitea)+feat(mcp): PR 409 容错 + apply_onboarding_pack/list_all_projects agent 按钮
- gitea_api_create_pull_request: 409 时自动查 open PR 列表,返回已存在的 PR
- MCP 新增 apply_onboarding_pack(接入包分发 UI 按钮的 agent 投影)
- MCP 新增 list_all_projects(绕过 group 限制,列出全库项目及注入状态)
|
2026-07-03 21:12:06 +09:00 |
|
lanrtop
|
dccca234b5
|
fix(mcp): get_ci_status 兼容 Gitea 1.22 的 status 字段(非 state)
|
2026-07-03 19:59:00 +09:00 |
|
lanrtop
|
14fe02ec7d
|
feat(mcp): 补全 agent 按钮体系——5 个新工具关闭三项结构性缺口
P0 PR 生命周期闭环:
- get_ci_status(project_id, commit_sha):查 Gitea CI pass/fail/pending
- merge_pull_request(project_id, pr_number):CI 绿灯后合并 PR
至此 /ship 流程全自主:推送→开 PR→查 CI→合并→poll_now
P1 飞轮数据对子项目透明:
- get_pr_events(project_id, limit?):读 pr_events 表,PR 生命周期历史
- get_commit_metrics(project_id, days?):读 commit_metrics,提交类型/返工分布
P2 分发层 agent 可自修复:
- distribute_cicd(project_id, workflow_type):写入 CI 模板,无需预存配置
|
2026-07-03 19:55:12 +09:00 |
|
lanrtop
|
d4cb236ace
|
fix(mcp): SSE 消息端点立即返回 202,后台异步处理工具调用
poll_now 等耗时工具(发出 HTTP 请求到 Gitea)阻塞了 handle_sse_message,
导致客户端 POST 超时。改为 tokio::spawn 在后台处理 + SSE 推回结果,
HTTP 握手立即完成,符合 MCP SSE 传输规范。
另:新增 docs/ai-context/git-workflow.md(分支策略 + Conventional Commits),
.gitignore 排除炼境实例数据(.claude/liangjing.json / dev_manager.db)。
|
2026-07-03 19:17:25 +09:00 |
|
lanrtop
|
6d10c71d15
|
feat(gitea+mcp): PR 状态轮询 + poll_now agent 按钮(公网 Gitea webhook 不可达降级方案)
|
2026-07-03 18:59:19 +09:00 |
|
lanrtop
|
97b116857f
|
feat(mcp): 新增 setup_webhook + inject_mcp agent 按钮(UI 操作的 MCP 投影)
|
2026-07-03 18:52:30 +09:00 |
|
lanrtop
|
35a8212472
|
fix(cicd): 模板默认 runner 改为 windows,deepseek_review 加 shell: bash
|
2026-07-03 18:11:44 +09:00 |
|
lanrtop
|
69183fb06c
|
fix(cicd): 将 GITEA_TOKEN/URL 重命名为 LJ_TOKEN/URL(GITEA_ 前缀被 Gitea 保留)
|
2026-07-03 17:54:12 +09:00 |
|
lanrtop
|
8432aa4f45
|
feat(cicd+mcp): PR 事件追踪 + create_pull_request MCP 工具 + CI/AI 审查模板 + bypassPermissions 注入
炼境子项目工作流全链路打通:
- mcp_server: 新增 create_pull_request MCP 工具(凭证代理,子项目无需持有 token)
- mcp_server: webhook 路由拆分 push/pull_request,PR 事件写入 pr_events 表
- mcp_inject: 注入 bypassPermissions + 写入 liangjing.json(project_id + mcp_port)
- db: 新增 pr_events 表 + idx_pr_events_project 索引
- gitea.rs: gitea_api_create_pull_request() pub 函数;webhook 订阅补 pull_request 事件
- onboarding/git-workflow: v1.2.0,新增 PR 创建通过炼境 MCP 的说明与禁止条款
- cicd: 新增 pr_ci(PR 质量检查)+ deepseek_review(AI 代码审查)模板 + 4 项测试
- CicdModal: 类型选择器扩展为 4 项,deepseek_review 加 Secrets 提示面板
|
2026-07-03 16:57:36 +09:00 |
|
lanrtop
|
bcdcad7f27
|
chore(blueprint): T1 实测证据回填——两项目 appended 三态走通,五态 UI 修复记录
|
2026-07-03 13:43:25 +09:00 |
|
lanrtop
|
c4a6600134
|
fix(onboarding): 模板分发报告识别 appended/updated 五态,不再误显 ✗
noteapp 实测追加管理块成功但 UI 渲染成红叉——前端映射只认旧三态,
新增 action 落入 failed 默认分支。改映射表覆盖五态,
updated/appended 展示后端 detail(含版本信息)。
Rules-Applied: R12
|
2026-07-03 13:37:22 +09:00 |
|
lanrtop
|
965d095820
|
chore(release): v0.1.18
Release / release (push) Successful in 4m18s
|
2026-07-03 13:24:32 +09:00 |
|
lanrtop
|
6efde66c42
|
feat(onboarding): T1 模板版本化三态分发 + B1 CONVENTIONS 1.10.0(R12/R13) + B2 agent 按钮章节
- dispatch_versioned:不存在写全新 / 有标记同版本跳过 / 版本不同原位升级块 / 无标记末尾追加块,块外用户内容永不触碰
- AGENTS.md.tmpl 重写为三分区:用户 TODO 区 + ONBOARDING_MANAGED v1.1.0 块(含 agent 按钮与验证路径章节)+ 四支柱防腐元规则
- git-workflow.md.tmpl 全文入管理块 v1.1.0
- CONVENTIONS 升 1.10.0:R12 边界单点实现、R13 验收路径须真实走通(含载体就近选择表)
- lefthook.yml 保持存在即跳过(用户深度定制不适用块机制)
Rules-Applied: R05-skip, R12, R13
|
2026-07-03 13:23:41 +09:00 |
|
lanrtop
|
e6eb64b21b
|
chore(blueprint): 体系分发落地拆卡——T1 模板版本化升格可派发,B 系列 planned
|
2026-07-03 13:03:40 +09:00 |
|
lanrtop
|
f1533133f6
|
chore(blueprint): 体系分发补版本化闭环要求——分发即养殖,模板版本化为前置
|
2026-07-03 12:57:34 +09:00 |
|
lanrtop
|
4d73c94f09
|
chore(blueprint): agent 按钮体系分发 concept——四管道四资产,子项目出厂即带范式
|
2026-07-03 12:47:19 +09:00 |
|
lanrtop
|
177bbdc782
|
chore(blueprint): 能力双投影补侦察驻军原则与双消费者洞察
|
2026-07-03 12:38:35 +09:00 |
|
lanrtop
|
b01084c628
|
chore(blueprint): 能力双投影补载体选择原则——子项目不需要 MCP
|
2026-07-03 12:26:24 +09:00 |
|
lanrtop
|
ef7c7a4645
|
chore(blueprint): 能力双投影补工具预算约束——防 tool bloat 的准入分级
|
2026-07-03 12:19:02 +09:00 |
|
lanrtop
|
8c8423e0a4
|
feat(mcp): 治理三件套的 agent 投影——能力双投影首次实践
get_blueprint_status / generate_blueprint_prompt / sync_blueprint_rules
注册为 MCP 工具,与 UI 治理按钮共享同一后端函数(统一验证路径空间)。
工具描述声明对应 UI 按钮与使用约束。agent 从此可走正规流程完成
"拿提示词 → 子项目执行 → 验证蓝图"闭环,不再绕道。
Rules-Applied: R01, R10
|
2026-07-03 11:29:28 +09:00 |
|
lanrtop
|
7b0f8e60bb
|
chore(blueprint): 能力双投影 concept 卡——UI 按钮↔MCP 工具对齐(R12 候选)
|
2026-07-03 11:21:04 +09:00 |
|
lanrtop
|
d4cb3c0567
|
fix(blueprint): 提示词嵌入 manifest 硬约束骨架——防子项目 AI 产出非法格式
noteapp 事故:新导入项目执行"更新蓝图描绘"后 manifest 解析失败
(missing field area)——子项目 AI 写出 project:/stable/in-progress/
depends_on 等自造格式。根因:CONVENTIONS 全文 900+ 行随提示词下发,
manifest 规范埋在中间被忽略,且无"现有文件不合法必须重写"指令。
init/sync 双模板注入就近的严格 schema 骨架:合法字段清单、status 枚举、
非法示例点名、强制重写指令。
Rules-Applied: R02, R10
|
2026-07-03 10:37:18 +09:00 |
|
lanrtop
|
5e2e899075
|
chore(blueprint): G7 实战复盘——scope/参数命名/大文件三坑与检测盲区
|
2026-07-03 10:21:01 +09:00 |
|
lanrtop
|
4cd941c975
|
feat(gitea): G7 一键接线——新建仓库后本地 init/origin/首推一键完成
绑定完成但本地未连通时(无 .git 或无 origin),Gitea 绑定区显示接线引导:
- 无 git → init + 首次提交 + 关联 origin + 推送
- 有 git 无 origin → 关联 origin + 推送当前分支
复用 publish.rs 存量命令(git_init_and_commit/git_remote_set/git_push),
补齐 GitHub 退役时遗落的"本地接线"半程(接线/放风筝边界裁决的落地)。
Rules-Applied: R01
|
2026-07-03 10:04:31 +09:00 |
|
lanrtop
|
09410cc35f
|
chore(blueprint): 建仓边界裁决(接线/放风筝)+ G7 一键接线卡
|
2026-07-03 09:56:19 +09:00 |
|
lanrtop
|
a9805f70f9
|
fix(gitea): giteaUpdateInstance 参数命名不匹配——更新静默失效
前端展开 snake_case 字段(access_token),Tauri 命令层按 camelCase
(accessToken)匹配,参数被静默丢弃,后端视为未提供而跳过更新且返回
成功——UI 显示"已更新"但 DB 未变(改 Token 实测 401 暴露)。
显式映射为 camelCase 修复。
Rules-Applied: R08, R10
|
2026-07-03 09:45:01 +09:00 |
|
lanrtop
|
b7008a132e
|
fix(gitea): 建仓需 write:user scope——实例支持改 Token + 权限提示补全
- Gitea 的 POST /user/repos 归 write:user scope(403 实测,R10:以实际
行为为准),此前权限指导只给了 read:user 导致新建仓库失败
- GiteaInstancesSection 新增「改 Token」内联编辑(此前无入口,删除实例
重建会级联丢失全部仓库绑定)
- 添加实例的 placeholder 补权限要求说明
Rules-Applied: R08, R10
|
2026-07-03 09:38:31 +09:00 |
|
lanrtop
|
1d068d188c
|
fix(agent-infra): 空契约项目点击生成三件套无反馈——移除静默 return
UI 承诺"未检测到框架特征,可直接生成空模板",但 handleGenerate 遇到
空契约列表直接静默 return,点击无任何反馈(autoforphone 项目实测)。
后端本就支持空 contracts 生成空模板骨架,删除前端多余 guard 即可。
Rules-Applied: R08
|
2026-07-03 09:31:57 +09:00 |
|