20260826 两宿主全线正本/回执/状态 + 协议正本地图v1.2 + 模板/镜面/坑清单(元审计收敛commit;前人未提交改动未碰)
This commit is contained in:
parent
b95fcb57ba
commit
59fc9bfd7b
670 changed files with 133422 additions and 129 deletions
|
|
@ -0,0 +1,61 @@
|
|||
# Qwen 本地执行 Agent 训练回执 · 线上双商城
|
||||
|
||||
- 日期:2026-08-19(Asia/Shanghai)
|
||||
- 人类授权主体:冰朔
|
||||
- 执行载体:本机 Qwen Code CLI,`qwen3.7-plus`,只读沙箱
|
||||
- 训练类型:工程审查轨迹与规则纠正记录;不声称修改模型权重
|
||||
- 任务:审查并帮助收敛 HoloLake 的线上成品模块商城、只读思维技能商城及公共双签发布链
|
||||
- 写权限:未授予
|
||||
- 部署权限:未授予
|
||||
- 密钥读取:明确禁止
|
||||
|
||||
## 运行轨迹
|
||||
|
||||
1. 第一次启动失败:新版 CLI 的非交互模式需要明确的 `--auth-type openai`。失败没有改变仓库或系统状态。
|
||||
2. 第一轮只读审查成功:识别到原实现缺少物理模块与认知技能的类型分离、技能无执行权机器约束、线上验签目录、目录双签及回滚/同纪元歧义测试。
|
||||
3. 主控实现后进行第二轮只读审查:覆盖合同、Rust 运行时、编号 IPC、用户界面、两类技能包、原点发布脚本、企业复签脚本与 Nginx 静态分发。
|
||||
4. 第二轮结论:无 Critical / High;报告 2 个 Medium、4 个 Low。主控对每项重新读取代码并独立裁决。
|
||||
|
||||
## 接受并进入主线
|
||||
|
||||
- 一个商城界面下保持两条运行链:`PHYSICAL_MODULE` 与 `COGNITIVE_SKILL`。
|
||||
- 思维技能的 `executionAuthority=false`、`permissions=[]`、`skillReadonlyGuarantee=true` 同时由目录和技能包运行时强制。
|
||||
- 目录必须由零点原核公众范围签名者与企业分发签名者双签。
|
||||
- 目录 epoch 单调;旧 epoch 和同 epoch 不同内容均失败关闭。
|
||||
- 仓库 URL 只作为精确提交来源证据;客户端只下载不可变验签制品,不克隆、不执行来源仓库。
|
||||
- 物理模块安装完成后清理下载缓存;模块运行时仍保留正式包、状态与回执。
|
||||
- Agent 报告促使主控额外发现并修正一个更准确的问题:Nginx 对制品使用 `immutable` 时,制品 URL 也必须是内容寻址。发布脚本与 Rust 客户端现共同强制 SHA-256 文件名。
|
||||
- 发布阶段的符号链接竞态通过“复制时保留链接、复制后再次拒绝整个树”进一步收紧。
|
||||
|
||||
## 明确拒绝或改写
|
||||
|
||||
- 拒绝“self-test 失败就自动删除安装证据”。失败包保持 `FAILED_CLOSED` 有利于取证且没有激活功能;重新安装入口仍可见。自动清理会削弱真实回执。
|
||||
- 拒绝“卸载技能时删除包”。现行合同要求停用保留包与回执,以便审计和回退;这不是泄漏。
|
||||
- 拒绝“health 缺少 no-store”。审查时配置已经包含 `add_header Cache-Control "no-store" always;`,属于误报。
|
||||
- 不采纳“未来浮点字段可能导致跨语言 canonical JSON 分歧”作为当前缺陷。目录结构 `deny_unknown_fields` 且没有浮点字段;现行固定结构已经由 JS、Python 和 Rust 端到端发布验证覆盖。若未来合同增加数值字段,必须先增加跨语言固定向量。
|
||||
- 改写“前端字面量类型能阻止后端返回 true”的论证:TypeScript 不能构成运行时安全边界。可信边界是 Rust 输出固定 false、技能包验证和编号运行时隔离;前端类型只用于显示期约束。
|
||||
|
||||
## 已执行验证
|
||||
|
||||
- Rust 商城安全测试:双签、技能无执行权、epoch 回滚、同 epoch 歧义。
|
||||
- Node 合同测试:双商城分链、编号 IPC 完整性、两个技能包 canonical payload digest。
|
||||
- TypeScript 与 Vite 生产构建。
|
||||
- 企业服务器真实 Python/cryptography 发布演练:原点签名验证、企业复签、四个制品摘要、原子 `current` 切换和健康文件读回。
|
||||
|
||||
## 训练结论进入真实环境后的回读
|
||||
|
||||
- 第五域主线提交 `b0eeade03d9387d9e7641cd397ecd218fcf4a7aa` 通过远端完整门禁:495 个前端测试文件 / 5067 项测试、1212 项 Rust 测试、覆盖率门槛与原生质量门均通过。
|
||||
- 同一提交已由零点原核公众范围签名者授权、企业分发签名者复签,并发布为 `public-distribution-1-b0eeade03d93`。
|
||||
- 公网重新下载并验证目录与零点原核灯的两枚 Ed25519 签名;4 个内容寻址制品逐个通过 SHA-256 回读。
|
||||
- 新构建的本机 App 从公网同步目录纪元 1;一个成品模块完成停用保留数据后的重新下载、验签、自检与安装,两个只读思维技能均完成下载安装。
|
||||
- 训练记录仅表示审查规则、纠正与回执形成稳定工程轨迹;未声称改变 Qwen 模型权重。
|
||||
|
||||
## 下一轮 Agent 应先读
|
||||
|
||||
1. `contracts/online-marketplace.json`
|
||||
2. `src-tauri/src/online_marketplace.rs`
|
||||
3. `scripts/prepare-public-distribution-release.mjs`
|
||||
4. `server-tools/public-distribution/publish_release.py`
|
||||
5. 本回执的“明确拒绝或改写”一节
|
||||
|
||||
后续审查不得把思维技能解释为可执行插件,也不得把仓库克隆解释为客户端安装方式。
|
||||
|
|
@ -0,0 +1,47 @@
|
|||
# Qwen 只读审查训练记录:UI、外部 AI 网关与公共五域
|
||||
|
||||
日期:2026-08-19
|
||||
|
||||
## 训练方式边界
|
||||
|
||||
本次“训练”指把真实审查任务、发现、修正和验收回执沉淀为可复用的工程经验,不声称修改模型权重,也不允许 Agent 自行获得写入、部署、密钥或人格绑定权限。
|
||||
|
||||
- Agent:Qwen Code CLI 0.21.9
|
||||
- 模型:qwen3.7-plus
|
||||
- 模式:只读审查、sandbox、无仓库写入、无远端推送、无密钥读取
|
||||
- 审查范围:公共五域入口、编号大门、外部编程 AI MCP 网关、账号隔离、系统授权边界
|
||||
|
||||
## 审查结论
|
||||
|
||||
- Critical:0
|
||||
- High:0
|
||||
- Medium:1
|
||||
- Low:2
|
||||
|
||||
## 发现与闭环
|
||||
|
||||
1. `M-1`:外部 AI 网关状态查询没有强制已验证用户路径。
|
||||
- 修正:状态查询与开关统一经过 `verified_user_route`。
|
||||
2. `L-1`:公共受保护域卡片包含内部成员编号。
|
||||
- 修正:第五域、零感域公共投影仅保留边界、可见性和访问状态;回归测试禁止内部编号重新出现。
|
||||
3. `L-2`:MCP 工具调用参数没有服务端拒绝非空参数。
|
||||
- 修正:登记的无参工具收到非空 `arguments` 时返回 `HOLOLAKE_MCP_TOOL_ARGUMENTS_NOT_EMPTY`,并新增 Rust 回归测试。
|
||||
4. 本机真实启动验收额外发现:未登录时,私人在线商城账本会返回 `HOLOLAKE_AUTHENTICATED_ACCOUNT_REQUIRED` 并终止公共首页。
|
||||
- 修正:公共首页先启动,私人商城账本无账号时休眠;登录后再按账号隔离根启动。
|
||||
|
||||
## 被接受的工程规则
|
||||
|
||||
- 公共世界先于私人账号存在,但公共只读不等于获得安装或执行权限。
|
||||
- 状态读取也属于受保护的网关面,不能因为“只读”就绕开已验证用户。
|
||||
- 面向人的公共卡片必须显示可理解的名称和职责,不能泄露内部成员、仓库或哈希式机器标识。
|
||||
- MCP 是接入入口,不是授权来源;传输层不能替代编号、用户验证和人类授权。
|
||||
- 无账号是可预期启动状态,不应被当作应用级致命错误。
|
||||
- 编号验证不是五域旁边的一个功能入口:验证前世界保持遮蔽;编号通过后才投影产品名、五域和频道凭证。
|
||||
|
||||
## 被拒绝的路线
|
||||
|
||||
- 拒绝默认开启外部编程 AI 接口。
|
||||
- 拒绝让 MCP 工具获得 shell、写盘、部署或人格绑定能力。
|
||||
- 拒绝把公共页面渲染所需状态存进私人账号目录。
|
||||
- 拒绝把仓库克隆或任意代码执行当成模块商城安装协议。
|
||||
- 拒绝胶囊灯塔、实体灯塔和缩成图标的小黑洞;编号入口采用占据首页主体的大型未知星渊。
|
||||
Loading…
Reference in a new issue