Commit Graph

14 Commits

Author SHA1 Message Date
lanrtop
d098905f28 fix(onboarding): 接入写入幂等——内容不变不重写,Codex 托管块不再累积空行
enterprise 未提交改动归属梳理发现两处炼境侧缺陷:
- Codex 托管块自带结尾换行,又原样保留 END 之后的换行,每次注入多一个空行(enterprise 已累积 16 行)
- sync_blueprint_rules 与注入在内容不变时也用 LF 重写文件:子项目开 core.autocrlf,CRLF 检出的
  同内容文件被 git status 误报为改动,修改时间也被刷新,干扰改动归属判断

修复:
- lib.rs 新增 write_if_content_changed(忽略行尾比较,内容不变不写)
- sync_blueprint_rules 的 CONVENTIONS 与 AGENTS/CLAUDE 托管块、context.json、.claude/settings.json、
  Codex 托管块统一改用它;托管块未变时返回 unchanged
- Codex 托管块写入吸收 END 之后的空行,块外后续内容以一个空行分隔
- 蓝图记 P3b(本修复)、P10(接入包升级前检测块外未提交改动,待做),P9 补可行性实测记录

验证:cargo test 246 passed;实测 enterprise 注入后 .codex/config.toml 末尾空行 16→0,
再次注入四个托管文件修改时间均不变。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 11:35:18 +09:00
lanrtop
c4241f075d fix(mcp/parity): 更正 Codex Desktop 取认证失败的根因,撤销基于错误前提的 exe 副本逻辑
All checks were successful
Push & PR Check / check (push) Successful in 1m37s
Push & PR Check / check (pull_request) Successful in 1m2s
2b0a55a 判断「Codex Desktop(MSIX)看不见其安装后在 AppData 下新建的顶层目录」是错的:当时的对照
目录本身也是在 Claude 桌面版的包环境里建的。真正原因:worktree 版炼境由 Claude 桌面版(MSIX)里的
agent 启动,继承了其包环境,写到 %LOCALAPPDATA%\lian-jing 的入口被重定向进
%LOCALAPPDATA%\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Local\,只有 Claude 的进程树看得到。
对照:经 WMI 启动的非包进程在 AppData 下新建的顶层目录,Codex 包内可见;%USERPROFILE% 根不做重定向。

- 入口迁至 %USERPROFILE%\.lian-jing\bin 仍是正解(与炼境在什么环境里启动无关),保留
- 撤销「exe 在 AppData 下就复制副本」逻辑及其测试:exe 总在真实路径上,前提不成立(按「退出」原则)
- 更正代码注释、verify_onboarding 的 Legacy 提示、契约文档与蓝图 P3 返工记录

验证:cargo test 243 passed / 5 ignored(删去 2 个只测副本逻辑的测试)。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 11:31:59 +09:00
lanrtop
cca3bf9db1 fix(mcp/parity): 审查修复——shim 单行退出、副本刷盘后改名、DSH 仅 headless 按目录路由
All checks were successful
Push & PR Check / check (push) Successful in 1m28s
Push & PR Check / check (pull_request) Successful in 1m5s
对抗审查(14 个 agent,3 条核实成立)与 DSH 桌面版只读调研的修复:

- shim 改为调用与退出同一行(`& call exit /b %%ERRORLEVEL%%`):cmd 在命令返回后按字节偏移重读
  批处理,入口恰在 helper 运行期间被改写时,分行写法会执行到错位片段(实测 exit 9009)
- helper exe 副本 sync_all 后再改名:避免断电留下残缺副本却因同名被一直复用
- 旧副本改为入口写好之后再清理;旧位置入口写失败时暂不清理,避免入口悬空
- DSH 托管块只在 headless profile 按启动目录路由:web/acp/tui 一个进程可服务多个工作区,
  按启动目录会让别的工作区会话连到该项目并带上认证(跨项目越权);profile 取 profileContext.name,
  DSH 0.1.x 无该服务时退回看启动参数
- AGENTS.md 入口路径补全反斜杠;蓝图立 P9(DSH 桌面 GUI 会话级插件,待人确认)

