多 AI 连接、模型路由与隐私配置
# 多 AI 连接、模型路由与隐私配置 ## 目标 anenreo 的 AI 配置不是单一 API Key 开关,而是一套持久化、可审计、可回滚的多连接编排系统。PC Web 管理配置;移动端只读取运行状态,不接触密钥。 ## 连接维度 协议与网络位置分开保存: - 协议:Mock、OpenAI Responses、Chat Completions、OpenAI Compatible、Anthropic Messages、Ollama Native。 - 网络位置:公网云、API 服务本机、局域网、VPN、HTTPS 隧道、自建反向代理。 例如,同一个 OpenAI Compatible 适配器可以连接公网网关、本机 LM Studio、局域网 Ollama 或通过 HTTPS 隧道暴露的自建 vLLM。 ## 持久化与秘密 普通配置写入 `ai_provider_connection`,认证秘密写入独立 `ai_provider_secret`,使用服务端根密钥执行 AES-256-GCM 加密。客户端只能得到 `hasSecret` 和不可恢复掩码,永不回显密钥明文。 `SETTINGS_ENCRYPTION_KEY` 必须由服务端环境或 Secret Manager 显式注入,至少 32 个 UTF-8 字节,并由密码学安全随机源生成。开发、测试和生产均不提供公开默认回退;缺失、空白、过短或使用公开占位值时 API 失败关闭。源码候选包不携带任何 `.env*`、运行备份或 Provider 密文,根密钥必须与数据库备份分离保存。 ## 默认本地 Mock 身份与初始化 系统默认连接由 `ownerId + 本地 Mock AI + MOCK + mock://local` 共同识别,默认模型再由该连接与 `anenreo-mock-v1` 共同识别。`ensureDefaults` 不得无序选取任意现有连接,也不得把默认模型挂到用户新建、编辑或测试用 Provider。连接、模型、Prompt、脱敏档案、模型档案、路由和隐私偏好在同一事务内按各自唯一业务键执行冲突忽略,随后必须精确回读 winner 的真实持久化编号;PC 首屏七个并发配置读取只能收敛到一套完整默认图,loser 不得沿用自己未落库的 ULID。 旧版本若留下“自动生成的 `anenreo-mock-v1` 被挂到用户 Provider”污染,系统只在模型和保留名档案均为 `revision=1` 且其他系统默认字段、Prompt 引用完全一致时,把档案的 `primaryModelId` 改回 canonical 模型。迁移不删除旧用户连接或旧模型,也不改写 Prompt 内容、路由参数或脱敏内容;保留名档案/路由的 revision 较新或关键引用不兼容,以及保留名 Prompt 的工作负载身份不兼容时失败关闭,要求用户先重命名自定义配置,禁止凭名称猜测并覆盖。 配置中心浏览器验收删除临时 Provider 时,必须在点击前监听精确的 DELETE 地址,等待响应完整结束,再独立回读 Provider 列表。只有 DELETE 成功且回读无目标编号时才清空清理句柄;失败时由 `finally` 再次删除,并把残留记录为 `absent`、`present` 或 `unknown`,不得用固定延时或盲轮询推断成功。 ## 模型删除与引用并发(AUD-121) 删除模型先在事务中按 ownerId + modelId 锁定目标,不可见或已删除的编号统一返回 404。随后检查主模型与回退模型引用,存在引用时保持拒绝;健康记录、父模型及删除成功审计共同提交或回滚。父删除实际影响零行时返回冲突,不得追加成功审计。 档案写入在同一事务中按稳定编号顺序对所有引用模型持有共享锁;默认档案初始化也锁定其模型。这样,引用写入先取得锁时,删除等待其提交后重新检查引用;删除先完成时,后续档案写入不能继续引用已不存在的模型。现有 SQL 迁移不改写。 ## 连接探测结果(AUD-120) 网关返回 success=false 时,HTTP 业务结果与健康事实都必须为 UNAVAILABLE,测试审计记录失败。探测正常返回不等于探测成功;连接探测也不代表真实业务生成已验收。 Provider 抛出的未转换异常只映射为固定安全原因码,不把异常正文保存为健康错误码。网络探测在事务外执行;随后健康事实与测试审计共同提交。健康或审计存储失败返回服务端错误,不再次写入一份虚构的 Provider 失败结果。 连接级健康记录的 modelId 为空,复合唯一键不能消除重复探测。写入时锁定父连接,并在同一事务中替换该连接的当前健康事实,归并历史重复行;模型级健康记录保持独立。重复或并发探测后,配置回读与最近一次已提交结果保持一致,历史测试仍保存在审计中。 ## 配置保存与冲突恢复(AUD-122) 模型、模型档案、脱敏档案、路由和隐私偏好的条件更新必须检查实际返回行。更新影响零行时返回 HTTP 409,不写成功审计;更新、成功审计与本次结果回读在同一事务中完成,审计故障回滚配置修改。 PC 模型和隐私表单发生冲突时保留原草稿与原版本,单独读取服务器最新配置并显示业务字段对比。用户可以明确采用服务器配置,或确认保留草稿、采用最新编辑基线后再次点击保存;确认比较本身不发起覆盖写入。隐私草稿不会被“刷新配置”或其他配置的回读覆盖,未保存的开关不表示策略已经生效。四个隐私开关具有独立的可访问名称。 ## 工作负载路由 模型不会直接绑定数据库表或表单字段。字段只声明工作负载,例如: - 隐私分类 - 实体路由 - 结构化提取 - 标题与摘要 - 图片理解、OCR、语音转写 - 关系推断、个人模型推断、决策分析 - 助手对话、代理规划和工具执行规划 `ai_model_profile` 定义主模型、回退链、温度、结构化输出、Prompt、重试和超时;`ai_route_policy` 再按照工作负载、模块、字段、隐私等级、能力与网络位置选择模型档案。 ## 隐私路由 系统硬规则优先级最高: 1. `PUBLIC`:可以使用本地或云端。 2. `SHARED`:默认允许脱敏云端,可由用户关闭。 3. `PRIVATE`:默认禁止云端;用户可以在 PC 打开全局开关,也可以对单次请求明确授权脱敏云端。 4. `SECRET`:强制禁止云端与公网隧道。 5. `LEGACY_ONLY`:强制本地,并且需要合法数字遗产权限上下文。 即使 PRIVATE 开关开启,字段的 `NEVER_SEND_TO_CLOUD`、工作负载禁令和系统硬规则仍然不能被覆盖。 ## SSRF 与网络安全 Provider Base URL 由 NestJS 服务端访问。服务端必须: - 仅允许 HTTP/HTTPS; - 禁止云元数据、文件协议和危险重定向; - 对私网、明文 HTTP 和关闭 TLS 校验进行显式风险确认; - 限制响应体、超时、并发和允许主机; - 记录安全错误码,不记录请求正文与秘密。 ## 审计 每次 AI 调用至少记录工作负载、实体、隐私等级、连接、模型、路由、脱敏档案、发送字段路径、输入摘要哈希、Token、延迟、结果和远端请求编号。默认不保存完整请求正文。 ## PC 页签交互约束 AI 连接和任务路由中会改变安全、隐私或模型选择逻辑的字段,统一提供标签帮助入口。鼠标悬浮可查看完整业务说明,并可复制说明;短标签不再承担全部解释责任。 AI 配置中心的连接、模型、任务路由、隐私、Prompt 与审计六个页签采用独立显隐区域。切换页签时必须同时更新选中状态和业务内容,不能只改变高亮而保留上一页签内容。配置中心共享页签、卡片、表格、开关列表与双栏表单样式由 Web 全局设计系统统一维护。 ## 云端候选与发送内容(AUD-116~118) 每个实际模型候选按其网络位置生成独立消息。本地、局域网和 VPN 使用原输入;外部候选,包括公网云、HTTPS 隧道与反向代理,重新读取并应用云端脱敏档案。PRIVATE/SHARED 必要档案缺失或禁用时不得外发,不能复用本地主模型已生成的消息。路由模拟的 requiresPrivacyTransform 覆盖整个回退链。 所有外部请求都剥离 forbiddenCloudFields,包括 PUBLIC、未绑定可选档案、档案 disabled 和历史 stripHiddenFields=false。后者仅为数据合同兼容字段;PC 页展示“禁止云端字段始终剔除”。正文和每个结构化字符串共用相同的电话、邮箱、账号、姓名与地点替换规则,同一调用使用一致伪名;账号规则支持英文及中文前缀。原输入对象保持不变,替换映射不发送给 Provider。 审计跟随每个候选的实际发送档案和字段列表。未进入 Provider 的拒绝记录不声明已发送字段;该安全修复不改变 AI 输出必须经过审核的领域边界。 ## Provider 响应预算(AUD-119) JSON 响应在读取实际解压后的流时累计字节,最多缓存 8 MiB。Content-Length 仅用于提前拒绝,缺失或虚报长度仍受同一上限;UTF-8 在完整受限字节上解码。超限、超时、重定向和非成功状态取消流并释放 reader,禁止先完整缓冲再检查。真实本地 HTTP 长流、停滞响应、精确上限和字符分片由定向测试验证,不等于外部账号验收。 ## 2026-09-30 统一验证修复:配置输入错误 AI 连接超时输入失败统一通过安全错误展示,不直接显示异常 message;校验在请求前返回并保留当前连接草稿。秒到整数毫秒的换算、允许范围、已保存密钥的保留/替换/清除意图及权限门禁不变。 页面真实 script setup 状态回归覆盖非法超时不写入、草稿保留和既有模型/隐私冲突流程。运行环境新增依赖以真实共享展示包接入测试,不通过删除断言、伪造成功或放宽授权来取得通过。Web 完整测试、类型检查和生产构建分别有自动化结果;浏览器和真实 Provider 验收仍需独立证据,详见相邻验证报告目录的 2026-09-30-Web-UIUX自动化结果.json。 ## 2026-10-02 第二批界面修复候选 PC AI 配置卡片的描述和元信息使用页面局部 12–14px 基础字号并随既有字号缩放;新增连接行按当前密度留出底部间距。共享 header span 选择器收窄到元信息,避免覆盖 UBadge 自身样式。未改变连接保存、权限、密钥或模型路由,不调用真实 Provider。组件与 CSS 合同测试不代替明暗截图、读屏或真实连接验收;本批浏览器证据为 not_run。 ## D02引用竞争35项及Partial合同后继已核验 D02 A38/OID658386真实PG17.11执行35/35:引用/删除两序、Prompt退休、发现与探测修订竞争、双删唯一成功、反序排序、首次七读、完整图不阻塞、历史坏图可修复、跨owner及9类实际审计INSERT后SQL故障回滚通过。1394执行输入保持;根第三READ ONLY核全415表摘要、90迁移原hash及3结构指纹、5类悬空均0、其他会话0。原35全部回调/请求/断言保持;R09真实两写者等待链由同一PG快照逐边证明。 公开UpdateAiConnectionInput原为Partial+revision必需;正式DTO改用PartialType且只有undefined可省略;13个原非空业务字段仍拒绝显式null,秘密字段沿用原null合同,类型/权限/CAS校验保持。新41 HTTP与原相关135合计(含41)通过;A38原部分更新并发请求保持且通过,未改成全量夹具。 - 已完成:标准API25构建exit0,1995输入前后SHA保持,3396归档文件/90SQL/4worker资产核等;纯等待图12/12及类型、注释门通过。A36第11停止与A37第21停止现场均保留,后者真实双写者传递等待被旧直接计数漏掉;r4只修观测,不减minimum2/5000ms/20ms、不改产品服务/DTO或原35例。 - 当前运行:已批准本地开发90、API4000 r19/Web3000 r22/H55173保持;新D02/Partial后继仅在隔离A38验证及API25归档,尚未切换到4000。原3300/15373/7743保持,最新9个只读健康检查全部200。 - 本地待补/待验:D03旧确认版本、D04强CAS、P01–P04配置消费、当前后继全角色UI,以及D05本地缺口:保留名档案/路由HTTP改绑可以成功,随后默认目录读取又按原保留身份规则409;需保存和回读保持一致且能恢复,不能自动覆盖用户改绑或放宽原拒绝断言。尚未实现,依据r4/ROOT-REVIEW.md。 - 设备与外部:App三目标CLI构建通过;iOS首次授权桥仍是本地未实现项,原生链接/安装包/真实权限与录音、真实Provider验收仍待条件。未启worker/调用真实Provider/远端部署。 原70项范围保持,完整验收0/70,14批仍partial,目标active。历史阶段的旧待验描述以本节及当前pending为准,不覆盖历史证据。
正式调用审计筛选(2026-10-25)
PC配置中心新增工作负载、隐私等级、结果状态及本地自然日组合筛选,支持每页10/20/50条、本地分页、清除筛选、空态和错误区间提示。范围明确为当前已加载最近最多100条,不表示全库历史查询;截止日期包含当天,跨夏令时按下一日午夜计算。真实9条审计中筛选失败得到1条、重置恢复9条,未触发模型调用。移动AI配置仍按既有架构只读;已存在连接/模型/档案CRUD不重复实现。
证据:_work/handoff/uiux-production-20261025-phase2;逐项范围见production-70-ledger.json,测试、截图和独立回读分别留证。
2026-10-25 正式设置P1审阅与版本边界
正式PC新增单规则只读诊断、脱敏规则差异审阅、同模板族已保存版本对比、复制新版本以及显式发布/废弃审阅。未重造既有配置CRUD。审阅冻结本次DTO,取消不写,确认写一次再独立GET回读;未知结果只核对,不盲目重发。409保留草稿,读取最新差异后需明确采用新编辑基线并再次审阅,读比较本身不覆盖配置。登录代次变化清理旧快照,迟到回包不能恢复旧操作。Prompt的null Schema按原语义保留。
本轮证据:_work/handoff/uiux-production-20261025-phase3。样例库只读,70项领域完成率不因此提升。
Prompt版本和状态规则
DRAFT可修改、发布或废弃;PUBLISHED内容及身份不可覆盖,只可保持发布或废弃;DEPRECATED不可重新激活,修改需复制新版本。启用模型档案只能引用同工作负载的已发布Prompt,废弃前必须迁移启用中的引用。引用共享锁与Prompt状态行锁配合;更新、审计和回读置于事务内。同名同版本竞争返回409。服务器若已发布或废弃正在编辑的草稿,重基线先拒绝覆盖,在弹窗保留错误与本地输入,并可明确将当前草稿另存新版本;此操作本身不写入,填写新版本号后仍需重新审阅。新PC页面始终携带expectedUpdatedAt检测旧基线;该字段对旧客户端保持可选兼容,不能扩称未提供基线的所有旧客户端都具备乐观锁。
版本比较针对当前仍保存的版本,不是已删除模板的完整历史。发布不自动切换模型档案引用;废弃保留版本,既有删除入口和其引用限制继续独立。
2026-10-25 十四批第1批认证、排序与历史分页
服务端认证方式切换要求明确替换或清除认证材料;省略秘密只保留原认证,禁止把旧Bearer、Basic用户名或头名解释为另一认证。清除与替换冲突、空白替换、Basic缺用户名和非法HTTP头名失败关闭。MOCK普通配置与秘密保存统一按有效NONE处理。
路由重排按稳定ID取行锁,保留用户priority;所有条件更新、成功审计和不创建默认图的完整顺序回读同事务。陈旧revision或审计已插入后异常均整组回滚。真实PG78项已通过,包含反序重排和重排/编辑的真实等待竞争,只一次200、另一方409。
旧GET /settings/ai/audits数组接口兼容;新增GET /settings/ai/audits/page按owner、工作负载、隐私、结果和绝对时间先过滤后分页。默认20、上限100;createdAt六位微秒+ULID稳定排序,游标绑定账号/筛选/数量,返回items、nextCursor、hasMore,不伪造total。首次上界只是导航边界,不是跨请求数据库快照。真实PG6项通过,包括155条历史、最近100之外筛选和相邻微秒续页。
正式PC使用独立审计历史组件:自然日换算[from,to),截止含当天;更换条件立即清旧数据,显式查询从首屏开始;失败只GET重试当前页,权限/会话/卸载撤销旧响应。独立查询失败不再阻断其余配置加载。Nuxt选择器、共享日期、44px同排操作及窄屏阅读卡沿用最初融合样例;H5仍只读运行状态,不新增密钥管理。
阶段证据位于_work/handoff/uiux-production-14batches-20261025;PC已核验选择器和日期展开、失败/恢复及390px等效布局,不能替代真实H5/小程序设备、完整主题/权限矩阵或70项全验收。
2026-10-25 只读路由诊断的版本与技术信息
诊断显示本次结果的合法正整数业务版本,以中文“第N版”呈现;非法版本待核实,不借当前route后续版本。模型有名称用名称,缺名显示“模型名称未加载”,内部ID只在既有showTechnicalCodes开启后作为中文辅助信息条件渲染。
候选状态和无候选策略沿用共享枚举,未知值默认中文占位。偏好切换不重发诊断、不调用Provider或改变请求原枚举。业务版本保留可验证锚点,技术开关不放宽异常正文展示;局部SFC、类型和第二轮构建证据不等于全部真实路由/Provider消费验收。
2026-10-25 0086验证与AI恢复边界
Agent共享guard跨表字段作用域已由前向0086修复,并在新PG17.11库25/25及独立只读5318列合同中验证;旧失败PATCH独立对账为DRAFT1且无成功更新事实,没有重发或重置旧AI库。
attempt03的INT002/PMD005真实Ollama候选及audit回读、PMD007确定性MATCH/DRIFT零模型调用继续保留。0086没有Provider调用,不据其通过补记AIA002/AIA003、LEG008或DEC008真实生成成功;新隔离attempt、PMD来源授权和AIA历史来源仍需独立推进。业务库没有因该测试迁移升级。
2026-10-25 PMD来源授权版本复核
PMD证据列表现使用真实MemoryPublicationSource,复用当前owner、权限、生命周期、privacy与revision/hash;来源不得高于目标entry,SECRET不增例外。每个非空稳定evidenceId必须唯一链接同owner/entry/module的不可变事实;缺失、歧义与跨对象在Provider前拒绝,不猜测补历史链。
Provider前冻结entry/link摘要,返回后落库前重核来源及授权版本;候选摘要绑定真实link,仍为CANDIDATE,原entry不改。空证据保留无证据假设语义,也不跳过当前AuthorizationService版本复核。候选读取逐个复核当前权限、ACTIVE、privacy和版本/hash,失效整次失败,不返回部分旧派生标签或伪造空数组。Provider后失败可能已有平台调用/审计,不能抹去这些事实。
62项定向unit和隔离nativePG17.11正式认证HTTP9/9通过,后者实际OrchestratedPersonalModelProvider调用0、AI审计0。五条USER_SUPPLIED/CANDIDATE是typed仓储插入的合成读取fixture,不是真模型输出;真实撤权/授回、隐私提升、版本变化及归档均独立核对拒绝。r6 API已包含本源码,未恢复AIA/LEG/DEC真实生成验收;PC/H5撤权提示、旧候选清除与迟到回包另待。
2026-10-25 真实平台调用与领域结果分层
新intent root_real04_20261025_1436唯一执行于14:38:20 UTC以exit1、failed-preserved-no-retry结束,整体不能写四项通过。四条真实平台audit均SUCCEEDED,绑定本轮本地qwen3.8:27b-zh;生产Provider/orchestrator/gateway真实绑定、Ollama状态与worker关闭事实分别核对,不能由AI_PROVIDER环境文字证明真实调用。
AIA002使用HISTORICAL Memory r1与不同当前r2,历史详情、public contextHash、候选GET/list/revisions/domain audit独立读回;AIA003为SIMULATION当前r2,两者真实生成PENDING/rev1,未采纳为本人事实、未执行工具。LEG008经各自step-up正式PLAN ACTIVATE与LIFE_BOOK APPROVE,终态APPROVED/rev2及回执/current/revisions/audits通过,只证明合成材料生成与审核机制,不证明事实真实性或真实投递。
DEC008生成POST返回503,但独立REPEATABLE READ READ ONLY确认领域已提交FAILED/rev1、AI_UNAVAILABLE、result_hash=null,同版失败修订与DECISION_SIMULATION_FAILED审计存在,幂等SUCCEEDED,建议0;原case仍rev1与原contentHash、未选方案。平台SUCCEEDED与领域FAILED同时成立,绝非零模型、零写或回滚;原响应曾unknown,随后才只读确认,不反写原时点。没有重发该请求。
完整item schema及脱敏诊断后继正在正式源专用RED修复,不在r7,也没有新真实生成成功证明。原失败artifact/key/intent保留,不放宽领域解析、不修补模型正文或重试已提交失败。新修复须新构建、测试和明确新intent独立验证,DEC008完整范围仍partial。
2026-10-25 DEC输出schema与正式运行边界
DEC008已确认的生产者/消费者合同缺口现以专用schema helper修复:按同owner、固定sourceCaseRevision的活动方案建立optionId enum,顶层与每项禁止附加字段,必需optionId/suggestionText,文本string/minLength1且非空白;数组min0/max本次方案数,合法空建议继续允许。
原consumer继续校验ID唯一、NFKC/trim/空白折叠后的1..10000码点;标准JSON Schema不能表达这两类规则,不能宣称Ajv覆盖全部后置校验。初段原始maxLength10000近似会拒绝规范化合法的长空白/组合文本,已被真实RED否决并删除,前像/失败保留;Emoji、零宽、全角、组合字符与规范化后超长均分别留控制。
上下文仅新增同来源revision已授权活动方案的optionId/label,不传owner、内部normalizedLabel或其它revision。实际AiPrivacyTransformService用JSON pointer精确/options剥整组ID/labels,原question/scores禁云与本地/LAN/VPN白名单保持,不用无效options.label作保护证据。
新28加原26共54/54,API类型、中文注释3382及diff检查通过。逆向剥离新schema/context/禁云及关联注释后,整个service前像hash与原RED一致,证明原consumer、权限/来源查询、事务、幂等、FAILED artifact及503语义未改。修复针对可证合同缺口,real04原文未保存,不能倒推本次具体失败谓词。
API r8构建exit0已含本修复,但正式4000仍r7 PID37972,Web仍r7;构建成功不等于已启动新源码。real05仅准备,尚未分配新库或执行,不记录真实模型成功,也不重发real04已提交FAILED artifact。真实新intent、领域回读/审核/complete仍待根。
本轮只新增已确认源码/构建/浏览器层级。API r8 build0尚未切换正式4000,正式API仍r7 PID37972、Web3000仍r7 PID45740;本代理只读TCP核对,不启停服务或读取命令/env。正式settings三连接的r7实际读图已保存,但页面读取不代表Provider真实可用。
real05处于prepare,未分配/执行;测试租约仍23库且未清理验证。已批准开发库85–87应用与88ledger/5327合同保持,不再pending;无新迁移、worker或远端授权。全70项fullAcceptance=false,旧失败/运行时点保留,不宣称全仓当前绿色。
2026-10-25 real05真实平台与正式API r8
新隔离intent root_real05_20261025_1514在精确DEC05库唯一execute,15:15:43 UTC以exit0结束。仅DEC008真实生成1次,产生2条建议并独立读回;逐项CONFIRMED后complete,终态REVIEWED/rev4、sourceCaseRevision1及resultHash严格匹配。没有为非空样本重复生成,合法空数组合同仍保持。
真实生产Provider/orchestrator/gateway与本地模型平台audit SUCCEEDED;独立REPEATABLE READ READ ONLY核对simulation、2条建议审核、4版历史、领域审计及幂等,并确认原case仍原revision/contentHash/未选方案。建议审核/REVIEWED不是将AI建议采纳成原case决定或本人事实。
这是新intent/新库的单次验证,不是重试real04旧key或已提交FAILED artifact,也没有复生成此前AIA002/AIA003/LEG008。旧real04平台成功、领域FAILED/rev1及其历史/审计/幂等原样保留。合同缺口修复后的本轮成功不反证旧模型具体失败谓词,原正文未留存的限制不变。
正式API4000已切换API r8,PID29452;Web3000仍r7,PID45740,没有前端重构建。runtime-approved-round8-readback于15:17:25 UTC实际READ ONLY确认开发库88ledger/hash、5327列及56aca7924fc2c105b464c9ec00f7f6e14dde6affe4af22b638183c89ec4907b6指纹保持,未再次迁移,validate-exact、workers=false,API live/ready与Web三GET200。
此前APIr8仅build0/正式仍r7的段落保留为旧时点,本节记录已启动的新事实。健康与schema只证明启动/合同,不能代替隔离real05业务验收或Web新控件实测。已批准的本地开发迁移85–87继续保持,无新迁移、远端部署、通知投递或worker启用。
最新postgres-dec-real05-leases为24具名测试库,未清理验证。Color43项/1017冻结只是候选源码证据,旧r8复开失败保留;r9 H5/MP仍等B11候选,构建与新浏览器未跑,不能预写通过。real05的真实后端通过不覆盖这些前端缺口。
2026-10-25 正式settings在API r8重启后读回
根CUA在API r8重启后重新加载正式3000/settings/ai,实际读到3连接、loading=false、configError=false,截图formal-api-r8-settings-readback.png已保存;Web仍r7。该页面读通证明设置读取,不替代Provider生成、全部能力/角色、CRUD或70项完整验收。
2026-10-26 设置上下文与反馈PG限定补验
SET06/SET07重基线与全局模拟保留草稿并拒绝退休响应,定向测试与Web r10构建分层通过。反馈nativePG r2双应用池和独立只读池11/11覆盖权限、竞争、审计回滚和存储补偿;原装配失败与空库证明保留。新H5/设备/未知响应断连与四策略后继仍待,不把局部通过升为70项完整验收。详见docs/设计与计划/验证记录/2026-10-25-正式UIUX十四批阶段记录.md及_work/handoff/uiux-production-14batches-20261025/root-settings-feedback-r10-stage-merge.json。
2026-10-26 正式源码r13阶段证据与边界
四策略已由正式resolver/orchestrator消费;仅静态网络交集不相交可跳规则,首适用规则终止。WAIT同步可恢复但没有持久队列,FAIL明确失败;云备用须本条ALLOW及完整隐私/脱敏/批准门,Mock备用只允许非生产显式配置。成功审计后复核授权,变化/读取失败均停止发布且不续调或虚构FAILED。原source空值对照已撤回,新真实Memory四表非空及nativePG三场景替代;真实模型和全设置页面仍待。
权威范围与历史更正:docs/设计与计划/验证记录/2026-10-25-正式UIUX十四批阶段记录.md;需求70项仍全部fullAcceptance=false,样例只读,未启worker或部署远端。
2026-10-26 安全规则与页面说明后继
安全扫描规则未改。授权状态变量仅alpha重命名并有等价证明,分页负例运行时生成UUID、原字段与断言不变;相关73及两端各14通过,不把旧15393全量基线改写成新夹具全量。Web当前结果与已配置回退策略分清,排序控件具有规则名称;真实r17浏览器和108回归分层通过。API r16与Web r17正常,原构建编排失败保留且未关闭类型检查。全部70项完整验收仍false,真实Provider/设备和全UI矩阵仍待。
2026-10-26 设置删除原子性与剩余验收
模型档案、脱敏档案与Prompt删除的原检查/DELETE/成功审计现共事务;权限、owner、引用与原无版本合同保持。可靠6故障RED及12健康、相关115通过;根native30实际21/21,含3次真实审计INSERT后当前事务SQLSTATE22012和独立Pool回滚读证。根独立READ ONLY核88迁移hash/412表/5327列/56aca792完整指纹保持,健康成功audit每类1。该真实证据仅绑定cd36源码快照。
D01路由删除另有2 RED/4健康,窄事务包装后相关121通过;去包装还原cd36全字节、前三方法AST与字节保持。新621d7a源码需独立native31七项验收;首次冻结后两行文件头注释变化被DB前守卫拦截,原失败保留,根安排新证据目录,不重写旧freeze。当前API4000尚未包含本次删除修复,不能从源码或测试推断运行已生效。
D02全部引用写者同锁协议、D03旧确认DELETE无revision/If-Match、D04 Prompt可选expectedUpdatedAt仍开放。P01公开云偏好/P02上下文字数/P04模块约束是待裁定消费设计与候选RED;P03未知发送结果不得盲重试。29条多角色UI/回读/故障计划已准备,未执行不是验收;真实Provider与设备单列,70项完整验收仍false。
完整规范及证据:docs/设计与计划/设计规格/2026-10-25-正式UIUX十四批收口设计.md、实施计划及阶段记录;_work/handoff/uiux-production-14batches-20261025/batch01-settings-final-matrix-20261026/。
2026-10-26 D01真实PG后继
根唯一native31-r2于2026-10-25 21:05:31 UTC结束exit0/sourceUnchanged=true,原6回调与断言加1真实同事务审计INSERT后SQLSTATE22012共7/7。真实audit INSERT1、事务连接PID与独立reader不同,提交前reader仍见原事实,失败后完整事实和audit回滚;schemaUnchanged true、Provider0。此为621d7a源码的独立后继,原native30 cd36快照21/21不被改写,原native31注释漂移拦截/空库证据保留。根最终独立READ ONLY回报另列;未将此局部PG通过当运行已部署、D02/D03/D04或全设置验收。
提示模板消费:资格与字符预算
显式绑定模板必须仍属于当前用户、已发布、工作负载匹配;仅目标模块为null时通用,其余精确匹配。模拟、诊断和实际发送复用资格,模拟未提供完整正文时不宣称预算已验证。固定当次模板字段及版本身份,每个候选发送前重验,失效不默默换模板。
脱敏与现资格检查后,对实际所有消息正文按Unicode码点求和,包括系统提示和渲染后的正文、上下文、来源标签及内部覆盖模板;输出Schema外壳和二进制不计。超过已绑定模板上限时停止本次编排,不截断原文、不换云或Mock、不继续备用。已发生调用审计保留,未发送候选不伪造Provider失败。最后持久授权与成功后的RESULT_RELEASE仍保原语义。
三种受控公开拒绝为AI_PROMPT_UNAVAILABLE、AI_PROMPT_SCOPE_MISMATCH、AI_PROMPT_CONTEXT_LIMIT_EXCEEDED;只返回固定安全说明,不带正文或阈值。领域原文保存、确定性草稿、失败事实和未知提交保护由各消费者原合同保留,不能把本次AI拒绝解释为整个业务零写。
核心9源冻结见batch01-settings-prompt-consumption-20261026/production-freeze-core-r1.json。新增真实路由与编排31例由28失败/3健康到同字节31通过;分组API新78+旧100、展示新4+旧18通过,类型/文档/导入及完整性检查通过。领域传播、真实PostgreSQL、后继标准构建和浏览器验收由根独立整合;当前源码测试不代表已升级运行服务,也不代表70项完整验收。