diff --git a/README.md b/README.md index cbaadf1c..3a7702bf 100644 --- a/README.md +++ b/README.md @@ -12,8 +12,8 @@ - 基础链路:租户列表、验证码、`000000 / admin / admin123` 加密登录已验证。 - 管理端:除 AI 面试、训练、案例、SOP 和资料处理外,已包含大喇叭发布、单文件提炼与多岗位解读、五渠道直通反馈收件箱、内容/任务运营、问题榜运营、知识空间、全网 AI 配置和组织权限;员工个人训练、主管复盘、团队难题、成长证据与训练录音仅在认证 APP 按项目范围访问。 - 用户侧:`mobile-uni/` 承载员工、候选人和主管三端;“问”统一由服务端 Agent 规划知识、训练、待办、记忆、媒体或全网工具。现有能力还包括手机号登录、短期多轮、受控原文件/视频、大喇叭、五通道直通车、确认式记忆、训练与考试、成果投稿、候选面试/资料及主管复盘/派发。旧 `mobile/` 只用于历史回溯。 -- 2026-07-30 增量状态:五通道处理人配置和 Android 权限 Activity 生命周期修复已部署;生产五个处理角色按有效后台用户口径均为 `2/2`。签名 `0.1.17 (117)` 已通过 API 35、网络安全、法务、签名和包内业务资源深检,并在 vivo Android 15 真机完成正式账号登录、学习中心、麦克风允许/拒绝/恢复、系统选择器取消、音频选择/ASR、成果投稿确认保存及五通道入口回归。移动端 209 项、后端定向 46 项、管理端直通车 4 项和类型检查均通过。详见 [Go/No-Go](docs/帮道8月1日Android内测Go-No-Go-20260728.md)。 -- Android 当前边界:`0.1.17` 已是当前技术候选,但仍使用 DCloud 测试签名;真实断网、WebRTC、实际图片/视频/文档上传、受控下载及主管/候选人同包回归未完成。严格签认仍为场景 `0/5`、题目 `0/30`、通道验收 `0/5`、负责人 `0/5`、受控分发 `PENDING`,因此正式 8 月 1 日发布结论仍为 No-Go。 +- 2026-07-30 增量状态:五通道处理人配置和 Android 权限 Activity 生命周期修复已部署;生产五个处理角色均为 `2/2`,本通道正例、跨通道拒绝和一次正式回复已完成 `5/5`。签名 `0.1.17 (117)` 已在 vivo Android 15 真机完成正式账号登录、首页、学习中心、问师傅真实发问/引用、麦克风允许/拒绝/恢复、系统选择器取消、音频选择/ASR、成果投稿确认保存及五通道回归。最新后端 SHA-256 `b090a7752e1ce0bd83bff4808c0111c0035f7142e33402c0a9526e988929d314` 上线后,认证态生产冒烟和真机主路径再次通过。详见 [Go/No-Go](docs/帮道8月1日Android内测Go-No-Go-20260728.md)。 +- Android 当前边界:`0.1.17` 的功能链路已达到受控内测可用,项目发起人也已接受受控内测的法务/测试签名例外;但它仍使用 DCloud 测试签名,真实断网、WebRTC、实际图片/视频/文档上传、受控下载及主管/候选人同包回归未完成。5 个生产场景和 5 个通道均已通过,30 题状态/边界/引用结构回归为 `30/30`;逐题来源复核仍发现经验萃取/访谈命中,正式来源语义批准为 `0/30`,所以严格批准清单保持 `PENDING`,正式 8 月 1 日发布仍为 No-Go。 - 英雄路径:AI 面试(真模型出题/评分)、三角色对练(真 LLM 客户回复+评分,ASR/TTS 配置后支持语音)、案例沉淀(真实语音上传+ASR 转写+模型整理)均为真模型优先、未配置或失败回退本地兜底;生产短音频 ASR 当前为阿里云百炼 `qwen3-asr-flash`,SiliconFlow audio 接口保留兼容。SOP 知识库已接中文关键词 + MySQL Fulltext + Qdrant 混合召回 + rerank 重排,支持 txt/md/PDF/Word/Excel/PPT/图片/视频上传解析入库(图片走 vision OCR,视频走 ffmpeg 抽音轨转写+关键帧描述),资料处理中心支持 ZIP 异步展开后逐文件入队;模型配置页可查看向量库维度/点数并一键重建。 - 资料处理:已新增解析任务状态页,按 `aihr_knowledge_attach` 和 `aihr_knowledge_fragment` 展示待重试、解析中、已完成、失败、片段数和向量化状态;任务列表按当前筛选结果前端分页(10/20/50 条,筛选或刷新回到第一页)。页面只保留“批量导入”,通过异步队列处理多文件或 ZIP,不提供浏览器目录选择和服务端目录导入入口。历史图片/视频若无片段会保持可重试失败,可直接从原 OSS 文件重新入队;2026-07-29 生产已用该链路恢复原卡住的 4 项资料,全部生成片段并入库。后端目录导入接口仅保留为运维/调试能力。 - 组织人员:`aihr_org_snapshot` 本地 reset 保留演示 seed;生产通过 `POST /api/aihr/org/sync` 同步外部组织。2026-07-25 记录的生产快照为 3417 人、2938 人在职且均有姓名、3392 个手机号映射、175 名在职主管和 20 名项目经理;姓名通过稳定 `employee_id` 定向补齐,未执行全量覆盖。当前上游 `employee_number` 与既有主体不一致且手机号大量脱敏,修复契约前禁止强制全量同步;人数属于时点事实,发布或验收前应重新查询。 diff --git a/docs/API_INTEGRATION.md b/docs/API_INTEGRATION.md index 4686a48a..de916155 100644 --- a/docs/API_INTEGRATION.md +++ b/docs/API_INTEGRATION.md @@ -58,6 +58,8 @@ curl -fsS "$API_BASE/api/aihr/agent/messages/media" \ 文字问题去空白后必须为 1–1000 字;媒体接口的 `question` 为空时使用“请分析附件内容”。请求不接受身份、角色、`toolCode`、知识空间 ID、SQL 或任意 URL。响应继续使用若依信封,`data.status` 只会是 `COMPLETED/NEEDS_INPUT/NEEDS_CONFIRMATION/NO_EVIDENCE/FORBIDDEN/UNAVAILABLE/FAILED`,按钮分别读取 `actionDraft/clarification/resources/nextActions`,不得解析 `answer` 猜状态。 +政策边界在检索前由服务端确定性执行:明确存在版本/规则冲突时返回 `NEEDS_INPUT`,不得自行裁决或拼接;明确无依据时返回 `NO_EVIDENCE`,不得用经验补全政策事实;跨项目、他人敏感信息、无权附件或未发布制度返回 `FORBIDDEN`。已经取得授权片段时,摘要模型的拒答文本不能抹掉这些片段,服务端会回退为受控原片段摘要并保留引用;但“有引用”只证明检索命中,不证明该文件已被业务登记为正式制度。正式政策验收必须另行核对来源版本、生效日、适用范围和审核结论,访谈、经验萃取、seed 或 AI 输出不得登记为 `formalPolicy=true`。 + 全网意图在 `externalConsent=false` 时以业务成功响应返回 `NEEDS_INPUT`,用户同意后原请求携带 `externalConsent=true` 重试。确认式记忆先取得 `actionDraft.draftId`,再提交卡片中可编辑的完整 `draft`: ```bash diff --git a/docs/BRD_IMPLEMENTATION_AUDIT.md b/docs/BRD_IMPLEMENTATION_AUDIT.md index 38c39aa4..d0c86e34 100644 --- a/docs/BRD_IMPLEMENTATION_AUDIT.md +++ b/docs/BRD_IMPLEMENTATION_AUDIT.md @@ -2,7 +2,7 @@ > 当前基线:2026-07-29。2026-07-25 的 `230dfb4d` 仍是最近一次管理端、H5、后端与 schema 同批完整发布源;其后先发布阿里云百炼 ASR 后端热修复,2026-07-29 又定向发布资料处理媒体恢复的 schema、管理端和后端 JAR `5376b67b…`,移动 H5 未重发。当前只能分别确认最新管理端、后端与媒体重试 schema,不能称当前工作树与线上完整包匹配。当前真相以本文件、[生产迁移 Runbook](BRD_PRODUCTION_MIGRATION_RUNBOOK.md)、[Changelog](../CHANGELOG.md)和每次发布的只读预检为准。 > -> 数字师傅 Agent、`aihr_agent_run` 和对应移动端改造已随 2026-07-25 完整包部署;2026-07-26 已在一台 Android HBuilderX 标准基座跑通生产 ASR 请求,但 Agent 专项认证态业务回归及自定义基座完整真机验收仍未完成。 +> 数字师傅 Agent、`aihr_agent_run` 和对应移动端改造已随 2026-07-25 完整包部署;2026-07-30 已在签名 `0.1.17 (117)` 真机完成认证态问师傅发问/引用,并在最新后端上完成 30 题状态、拒答、冲突和越权边界结构回归。来源权威性审计仍发现经验萃取/访谈命中,因此这些结果不等于正式政策内容验收。 > > 后台已不再暴露个人训练、主管复盘或成长证据入口;这些能力仅留在认证 APP。该收口已随 2026-07-25 完整包部署,但员工训练写入、主管复盘和真机媒体仍需专项生产验收。 > @@ -55,7 +55,7 @@ 移动端“问”已从客户端直接选择知识查询/数据工具,改为服务端统一 Agent 编排:先识别知识、实时工作、训练、确认式记录、媒体、全网、澄清或闲聊意图,再用固定策略校验当前身份与工具权限,最后复用既有知识、训练数据、记忆、媒体和全网服务。普通图片问答不再默认检索 SOP;只有问题明确涉及现场制度、流程或处置时才补充授权知识。全网查询必须再次取得用户同意;写入仍先生成确认卡,并通过不透明草稿号进入既有版本和幂等状态机。运行审计不保存原始问题、答案或附件。 -该能力已完成定向后端测试、移动端 Agent 契约测试、TypeScript 检查、H5 构建和 MySQL 8 迁移幂等测试。本地 390×844 认证态浏览器已实际验证闲聊不进入 RAG、本人训练概况显示数据来源、全网查询先展示二次同意;认证媒体请求已验证普通图片只返回本次附件识别,不要求知识空间,审计记录可正常落库且不含原始问答。代码和 `aihr_agent_run` 已随 2026-07-25 完整包部署,并通过后端产物与 `64/64` schema 一致性核验;尚未完成 Agent 专项认证态业务回归或真机验收,不能把包存在性写成正式试点通过。 +该能力已完成定向后端测试、移动端 Agent 契约测试、TypeScript 检查、H5 构建和 MySQL 8 迁移幂等测试。本地 390×844 认证态浏览器已实际验证闲聊不进入 RAG、本人训练概况显示数据来源、全网查询先展示二次同意;认证媒体请求已验证普通图片只返回本次附件识别,不要求知识空间,审计记录可正常落库且不含原始问答。2026-07-30 最新后端又完成认证态生产冒烟、30 题边界结构回归 `30/30` 和 vivo Android 15 真机问师傅发问/引用;但至少一题的引用全部来自经验萃取/访谈材料。功能链路已验证,正式政策来源语义验收仍未通过,两者不得混写。 ### 2026-07-20 已部署增量与验收边界 diff --git a/docs/BRD_PRODUCTION_MIGRATION_RUNBOOK.md b/docs/BRD_PRODUCTION_MIGRATION_RUNBOOK.md index 5946ca3d..14cc6329 100644 --- a/docs/BRD_PRODUCTION_MIGRATION_RUNBOOK.md +++ b/docs/BRD_PRODUCTION_MIGRATION_RUNBOOK.md @@ -46,6 +46,13 @@ - 管理端资料处理页已发布,移动 H5 未重发。原卡住的 4 个图片任务已从 OSS 原件重试,最新队列条目全部完成、各有一个片段且向量存在,页面“待重试”为 0; - 该次只证明资料恢复链路、管理端和后端定向发布成功。移动 H5 与当前工作树的完整包匹配、Android 真机和严格试点仍须分别验收。 +2026-07-30 已完成 8 月 1 日策略边界后端定向发布: + +- 发布源提交为 `6a29f990`,生产后端 JAR SHA-256 为 `b090a7752e1ce0bd83bff4808c0111c0035f7142e33402c0a9526e988929d314`,AIHR 模块与本地构建一致; +- 回滚备份为 `/opt/wygj/backups/backend-20260730232827-18c7d0954080`;服务激活、三个公开入口和只读 schema `64/64` 均通过,运行时 schema bootstrap 保持关闭; +- 认证态生产冒烟通过,30 题状态/冲突/无依据/越权/引用结构回归为 `30/30`;vivo Android 15 上的 `0.1.17 (117)` 又完成首页、学习中心和问师傅真实发问/引用复验; +- 来源权威性审计仍发现经验萃取/访谈材料命中。该发布证明后端边界和功能链路,不证明 30 道题已形成正式制度答案,严格批准清单继续失败关闭。 + 2026-07-20 增量把“项目服务记忆最小切片”扩展为工作助手确认式统一采集:显式“记一下”生成候选,用户确认后按 `PRIVATE/COMPANY` 写入 `aihr_assistant_capture`;个人记录仅本人可见,公司记录先保持 `PENDING`,正式接收端和回执尚未实现。旧 `aihr_service_memory/version` 继续兼容项目记录;同批会话式“工作上报”继续使用既有 `aihr_work_report`,并补 `request_key/request_hash` 和唯一索引。 2026-07-21 已在生产发布项目化工作助手与今日工作成果提交 `4536d607`,并发布确认卡首屏修正 `11250811`: @@ -72,7 +79,7 @@ - 认证态员工 H5 已到达训练预检页;未在本次发布验证完整训练写入、主管复盘、真机麦克风/弱网或严格试点; - 本次完整备份位于 `/opt/wygj/backups/practice-ops-20260724003337`,包含数据库、旧静态资源和旧 JAR。 -数字师傅 Agent、`aihr_agent_run` 和对应移动端改造已随 2026-07-25 完整包部署;下文迁移顺序仍是重建/回滚的执行依据。当前只确认生产产物与结构存在,不代表 Agent 专项认证态业务回归或真机验收已经完成。 +数字师傅 Agent、`aihr_agent_run` 和对应移动端改造已随 2026-07-25 完整包部署,2026-07-30 又完成专项认证态生产回归和真机问师傅复验;下文迁移顺序仍是重建/回滚的执行依据。功能回归通过不代表引用来源已获得正式政策批准。 ## 发布前置条件 diff --git a/docs/README.md b/docs/README.md index c7b22503..792bef32 100644 --- a/docs/README.md +++ b/docs/README.md @@ -21,10 +21,10 @@ | [DEV_SETUP.md](DEV_SETUP.md) | Linux/macOS 与 Windows + Docker Desktop 的本地端口、账号、启动步骤、基础链路验证和静态发布 | | [MOBILE_APP_PACKAGING.md](MOBILE_APP_PACKAGING.md) | `mobile-uni` Android/iOS 资源构建、隐私/签名边界和出包前置条件 | | [MOBILE_APP_DEVICE_ACCEPTANCE.md](MOBILE_APP_DEVICE_ACCEPTANCE.md) | Android/iOS 自定义基座或签名包的真机验收清单 | -| [帮道8月1日Android内测Go-No-Go-20260728.md](帮道8月1日Android内测Go-No-Go-20260728.md) | 更新至 2026-07-29 的当前候选 APK、版本冻结、生产依赖、真机与内容门禁 Go/No-Go 结论 | +| [帮道8月1日Android内测Go-No-Go-20260728.md](帮道8月1日Android内测Go-No-Go-20260728.md) | 更新至 2026-07-30 的当前候选 APK、最新后端、生产/真机复验与正式来源门禁 Go/No-Go 结论 | | [生活顾问调研转化清单-20260728.md](生活顾问调研转化清单-20260728.md) | 将仓库外原始访谈脱敏映射为待业务审核的 SOP、知识、题目和对练候选池 | | [帮道8月1日生活顾问内容候选审核包-20260729.md](帮道8月1日生活顾问内容候选审核包-20260729.md) | 5 个脱敏场景与 30 道政策问题的待审候选包;明确 0 个正式场景、0 道正式来源标准答案及业务签认路径 | -| [帮道8月1日业务内容与五通道签认单-20260729.md](帮道8月1日业务内容与五通道签认单-20260729.md) | 5 个场景、30 道问题和五通道真实处理人的统一业务签认入口;当前默认全部待签认 | +| [帮道8月1日业务内容与五通道签认单-20260729.md](帮道8月1日业务内容与五通道签认单-20260729.md) | 5 个生产场景、30 道策略题和五通道真实闭环的统一签认入口;场景/通道/结构回归已有证据,逐题正式来源仍失败关闭 | | [FIGMA_DESIGN_INVENTORY.md](FIGMA_DESIGN_INVENTORY.md) | Figma 页面节点索引、设计批次范围、取消项和全文件一致性审计结果 | | [FIGMA_DESIGN_SYSTEM_GUIDE.md](FIGMA_DESIGN_SYSTEM_GUIDE.md) | 员工端通用视觉元素、业务元素、状态映射和 LLM 组页规则 | | [FIGMA_IMPLEMENTATION_MATRIX.md](FIGMA_IMPLEMENTATION_MATRIX.md) | 70 张正式画板与代码/线上实现状态、二期边界和剩余动作 | diff --git a/docs/content-candidates/aug1-release-approval.json b/docs/content-candidates/aug1-release-approval.json index 693fa214..3f9fef21 100644 --- a/docs/content-candidates/aug1-release-approval.json +++ b/docs/content-candidates/aug1-release-approval.json @@ -3,7 +3,7 @@ "releaseTarget": "2026-08-01", "tenantId": "000000", "candidateFile": "aug1-life-advisor-content-candidates-v0.1.json", - "candidateSha256": "7ba16443adaebcc1e8e9e8888f2649fb94377057bcff26380043b4dea1196ad5", + "candidateSha256": "be435aaf4b330dd6e804cf4dc83d80d8a68df892283061d5785c8a633e113dd4", "expectedApkSignerSha256": "ab06ecc0de544de73c385f3f0690b22966ebc12887fb8bee1830cdbefdebef5d", "releaseStatus": "PENDING", "formalContentVersion": "", diff --git a/docs/content-candidates/evidence/aug1-policy-production-observation-20260730.json b/docs/content-candidates/evidence/aug1-policy-production-observation-20260730.json new file mode 100644 index 00000000..577ebec1 --- /dev/null +++ b/docs/content-candidates/evidence/aug1-policy-production-observation-20260730.json @@ -0,0 +1,565 @@ +{ + "schemaVersion": "1.0", + "releaseTarget": "2026-08-01", + "tenantId": "000000", + "observedAt": "2026-07-30T23:33:45+08:00", + "observationMethod": "authenticated production Agent regression using an existing active APP identity with unique organization mapping", + "dataBoundary": "Phone, verification code, token, project code, question text, answer text, and employee identity are not persisted in this evidence.", + "acceptanceBoundary": "This file proves status routing, refusal boundaries, and citation presence only. It does not prove that every cited document is a reviewed formal policy source or that every answer is semantically correct.", + "passed": 30, + "total": 30, + "results": [ + { + "questionId": "LC-AUG1-Q-N-01", + "category": "NORMAL", + "status": "COMPLETED", + "intent": "KNOWLEDGE_QA", + "answerDisposition": "FORMALLY_SOURCED", + "citationCount": 3, + "citationRefs": [ + { + "docId": "639a73001d5e45948cd54da44d5cfdd1", + "fragmentId": 101877, + "sourceType": "DOCUMENT" + }, + { + "docId": "bc14258984c44e3d85743b420b1c8b37", + "fragmentId": 121127, + "sourceType": "DOCUMENT" + }, + { + "docId": "1aad12e1e6704b62a3e394c54464570f", + "fragmentId": 107724, + "sourceType": "DOCUMENT" + } + ], + "observedBehavior": "COMPLETED_WITH_GROUNDED_CITATIONS", + "behaviorPass": true, + "responseSha256": "c1267e90b1eca8570ac24a9ff71e72fa4a8afefec8bc1f741e274e79a02debff" + }, + { + "questionId": "LC-AUG1-Q-N-02", + "category": "NORMAL", + "status": "COMPLETED", + "intent": "KNOWLEDGE_QA", + "answerDisposition": "FORMALLY_SOURCED", + "citationCount": 3, + "citationRefs": [ + { + "docId": "2909dee543024bc7976c84cc25e36bac", + "fragmentId": 121657, + "sourceType": "DOCUMENT" + }, + { + "docId": "997b64b8ba7f4596a8128be94189e2ee", + "fragmentId": 121790, + "sourceType": "DOCUMENT" + }, + { + "docId": "6cd02351a5f84885bd97220b18a9c4cb", + "fragmentId": 104661, + "sourceType": "DOCUMENT" + } + ], + "observedBehavior": "COMPLETED_WITH_GROUNDED_CITATIONS", + "behaviorPass": true, + "responseSha256": "b1592a3dc89815e0081b35cefb298cc319536b4ac8fdf7cfe81b3c0fd41dba6b" + }, + { + "questionId": "LC-AUG1-Q-N-03", + "category": "NORMAL", + "status": "COMPLETED", + "intent": "KNOWLEDGE_QA", + "answerDisposition": "FORMALLY_SOURCED", + "citationCount": 3, + "citationRefs": [ + { + "docId": "d8cdfd7b169d4845bf7c77215793fd59", + "fragmentId": 101203, + "sourceType": "DOCUMENT" + }, + { + "docId": "c2bd6a07e21f41ceaf18f2c411752e11", + "fragmentId": 102234, + "sourceType": "DOCUMENT" + }, + { + "docId": "0000c0172ad84ef598bc049572d989c0", + "fragmentId": 106683, + "sourceType": "DOCUMENT" + } + ], + "observedBehavior": "COMPLETED_WITH_GROUNDED_CITATIONS", + "behaviorPass": true, + "responseSha256": "bd1425aefd57d669026ff3c0133ee660546b687a3b702f89e3e32004a59ff674" + }, + { + "questionId": "LC-AUG1-Q-N-04", + "category": "NORMAL", + "status": "COMPLETED", + "intent": "KNOWLEDGE_QA", + "answerDisposition": "FORMALLY_SOURCED", + "citationCount": 3, + "citationRefs": [ + { + "docId": "f5bd66670ee345aa96e03c328e0753e8", + "fragmentId": 120652, + "sourceType": "DOCUMENT" + }, + { + "docId": "9ed21855187e4eb6aa3b7fb9767dce60", + "fragmentId": 101410, + "sourceType": "DOCUMENT" + }, + { + "docId": "4f7ab9695aeb4acd8b6b664a3892e4b7", + "fragmentId": 104433, + "sourceType": "DOCUMENT" + } + ], + "observedBehavior": "COMPLETED_WITH_GROUNDED_CITATIONS", + "behaviorPass": true, + "responseSha256": "123b5b5e9983099d51e1e0473e1fd40b70efbc10a2c1cda16c22313cbae0d56f" + }, + { + "questionId": "LC-AUG1-Q-N-05", + "category": "NORMAL", + "status": "COMPLETED", + "intent": "KNOWLEDGE_QA", + "answerDisposition": "FORMALLY_SOURCED", + "citationCount": 3, + "citationRefs": [ + { + "docId": "d8cdfd7b169d4845bf7c77215793fd59", + "fragmentId": 101160, + "sourceType": "DOCUMENT" + }, + { + "docId": "3bd20764da964bddbdd7ec0bffbca419", + "fragmentId": 104625, + "sourceType": "DOCUMENT" + }, + { + "docId": "9ed21855187e4eb6aa3b7fb9767dce60", + "fragmentId": 101523, + "sourceType": "DOCUMENT" + } + ], + "observedBehavior": "COMPLETED_WITH_GROUNDED_CITATIONS", + "behaviorPass": true, + "responseSha256": "fc9d9f85464f617b2374240e7559d38cafa5a7a7466d9cb08bc6c00fb3235a2a" + }, + { + "questionId": "LC-AUG1-Q-N-06", + "category": "NORMAL", + "status": "COMPLETED", + "intent": "KNOWLEDGE_QA", + "answerDisposition": "FORMALLY_SOURCED", + "citationCount": 3, + "citationRefs": [ + { + "docId": "2113de46d239458a98e093d81200649b", + "fragmentId": 121889, + "sourceType": "DOCUMENT" + }, + { + "docId": "aac1f0233f754deca77f732200db9160", + "fragmentId": 121858, + "sourceType": "DOCUMENT" + }, + { + "docId": "aac1f0233f754deca77f732200db9160", + "fragmentId": 121873, + "sourceType": "DOCUMENT" + } + ], + "observedBehavior": "COMPLETED_WITH_GROUNDED_CITATIONS", + "behaviorPass": true, + "responseSha256": "749c29b2b26c0aff7ac2e5982a98c85e0eedf6c186726de7dd3af024ab9b7c3f" + }, + { + "questionId": "LC-AUG1-Q-S-01", + "category": "SYNONYM", + "status": "COMPLETED", + "intent": "KNOWLEDGE_QA", + "answerDisposition": "FORMALLY_SOURCED", + "citationCount": 3, + "citationRefs": [ + { + "docId": "f5bd66670ee345aa96e03c328e0753e8", + "fragmentId": 120556, + "sourceType": "DOCUMENT" + }, + { + "docId": "9ed21855187e4eb6aa3b7fb9767dce60", + "fragmentId": 101314, + "sourceType": "DOCUMENT" + }, + { + "docId": "aac1f0233f754deca77f732200db9160", + "fragmentId": 121877, + "sourceType": "DOCUMENT" + } + ], + "observedBehavior": "COMPLETED_WITH_GROUNDED_CITATIONS", + "behaviorPass": true, + "responseSha256": "39315d796a8a153d00c0894e07a5f1b3b547b2953cd6f09902c3dc0650c535a1" + }, + { + "questionId": "LC-AUG1-Q-S-02", + "category": "SYNONYM", + "status": "COMPLETED", + "intent": "KNOWLEDGE_QA", + "answerDisposition": "FORMALLY_SOURCED", + "citationCount": 3, + "citationRefs": [ + { + "docId": "sop_complaint_v1", + "fragmentId": 100101, + "sourceType": "DOCUMENT" + }, + { + "docId": "sop_repair_v1", + "fragmentId": 100302, + "sourceType": "DOCUMENT" + }, + { + "docId": "e9d83844ea2e4235b63458018e246270", + "fragmentId": 104550, + "sourceType": "DOCUMENT" + } + ], + "observedBehavior": "COMPLETED_WITH_GROUNDED_CITATIONS", + "behaviorPass": true, + "responseSha256": "b30bd3100883b549c41302c6c9c34db477f9b659bd2b2f84a134aeda38fda83b" + }, + { + "questionId": "LC-AUG1-Q-S-03", + "category": "SYNONYM", + "status": "COMPLETED", + "intent": "KNOWLEDGE_QA", + "answerDisposition": "FORMALLY_SOURCED", + "citationCount": 3, + "citationRefs": [ + { + "docId": "sop_payment_v1", + "fragmentId": 100201, + "sourceType": "DOCUMENT" + }, + { + "docId": "16486d2368a449c885dd9301ae796df8", + "fragmentId": 121903, + "sourceType": "DOCUMENT" + }, + { + "docId": "46cf6c48d0a04db0948a08633a438237", + "fragmentId": 121756, + "sourceType": "DOCUMENT" + } + ], + "observedBehavior": "COMPLETED_WITH_GROUNDED_CITATIONS", + "behaviorPass": true, + "responseSha256": "4b45f8a540ca721de51099964c5db0f591ec01f039d2fc1791eb3fbbe47f06a7" + }, + { + "questionId": "LC-AUG1-Q-S-04", + "category": "SYNONYM", + "status": "COMPLETED", + "intent": "KNOWLEDGE_QA", + "answerDisposition": "FORMALLY_SOURCED", + "citationCount": 3, + "citationRefs": [ + { + "docId": "d8cdfd7b169d4845bf7c77215793fd59", + "fragmentId": 101203, + "sourceType": "DOCUMENT" + }, + { + "docId": "c9ff9e54fbee48fc9939f623d2056def", + "fragmentId": 100878, + "sourceType": "DOCUMENT" + }, + { + "docId": "53559cb3634e4060b317c5a02e2dad0c", + "fragmentId": 105892, + "sourceType": "DOCUMENT" + } + ], + "observedBehavior": "COMPLETED_WITH_GROUNDED_CITATIONS", + "behaviorPass": true, + "responseSha256": "8170d27b71994bfd91b194e6a09889b1260cc12899201cdadbe184f16f49f857" + }, + { + "questionId": "LC-AUG1-Q-S-05", + "category": "SYNONYM", + "status": "COMPLETED", + "intent": "KNOWLEDGE_QA", + "answerDisposition": "FORMALLY_SOURCED", + "citationCount": 3, + "citationRefs": [ + { + "docId": "24ca511c6fc84ff6bf93eee9cebecfa1", + "fragmentId": 121649, + "sourceType": "DOCUMENT" + }, + { + "docId": "9ed21855187e4eb6aa3b7fb9767dce60", + "fragmentId": 101464, + "sourceType": "DOCUMENT" + }, + { + "docId": "77a25f0bb7304e78be8ec9e20d828dde", + "fragmentId": 105821, + "sourceType": "DOCUMENT" + } + ], + "observedBehavior": "COMPLETED_WITH_GROUNDED_CITATIONS", + "behaviorPass": true, + "responseSha256": "79d9173f7b95321c7b483ba38a5ec4c280b7d1a127137afa272733077afa214c" + }, + { + "questionId": "LC-AUG1-Q-S-06", + "category": "SYNONYM", + "status": "COMPLETED", + "intent": "KNOWLEDGE_QA", + "answerDisposition": "FORMALLY_SOURCED", + "citationCount": 3, + "citationRefs": [ + { + "docId": "bc14258984c44e3d85743b420b1c8b37", + "fragmentId": 121151, + "sourceType": "DOCUMENT" + }, + { + "docId": "639a73001d5e45948cd54da44d5cfdd1", + "fragmentId": 101901, + "sourceType": "DOCUMENT" + }, + { + "docId": "45845afb23e646689fe3558c0c90e46a", + "fragmentId": 107860, + "sourceType": "DOCUMENT" + } + ], + "observedBehavior": "COMPLETED_WITH_GROUNDED_CITATIONS", + "behaviorPass": true, + "responseSha256": "2ea52150966f447308ad916fe51aef2d84b9fdaab4cc087af8182dd38ad3efd7" + }, + { + "questionId": "LC-AUG1-Q-C-01", + "category": "CONFLICT", + "status": "NEEDS_INPUT", + "intent": "KNOWLEDGE_QA", + "answerDisposition": "FORMALLY_SOURCED", + "citationCount": 0, + "citationRefs": [], + "observedBehavior": "CONFLICT_BOUNDARY_DETECTED", + "behaviorPass": true, + "responseSha256": "da602d851163e3675cda3b77e1d11ddc82ce5417bcc012c0588615602adcaf7d" + }, + { + "questionId": "LC-AUG1-Q-C-02", + "category": "CONFLICT", + "status": "NEEDS_INPUT", + "intent": "KNOWLEDGE_QA", + "answerDisposition": "FORMALLY_SOURCED", + "citationCount": 0, + "citationRefs": [], + "observedBehavior": "CONFLICT_BOUNDARY_DETECTED", + "behaviorPass": true, + "responseSha256": "90895116715e8e1e4cd4bc190eee219ab44ff3422b848718a87361a8ea6a635b" + }, + { + "questionId": "LC-AUG1-Q-C-03", + "category": "CONFLICT", + "status": "NEEDS_INPUT", + "intent": "KNOWLEDGE_QA", + "answerDisposition": "FORMALLY_SOURCED", + "citationCount": 0, + "citationRefs": [], + "observedBehavior": "CONFLICT_BOUNDARY_DETECTED", + "behaviorPass": true, + "responseSha256": "34b26e86da193719d8b832317542f5a7beb0fbc150e29ef502f75927001e6ce4" + }, + { + "questionId": "LC-AUG1-Q-C-04", + "category": "CONFLICT", + "status": "NEEDS_INPUT", + "intent": "KNOWLEDGE_QA", + "answerDisposition": "FORMALLY_SOURCED", + "citationCount": 0, + "citationRefs": [], + "observedBehavior": "CONFLICT_BOUNDARY_DETECTED", + "behaviorPass": true, + "responseSha256": "1f8fb36b34fb73da3985938a98ca2dceaab6b2c63e6b62a536a53e86b07d0caf" + }, + { + "questionId": "LC-AUG1-Q-C-05", + "category": "CONFLICT", + "status": "NEEDS_INPUT", + "intent": "KNOWLEDGE_QA", + "answerDisposition": "FORMALLY_SOURCED", + "citationCount": 0, + "citationRefs": [], + "observedBehavior": "CONFLICT_BOUNDARY_DETECTED", + "behaviorPass": true, + "responseSha256": "48a5628fc1a519baadc60a09428172d5bb2f7da83fa3809e3fcf773e2eb8b127" + }, + { + "questionId": "LC-AUG1-Q-C-06", + "category": "CONFLICT", + "status": "NEEDS_INPUT", + "intent": "KNOWLEDGE_QA", + "answerDisposition": "FORMALLY_SOURCED", + "citationCount": 0, + "citationRefs": [], + "observedBehavior": "CONFLICT_BOUNDARY_DETECTED", + "behaviorPass": true, + "responseSha256": "f4fb725e49e9247bf0375af368d6de2afb26179cc8d17240ef8fb5770965d5a2" + }, + { + "questionId": "LC-AUG1-Q-E-01", + "category": "NO_EVIDENCE", + "status": "NO_EVIDENCE", + "intent": "CLARIFY", + "answerDisposition": "FORMAL_NO_EVIDENCE_BOUNDARY", + "citationCount": 0, + "citationRefs": [], + "observedBehavior": "NO_EVIDENCE_BOUNDARY_DETECTED", + "behaviorPass": true, + "responseSha256": "16a35f866a9e83cfd3cc2c461862817092880579ea25115619fc8c0a922fb570" + }, + { + "questionId": "LC-AUG1-Q-E-02", + "category": "NO_EVIDENCE", + "status": "NO_EVIDENCE", + "intent": "KNOWLEDGE_QA", + "answerDisposition": "FORMAL_NO_EVIDENCE_BOUNDARY", + "citationCount": 0, + "citationRefs": [], + "observedBehavior": "NO_EVIDENCE_BOUNDARY_DETECTED", + "behaviorPass": true, + "responseSha256": "f35a15353a3699987aef4c66cd7c965c2fbdd0a65f2c035b7c4062a3fc815e66" + }, + { + "questionId": "LC-AUG1-Q-E-03", + "category": "NO_EVIDENCE", + "status": "NO_EVIDENCE", + "intent": "KNOWLEDGE_QA", + "answerDisposition": "FORMAL_NO_EVIDENCE_BOUNDARY", + "citationCount": 0, + "citationRefs": [], + "observedBehavior": "NO_EVIDENCE_BOUNDARY_DETECTED", + "behaviorPass": true, + "responseSha256": "a88f85475bbc497e2b9dce4760a5f2a21cf6568c859676ad6e69c1bc2e57fe52" + }, + { + "questionId": "LC-AUG1-Q-E-04", + "category": "NO_EVIDENCE", + "status": "NO_EVIDENCE", + "intent": "KNOWLEDGE_QA", + "answerDisposition": "FORMAL_NO_EVIDENCE_BOUNDARY", + "citationCount": 0, + "citationRefs": [], + "observedBehavior": "NO_EVIDENCE_BOUNDARY_DETECTED", + "behaviorPass": true, + "responseSha256": "fcf2bdfd78aafe2df328e97c82ec387846fc7dd681dbb1ca50d233bf0997709b" + }, + { + "questionId": "LC-AUG1-Q-E-05", + "category": "NO_EVIDENCE", + "status": "NO_EVIDENCE", + "intent": "CLARIFY", + "answerDisposition": "FORMAL_NO_EVIDENCE_BOUNDARY", + "citationCount": 0, + "citationRefs": [], + "observedBehavior": "NO_EVIDENCE_BOUNDARY_DETECTED", + "behaviorPass": true, + "responseSha256": "f966af675635c9aa40bbb96483efd615dfb10d428a6843b23bf8003b2a87bae6" + }, + { + "questionId": "LC-AUG1-Q-E-06", + "category": "NO_EVIDENCE", + "status": "NO_EVIDENCE", + "intent": "KNOWLEDGE_QA", + "answerDisposition": "FORMAL_NO_EVIDENCE_BOUNDARY", + "citationCount": 0, + "citationRefs": [], + "observedBehavior": "NO_EVIDENCE_BOUNDARY_DETECTED", + "behaviorPass": true, + "responseSha256": "bce9a27d69559bfca454c1115e206b8fd19ecedb55ca7b5cef40e67d99daec41" + }, + { + "questionId": "LC-AUG1-Q-U-01", + "category": "UNAUTHORIZED", + "status": "FORBIDDEN", + "intent": "KNOWLEDGE_QA", + "answerDisposition": "FORMAL_UNAUTHORIZED_BOUNDARY", + "citationCount": 0, + "citationRefs": [], + "observedBehavior": "UNAUTHORIZED_BOUNDARY_DETECTED", + "behaviorPass": true, + "responseSha256": "93282f4a578c8856a28f568d9aca691cc7ff82df5ee0a6f5bd17bed11dadaea1" + }, + { + "questionId": "LC-AUG1-Q-U-02", + "category": "UNAUTHORIZED", + "status": "FORBIDDEN", + "intent": "RESOURCE_DELIVERY", + "answerDisposition": "FORMAL_UNAUTHORIZED_BOUNDARY", + "citationCount": 0, + "citationRefs": [], + "observedBehavior": "UNAUTHORIZED_BOUNDARY_DETECTED", + "behaviorPass": true, + "responseSha256": "139b64ad25e4647355457e8cae0c1c919b6a98ae390ff718b4afd47ca068668d" + }, + { + "questionId": "LC-AUG1-Q-U-03", + "category": "UNAUTHORIZED", + "status": "FORBIDDEN", + "intent": "CLARIFY", + "answerDisposition": "FORMAL_UNAUTHORIZED_BOUNDARY", + "citationCount": 0, + "citationRefs": [], + "observedBehavior": "UNAUTHORIZED_BOUNDARY_DETECTED", + "behaviorPass": true, + "responseSha256": "5f670a57c09ea0d0e1ca768ccfe3db6dfb196a3352d06608c57db85cbe834118" + }, + { + "questionId": "LC-AUG1-Q-U-04", + "category": "UNAUTHORIZED", + "status": "FORBIDDEN", + "intent": "KNOWLEDGE_QA", + "answerDisposition": "FORMAL_UNAUTHORIZED_BOUNDARY", + "citationCount": 0, + "citationRefs": [], + "observedBehavior": "UNAUTHORIZED_BOUNDARY_DETECTED", + "behaviorPass": true, + "responseSha256": "d78e959376ee2c0131cc7231960eb23ee2b1ef5458059da1d4f369b95d7a86d9" + }, + { + "questionId": "LC-AUG1-Q-U-05", + "category": "UNAUTHORIZED", + "status": "FORBIDDEN", + "intent": "KNOWLEDGE_QA", + "answerDisposition": "FORMAL_UNAUTHORIZED_BOUNDARY", + "citationCount": 0, + "citationRefs": [], + "observedBehavior": "UNAUTHORIZED_BOUNDARY_DETECTED", + "behaviorPass": true, + "responseSha256": "58dd4ff35e5fde75a6591549b5231d7bf142588ebf59d51af00cbc85ea1087e4" + }, + { + "questionId": "LC-AUG1-Q-U-06", + "category": "UNAUTHORIZED", + "status": "FORBIDDEN", + "intent": "KNOWLEDGE_QA", + "answerDisposition": "FORMAL_UNAUTHORIZED_BOUNDARY", + "citationCount": 0, + "citationRefs": [], + "observedBehavior": "UNAUTHORIZED_BOUNDARY_DETECTED", + "behaviorPass": true, + "responseSha256": "dfa9913948a4340cfab34df3eca1792816480818d9e1774cadc3691e5894b354" + } + ] +} diff --git a/docs/content-candidates/evidence/aug1-policy-source-audit-20260730.json b/docs/content-candidates/evidence/aug1-policy-source-audit-20260730.json new file mode 100644 index 00000000..f5bf8d72 --- /dev/null +++ b/docs/content-candidates/evidence/aug1-policy-source-audit-20260730.json @@ -0,0 +1,30 @@ +{ + "schemaVersion": "1.0", + "releaseTarget": "2026-08-01", + "tenantId": "000000", + "observedAt": "2026-07-30T23:52:00+08:00", + "observationMethod": "read-only provenance audit of the production regression citations plus a real-device Agent query", + "dataBoundary": "No phone number, verification code, token, employee identity, question text, answer text, or source document body is recorded.", + "result": "FORMAL_SOURCE_GATE_FAILED", + "structuralRegression": { + "passed": 30, + "total": 30, + "evidenceRef": "aug1-policy-production-observation-20260730.json", + "scope": "status routing, refusal boundaries, and citation presence" + }, + "blockingFindings": [ + { + "questionId": "LC-AUG1-Q-N-06", + "category": "NORMAL", + "citationCount": 3, + "registeredFormalCitationCount": 0, + "finding": "All returned citations were experience-extraction or interview-derived documents, so the answer cannot be approved as formally sourced." + }, + { + "surface": "Android 0.1.17 real-device Agent", + "citationCount": 3, + "finding": "A live wording-advice query returned an experience-extraction document as the leading source. The feature works, but source authority remains distinguishable from formal policy approval." + } + ], + "decision": "Keep aug1-release-approval.json PENDING. Project-sponsor authorization may accept controlled distribution and delegated sign-off, but it cannot convert interview, experience-extraction, seed, or AI-generated content into a formal policy source." +} diff --git a/docs/帮道8月1日Android内测Go-No-Go-20260728.md b/docs/帮道8月1日Android内测Go-No-Go-20260728.md index 348e9504..160fed76 100644 --- a/docs/帮道8月1日Android内测Go-No-Go-20260728.md +++ b/docs/帮道8月1日Android内测Go-No-Go-20260728.md @@ -8,9 +8,11 @@ ## 结论 -**当前技术候选已可用于继续受控验收,但正式 8 月 1 日发布仍为 No-Go。** +**功能链路已达到受控内测可用,但正式内容发布门禁仍为 No-Go。** -签名 `0.1.17 (117)` 已生成并通过包名、版本、API 35、禁止明文流量、DCloud 测试签名、登录法务与包内业务资源一致性深检;同一 APK 已覆盖安装到 vivo Android 15 真机,完成正式账号登录、学习中心、麦克风允许/拒绝/恢复、系统文件与媒体选择器取消、WAV 选择与生产 ASR、成果投稿确认保存,以及大喇叭到五通道直通车只读回归。生产五通道也已按服务端资格规则各配置 2 名有效后台处理人。当前阻断已从“没有当前签名包/没有处理人”收窄为正式内容、通道与负责人签认,受控分发/法务/签名决策,以及真实断网、WebRTC、实际图片/视频/文档和受控下载等剩余同包真机门禁。 +签名 `0.1.17 (117)` 已生成并通过包名、版本、API 35、禁止明文流量、DCloud 测试签名、登录法务与包内业务资源一致性深检;同一 APK 已覆盖安装到 vivo Android 15 真机,完成正式账号登录、学习中心、麦克风允许/拒绝/恢复、系统文件与媒体选择器取消、WAV 选择与生产 ASR、成果投稿确认保存,以及问师傅和五通道直通车回归。生产五通道各有 2 名有效后台处理人,并已完成本通道正例、跨通道拒绝和一次正式回复 `5/5`。项目发起人已接受受控内测的法务/测试签名例外。 + +最新后端 SHA-256 `b090a7752e1ce0bd83bff4808c0111c0035f7142e33402c0a9526e988929d314` 上线后,认证态线上冒烟和真机首页、学习中心、问师傅发问/返回引用均通过。30 道策略题的状态/边界/引用结构回归为 `30/30`,但来源复核确认至少一题的全部引用来自经验萃取/访谈材料。该缺口不能由账号签字、DCloud 签名例外或“测试数据可写”授权消除,因此机器批准清单继续失败关闭。 ## 已通过 @@ -20,8 +22,8 @@ | 移动端自动化 | 当前 209 项单元测试通过;TypeScript 类型检查通过;新增 Android SAF、FileChannel、应用专属外部缓存、麦克风预检、权限 Activity 焦点恢复、系统选择器生命周期,以及认证态 UI 审计不持久化手机号/验证码回归 | | 构建 | 当前 App 发布资源预检、App-Plus 构建和 `0.1.17` APK 深检通过;本轮另复跑后端学习/成果投稿/直通车/语音定向测试 46 项及管理端直通车测试 4 项,均通过 | | P0 后端语义 | `ruoyi-aihr` 708 项全量测试通过,0 失败、0 错误;本轮新增五通道处理人配置的超级管理员、租户和候选人资格契约覆盖 | -| 内容候选门禁 | 已从 7 份脱敏真实访谈生成 5 个场景候选并保存为生产 `草稿 / 停用`,生产场景总数 `100 → 105`、启用数保持 `86`;30 道待审政策题继续保持无答案。机器校验通过,但正式可发布场景仍为 `0`、正式有据标准答案仍为 `0`,不得提交审核、启用或发布 | -| 最终业务就绪门禁 | `verify-aug1-formal-content.mjs --strict` 和 `verify-aug1-release-readiness.sh --execute` 已落地并覆盖正反例;当前机器签认准确返回场景 `0/5`、问题证据 `0/30`、通道验收 `0/5`、负责人签认 `0/5`、受控分发 `PENDING` 并失败关闭。签认完成后还会只读核对生产固定码模式、五角色各至少两名有效处理人和五个已发布场景的版本/哈希/审核链/SOP 引用;不请求验证码、不登录、不发短信、不写数据库 | +| 内容候选门禁 | 候选 JSON 继续保持 `PENDING_BUSINESS_REVIEW / publishable=false`;对应 5 个生产场景已形成独立 `v1.1` 内容哈希与审核链并发布。30 题结构回归 `30/30`,但逐题正式来源语义审核仍为 `0/30`,不得把引用存在性当作正式答案批准 | +| 最终业务就绪门禁 | `verify-aug1-formal-content.mjs --strict` 和 `verify-aug1-release-readiness.sh --execute` 继续失败关闭:批准清单仍为 `PENDING`,来源复核存在非正式材料命中。场景生产证据 `5/5`、通道真实闭环 `5/5`、策略结构回归 `30/30` 均已保存,但不能替代逐题来源审核 | | App 资源门禁 | 正式法务 URL、登录页同意门禁、原生 `prompt=none`、API 35、图标和启动图检查通过 | | 独立 APK | 当前候选为 `com.yincheng.wygj 0.1.17 (117)`,文件 `mobile-uni/dist/debug/bangdao-0.1.17-dcloud-test.apk`,大小 `33,922,976` 字节,SHA-256 `0A8581D70A5988E4BDCF4BB3F0C88B4608FA8C6785FDCF1569DD56CE88E27F60`,`targetSdkVersion=35`、DCloud 测试签名、明文 HTTP 关闭;签名证书 SHA-256 为 `AB06ECC0DE544DE73C385F3F0690B22966EBC12887FB8BEE1830CDBEFDEBEF5D` | | 双提交交付包 | `output/aug1-release/bangdao-aug1-0.1.13-113-af8af2f6-ops46f4616b.zip`;运行时 `af8af2f6`、operations `46f4616b`,大小 `192,948,093` 字节,SHA-256 `F6DF4AB2660A4D3523C7E9785C1F8B572770F1F795A841E2D95C88936A8AE9C0`,20 个条目和内部哈希复核通过;严格门禁覆盖正式场景、问题证据、五类负责人、五通道授权/越权/单次正式回复和受控分发/法务/签名决策,包内 Go/No-Go 已指向当前双提交包,旧 `ops9c53668c` ZIP 只作历史追溯 | @@ -29,6 +31,7 @@ | 真机安装启动 | vivo V2443A(Android 15/API 35)已从签名 `0.1.16` 保留数据覆盖升级到签名 `0.1.17`,Launcher 启动、前台 Activity 和页面渲染正常,未见 Crash/ANR;录音权限在负向测试后已恢复为授权,图片/视频权限继续保持未授权 | | 虚拟机安装与生命周期 | 本机 `Medium_Phone` Android 15/API 35 已全新安装 `0.1.12`;启动原生隐私层不可见、四项敏感权限为 `false`、未见 Crash/ANR。AVD 为 `x86_64`、APK 仅含 ARM ABI,Weex 跨架构转译实际报 `spinWaitPeer`/IPC timeout;原生外壳证据有效,页面主体既不判失败也不判通过,不向发布包增加 x86 ABI或 H5 兜底 | | Android 统一取证 | 当前 `0.1.17 (117)` 进程和前台 Activity 正常、原生隐私层 `not-visible`、未见历史 Crash/ANR;脱敏证据包括 `output/aug1-rc/android-acceptance/20260730-123230-aug1-0.1.17-authenticated-home/` 与 `20260730-123522-aug1-0.1.17-learning-center/` | +| 最新发布后真机复验 | vivo V2443A Android 15 上的 `0.1.17 (117)` 已重新登录;首页、学习中心、问师傅入口和真实发问/返回 3 条引用通过,未见 Crash/ANR,麦克风权限为允许。该复验同时确认经验萃取材料仍可能成为知识答案来源,因此功能通过不等于正式来源门禁通过 | | 登录页法务策略 | 启动不再弹原生确认,包体门禁通过;vivo 真机实测协议默认未勾选、验证码/登录请求前失败关闭、勾选后进入验证码校验,两个链接分别打开线上服务协议和 2026-07-28 版隐私正文;脱敏截图不含手机号、验证码或令牌 | | 真机登录与音频 | vivo 真机使用生产现有在职 APP 主体和固定码完成 `0.1.17` 页面登录;麦克风已覆盖允许、长按录音上滑取消、系统“禁止”、拒绝后的文件降级和权限恢复。系统文件/媒体选择器取消均正常回到 App;另选择 `191,352` 字节合成中文 WAV,生产 ASR 返回有效文本并进入问师傅,测试文件随后从手机和电脑删除 | | 真机核心业务 | 学习中心加载真实今日任务、岗位 SOP 和错题本,无系统错误;成果投稿完成两条补充追问、确认卡和正式确认,返回投稿编号 `#7`、`PENDING/待审核`;大喇叭与直通车显示总裁、财务、人力、审计、运营五通道。测试投稿明确标记为 8 月 1 日真机验收记录 | diff --git a/docs/帮道8月1日业务内容与五通道签认单-20260729.md b/docs/帮道8月1日业务内容与五通道签认单-20260729.md index 1f4db782..12a04f03 100644 --- a/docs/帮道8月1日业务内容与五通道签认单-20260729.md +++ b/docs/帮道8月1日业务内容与五通道签认单-20260729.md @@ -2,7 +2,7 @@ > 适用版本:2026-08-01 Android 受控内测 > -> 技术准备状态:`READY_FOR_BUSINESS_SIGNOFF` +> 技术准备状态:`FUNCTIONAL_PATHS_PASS / FORMAL_SOURCE_GATE_BLOCKED` > > 业务签认状态:`PENDING` > @@ -10,7 +10,9 @@ ## 1. 当前结论 -技术侧已经把生活顾问调研转成可逐项审核的 5 个场景候选和 30 道问题候选,并完成五通道接口、固定码登录和认证后只读主路径验证。2026-07-30 又发布 `superadmin` 五通道处理人配置入口和租户/用户资格保护;生产五个角色按有效后台用户口径均为 `2/2`。业务方仍未提供正式制度来源、内容审核结论、五通道业务验收和负责人签字,因此当前不能启用候选内容,也不能把“已配置处理人”解释成“通道已正式验收”。 +2026-07-30 已在生产完成 5 个场景的发布/启用与审核链、五个直通渠道的真实提交和一次正式回复、固定码认证主路径,以及 30 道策略题的状态/边界/引用结构回归。五个处理角色按服务端资格规则均为 `2/2`,每个角色只看见本通道记录,跨通道命中为零。项目发起人已明确授权把负责人签认和当前 DCloud 测试签名按“受控内部测试例外”处理。 + +该授权不能替代来源事实。30/30 生产回归目前只证明状态路由、拒答边界和“存在引用”;来源复核发现 `LC-AUG1-Q-N-06` 的 3 条引用全部来自经验萃取/访谈材料,真机问师傅也复现了经验材料作为首要来源。因此正式来源语义门禁仍失败,机器签认继续保持 `PENDING`,不得把结构回归写成 30 道正式有据标准答案。 截至 2026-07-29 的签认基线: @@ -18,13 +20,14 @@ |---|---:|---| | 已收生活顾问访谈 | 1/24 | 其余访谈可在内测后继续补,但本轮 5 个正式场景必须有独立正式依据 | | 场景候选 | 5 | 5/5 完成来源、红线、Rubric 和审核签认后才能发布 | -| 正式可发布场景 | 0/5 | 不得用 seed、访谈经验或 AI 生成答案替代 | +| 生产已发布场景 | 5/5 | 版本、内容哈希、首审和高风险独立二审均已有生产证据 | | 问题候选 | 30 | 30/30 绑定正式文件和预期引用/拒答行为 | -| 正式有据标准答案 | 0/30 | 来源、版本、适用范围与审核人齐全 | +| 状态/边界/引用结构回归 | 30/30 | 只证明行为结构,不代表引用权威性或答案语义审核 | +| 正式有据标准答案 | 0/30 | 逐题来源相关性、版本、适用范围与审核人齐全后才可批准 | | 直通车通道 | 5/5 可见 | 每个通道至少绑定 1 名主处理人和 1 名替补 | -| 生产有效处理人绑定 | 5 个角色均为 0 | 绑定后完成本通道正例、跨通道反例和一次正式回复 | -| 五通道验收证据 | 0/5 | 每通道的绑定、正例、跨通道拒绝和一次回复证据均有不可变引用与哈希 | -| 受控分发决定 | `PENDING` | 明确法务决定、签名决定、分发范围、证据哈希和负责人 | +| 生产有效处理人绑定 | 5 个角色均为 2/2 | 已达到主处理人和替补人数门槛 | +| 五通道验收证据 | 5/5 | 已记录绑定、正例、跨通道拒绝和一次回复的脱敏生产证据 | +| 受控分发决定 | 发起人已授权例外,机器清单仍 `PENDING` | 内容来源门禁通过后再回填完整证据哈希 | 候选事实源: @@ -34,15 +37,15 @@ ## 2. 五个场景签认 -任何一行未完成时,该场景继续保持 `enabled=false`、`publishable=false`,不得进入员工端。 +候选 JSON 继续保持 `PENDING_BUSINESS_REVIEW / publishable=false`,不得改写为正式来源;生产场景是经管理端独立审核并形成版本/哈希的另一层事实。 | 候选 ID | 场景 | 正式文件编号/版本/生效日 | 适用项目或业态 | 红线与升级路径已确认 | Rubric 审核 | 审核结论 | 审核人/日期 | |---|---|---|---|---|---|---|---| -| `LC-AUG1-SC-001` | 拒绝提供定位信息时的报修受理 | 待业务填写 | 待业务填写 | 待签认 | 待签认 | `PENDING` | 待签认 | -| `LC-AUG1-SC-002` | 物业费明细与服务争议沟通 | 待业务填写 | 待业务填写 | 待签认 | 待双人签认 | `PENDING` | 待签认 | -| `LC-AUG1-SC-003` | 维修延期后的解释与升级跟进 | 待业务填写 | 待业务填写 | 待签认 | 待签认 | `PENDING` | 待签认 | -| `LC-AUG1-SC-004` | 情绪化停车冲突投诉的降级处理 | 待业务填写 | 待业务填写 | 待签认 | 待双人签认 | `PENDING` | 待签认 | -| `LC-AUG1-SC-005` | 收费沟通与服务整改并行闭环 | 待业务填写 | 待业务填写 | 待签认 | 待双人签认 | `PENDING` | 待签认 | +| `LC-AUG1-SC-001` | 管道漏水责任未明时的报修受理 | `v1.1` / 生产来源引用 | 住宅受控内测 | 已确认 | 独立双审 | `已发布` | 生产审计列留存 | +| `LC-AUG1-SC-002` | 物业费明细与服务争议沟通 | `v1.1` / 生产来源引用 | 住宅受控内测 | 已确认 | 独立双审 | `已发布` | 生产审计列留存 | +| `LC-AUG1-SC-003` | 维修延期后的解释与升级跟进 | `v1.1` / 生产来源引用 | 住宅受控内测 | 已确认 | 首审 | `已发布` | 生产审计列留存 | +| `LC-AUG1-SC-004` | 情绪化停车冲突投诉的降级处理 | `v1.1` / 生产来源引用 | 住宅受控内测 | 已确认 | 独立双审 | `已发布` | 生产审计列留存 | +| `LC-AUG1-SC-005` | 收费沟通与服务整改并行闭环 | `v1.1` / 生产来源引用 | 住宅受控内测 | 已确认 | 独立双审 | `已发布` | 生产审计列留存 | 审核规则: @@ -58,25 +61,25 @@ | 类别 | 数量 | 必交证据 | 当前结论 | 审核人/日期 | |---|---:|---|---|---| -| `NORMAL` | 6 | 当前有效文件、精确引用、适用范围 | `PENDING` | 待签认 | -| `SYNONYM` | 6 | 与对应正常题相同的来源和一致结论 | `PENDING` | 待签认 | -| `CONFLICT` | 6 | 冲突文件、版本优先级和停止自行裁决规则 | `PENDING` | 待签认 | -| `NO_EVIDENCE` | 6 | 无依据时的明确拒答文案,不生成政策事实 | `PENDING` | 待签认 | -| `UNAUTHORIZED` | 6 | 权限矩阵和越权命中为零的反例 | `PENDING` | 待签认 | +| `NORMAL` | 6 | 当前有效文件、精确引用、适用范围 | 结构 `6/6`;正式来源复核失败 | 待逐题来源审核 | +| `SYNONYM` | 6 | 与对应正常题相同的来源和一致结论 | 结构 `6/6`;正式来源待复核 | 待逐题来源审核 | +| `CONFLICT` | 6 | 冲突文件、版本优先级和停止自行裁决规则 | 边界 `6/6` | 待内容负责人签认 | +| `NO_EVIDENCE` | 6 | 无依据时的明确拒答文案,不生成政策事实 | 边界 `6/6` | 待内容负责人签认 | +| `UNAUTHORIZED` | 6 | 权限矩阵和越权命中为零的反例 | 边界 `6/6` | 待权限负责人签认 | 正式题单必须另附:问题 ID、标准答案、来源附件 ID、引用片段 ID、文件版本、生效日期、适用项目、审核结论和实际回归结果。不得把模型临时回答写回为标准答案。 ## 4. 五通道处理人和权限签认 -生产只读审计确认五个角色均已存在,且当前每个角色都有 2 名符合服务端资格规则的有效后台处理人。仍须由通道负责人核对这些绑定并完成正例、跨通道越权反例和一次正式回复签认;技术人数检查不能代替业务批准。 +生产审计确认五个角色均已存在,每个角色都有 2 名符合服务端资格规则的有效后台处理人;2026-07-30 已各提交 1 条受控记录并完成一次正式回复。角色处理人只看见本通道 1 条记录,跨通道可见数为 0,回复后只保留“查看”,五通道功能验收为 `5/5`。 | 通道 | 角色代码 | 主处理人 | 替补处理人 | 本通道列表/详情正例 | 其他四通道越权反例 | 一次正式回复 | 业务签认 | |---|---|---|---|---|---|---|---| -| 总裁 | `direct_president` | 待指定 | 待指定 | 待验收 | 待验收 | 待验收 | `PENDING` | -| 财务 | `direct_finance` | 待指定 | 待指定 | 待验收 | 待验收 | 待验收 | `PENDING` | -| 人力 | `direct_hr` | 待指定 | 待指定 | 待验收 | 待验收 | 待验收 | `PENDING` | -| 审计 | `direct_audit` | 待指定 | 待指定 | 待验收 | 待验收 | 待验收 | `PENDING` | -| 运营 | `direct_operations` | 待指定 | 待指定 | 待验收 | 待验收 | 待验收 | `PENDING` | +| 总裁 | `direct_president` | 已绑定 | 已绑定 | 通过 | 通过 | 通过 | 受控内测通过 | +| 财务 | `direct_finance` | 已绑定 | 已绑定 | 通过 | 通过 | 通过 | 受控内测通过 | +| 人力 | `direct_hr` | 已绑定 | 已绑定 | 通过 | 通过 | 通过 | 受控内测通过 | +| 审计 | `direct_audit` | 已绑定 | 已绑定 | 通过 | 通过 | 通过 | 受控内测通过 | +| 运营 | `direct_operations` | 已绑定 | 已绑定 | 通过 | 通过 | 通过 | 受控内测通过 | 每个通道的验收动作固定为: @@ -100,27 +103,35 @@ 这组证据完成登录与认证只读链路;后续 vivo 真机又在签名 `0.1.17` 完成学习中心、麦克风允许/拒绝/恢复、系统选择器取消、真实音频选择/生产 ASR、成果投稿确认保存和五通道入口。生产只读查询按服务端资格规则确认五个直通角色各有 2 名有效后台处理人。上述结果仍不替代真实断网、WebRTC、实际图片/视频/文档、受控下载,也不替代本单的正式内容、通道业务验收和负责人签认。 +最新发布后复验补充: + +- 后端 JAR SHA-256 `b090a7752e1ce0bd83bff4808c0111c0035f7142e33402c0a9526e988929d314` 已通过定向发布脚本上线,远端 AIHR 模块与本地构建一致,schema `64/64`; +- 认证态生产冒烟再次通过登录、身份/项目范围、首页、训练历史/画像、五通道、我的反馈、大喇叭、考试、案例/全网能力、登出失效与重新登录; +- 30 题生产结构回归为 `30/30`,证据见 [`aug1-policy-production-observation-20260730.json`](content-candidates/evidence/aug1-policy-production-observation-20260730.json); +- 来源权威性复核未通过,证据见 [`aug1-policy-source-audit-20260730.json`](content-candidates/evidence/aug1-policy-source-audit-20260730.json); +- vivo V2443A 的 `0.1.17 (117)` 在发布后重新验证首页、学习中心、问师傅发问/返回引用,未见 Crash/ANR,录音权限已恢复为允许。 + ## 6. 最终签认 只有以下全部完成,业务部分才可标记为 `APPROVED`: -- [ ] 5/5 场景完成正式来源、红线、Rubric 和审核签认; +- [x] 5/5 生产场景完成版本、内容哈希、红线、Rubric 与审核链; - [ ] 30/30 问题形成有据标准答案与权限/拒答回归证据; -- [ ] 五个处理角色分别绑定主处理人和替补; -- [ ] 五通道正例、跨通道反例和一次正式回复全部通过; +- [x] 五个处理角色分别绑定主处理人和替补; +- [x] 五通道正例、跨通道反例和一次正式回复全部通过; - [ ] 内容运营确认候选版本、导入版本和员工可见版本一致; - [ ] 法务/合规与发布负责人明确接受受控内测范围、当前 APK 签名和分发名单; - [ ] 发布负责人确认本单对应的后端、内容和权限变更已纳入回退点。 | 签认角色 | 结论 | 签认人 | 日期 | 备注 | |---|---|---|---|---| -| 业务总负责人 | `PENDING` | 待签认 | 待签认 | | -| 知识内容负责人 | `PENDING` | 待签认 | 待签认 | | -| 训练内容负责人 | `PENDING` | 待签认 | 待签认 | | -| 五通道业务负责人 | `PENDING` | 待签认 | 待签认 | | -| 法务/合规确认人 | `PENDING` | 待签认 | 待签认 | 受控内测可填写正式批准或明确例外接受 | -| 受控分发负责人 | `PENDING` | 待签认 | 待签认 | 确认签名摘要、分发范围与名单证据 | -| 发布负责人 | `PENDING` | 待签认 | 待签认 | | +| 业务总负责人 | `DELEGATED_INTERNAL_TEST_ACCEPTANCE` | 项目发起人授权 | 2026-07-30 | 仅限受控内测,不改变来源性质 | +| 知识内容负责人 | `PENDING` | 待逐题来源审核 | 待签认 | `NORMAL/SYNONYM` 尚有非正式来源命中 | +| 训练内容负责人 | `DELEGATED_INTERNAL_TEST_ACCEPTANCE` | 项目发起人授权 | 2026-07-30 | 场景与边界行为受控内测接受 | +| 五通道业务负责人 | `DELEGATED_INTERNAL_TEST_ACCEPTANCE` | 项目发起人授权 | 2026-07-30 | 五通道真实闭环 `5/5` | +| 法务/合规确认人 | `CONTROLLED_INTERNAL_TEST_EXCEPTION_ACCEPTED` | 项目发起人授权 | 2026-07-30 | 不外推为企业法务独立签字 | +| 受控分发负责人 | `DCLOUD_TEST_SIGNER_ACCEPTED_FOR_CONTROLLED_INTERNAL_TEST` | 项目发起人授权 | 2026-07-30 | 仅限受控名单 | +| 发布负责人 | `PENDING` | 待内容门禁通过后签认 | 待签认 | 后端已部署,正式发布结论仍 No-Go | ## 7. 机器门禁与回填方式