验证:cargo test 245 passed;shim 认证成功 exit 0 / 92 字节、错误 digest exit 1;DSH url 表达式按
Loader 方式求值 7 种情形均符合预期;四路零凭据探针(Codex 包内、Codex 包外、Claude、DSH 无头)复跑通过。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 20:06:14 +09:00
lanrtop
2b0a55adcd fix(mcp/parity): helper 入口迁至 %USERPROFILE%,修复 Codex Desktop(MSIX)取认证失败
人终验发现 Codex Desktop 会话里 lian-jing 完全未加载,Codex 日志为 headers helper exit 1。
根因:Codex Desktop 是 MSIX 打包应用,看不见它安装之后在 %LOCALAPPDATA% / %APPDATA% 下新建的
顶层目录(Invoke-CommandInDesktopPackage 在包上下文对照实测:lian-jing 与新建对照目录均不可见,
与 ACL 无关;已有目录内的新文件、%USERPROFILE% 下的新目录可见)。原验收用包外的 codex exec,未覆盖。

- shim 迁至 %USERPROFILE%\.lian-jing\bin\;Codex 配置、Claude local 条目、DSH 托管块统一引用新入口
- 炼境 exe 位于 AppData 下(安装版默认位置)时,按大小+修改时间指纹复制到入口目录,清理旧副本;
  复制失败退回直接调用当前 exe 并记 warn
- 旧 %LOCALAPPDATA% 入口迁移期同步写入;verify_onboarding 把旧写法报 Legacy 引导 inject_mcp 升级
  (测试断言随之由 Ready 改为 Legacy,理由同上)
- 新增 helper 副本与 AppData 判定测试

复验:Codex 包内(等价 Desktop)、Codex 包外、Claude、DSH 无头四路零凭据探针均返回「开发需求未登记」
(修复前 Codex 包内为「工具不可用」);cargo test 245 passed / 5 ignored。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 18:58:50 +09:00
lanrtop
1888f71626 docs(blueprint/agent-client-parity): P1 收尾审查记录与已知限制更新为 claude mcp get 为准的方案
All checks were successful
Push & PR Check / check (push) Successful in 1m32s
Push & PR Check / check (pull_request) Successful in 1m5s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 16:57:26 +09:00
lanrtop
92e6450403 docs(blueprint/agent-client-parity): 更新 P1 审查记录与已知限制为最终方案
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 15:41:08 +09:00
lanrtop
1f90dcdeb0 docs(blueprint/agent-client-parity): P1/P3 完成,记录三端验收与审查证据
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 14:44:00 +09:00
lanrtop
0bf5bd6994 docs(blueprint/agent-client-parity): 立卡 P8 一键接入
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 12:58:09 +09:00
lanrtop
9a1635a225 docs(blueprint/agent-client-parity): P1 进行中
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 10:43:58 +09:00
lanrtop
5d15520e73 docs(blueprint/agent-client-parity): 定位为 agent 客户端兼容层,立卡 P6/P7
All checks were successful
Push & PR Check / check (push) Successful in 1m3s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 09:53:48 +09:00
lanrtop
f4e75dc91f feat(onboarding): lian-jing skill 双投影到 Claude,接入包升至 1.6.0
All checks were successful
Push & PR Check / check (push) Successful in 1m4s
- 同一模板同时写 .agents/skills(Codex、DSH)与 .claude/skills(Claude Code)
- verify_onboarding 新增「Claude 炼境技能已分发」检查
- skill 降级步骤改为三端通用,提示无开发变量工具即连的是全局地址
- capability-packs supported_clients 增加 dsh

Feature-Confirmed: true
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 09:11:32 +09:00
lanrtop
8babc545c3 docs(blueprint/agent-client-parity): H2/H4 零凭据实测成立,三端可共用 shim
All checks were successful
Push & PR Check / check (push) Successful in 1m33s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 08:58:27 +09:00
lanrtop
bbdc98b93f docs(blueprint/agent-client-parity): 记录 H1–H4 实测与对抗复核结果
All checks were successful
Push & PR Check / check (push) Successful in 1m14s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 22:03:02 +09:00
lanrtop
d1e75d2270 docs(blueprint): 新建 agent-client-parity 模块,记录三端无头基线
All checks were successful
Push & PR Check / check (push) Successful in 1m26s
- 三端(Claude Code / Codex / DSH 桌面版)同一只读任务的 A–F 矩阵作为基线证据
- 立 P1–P5:统一项目专用地址、Claude skill 投影、稳定 helper 入口、
  探针固化、落地兜底;原 V17/V18 迁入 P1/P3
- manifest 项目描述同步为「管家」定位

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 19:12:03 +09:00