|
|
8b9ae81f78
|
Merge pull request 'fix(gitea-integration): 删除项目登记时一并解除 Gitea 绑定,轮询不再写入已删除或已解绑的项目(G8)' (#35) from fix/gitea-unbind-on-unregister into master
Push & PR Check / check (push) Has been cancelled
|
2026-10-03 09:59:07 +08:00 |
|
lanrtop
|
fccb76783d
|
fix(gitea-integration): 处置 G8 独立审查——删除登记本体补外部清理测试,轮询写入前复核绑定,解绑读删同事务(G8)
Push & PR Check / check (pull_request) Successful in 1m8s
- 抽出连接与凭证存储注入的删除登记本体 projects::delete_project_registration
(delete_project_records + 提交后 Gitea 外部清理),delete_project 只做薄包装;
补测试校验被删项目的 webhook 签名凭证被清理、他项目凭证保留,以及孤儿绑定可经删除登记清理
- 轮询 commit 与 PR 写入抽成 ingest_polled_commits / ingest_polled_prs,写入前用
poll_target_still_bound 复核绑定仍在且项目仍登记,避免按本轮开头的旧快照写入已删除或已解绑的项目
- gitea_unlink_repo 的读与删放进同一事务,与删除登记路径同写法
- 孤儿绑定 warn 写明清理路径(对该 ID 调 unregister_project)
- 审查第 5 条(连接池外键只在迁移连接开启)经探针证伪:bundled SQLite 默认 foreign_keys=1,不改
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
2026-10-03 10:49:26 +09:00 |
|
lanrtop
|
78116b026f
|
docs(tasks): 统筹流水——U3 数据合并验收完成,后续小修与 beast-mode 重复登记入队,列出待清理临时文件
Push & PR Check / check (push) Successful in 1m5s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
2026-10-03 10:29:50 +09:00 |
|
lanrtop
|
06f20dbcaf
|
chore(codex): 炼境自身 Codex 托管块升级为稳定 helper 认证格式
Push & PR Check / check (push) Successful in 1m2s
重复登记合并(mcp-single-server U3)后重注入 dev-manager-tauri,托管块由 9-23 的旧格式
升级为当前格式:URL 不变(项目路由),补 http_headers_helper 经 %USERPROFILE% 稳定入口
取认证头;digest 为 project_id 的 sha256,非秘密,按设计入库。
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
2026-10-03 10:28:52 +09:00 |
|
lanrtop
|
91017b6813
|
docs(blueprint/mcp-single-server): U3 存量合并完成,同路径重复登记遗留清理完毕,模块标 done(U3)
Push & PR Check / check (push) Successful in 1m3s
2c5b54ef 的 commit / 笔记 / PR 事件 / 待办并入 dev-manager-tauri 后删除登记;
全库无残留,诊断覆盖率只剩一行,verify_onboarding 与操作前一致。
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
2026-10-03 10:25:34 +09:00 |
|
lanrtop
|
fcf7a00e6c
|
docs(tasks): 补回授权规则第 3 条被 shell 吞掉的 trailer 名
Push & PR Check / check (push) Successful in 1m0s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
2026-10-03 10:22:01 +09:00 |
|
lanrtop
|
2b63b9f9fc
|
docs(tasks): 统筹文档写入用户授权规则——审查通过且 CI 绿自行合并、队列内 Feature 卡视为已确认、失败 3 次标红跳过、仅 DB 写入/删除/human_verify 找用户
Push & PR Check / check (push) Successful in 1m6s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
2026-10-03 10:19:55 +09:00 |
|
lanrtop
|
c1632a0549
|
fix(gitea-integration): 删除项目登记时同一事务解除 Gitea 绑定,轮询跳过已删除项目的遗留绑定(G8)
删除登记(UI 删除项目、MCP unregister_project)原来不清 gitea_repos,
后台轮询每 10 分钟仍把 commit 与 PR 事件写到已删除的项目 ID 下。
- gitea:解绑本体拆为 remove_repo_link_records(只动数据库,可进调用方事务)
与 cleanup_removed_repo_link(提交后尽力删 Gitea 侧 webhook 与本机签名凭证),
UI 解绑 gitea_unlink_repo 与删除登记共用
- projects:抽出 delete_project_records(连接注入),关联表、Gitea 绑定、
workspace、孤儿 profile 同一事务删除;delete_project 提交后再做 Gitea 外部清理
- 轮询兜底:load_poll_targets 把所属项目已不存在的遗留绑定排除在 commit / PR
轮询之外,每个绑定每次运行只记一次 warn
- 契约:unregister_project 描述与 project-context.yaml 同步
回归测试 deleting_project_registration_unbinds_its_gitea_repo 修复前失败、修复后通过;
变异验证通过;全量 cargo test 307 passed / 0 failed / 5 ignored。
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
2026-10-03 10:18:49 +09:00 |
|
lanrtop
|
5f74a5644e
|
docs(blueprint/gitea-integration): 立 G8 卡并标 🔵——删除项目登记时一并解除 Gitea 绑定
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
2026-10-03 10:02:44 +09:00 |
|
lanrtop
|
23943a12a9
|
docs(tasks): 统筹流水——PR #34 已合并,P8c 收尾与 Gitea 解绑改由工作流自动执行,重复登记数据合并可执行
Push & PR Check / check (push) Successful in 1m3s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
2026-10-03 09:58:34 +09:00 |
|
|
|
fc280db426
|
Merge pull request 'fix(mcp-single-server): 删除登记只清本项目托管条目,沉默项目统计去并集,注入状态带项目名(U1、U2)' (#34) from feat/mcp-single-server-u1 into master
Push & PR Check / check (push) Successful in 1m4s
|
2026-10-03 08:52:41 +08:00 |
|
lanrtop
|
0e374e5996
|
docs(tasks): 新增统筹推进文档——统筹会话派卡、执行会话独立执行的协议、环境铁律与派单队列
Push & PR Check / check (push) Successful in 1m1s
单会话推进易触发上下文压缩、丢失推进所需信息:改为统筹会话维护规划与进度、
每张卡由新会话独立执行并上报。文档含角色与上报/求助/合并协议、踩坑形成的执行
环境铁律、P8 串行派单队列(含可并行的 Gitea 解绑卡)、派单与 PR 流水、待用户
处理事项(重复登记数据合并的执行时机)。
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
2026-10-03 09:40:59 +09:00 |
|
lanrtop
|
e57da3aebb
|
fix(mcp-single-server): 删除登记只清本项目托管条目,沉默项目统计每条 commit 只归属一个 workspace,注入状态带项目名(U1、U2)
Push & PR Check / check (push) Successful in 1m34s
Push & PR Check / check (pull_request) Successful in 1m1s
同路径重复登记(dev-manager-tauri 与 2c5b54ef 并存)暴露的三处问题:
- remove_project_files_mcp 按路径解析目录后无条件删 Codex 管理块与 settings 条目,
删 UUID 那条会连带切断规范 ID 的 Codex 接入;改为只删 URL 属于本 project_id
或不是炼境项目路由(旧格式)的条目
- silent_projects 的「ID 或路径」任一匹配让一行吃到多条登记的并集(真机 147 / 86),
改为每条 commit 先按直接 ID、再按 buff 路径归属唯一 workspace
- get_diagnostics 注入状态只打 ID,enterprise-system 的 UUID 被误读成炼境重复登记;
改为「名称 (`id`)」,已删除的登记标注未登记
Rules-Applied: R06,R07
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
2026-10-03 09:22:25 +09:00 |
|
lanrtop
|
a85f3d9bd0
|
docs(blueprint/agent-client-parity): P8b 合并后在运行中的炼境实测通过,标 ✅
Push & PR Check / check (push) Successful in 1m2s
PR #33(ddd729c)合并、tauri dev 重编译生效后:verify_onboarding(enterprise) 的
clients 三端均 converged;连续两次 inject_mcp 回执三端均「已一致(未改动)」,
耗时 26 ms、112 ms,四个项目文件 mtime 不变,git status 前后均干净。
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
2026-10-03 09:01:35 +09:00 |
|
|
|
ddd729c2c7
|
Merge pull request 'feat(onboard/parity): 客户端适配器注册表与三端结构化注入结果,onboard 模块投影无关适应度测试(P8b、A1a)' (#33) from feat/agent-client-parity-p8 into master
Push & PR Check / check (push) Successful in 1m4s
|
2026-10-03 07:56:11 +08:00 |
|
lanrtop
|
59f2c9d5fb
|
fix(onboard/parity): P8b 审查修复——未装记 not_installed、手写保留留痕、成功日志后移、只读判定误判(P8b 审查)
Push & PR Check / check (push) Successful in 1m0s
Push & PR Check / check (pull_request) Successful in 1m3s
独立审查 agent 只读审查 d1b9b05(未发现死锁、重入或崩溃),十条发现处置:
- Claude apply:无全局配置且找不到 CLI 记 not_installed,与 DSH、static 同口径
- 手写条目保留(manual_kept)时补日志:DSH 照原文案,Codex 带 project_id
- 「MCP 配置注入成功」移到三端收敛之后,Codex 失败时改记 warn「注入失败」,
诊断不再把失败显示成成功
- 控制面 Claude 静态判定:遮蔽全局注册的残留 local 条目报 missing
- 嵌套项目:根目录是 git 根时只认等于根目录的键,否则取最具体的键
- 适应度测试改为递归;registry() 注明适配器暂寄 mcp_inject 的传递依赖
- 状态名对齐设计:skipped 改为 not_applicable{control_plane|wsl} 与 deferred
- 只读判定:读失败与 YAML 解析失败报 unavailable,Codex 块与手写同名表并存、
标记错序报 needs_human,DSH 块外手写报 manual_kept;client_static_status 改用
与注入同源的 project_root
- 修正「目录不存在」假阳性用例,补 hard_failure、inject 回执、apply 映射、
clients 不影响 pass 的测试;cargo test 300 passed,两处变异验证失败如期
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
2026-10-03 08:52:25 +09:00 |
|
lanrtop
|
d1b9b0564e
|
feat(onboard/parity): 客户端适配器注册表与三端结构化注入结果,onboard 模块投影无关适应度测试(P8b、A1a)
Push & PR Check / check (push) Successful in 1m2s
Push & PR Check / check (pull_request) Successful in 59s
一键接入(P8)编排前置:Claude local 与 DSH 托管块的成败原来只写日志,inject_mcp
笼统回「已配置 Codex 与 Claude」,失败会被报成成功(R4)。
- 新增 src-tauri/src/onboard/:ClientId、ClientOutcome(converged/applied/refreshed/
removed/manual_kept/other_project/not_installed/skipped/missing/unavailable/
needs_human/failed)、ClientAdapter(detect/static_status/apply)与 registry();
适应度测试 onboard_module_is_projection_free 机器校验本体不依赖投影层
- 三端适配器实现在 mcp_inject,注册表反向接入;注入经 registry() 逐端 apply,
新增 inject_project_mcp_report,inject_project_mcp 签名与「Codex 失败即整体失败」
语义不变
- sync_claude_local / ensure_dsh_patch 抽出依赖注入版,每条分支返回结构化结果,
日志类别与文案不变;upsert_codex_mcp_config 返回 converged/applied/manual_kept
- verify_onboarding(MCP)附加 clients 只读三端状态,不计入 checks、不影响 pass;
inject_mcp 回执逐端列出实际结果
- 行为变化(有意):Codex 手写同名 server 改记 manual_kept 不再阻断 Claude/DSH;
WSL 项目 Claude local 记 skipped 不再起 CLI
- 新增 9 条测试(假 CLI 覆盖 Claude 全部分支、临时 DSH 目录四态);cargo test
295 passed;契约同步 project-context.yaml,AGENTS.md 架构速查补 onboard/
Feature-Confirmed: true
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
2026-10-03 08:25:04 +09:00 |
|
lanrtop
|
a6addc754d
|
docs(blueprint/agent-client-parity): P4-0 探针前置实测六项假设出结论,脱敏夹具入库(P4-0)
Push & PR Check / check (push) Successful in 1m1s
零凭据实测(全部连本地桩服务)Claude Code 2.1.173、codex-cli 0.155.0-alpha.9.2、
DSH 桌面版内置运行时,结论均未推翻 P8 设计:
- H-P8-1:Codex 只在目录受信任时加载项目 .codex/config.toml(隔离 CODEX_HOME
对照),codex mcp get --json 零模型反映「项目配置 + 信任」,可作 L1 自省
- H-P8-2:项目 bypassPermissions 下单加 --allowedTools 不限制(R8 证实);L3 收窄
组合定为 --permission-mode default --tools Skill --allowedTools <只读工具> Skill
- H-P8-3:codex exec 下 readOnlyHint 工具在 -s read-only 可调,其余报需审批
- H-P8-4:claude -p 用不存在的模型名 3 秒内先发 init(MCP 状态、工具、skills),
费用与 token 为 0,Claude 的 B、C 可并入 L1
- H-P8-5:75 秒的 MCP 工具调用 Codex 未超时
- H-P8-6:DSH headless --json 含 tool_call/tool_result 事件
- 夹具 10 个,用户路径、会话 ID、UUID 换占位符,长文本截断,无凭据
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
2026-10-03 08:01:50 +09:00 |
|
lanrtop
|
8230910358
|
fix(mcp-inject): 「已接入」统一为有项目 token 单一判定,批量重注入补上独立接入项目(P8a)
Push & PR Check / check (push) Successful in 1m2s
「已接入」原有三套判定:reinject_all_mcp 按产品组成员、DSH 白名单与根目录迁移按
项目 token、list_all_projects 按 .claude/liangjing.json 是否存在。结果是独立接入
(不在任何组)的项目在端口变更后不会被重注入,list_all_projects 对只剩兼容文件的
项目误报「已注入」。
- 新增 mcp_inject::is_project_injected(store, project_id),DSH 白名单、
on_project_root_changed、list_all_projects 统一调用
- reinject_all_mcp 目标改为「组成员 ∪ 有 token 的登记项目」(reinject_targets),
锁内复查改为 is_reinject_target,token 先被删的项目不再注入(语义不变)
- list_all_projects 拆出 render_all_projects(conn, store),去掉循环内二次取池
- 新增两条测试,变异确认会失败;契约同步 project-context.yaml;蓝图 P8a 标 ✅
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
2026-10-03 07:44:04 +09:00 |
|
lanrtop
|
f8dc95c6ee
|
docs(blueprint/agent-client-parity): P8 一键接入设计定稿,拆为 P8-0、P8a–P8g 与 P4-0、P4a–P4e,A1 改写为三段(P8-0)
Push & PR Check / check (push) Successful in 1m2s
三角度方案(最小编排 / 收敛流水线 / 本体收口)并行设计 + 综合评审,设计文档入库
docs/tasks/2026-10-03-p8-onboarding-oneclick-design.md(16 条已核实代码事实、风险
R1–R18、决策 Q1–Q11)。用户以 /goal 授权按推荐方向代为推进,11 项全部采纳推荐项。
- 主方案:同步、零模型的最小编排本体 + 可选异步探针;嫁接 plan/digest 写前确认、
经真实 shim 的认证链重放、「已接入」单一判定、客户端适配器注册表
- A1 不前置:P8/P4 载体都在炼境进程内,离线写入会绕过进程内锁且有 MSIX 重定向
风险,真正耦合是全局 pool() 而非 crate 边界;A1 改为 A1a(随 P8b 的适应度测试)、
A1b(按需 CLI 薄客户端)、A1c(触发式拆 crate,四个触发条件)
- P4 分 L0 静态 / L1 零模型 / L3 无头会话;P8 只依赖 L1(P4a)
- 验收口径变更(Q1,报备):P8 由「三端无头 A–F 矩阵」改为「L1 零模型矩阵 + 可选
L3 结果及是否过期」,理由写在 P8 卡
- P6 依赖 P8c(Q3);P4b 排在 A4 之后(Q8);manifest 清除「P4/P8 依赖 A1」
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
2026-10-03 07:35:53 +09:00 |
|
lanrtop
|
44f7f667a6
|
fix(blueprint-buff): 跟进维护既有蓝图内容也算归属已显式,不再按 files 重叠误标(B2)
Push & PR Check / check (push) Successful in 1m1s
2026-10-03 主仓库快进到 19b9388(PR #31 只补记 ✅ P7 的 known_limits,无标题
变化)后,P6/P8(onboarding.rs)与 A4(mcp_server.rs)再次被误标 🔵:B1 只把
「新增 🔵/✅/🔴 标题行」当显式推进,跟进已完成卡被判为无推进而走兜底。
- infer_task_marks 增加 edits_existing_lines:本批 .blueprint/modules patch 在
hunk 内有 `-` 行(删改既有内容)即视为 agent 在维护蓝图,不推断
- 纯追加(新立 📋 卡、新模块)仍走兜底,保留「立卡即实现、忘了加锁」的捕获
- 新增单测与端到端 ⑧⑨;变异(去掉条件)确认 ⑧ 失败;回放 master 260 批次,
B2 新增抑制 27 批,含代码改动 6 批
- 蓝图 blueprint-buff 立 B2 卡并标 ✅
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
2026-10-03 07:30:38 +09:00 |
|
|
|
10434d4b71
|
Merge pull request 'feat(delivery/mcp): get_delivery_status 支持按 pr_number/branch 查询,结论绑定 Gitea head SHA(使者回传 #203)' (#32) from feat/delivery-status-by-pr into master
Push & PR Check / check (push) Successful in 1m1s
|
2026-10-03 05:36:38 +08:00 |
|
lanrtop
|
df5832f41b
|
fix(delivery/mcp): 补 get_delivery_status 经 scoped dispatch 转发 pr_number/branch 的回归测试(P3-F 审查)
Push & PR Check / check (push) Successful in 59s
Push & PR Check / check (pull_request) Successful in 1m2s
使者回传 #203 的症状是「传 pr_number 也不起作用」,但原有 MCP 层测试只覆盖非法参数报错,
dispatch 若丢弃已解析的查询目标、改传默认值,全部测试仍通过。新增 scoped dispatch 正向测试,
断言 pr_number/branch/null 分别得到 pull_request/branch/local_branch 目标;已用变异
(dispatch 改传 DeliveryQuery::default())确认该测试会失败。
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
2026-10-03 06:34:06 +09:00 |
|
lanrtop
|
1e3989d0d7
|
feat(delivery/mcp): get_delivery_status 支持按 pr_number/branch 查询,结论绑定 Gitea head SHA(使者回传 #203)
Push & PR Check / check (push) Successful in 1m0s
Push & PR Check / check (pull_request) Successful in 1m2s
Enterprise 2026-10-03 实测:为避开主工作区里其他会话的在制品,在独立 worktree
分支上开 PR 交付时,get_delivery_status 只读主工作区当前分支,返回「当前分支没有
开放 PR」、CI 停在主工作区 HEAD,传 pr_number 也被忽略,只能用 git ls-remote 与
get_ci_status(commit_sha) 兜底。
- MCP schema 新增可选 pr_number(优先)与 branch;都不给时保持原行为
- pr_number:GET /pulls/{n} 取 head 分支与 head SHA,CI 与 review 均绑定该 PR;
PR 不存在(404)返回 not_found,与 Gitea 不可达(unavailable)区分;
同时传 branch 且与 PR head 分支不一致时以 pr_number 为准并在 detail 提示
- branch:匹配该分支的开放 PR 并以其 head SHA 查 CI;无开放 PR 时取 Gitea 上
该分支 head SHA;远端分支不存在时 CI 为 unknown
- 顶层新增 target(mode/pr_number/branch/head_sha/source/detail),
pull_request.data 增 head_sha;git 字段仍反映主工作区,既有字段兼容
- 取值校验在能力本体 DeliveryQuery 单点实现,MCP 只解析 JSON 类型;显式给出的
非法值直接报错,不静默回退主工作区
- Gitea 读取拆为本地/PR/分支三种目标,凭证存储注入以便合成 Gitea 测试;
merge_pull_request 门禁代码未改
- lian-jing skill 第 6 条改为 get_delivery_status(project_id, pr_number),
base-onboarding 1.8.0→1.9.0(BASE_ONBOARDING_PACK_VERSION、模板
capability-packs.json、TEMPLATE_FINGERPRINTS);Codex 插件 skill 同步
- 契约说明同步 docs/ai-context/project-context.yaml;蓝图 P3-F 标 ✅
Feature-Confirmed: true
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
2026-10-03 06:22:09 +09:00 |
|
lanrtop
|
d8ba9dbf40
|
docs(blueprint/delivery): 立卡 P3-F get_delivery_status 按 PR/分支查询(使者回传 #203)
Enterprise 2026-10-03 实测:在独立 worktree 分支开 PR 交付时,get_delivery_status
只读主工作区当前分支,PR/CI 结论与目标 PR 脱节。本卡开始执行,标 🔵。
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
2026-10-03 06:09:25 +09:00 |
|
|
|
19b9388ccf
|
Merge pull request 'feat(onboarding/parity): lian-jing skill 补写操作确认与 unavailable/unknown 两条通用边界,接入包升至 1.8.0' (#31) from feat/agent-client-parity-p7-skill-rules into master
Push & PR Check / check (push) Successful in 58s
|
2026-10-03 04:49:04 +08:00 |
|
lanrtop
|
32e947b622
|
fix(onboarding/parity): lian-jing skill 免确认例外补列 register_project_dev_variable,第 8 条开发变量改用对应登记工具(P7 审查修复)
Push & PR Check / check (push) Successful in 1m2s
Push & PR Check / check (pull_request) Successful in 59s
服务器说明 MCP_SERVER_INSTRUCTIONS 的免确认例外是泛称「不含秘密的开发需求元数据」,
register_project_test_account 与 register_project_dev_variable 都属于;skill 新增的
通用边界括注只列了前者,开发变量登记会被误读为须用户确认的「其他写操作」。同源旧
问题:skill 第 8 条把「开发变量(沙箱 key 等)」也只指向 register_project_test_account。
- skill 例外括注同时列出两个登记工具
- 第 8 条拆分:测试账号用 register_project_test_account 登记名称、目标系统、非生产
环境与用途;开发变量用 register_project_dev_variable 登记名称与用途
- base-onboarding 1.8.0 尚未发布,不再升版本,仅更新 TEMPLATE_FINGERPRINTS 摘要
- server_instruction_universal_rules_are_in_skill 加断言:服务器说明含「开发需求元
数据」,skill 写操作确认规则所在行同时含该泛称与两个登记工具名
- 蓝图 P7 known_limits 把「措辞与服务器说明一致」精确为「两条规则核心句逐字一致」,
并记录本次例外与第 8 条的修正
测试:cargo test --locked 全量通过(lib 273 passed / 5 ignored,0 failed)。
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
2026-10-03 05:43:32 +09:00 |
|
lanrtop
|
e13599fbbd
|
feat(onboarding/parity): lian-jing skill 补写操作确认与 unavailable/unknown 两条通用边界,接入包升至 1.8.0
Push & PR Check / check (push) Successful in 59s
Push & PR Check / check (pull_request) Successful in 1m0s
P7 实测 Codex 不把 MCP 服务器说明带入模型上下文,服务器说明里的「其他写操作
须用户明确确认」「unavailable/unknown 不得当作成功」在 skill 中只有分场景表述。
现把两条作为通用边界写进 lian-jing skill 模板开头(同一模板双投影到 .agents
与 .claude),措辞与服务器说明一致;只读查询、登记开发需求元数据、回传炼境
列为无需确认的例外,与 skill「回传不必逐条征得同意」相容。
- base-onboarding 1.7.0→1.8.0(BASE_ONBOARDING_PACK_VERSION、模板
capability-packs.json、TEMPLATE_FINGERPRINTS 指纹)
- mcp_server 新增 server_instruction_universal_rules_are_in_skill:服务器说明与
skill 任一侧缺这两条即失败
- 蓝图 agent-client-parity P7 known_limits 记录已补齐
Feature-Confirmed: true
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
2026-10-03 05:25:18 +09:00 |
|
|
|
367df5b88f
|
Merge pull request 'docs(blueprint/agent-client-parity): P7 实测服务器说明仅 Claude/DSH 带入模型上下文,保留 skill 引导' (#30) from feat/agent-client-parity-p7 into master
Push & PR Check / check (push) Successful in 1m0s
|
2026-10-03 04:14:06 +08:00 |
|
lanrtop
|
cce7d92ee0
|
docs(blueprint/agent-client-parity): P7 实测服务器说明仅 Claude/DSH 带入模型上下文,保留 skill 引导
Push & PR Check / check (push) Successful in 1m1s
Push & PR Check / check (pull_request) Successful in 1m3s
三端无头探针(node 桩 MCP 服务,实验组 initialize 带含唯一标记的 instructions,
对照组不带)结论为部分支持:Claude Code 2.1.173 与 DSH headless 答出标记、
对照组答 NONE;Codex 0.155.0-alpha.9.2 两组都答 NONE、输入 token 完全相同,
桩服务日志证明 initialize 与 tools/list 均成功、模型能调用桩工具,说明已送达
客户端却没进入模型。
按 acceptance 不迁移:引导提示仍以 lian-jing skill 与 AGENTS.md 托管块为三端
单一来源,mcp_server.rs 与 skill 均不改。
- 蓝图 P7 标 ✅,记录结论、三端证据与 known_limits(Codex TUI/桌面版与 SSE
未验、真实说明未实测、服务器说明中两条通用规则在 skill 只有分场景表述)
- agent-button-system.md「本地 Agent 控制面的稳定边界」增一条:服务器说明只是
增强层,三端都须遵守的引导不得只写在服务器说明里
- manifest 中 agent-client-parity 进度 55 → 64,note 补 P7
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
2026-10-03 05:02:12 +09:00 |
|
|
|
13dc75203b
|
Merge pull request 'feat(onboarding/parity): 接入包改写托管块前检测块外未提交改动,给出混合文件预警(P10)' (#29) from feat/agent-client-parity-p10 into master
Push & PR Check / check (push) Successful in 1m3s
|
2026-10-03 03:36:32 +08:00 |
|
lanrtop
|
c9b951dd30
|
fix(onboarding/parity): 混合文件预警收窄空白归一、失败时不丢预警、测住改写判断(P10 审查修复)
Push & PR Check / check (push) Successful in 1m2s
Push & PR Check / check (pull_request) Successful in 1m5s
P10 审查核实的三处缺陷:
- 块外比较原先逐行 trim_end 并丢弃全部空行,项目在块外删空行(Markdown 两段
并成一段)或加行尾空格(硬换行)时判为无改动,升级后不预警却产生混合文件。
改为 CRLF 统一为 LF、托管块原位换成占位符,只把文末占位符连同其前空白按
trim_end 归一(正好抵消炼境追加托管块时的 trim_end + 空行);文中托管块两侧
的空行与行尾空格照常比较——炼境只原位替换文中的块,不碰两侧。
- dispatch_templates_with_mixed_file_check 先 `then()?` 后标注:buff 先同步蓝图
规则改写了 AGENTS.md/CLAUDE.md、再写 DB 失败时,预警随 Err 一起丢失。改为
无论成败先标注,失败时把混合文件名并入错误信息;无混合文件则原样返回错误。
- 「块外有未提交改动但托管块已是最新、本次不改写」组合没有测试,删掉 annotate
的改写判断测试照样全绿。主场景测试补情形三。
测试:新增 outside_managed_whitespace_edits_count_as_changes、
mixed_file_warning_survives_failure_after_write,主场景补情形三;纯函数测试的
期望值随归一化收窄更新("# 标题\n项目内容" → "# 标题\n\n项目内容",保留「之前
追加的块尚未提交、只多出块前空行」不算改动的断言)。变异自检:三处修复逐一回退,
对应测试各自失败,已还原。cargo test --locked:lib 272 passed / 5 ignored,0 failed;
pnpm typecheck 通过。契约文档 project-context.yaml 与蓝图 P10 卡同步。
Rules-Applied: R07,R12
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
2026-10-03 04:32:39 +09:00 |
|
lanrtop
|
13aa3a1a8c
|
feat(onboarding/parity): 接入包改写托管块前检测块外未提交改动,给出混合文件预警(P10)
Push & PR Check / check (push) Successful in 1m2s
Push & PR Check / check (pull_request) Successful in 59s
2026-10-01 enterprise 的 git-workflow.md 在有项目未提交改写时被升级了托管块,
同一文件混有炼境与项目两种来源的改动,按「禁止字符串手术」无法拆分提交,只能交人定案。
管家应在制造混合文件时明确告知,而不是事后由人发现。
- TemplateResult 新增可选 warning(序列化时缺省省略,前端类型同步)
- apply_onboarding_pack 在模板分发与 buff 蓝图规则同步前后夹一层检测:写入前对
AGENTS.md、docs/ai-context/git-workflow.md、CLAUDE.md 跑 git status,有改动再取
HEAD:./<文件>(不在 HEAD 中按空内容算),两边去掉 ONBOARDING_MANAGED 与
BLUEPRINT_MANAGED 块后比较(忽略行尾与空行);写入后只对本次确被改写的文件预警,
文案含文件名与「块外有未提交改动,升级后将成为混合文件」
- 只提示不阻断,块外内容照旧不动;git 不可用、非仓库或命令失败一律静默;
git status 带 --no-optional-locks,不抢 index.lock
- CLAUDE.md 只由蓝图规则同步改写,不在模板结果里,预警时补一条结果
- BLUEPRINT_MANAGED 标记提为 blueprint.rs 的 pub(crate) 常量,检测与 upsert 共用
- MCP 单项目输出在该文件行下加预警行,批量输出追加混合文件清单;工具描述同步;
炼境 UI 接入包结果行下显示预警
- 契约文档 project-context.yaml 同步;蓝图 P10 标 ✅ 并记录验证与已知限制
验证:cargo test --locked lib 270 passed / 5 ignored;新增 3 个测试(纯函数、临时 git
仓库三种情形、非 git 目录),变异自检(探测强制返回 true 时两个场景测试均失败);
pnpm typecheck 与 pnpm test 通过。
Rules-Applied: R01,R06,R12
Feature-Confirmed: true
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
2026-10-03 03:58:28 +09:00 |
|
lanrtop
|
dd2d7ca369
|
docs(blueprint/governance-feedback-loop): 缺口①按代理终验收口标 ✅,记录 enterprise #181 合并
Push & PR Check / check (push) Successful in 1m1s
用户委托检查会话代为终验:无摩擦不误报、DSH 0.2 可加载 skill 已实测;主动回传转运行期观察,由 B4 沉默项目信号兜底。
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
2026-10-03 03:32:06 +09:00 |
|
lanrtop
|
82a8530ad7
|
docs(blueprint/governance-feedback-loop): 缺口①更正 DSH 技能加载结论,记录代理终验与 enterprise 入库 PR
Push & PR Check / check (push) Successful in 1m2s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
2026-10-03 02:51:37 +09:00 |
|
lanrtop
|
b5671eed28
|
docs(blueprint/governance-feedback-loop): 缺口①记录 enterprise 接入包分发与 DSH 技能路径发现,待人终验
Push & PR Check / check (push) Successful in 1m4s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
2026-10-03 02:16:08 +09:00 |
|
lanrtop
|
b73d361413
|
docs(blueprint/governance-feedback-loop): 记录 59 条回传补录的独立复核与用户裁决——carded/watching 接受现状
Push & PR Check / check (push) Successful in 1m3s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
2026-10-03 02:05:50 +09:00 |
|
lanrtop
|
151d7adb20
|
docs(blueprint/governance-feedback-loop): 缺口①上线实证——三端探针通过、59 条历史回传补录清零,待人终验
Push & PR Check / check (push) Successful in 1m3s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
2026-10-03 01:55:11 +09:00 |
|
lanrtop
|
7595c37d22
|
test(onboarding): 托管模板指纹测试,改内容未升版本即失败
Push & PR Check / check (push) Successful in 1m3s
全托管文件(envoy.md / SKILL.md)按内容覆盖,但 verify_onboarding 只凭
capability-packs.json 版本判落后——只改内容忘升 BASE_ONBOARDING_PACK_VERSION
时 verify 永远 ready,子项目收不到更新。升版规则此前只有文档约束。
- 新增 managed_template_fingerprints_track_versions:「版本号 → 摘要」登记表
TEMPLATE_FINGERPRINTS 钉住 resources/onboarding/**(↔ BASE 版本)与
AGENTS / git-workflow 管理块(↔ 块首 version);摘要前 CRLF→LF 归一化
- capability-packs.json 与 BASE 相等复用既有断言,补可读报错
- onboarding-sync.md 说明该测试
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
2026-10-03 01:49:36 +09:00 |
|
|
|
f948c4c802
|
Merge pull request 'feat(mcp/envoy): 使者回传闭环——回执 + 三端回传入口' (#28) from feat/governance-feedback-loop into master
Push & PR Check / check (push) Successful in 1m6s
|
2026-10-03 00:44:03 +08:00 |
|
lanrtop
|
c6ebc2d775
|
docs(blueprint/governance-feedback-loop): 缺口① 立卡使者回传闭环,记录实现、审查与自验,进行中
Push & PR Check / check (push) Successful in 1m30s
Push & PR Check / check (pull_request) Successful in 1m2s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
2026-10-03 01:16:12 +09:00 |
|
lanrtop
|
3095df3d2a
|
feat(mcp/envoy): 使者回传闭环——回执 + 三端回传入口
回传只进不出:list_envoy_returns 无处置状态、LIMIT 50 把更早的回传静默挤掉;
入口只有 Claude /envoy,08-23 后 enterprise 主力转 DSH/Codex 即零回传。
- envoy.rs 业务本体(连接注入)+ envoy_dispositions 回执表(migrate 补表)
- report_envoy_return(项目级,Claude/Codex/DSH 在项目地址均可用):字段枚举校验、
内容压单行限长、兜底拒绝明显凭据;同项目 1 天内同内容未处置幂等返回原编号
(IMMEDIATE 事务防并发重复);复用 append_project_note 的档案双写
- resolve_envoy_return(控制面):landed/carded 必填落点、reason 必填、允许更正
- list_envoy_returns 默认只列未处置(带编号),附已处置计数,超出展示上限明说;
LEFT JOIN 不再丢掉登记已删项目的回传;include_resolved 可审计回执
- lian-jing skill 新增「遇到摩擦时回传炼境」;/envoy 改为指向该入口的薄指引
(保留扫描与分类硬门槛,炼境分发物出错免门槛,身份改读 .lian-jing/context.json);
AGENTS 托管块加一行指路(1.9.0→1.10.0),能力包 base-onboarding 1.6.0→1.7.0
- 删除炼境仓库内 Codex 迁移遗留的 source-command-envoy 技能(读旧身份文件、走旧写入路径)
- 契约与架构文档同步:project-context.yaml、project-brief.md、AGENTS.md、agents-meta-rules.md
Rules-Applied: R05,R06,R12
Feature-Confirmed: true
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
2026-10-03 01:15:40 +09:00 |
|
lanrtop
|
b537847db7
|
docs(blueprint/blueprint-buff): B1 终验通过,标记完成
Push & PR Check / check (push) Successful in 1m0s
PR #27 合并后主仓库拉取,buff 处理含共享文件改动的提交批次,无任何卡片被误标 🔵。
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
2026-10-02 20:03:55 +09:00 |
|
|
|
9da19cecaa
|
Merge pull request 'feat(blueprint/buff): files 重叠推断降为兜底,同批已有显式推进则不推断' (#27) from feat/blueprint-buff into master
Push & PR Check / check (push) Successful in 1m2s
|
2026-10-02 18:40:52 +08:00 |
|
lanrtop
|
1778ca21d9
|
docs(blueprint/blueprint-buff): B1 记录实现与自验证据,挂触发条目结案,待人终验
Push & PR Check / check (push) Successful in 1m2s
Push & PR Check / check (pull_request) Successful in 1m3s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
2026-10-02 18:52:24 +09:00 |
|
lanrtop
|
4a37438a58
|
fix(credential): 修复并行测试偶发失败——Credential Manager 调用串行化,模拟 Gitea 改阻塞读
Push & PR Check / check (push) Successful in 1m29s
全量并行 cargo test 10 次失败 3 次(单跑稳定通过),两个独立根因:
- 同进程并发 CredWriteW/CredDeleteW 会丢更新:写入并校验成功的凭据随后读回 NOT_FOUND,
删除成功的条目又被并发写回。R10 readiness 报 needs_repair、开发变量试点报「凭证引用缺失」
均源于此(诊断日志证实无跨测试删除;8 线程压力实验直接复现)。windows_store 的
put/get/delete 经进程级锁串行,生产中 MCP 与 UI 并发写凭据同样受益;跨进程不在保护范围
- Windows 上从 nonblocking listener accept 的 socket 继承 nonblocking,set_read_timeout
不生效,请求晚到即 WouldBlock。mcp_server 两处模拟 Gitea 补 set_nonblocking(false),
与 commands/gitea.rs 既有写法一致
验证:修复后全量并行 cargo test 连续 30 次 0 失败(247 passed、5 ignored)。
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
2026-10-02 18:52:05 +09:00 |
|
lanrtop
|
b7987e160f
|
feat(blueprint/buff): files 重叠推断降为兜底,同批已有显式推进则不推断
两阶段锁下真正在做的卡提交落地时已是 🔵/✅,files 重叠只能碰到仍为 📋 的卡,
命中共享热点文件(mcp_tools.rs / onboarding.rs 等)的多是未开工卡。
回放 master 240 个 first-parent 提交:旧算法命中 50 次,明确正确仅 3 次;
新规则 50 → 5,PR #24/#25/#26 对 P6/P7/P8/A4 的误标全部消除。
- 本批蓝图 diff 新增 🔵/✅/🔴 标题行(非原样搬移)→ 归属已显式,不做 files 推断
- last_commit 非 HEAD 祖先(checkout/reset/rebase)→ 跳过;git 出错记日志
- 同一批次全程使用轮询读到的 HEAD sha,判定口径一致
- 匹配修正:去掉反向后缀、后缀须落在 / 边界、尾逗号空项丢弃、「、」「,」作分隔
- 蓝图同步提示词:核实仅共用文件的 🔵 可降回 📋 并写明原因
- 补 buff.rs 首批测试(纯函数 + 临时 git 仓库端到端)
Rules-Applied: R09
Feature-Confirmed: true
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
2026-10-02 18:49:56 +09:00 |
|
lanrtop
|
ae6de1d324
|
docs(blueprint/blueprint-buff): 立卡 B1 files 重叠推断降为兜底,进行中
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
2026-10-02 18:32:02 +09:00 |
|
|
|
79853b71f2
|
Merge pull request 'feat(mcp/parity): DSH 桌面 GUI 按工作区连项目地址(会话级插件,P9)' (#26) from feat/agent-client-parity-p9 into master
Push & PR Check / check (push) Successful in 1m4s
|
2026-10-02 15:37:48 +08:00 |
|
lanrtop
|
f8d658b790
|
docs(blueprint/agent-client-parity): P9 人终验通过,标记完成
Push & PR Check / check (push) Successful in 1m4s
Push & PR Check / check (pull_request) Successful in 1m6s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
2026-10-02 16:32:21 +09:00 |
|