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
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
lanrtop
fe0458fe97
fix(mcp/parity): P9 审查修复——受限子代理不挂载、条目 id 带版本、插件缺失守卫、规范路径键
...
Push & PR Check / check (push) Successful in 1m6s
Push & PR Check / check (pull_request) Successful in 1m4s
对抗审查(11 个 agent,6 条成立,均 low):
- 受限子代理(toolFilter)会绕过限制:挂在子代理自己作用域的工具不受过滤。改为经 tools.view 判断,
受限或无法判断即不挂;根会话与未受限子代理照常挂载
- 版本号只编进文件名时,运行中的 DSH 不会重载新插件(同 id 只改 name 不重载):条目 id 改为
lianjing-session-mcp-v1,与文件名同一版本;新增内容哈希测试,改插件漏升版本即失败;块外手写按前缀拒绝
- 插件文件缺失时 DSH 0.1.x 启动失败:条目加 `disabled: !!js` 文件存在性守卫
- GUI 会话工作目录是 realpath:白名单同时写入登记路径的规范形态(junction、8.3 短名)
- 补测试:分层停止哨兵、取认证失败与超时(.cmd 夹具)、受限/未受限/无法判断的子代理
- 蓝图如实更正首轮端到端只有插件一行;补测完整托管块
验证:cargo test 247 passed;vitest 16 passed(插件 8 条)、typecheck 通过;完整托管块端到端在
DSH 0.2.0-rc.2 与 0.1.5-rc.2 上项目会话带认证连上项目地址、其他会话无请求;插件文件缺失时两版都正常启动。
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 15:04:54 +09:00
lanrtop
f21345bf1a
feat(mcp/parity): DSH 桌面 GUI 按工作区连项目地址(会话级插件,P9)
...
DSH 桌面版只有一个 Host 进程、启动目录固定,托管块的 !!js 只在启动时求值,拿不到会话信息;
web/acp 同样一个进程服务多个工作区。改由炼境分发一个会话级插件:会话创建(agent/created)时
按会话工作目录匹配炼境登记的项目白名单,命中才在该会话作用域挂连项目专用地址的 mcp-client,
同名工具覆盖全局 lian-jing,其他会话不受影响。
- 插件随二进制打包(resources/dsh/lianjing-session-mcp.v1.mjs),刷新 DSH 托管块时写到
%USERPROFILE%\.lian-jing\dsh\;文件名带版本号(Node 按 URL 缓存 ESM)
- 托管块在全局行之后追加插件条目(port、shim、roots 以 JSON 写入);插件文件写失败时只保留全局行
- 插件防御:headless 交给全局行;特性探测不符即降级为全局;取认证 ≤3 秒、整次挂载 ≤5 秒;
所有回调吞掉异常(Host 对未处理异常会崩溃,agent/created 串行失败会让会话创建失败)
- 块外手写的 lianjing-session-mcp 条目同样拒绝覆盖
验证:cargo test 246 passed;vitest 插件用例 6 条通过、typecheck 通过;端到端在 DSH 0.2.0-rc.2
与 0.1.5-rc.2 上,项目会话经真实稳定入口带认证连上项目地址,其他会话无请求。
Feature-Confirmed: true
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 13:33:45 +09:00
239d9fdd83
Merge pull request 'fix(onboarding): 接入写入幂等——内容不变不重写,Codex 托管块不再累积空行' ( #25 ) from fix/onboarding-idempotent-writes into master
Push & PR Check / check (push) Successful in 59s
2026-10-02 12:06:28 +08:00
53af8c36d8
Merge pull request 'feat(mcp/parity): 三端经稳定 helper 入口连项目专用地址(P1 + P3)' ( #24 ) from feat/agent-client-parity into master
Push & PR Check / check (push) Successful in 1m5s
2026-10-02 12:05:16 +08:00
lanrtop
019d81c60e
fix(onboarding): 审查修复——JSON 按语义比较,CI workflow 与生成文件同内容不重写
...
Push & PR Check / check (pull_request) Successful in 1m3s
对抗审查(9 个 agent,2 条成立):
- settings.json / context.json 改为按 JSON 语义比较:Claude Code 改写后键序与末尾换行不同,
按文本比较仍会让每次注入整文件重排
- plan_cicd_workflow 忽略行尾判 noop:原按字节比较,autocrlf 检出的同内容 workflow 会被判 update,
并请用户确认一次无变化的写入;apply 与 generate_workflow 只在内容变化时落盘
- 同类遗漏统一改用 write_if_content_changed:agent_infra 生成文件(未变时报 skipped)、notes-archive 回填
- lib.rs 抽出 same_text_ignoring_eol,与 write_if_content_changed 共用同一比较规则
验证:cargo test 245 passed / 5 ignored(新增 JSON 语义与 CI CRLF 回归断言)。
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 11:51:33 +09:00
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 副本逻辑
...
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 按目录路由
...
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 为准的方案
...
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
0a92a5b695
fix(mcp/parity): 收尾审查修复——Claude 现状以 claude mcp get 为准,接入命令移出界面线程
...
收尾对抗审查指出:只读扫描 ~/.claude.json 的结论不能代表 Claude 在项目目录实际生效的条目
(共享项目键、worktree、目录迁移下会误删他项目条目或漏写),且同步 CLI 调用会阻塞界面线程。
- 快路径只认「项目根或其祖先目录键下」的一致托管条目;其余一律在项目目录执行
`claude mcp get lian-jing` 取实际生效条目,按归属决策:本项目托管条目 → 刷新/移除
(写入失败用原条目回滚);他项目托管条目或手写条目 → 不碰并记录;无 local 条目 → 写入
- 输出无法识别、CLI 出错或目录不存在时一律不写,只记 warn
- 全局迁移需 claude CLI 与 git-bash 均可用才置完成标记;批量重注入的成员复查失败计入错误
- 删组/移出组先删成员关系再清 MCP 配置,避免并发重注入把项目加回;调 CLI 前释放数据库连接
- delete_group / add_group_member / remove_group_member / delete_project / update_settings /
apply_blueprint_buff 改为 #[tauri::command(async)],在线程池执行
- 新增 parse_claude_mcp_get / lianjing_project_of / key_covers_root 单元测试
实测(enterprise):稳态注入 174ms 不起 CLI;条目缺失 → 写入;过期 helper → 刷新;
手写条目 → 保留;三种情况 claude mcp get 均为 Local 且 Connected;经 shim 零凭据探针认证通过。
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 16:55:28 +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
5f6ea586f8
fix(mcp/parity): 最终审查修复——Claude 条目写入回归 claude CLI,只读扫描认领
...
最终审查指出直接编辑 ~/.claude.json 须复刻 Claude 私有机制(git 根 / worktree→主仓库 /
NFC 键推导、.claude.json.lock 锁协议、CLAUDE_CONFIG_DIR 与旧版 .config.json、BOM/符号链接/
fsync/键顺序),随 Claude 升级易失效,违背「标准优先、私有机制只进适配层」。
- 写入一律经 claude CLI(cwd=项目目录,同步、带 20 秒超时),由 Claude 自己负责键、锁与路径
- 只读扫描按 URL 中 /mcp/projects/<id> 认领炼境托管条目(不依赖键推导);已一致则不起 CLI
(实测稳态注入 0.04 秒),手写条目不碰;项目目录已不存在时只记录残留、不写文件
- 全局注册只读确认已存在就跳过 CLI;配置路径按 Claude 规则解析,容忍 BOM
- 批量重注入在锁内复查组成员关系,已移出组的项目不再注入、不重建 token
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 15:38:36 +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
fc8492b88b
fix(mcp/parity): 第三轮审查修复——Claude 条目改为直接编辑配置,接入操作加进程锁
...
- Claude local 条目不再经 claude CLI(cwd=项目目录)+ 后台队列管理,改为直接编辑
~/.claude.json 中本项目键下的 mcpServers.lian-jing:同步、毫秒级、原子替换,只动该字段;
不依赖项目目录存在,消除删除本地文件夹时的竞态、目录移动后旧条目无法清理、队列丢任务/卡死
- 项目键用真实长路径(实测 8.3 短路径键不被 Claude 识别);手写条目不碰
- 注入、移除、根目录迁移在进程锁内串行;移除时最先删 token,后续清理收集错误统一返回
- 根目录迁移:旧根解析不出也迁移;重新注入失败归入 mcp_inject 并补刷 DSH;DSH 补丁写入加锁
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 14:37:37 +09:00
lanrtop
7b702a9d88
docs(blueprint): 新建 architecture-evolution 模块,记录技术栈评估与 A1–A4
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 13:49:59 +09:00
lanrtop
e4214cd839
fix(mcp/parity): 第二轮审查修复——串行同步队列、白名单持久剔除、诊断分类
...
- Claude local 同步统一投递到单个后台串行队列(注册与移除同队列、按提交顺序),
消除并发 claude CLI 竞态与「注入后立即移除」留下孤儿条目;移除路径不再阻塞界面
- DSH 白名单只收有项目 token 的项目,退组/移除后剔除持久;控制面项目写 null 停止哨兵,
不再越过它匹配到已登记的上级目录;Rust 与 JS 两端键规范化对齐(重复分隔符、盘符根、UNC)
- 客户端侧同步日志改为 mcp_client_sync 分类,不覆盖诊断中每个项目的注入结果
- 批量重注入只在末尾刷新一次 DSH;启动刷新移到后台线程
- 项目根目录/平台变更时迁移客户端配置(清旧根 Claude 条目,已接入项目在新根重新注入)
- SSE 消息路由仅在会话属于该项目时才移除;注入模块的进程调用统一 silent_cmd
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 13:39:23 +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
0c40e1a5c9
fix(mcp/parity): 对抗审查 9 项修复——控制面保留全局、DSH 改登记白名单
...
- 控制面项目(context.json mcp_scope=global,炼境自身已声明)不写 Claude local 条目、
不入 DSH 白名单,避免遮蔽全局注册与跨项目工具(审查 high)
- DSH 托管块内嵌炼境登记的「项目根目录→project_id」白名单,不再以任意目录里的
context.json 作为取 token 依据;LOCALAPPDATA/SystemRoot 须为绝对路径
- remove_project_mcp 同步清理 Claude local 条目并剔除 DSH 白名单;SSE 消息路由复核登记
- Claude local 只替换炼境托管条目,手写不覆盖,替换失败回滚;改走 silent_cmd 并移至后台线程
- 手写 DSH 条目改用 serde_yaml 检测(引号/注释/流式写法),无法解析时保守拒绝
- shim 中 exe 路径的 % 转义为 %%;注入日志 context 统一为 JSON,诊断查询防御非 JSON 行
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 11:48:41 +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
ebf43d71c0
feat(mcp/parity): 三端经稳定 helper 入口连项目专用地址
...
- P3:炼境启动写 %LOCALAPPDATA%\lian-jing\bin\lianjing-mcp-header.cmd 指向当前 exe;
Codex 项目配置改为引用该入口,不再写本机 exe 绝对路径;verify_onboarding 对旧写法报可升级
- P1:inject_mcp 以 local scope 为 Claude 注册项目专用地址 + headersHelper(不进仓库);
DSH 机器级补丁写托管块,!!js 按启动目录选项目地址并经 cmd 调用同一入口,项目外回退全局
- 服务端:scoped route 拒绝未登记的 project_id(404,数据库不可用同样拒绝)
Feature-Confirmed: true
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 10:40:08 +09:00
lanrtop
5d15520e73
docs(blueprint/agent-client-parity): 定位为 agent 客户端兼容层,立卡 P6/P7
...
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
...
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
...
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 实测与对抗复核结果
...
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 模块,记录三端无头基线
...
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
lanrtop
487ea86806
docs(blueprint/dev-variables): V17+V18 合并设计——稳定 helper 入口与各客户端认证
...
Push & PR Check / check (push) Successful in 1m4s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 16:34:30 +09:00
lanrtop
9aa70eefd9
docs(blueprint/dev-variables): 记录 Enterprise 真实分发与取值证据,立卡 V14–V18
...
Push & PR Check / check (push) Successful in 1m4s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 15:22:45 +09:00
6105c3d4a3
Merge pull request 'feat(dev-variables): 项目开发变量与测试账户补给(V1–V11)' ( #23 ) from feat/project-dev-variables into master
Push & PR Check / check (push) Successful in 1m7s
2026-09-30 13:35:23 +08:00
lanrtop
57062d6053
docs(blueprint/dev-variables): 记录两轮 UI 终验结论
...
Push & PR Check / check (push) Successful in 1m28s
Push & PR Check / check (pull_request) Successful in 1m4s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 14:31:33 +09:00
lanrtop
663a723b3b
feat(dev-variables): 修改时显式查看原值,并提示 agent 先查炼境测试账户
...
Push & PR Check / check (push) Successful in 1m5s
Push & PR Check / check (pull_request) Successful in 1m9s
- V12:新增人用 Tauri command reveal_project_dev_variable(不进 MCP),
点「修改」预填原账号与密码,密码默认遮罩可切换显示
- V13:lian-jing skill 新增第 8 步——需要测试账号先 list/read,
没有则登记并请用户在 UI 填写;禁止对话索要明文;base-onboarding 升至 1.5.0
- 契约同步 project-context.yaml;materialize 提案顺延为 V14–V16
Feature-Confirmed: true
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 14:22:54 +09:00
lanrtop
f74fe11145
fix(ui): 确认框在 Tauri 下被绕过——改用 await plugin-dialog confirm
...
tauri-plugin-dialog 把 window.confirm 替换为 async 函数,同步判断拿到恒为真的
Promise,撤销测试账户、删除 Gitea 实例/解绑仓库、删除仓库、准备工具链 5 处
破坏性或改机器状态的操作均未弹框即执行(UI 终验发现)。统一 await
@tauri-apps/plugin-dialog 的 confirm,并加源码扫描回归测试防复发。
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 13:48:54 +09:00
lanrtop
9211883a9b
test(dev-variables/mcp): 以隔离宿主完成 V7 真实 Codex 跨会话试点
...
Push & PR Check / check (push) Successful in 1m7s
Push & PR Check / check (pull_request) Successful in 1m5s
新增 ignored 宿主 isolated_dev_variables_client_pilot:内存 DB + 随机合成账户 +
临时 scoped MCP,认证走真实 helper。真实 Codex CLI 三会话完成登记→代填→跨会话
读取→撤销后读取失败,宿主断言目录无 .env/token/密码且凭据清理。
Rules-Applied: R03,R05,R10,R13
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 12:42:44 +09:00
lanrtop
4a6fbf9863
chore(merge): 合入 master 的管家定位与设计简报
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 12:04:40 +09:00
lanrtop
8f3be6b948
docs(blueprint): 回收 9-23 草稿有效部分并落定管家方向设计简报
...
Push & PR Check / check (push) Successful in 1m57s
- api-keys:按现状改为 Credential Manager 存储(R2/R3/R6 已完成)
- manifest:补 project-resource-broker 两条依赖边
- notes-archive:补 R1 复盘
- blueprint-governance:指向 handoff-pilot 待议证据包
- docs/tasks:handoff-pilot(含蓝图规则并入能力包目标)+ dev-variables 落地增量提案
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 11:48:32 +09:00
lanrtop
061d377d0d
docs(agents): 凭据边界对齐 project-dev-variables 有界明文例外
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 11:47:03 +09:00
lanrtop
acfd54f5d3
docs(agents): 明确凭据值落地边界——只写入被 Git 忽略的本地文件
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 11:47:00 +09:00
lanrtop
1f316c0abb
docs(agents): 炼境根定位收敛为 agent 开发子项目的管家
...
- 项目定位改为管家:摩擦驱动沉淀跨 agent 结构化能力
- 新增「管家准入与退出」:五条准入、不做、分发 vs 查询、退出规则
- project-brief 定位同步,指向 AGENTS.md 单一来源
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 11:46:58 +09:00
lanrtop
8e13bb4cf5
docs(dev-variables/contract): 记录测试账户边界与验收证据
...
同步 scoped MCP、Tauri DTO 契约及 V8–V11 验收状态;V7 客户端限制与人工终验继续保留。
2026-09-28 01:46:19 +09:00
lanrtop
d926591ace
feat(dev-variables/ui): 一张卡填写测试账号和密码
...
项目面板一次提交两个字段到同一 Tauri 本体,列表与 React Query 仅保留非秘密状态。
Rules-Applied: R01,R08
Feature-Confirmed: true
2026-09-28 01:45:49 +09:00
lanrtop
1daef98af3
feat(dev-variables/mcp): 提供项目级测试账户登记与认证读取
...
scoped MCP 只登记非秘密元数据;读取共用 bearer 门槛,并以真实本机 HTTP 合成链路覆盖授权、复用和撤销。
Rules-Applied: R07,R10
Feature-Confirmed: true
2026-09-28 01:45:23 +09:00
lanrtop
d559b7917b
feat(dev-variables/storage): 原子托管非生产测试账户
...
新增兼容旧表的账户类型与语义登记,账号密码共用受保护引用;覆盖迁移、失败恢复和重开复用。
Rules-Applied: R05,R06,R07
Feature-Confirmed: true
2026-09-28 01:44:56 +09:00
lanrtop
0b0bc18ce4
docs(resource/dev-variables): record Codex approval blocker
...
Three isolated real-client attempts were denied before dispatch by approval policy=never. Keep V7 blocked pending an explicitly approved pilot.
Rules-Applied: R03,R10,R13
2026-09-26 16:57:58 +09:00
lanrtop
fe71536f33
docs(resource/dev-variables): record scoped plaintext exception and validation
...
Document V1-V6 evidence and keep V7 in progress until a real Codex tool-call and human UI pilot complete.
Rules-Applied: R03,R05,R10,R13
2026-09-26 16:48:57 +09:00
lanrtop
b1c6eaebac
feat(resource/dev-variables): add per-project human filling panel
...
Expose status-only Tauri types and explicit save/revoke actions without caching entered values in React Query.
Feature-Confirmed: true
Rules-Applied: R01,R12,R13
2026-09-26 16:47:24 +09:00