diff --git a/CHANGELOG.md b/CHANGELOG.md index ec7fa951..e41645d5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,8 @@ ## Unreleased -- **2026-08-05,实时陪练业主身份档案与「业主·急躁」下线已发布**:按客户要求删除 `owner-impatient` 人设(`owner-calm` 改名「业主」,id 不变);新增 `aihr_realtime_owner_profile` 业主身份档案(迁移 `aihr_20260823_realtime_owner_profile_mysql8.sql` 已在生产执行,`(tenant_id, project_code)` 唯一键,画像属内容运营数据、enabled=1 才对员工可见)。管理端训练运营新增「业主身份档案」配置页(moderator 角色门、projectCode 必须命中本租户组织快照、projectName 以快照为准、concerns 限 500 字带内容纪律提示、重复创建 409);员工端实时陪练新增「业主身份」选择器(默认本小区 `defaultProfileId`、可改选或显式不指定、storage 记忆、接口失败静默隐藏),员工接口只返回 `{profileId, projectCode, communityName, label}` 展示安全字段,画像正文不下发。会话渲染 `{community}/{profile}` 全部由服务端完成,客户端文本无法进入 instructions;显式 profileId 非法/跨租户/未启用 400 拒绝,默认解析 fail-closed 回落无画像模板。实时 Beta 不计分不持久化、工具白名单与三重校验不变。后端 JAR SHA-256 `234888996a82ddc5e7d36ee62f0b5086f32c9a1ac95e51bf7ce83fbb01100e0c` 经定向发布脚本完成备份、原子切换与发布后预检(模块哈希一致),回滚备份 `/opt/wygj/backups/backend-20260805032157-f0d017829a9c`;移动 H5 与管理端静态已同步发布(整站备份 `/opt/wygj/backups/www-pre-owner-profiles-20260805-032337`),根站、`/h5/` 200,`/api/train/practice/realtime/personas` 与 `/api/aihr/practice/realtime/owner-profiles` 均在线且正确鉴权。后端 `1057/1057`、移动端 typecheck 与 H5 构建、管理端构建通过;**管理端尚无真实档案数据、选择器与会话画像渲染未经生产认证态真机复验**。 +- **2026-08-05,`0.1.20 (120)` 内测包通过门禁并完成真机验收;手册打标产品化已上线**:`bangdao-0.1.20-dcloud-test.apk`(33,935,485 字节,SHA-256 `B2E238596651A265E26B46662B1B612A14CA6170BF5F3D20EF83799B2F2F784F`,DCloud 云端证书 `AB06ECC0…EF5D`)经拆包门禁核验:API 35、v2 单签名、`debuggable=0`、禁止明文流量、`prompt=none`、包内 `app-service.js` 与当前源码重建产物逐字节一致、无手机号/固定码/密钥泄漏。vivo V2443A 真机完成:固定码登录、问模块有据回答(引用《关于规范财务相关报备流程的通知.pdf》+「单月未超500元无明确依据」的边界标注)、零依据 ROUTE 出口(转人工/查全网)、实时陪练单人设与业主身份选择器默认本小区、实时会话进入。管理端「资料处理 → 质量审核」authority 下拉新增「操作手册/培训手册」预置并按文件名建议预填(commit `af64c9a9`,已发布,整站备份 `/opt/wygj/backups/www-pre-manual-authority-20260805-092505`)。注意:真机 09:29 曾出现一次「发送无反应」,当时该会话 `/mobile/me` 身份解析连续报错且后端未收到发送请求,重进后自愈,根因未完全定位,列为观察项。存量手册/制度改标仍需业务确认清单;该包仍为 DCloud 测试签名,受控分发与企业正式签名见 Go/No-Go。 +- **2026-08-05,实时陪练业主身份档案与「业主·急躁」下线已发布**:按客户要求删除 `owner-impatient` 人设(`owner-calm` 改名「业主」,id 不变);新增 `aihr_realtime_owner_profile` 业主身份档案(迁移 `aihr_20260823_realtime_owner_profile_mysql8.sql` 已在生产执行,`(tenant_id, project_code)` 唯一键,画像属内容运营数据、enabled=1 才对员工可见)。管理端训练运营新增「业主身份档案」配置页(moderator 角色门、projectCode 必须命中本租户组织快照、projectName 以快照为准、concerns 限 500 字带内容纪律提示、重复创建 409);员工端实时陪练新增「业主身份」选择器(默认本小区 `defaultProfileId`、可改选或显式不指定、storage 记忆、接口失败静默隐藏),员工接口只返回 `{profileId, projectCode, communityName, label}` 展示安全字段,画像正文不下发。会话渲染 `{community}/{profile}` 全部由服务端完成,客户端文本无法进入 instructions;显式 profileId 非法/跨租户/未启用 400 拒绝,默认解析 fail-closed 回落无画像模板。实时 Beta 不计分不持久化、工具白名单与三重校验不变。后端 JAR SHA-256 `234888996a82ddc5e7d36ee62f0b5086f32c9a1ac95e51bf7ce83fbb01100e0c` 经定向发布脚本完成备份、原子切换与发布后预检(模块哈希一致),回滚备份 `/opt/wygj/backups/backend-20260805032157-f0d017829a9c`;移动 H5 与管理端静态已同步发布(整站备份 `/opt/wygj/backups/www-pre-owner-profiles-20260805-032337`),根站、`/h5/` 200,`/api/train/practice/realtime/personas` 与 `/api/aihr/practice/realtime/owner-profiles` 均在线且正确鉴权。后端 `1057/1057`、移动端 typecheck 与 H5 构建、管理端构建通过。同日在 vivo V2443A 真机(0.1.20 内测包)完成认证态复验:管理端配置银河湾星苑档案并启用后,实时陪练「业主」人设下出现「业主身份」选择器并默认选中本小区,实时会话可正常进入;人设列表动态下架「业主·急躁」。 - **2026-08-05,问模块四来源(知识空间/公网/经验库/有奖征答)已发布**:员工问答在既有知识空间与公网同意闸之外新增两个 REFERENCE 级增强来源——正式经验库(`aihr_case_record`,`已入库+PUBLISHED+生效期+岗位门`,chip「正式经验」)与有奖征答最佳答案(`PUBLISHED+is_best=1` 且问题 `PUBLISHED/CLOSED`,只读 SQL 不含提交人身份,chip「同事经验·有奖征答」)。岗位由服务端按组织身份解析(`AihrEmployeePositionResolver`),经验/案例类硬过滤非适用岗位,形式制度不受影响,解析失败 fail-closed 仅通用可见;两增强源只追加引用、不稀释 FORMAL 答案、失败不打断主链,零文档证据时仲裁从 ROUTE 升为 GUIDANCE。管理端问题榜新增「转为经验候选」(moderator 门、幂等、固定 CANDIDATE 且 source_authorized/deidentified=0,绝不自动发布);移动端引用 chip 直达案例详情/问题详情,已点「有用」的答案禁用转人工按钮。迁移 `aihr_20260822_case_source_ref_and_best_answer_index_mysql8.sql` 已在生产执行并核验(备份 `/opt/wygj/backups/pre-20260822-four-source-20260805-024645`)。后端 JAR SHA-256 `f0d017829a9c2415a56e185bba2b138c7ccda2017d5d9a95a6d1b2ef070e548d` 经定向发布脚本完成备份、原子切换与发布后预检(schema `83/83`、collation `0/0`、模块哈希一致),回滚备份 `/opt/wygj/backups/backend-20260805024804-f1fe73d8c499`;移动 H5 与管理端静态已同步发布(整站备份 `/opt/wygj/backups/www-pre-four-source-20260805-025018`),根站与 `/h5/` 均 200。后端 `1040/1040`、移动端 typecheck 与 H5 构建、管理端构建通过;**四源链路尚未做生产认证态真机复验**(经验库/最佳答案需存在已发布内容才会命中),`0.1.18` 云打包 APK、签名包验收与受控分发仍未完成。 - **2026-08-05,问模块证据分级、澄清闭环与 ROUTE 出口已发布并完成真机验证**:员工问答从“正式源检索封锁 + 官腔拒答”改为四级证据仲裁(`FULL/PARTIAL/GUIDANCE/ROUTE`):`AihrEvidenceGradingService` 为唯一仲裁点,`GUIDANCE` 允许参考经验出流程答案但强制标注“非正式制度依据”,政策断言只允许 FORMAL 引用(policyClaims 后置校验 + 金额断言启发式兜底);程序性问题不再追问金额语义,挂起澄清随 30 分钟会话闭环(已回答/放弃/新话题,同一澄清最多问一轮);`ROUTE` 给出转人工/直通财务/查全网可执行出口,`aihr_knowledge_answer_feedback.fragment_id` 可空使零引用答案也能走“自动补 down 反馈 + 确认”的幂等转人工链。迁移 `aihr_20260804_pending_clarification_mysql8.sql`、`aihr_20260804_feedback_fragment_nullable_mysql8.sql` 及 `aihr_20260804_unify_all_collations_mysql8.sql` 已在生产执行并核验(执行前备份相关表至 `/opt/wygj/backups/pre-20260804-ask-refactor-20260805-005414`)。后端 JAR SHA-256 `f1fe73d8c499f75bcd44f52893033d21910fec6ba2745598874dd7d73f54735d` 经定向发布脚本备份、原子切换与发布后预检(schema `83/83`、collation `0/0`、模块哈希一致),回滚备份 `/opt/wygj/backups/backend-20260805005921-74d0cd2acc60`;移动 H5 已同步发布(远端备份 `/opt/wygj/backups/h5-pre-ask-refactor-20260805-010119`)。后端 `1014/1014` 测试、移动端 typecheck 与 H5/App 构建通过;vivo V2443A(Android 15)经 HBuilderX 5.23 标准基座完成固定码登录和“单笔500元采购报销”发问、追问放弃澄清、出口按钮组的真实链路验证。`@dcloudio/*` 编译器同步升级为 `3.0.0-alpha-5020320260803001`(对齐 HBuilderX-Alpha 5.23),版本号升至 `0.1.18 (118)`。标准基座验证不算签名包验收:`0.1.18` 云打包 APK、APK 门禁、真机正式验收和受控分发均未完成;非金额类政策断言的分级依赖模型诚实标注(观察项),空片段反馈并发双击可能产生冗余行(有幂等兜底),已点“有用”的答案上转人工会被 409 拒绝(前端待禁用)。 - **2026-08-04,受约束 Grounded Agent 与财务 RAG 证据门禁完成实现并受控发布**:新增 `ResolvedContext/SemanticQueryPlan/ExecutionContext/ToolCall/ToolResult/DocumentEvidence/VerifiedFact/DecisionResult/GroundedAnswer` 契约,接入 `MY_CURRENT_TASKS + KNOWLEDGE_SEARCH` 双工具、服务端授权参数注入、有界工具执行、候选调用去重、受控超时、证据槽位/来源权威/正文蕴含门禁、逐结论引用校验及结构化会话状态。财务金额覆盖 `¥500`、`五百块`、`不到500`、单笔/月累计与口径冲突;知识检索为不生成答案的授权证据工具,并将候选召回、rerank 和最终 evidence/display 截断分层。生产后端以 JAR SHA-256 `74d0cd2acc60ebf52f20eb8bee643f59395ba7cff3583076d671e57406f824ac` 发布,`wygj-aihr.service` 为 `active`,schema `83/83`,公开根站、租户列表和移动首页 HTTP 200;生产 `ACTIVE` 仅覆盖文本 `KNOWLEDGE_QA`/`LIVE_MY_WORK`,其余请求和不合格计划回退旧链路。30 条纯内存黄金场景、RAG/资料治理/Agent 新链路 166 项、旧 Planner/Orchestrator/会话兼容 45 项及 additive MySQL 8 迁移回归通过。认证态用户逐例问答、客户端状态 UI 全量验收、真实模型 + MySQL/Qdrant 的完整召回评测和 100–300 条人工黄金集仍待完成,不能据此宣称生产召回率达标。 diff --git a/docs/MOBILE_APP_PACKAGING.md b/docs/MOBILE_APP_PACKAGING.md index 0bb41c82..ea116098 100644 --- a/docs/MOBILE_APP_PACKAGING.md +++ b/docs/MOBILE_APP_PACKAGING.md @@ -82,7 +82,9 @@ APK 门禁还会比较包内与当前 `dist/build/app/app-service.js` 的 SHA-25 2026-07-28 最终自定义基座大小为 `21,158,193` 字节,SHA-256 为 `82D3352FF96A86F5DB4AC0C71DCB0ED6CEC98F2A785F6EAED2FE8D4FC0C5F704`。2026-07-29 最后一个已生成并可重复校验的独立内测包为 `bangdao-0.1.13-dcloud-test.apk`:包名 `com.yincheng.wygj`、版本 `0.1.13 (113)`、`targetSdkVersion=35`,大小 `33,921,543` 字节,SHA-256 为 `FA2D2A6DC84AE759714E6D16D146C1E1552A0F3F53C046069422012361D1D0C0`,签名证书 SHA-256 为 `AB06ECC0DE544DE73C385F3F0690B22966EBC12887FB8BEE1830CDBEFDEBEF5D`。APK 反编译门禁确认包内业务资源等于冻结时的 App-Plus 编译产物、启动原生隐私提示已关闭、登录页法务链接与未勾选拦截及身份加载失败关闭已进入包体,并通过敏感值、`usesCleartextTraffic=false`、`networkSecurityConfig` 和系统证书信任检查。干净提交 `af8af2f6dd169e4616a4ca0ca724e8b809502ab3` 的统一 RC 已完成,`releaseEligible=true`,证据在 `output/aug1-rc/0.1.13-113-af8af2f6-frozen/`;候选后端 JAR SHA-256 为 `93AD272118F6A28F88C2BFA305F5C450E163CBE22577FF5BE3E85B3BD3958DAD`。当前双提交交付包为 `output/aug1-release/bangdao-aug1-0.1.13-113-af8af2f6-ops46f4616b.zip`,大小 `192,948,093` 字节、SHA-256 为 `F6DF4AB2660A4D3523C7E9785C1F8B572770F1F795A841E2D95C88936A8AE9C0`,20 个条目和内部哈希已复核;严格门禁覆盖正式场景、问题证据、五类负责人、五通道授权/越权/单次正式回复和受控分发/法务/签名决策,包内 Go/No-Go 已指向当前双提交包,`ops9c53668c`、`0.1.12` 及更早 RC/交付 ZIP 只保留为历史基线。当前 AVD 为 `x86_64`,APK 原生库仅含 `arm64-v8a/armeabi-v7a`;安装和原生外壳可由系统转译运行,但 DCloud Weex JS 进程实际出现 `spinWaitPeer`/IPC 超时,页面主体空白不能用于判断产品页面。浏览器验证只作补充,不替代 App 运行;不会为了模拟器改变正式 ABI、回退为 H5 壳或增加业务兜底。该包仍使用 DCloud 云端测试证书,只能作为 8 月 1 日受控内测包;受控分发、法务例外和测试签名接受当前均待业务签认,企业正式 release 还必须使用签认后的企业证书摘要。 -当前源码和 DCloud 测试签名候选均为 `0.1.17 (117)`。APK 大小 `33,922,976` 字节,SHA-256 为 `0A8581D70A5988E4BDCF4BB3F0C88B4608FA8C6785FDCF1569DD56CE88E27F60`,签名证书 SHA-256 为 `AB06ECC0DE544DE73C385F3F0690B22966EBC12887FB8BEE1830CDBEFDEBEF5D`;拆包门禁已确认 API 35、禁止明文流量、登录法务和包内业务资源与当前 App-Plus 构建一致。同一 APK 已在 vivo Android 15 真机完成登录、麦克风允许/拒绝/恢复、系统选择器取消、音频选择/生产 ASR 和成果投稿确认。它仍是 DCloud 测试签名,不等于企业正式 release;受控分发、法务/签名接受和剩余设备门禁见 Go/No-Go。 +当前源码和 DCloud 测试签名候选均为 `0.1.20 (120)`(`bangdao-0.1.20-dcloud-test.apk`,2026-08-05 经 HBuilderX 5.23 CLI 云打包)。APK 大小 `33,935,485` 字节,SHA-256 为 `B2E238596651A265E26B46662B1B612A14CA6170BF5F3D20EF83799B2F2F784F`,签名证书 SHA-256 为 `AB06ECC0DE544DE73C385F3F0690B22966EBC12887FB8BEE1830CDBEFDEBEF5D`;拆包门禁确认包名 `com.yincheng.wygj`、API 35、v2 单签名、`debuggable=0`、`allowBackup=0`、禁止明文流量、`networkSecurityConfig` 存在、`androidPrivacy.json` 为 `prompt=none`、登录法务链接在包内、无手机号/固定码/密钥类敏感值,且包内 `app-service.js` SHA-256 为 `9A90A64A3106C2F1438FCA9095C175A1AC33AEE9B9B2E6FB27ED3248CF466A04`(与当前源码 App-Plus 重建产物逐字节一致)。同一 APK 已在 vivo V2443A(Android 15)覆盖安装并完成:固定码登录、问模块有据回答(引用+边界标注)、零依据 ROUTE 出口按钮、实时陪练人设列表(业主/数字师傅,无急躁)、业主身份选择器默认本小区(管理端配置档案后)、实时会话进入。它仍是 DCloud 测试签名,不等于企业正式 release;受控分发、法务/签名接受见 Go/No-Go。注意设备上曾存在 8 月 3 日旧代码的 `0.1.19 (119)`,版本号高于其代码新旧,`0.1.18 (118)` 内测包未装机即被 `0.1.20` 取代。 + +历史候选 `0.1.17 (117)`:APK 大小 `33,922,976` 字节,SHA-256 为 `0A8581D70A5988E4BDCF4BB3F0C88B4608FA8C6785FDCF1569DD56CE88E27F60`,签名证书 SHA-256 为 `AB06ECC0DE544DE73C385F3F0690B22966EBC12887FB8BEE1830CDBEFDEBEF5D`;拆包门禁已确认 API 35、禁止明文流量、登录法务和包内业务资源与当前 App-Plus 构建一致。同一 APK 已在 vivo Android 15 真机完成登录、麦克风允许/拒绝/恢复、系统选择器取消、音频选择/生产 ASR 和成果投稿确认。它仍是 DCloud 测试签名,不等于企业正式 release;受控分发、法务/签名接受和剩余设备门禁见 Go/No-Go。 企业正式签名 APK 还必须用发布负责人保管的证书摘要执行 release 模式核验;该模式会额外拒绝 `debuggable=true`、明文 HTTP 和签名摘要不一致: