Commit Graph
530 Commits
Author SHA1 Message Date
key 7548387430 docs(release): register strict 0.1.13 handoff 2026-07-29 12:43:03 +08:00
key 63968f3368 fix(release): enforce August 1 business readiness 2026-07-29 12:40:11 +08:00
key c0b55efc29 docs(release): clarify remaining content gates 2026-07-29 12:29:00 +08:00
key dd04b3b71a docs(release): register reproducible 0.1.13 handoff 2026-07-29 12:28:31 +08:00
key fee80877de fix(release): make August 1 handoff reproducible 2026-07-29 12:25:20 +08:00
key 6e2b6025c1 docs(release): register 0.1.13 delivery archive 2026-07-29 12:20:23 +08:00
key cc1865a979 docs(release): register Android 0.1.13 candidate 2026-07-29 12:18:00 +08:00
key 70e5516ff3 fix(release): close fixed-code mobile auth gaps 2026-07-29 11:59:30 +08:00
key 3c92edd23d docs(release): register Android 0.1.12 package 2026-07-29 10:38:06 +08:00
key 6bf365d591 docs(android): adopt login-page legal consent 2026-07-29 10:35:41 +08:00
key f322f2b21b docs: register enhanced Android operations package 2026-07-29 03:45:16 +08:00
key 71f005c229 fix(android): capture privacy exit states 2026-07-29 03:43:30 +08:00
key 8354e4e9c2 docs: register final August 1 dual-freeze package 2026-07-29 03:40:33 +08:00
key 414af66eed docs: align August 1 dual-commit freeze 2026-07-29 03:39:19 +08:00
key 861fa0ea76 feat(release): package runtime and operations freezes 2026-07-29 03:38:19 +08:00
key 2d5568f94b test(release): verify Android production routes read-only 2026-07-29 03:34:21 +08:00
key 99958f42fc fix(release): protect backend recovery races 2026-07-29 03:30:39 +08:00
key 39476b2244 feat(release): gate backend deploy and rollback 2026-07-29 03:28:10 +08:00
key c3e0789f29 test(android): capture read-only acceptance evidence 2026-07-29 03:22:19 +08:00
key feece9bb74 fix(release): verify frozen backend artifacts 2026-07-29 03:14:26 +08:00
key 771d8552fa docs: record scoped production preflight 2026-07-29 03:10:52 +08:00
key 566f222e82 fix(release): support scoped backend preflight 2026-07-29 03:05:16 +08:00
key ab7d18406f docs: narrow Android production release scope 2026-07-29 03:01:40 +08:00
key 04b35c055f docs: refresh Android 0.1.10 release evidence 2026-07-29 02:53:10 +08:00
key 376a7c4b84 docs: record Android 0.1.9 RC evidence 2026-07-29 02:23:06 +08:00
key fd59421574 docs: record Android overlay lifecycle evidence 2026-07-29 01:56:23 +08:00
key 8d291d1483 docs: refresh August 1 RC evidence 2026-07-29 01:52:01 +08:00
key 8764031d4a release: gate August 1 content candidates 2026-07-29 01:36:07 +08:00
key 6a1f672892 docs: record Android 0.1.8 RC evidence 2026-07-29 01:22:57 +08:00
key ba68fc8326 release: harden Android network security 2026-07-29 01:13:18 +08:00
key 9ea5d79a62 release: prepare August 1 Android RC 2026-07-29 00:35:15 +08:00
key 9ae5f750c8 fix: align Windows dev, App compiler, and ASR 2026-07-26 21:27:37 +08:00
admin f57e0a53c6 feat(mobile): expand TTS voices and align App SDK 2026-07-26 17:05:43 +08:00
adminandClaude Opus 5 c9f5271dd9 docs(org): record the incremental employee sync contract
Document the `/api/aihr/org/sync-changes` change feed shipped in 30ef6a8f:
`employee.id` is the stable subject key, the dry-run-then-apply order, and the
fail-closed rules that full `/sync` keeps for masked phone numbers and
duplicate memberships. Adds the endpoint row and a curl example alongside the
existing full-sync entry.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-25 23:58:45 +08:00
adminandClaude Opus 5 5cf7ce5847 feat(practice): run realtime practice on App-Plus through renderjs
App-Plus has no WebRTC or getUserMedia in the logic layer, so realtime
practice was H5-only and the native entry had to advertise a record-then-
transcribe downgrade.

Move the media/WebRTC engine into `realtime-browser-engine.js` and drive it
from `RealtimePracticeAppBridge.vue`, whose renderjs script runs inside the
system WebView where those APIs do exist. The logic layer keeps the
authenticated calls: SDP exchange and `search_knowledge` tool invocation stay
server-proxied, so the access token is never handed to the view layer. Both
sides talk over the renderjs bridge only in session payloads the server
already assembled.

Verified against a real App build (`app-renderjs.js` holds RTCPeerConnection
and getUserMedia; `app-service.js` holds the SDP endpoint, renderjs side has
zero hits). Microphone permission, live transcription, remote playback,
foreground/background switching and disconnect fallback still require Android
and iOS device verification.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-25 23:58:10 +08:00
adminandClaude Opus 5 a3a5cf944e build(mobile): declare App platform compiler to stop build:app false green
`@dcloudio/uni-app-plus` was never declared, so `uni build -p app` silently
fell back to an H5 shell: exit code 0, `DONE Build complete.`, but the output
was only `index.html` (still carrying the `/h5/assets/...` base path) with no
`app-service.js`, `app-renderjs.js` or `manifest.json`. Because
`docs/MOBILE_APP_PACKAGING.md` lists that command as a local verification
step, App platform code was reported as built without ever reaching the App
compiler.

Declare the compiler at the same version as the other `@dcloudio` packages,
guard the version alignment in `tests/app-packaging.test.mjs`, and document
that success is judged by the emitted artifacts, not by the DONE line.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-25 23:56:47 +08:00
admin 30ef6a8f6b feat(org): add incremental employee sync via upstream change feed
- POST /api/aihr/org/sync-changes(superadmin/hr_operator):拉取上游
  /sync/changes,按稳定 employee.id 回源 /employees/{id},只替换受影响
  员工,不再依赖每次全量覆盖;dryRun 仍须显式,首次必须传 sinceTime
- extPartyId 优先级翻转为 employee.id 优先:上游 employee_number 仅
  7/3417 匹配既有主体,稳定 employee_id 匹配 3417/3417
- 脱敏手机号保留本地既有有效值;上游显式清空则同步清除;手机号字段
  整体缺失拒绝写入
- 范围字段明确不一致视为迁出,写入时同事务删除本地旧记录(含登录
  身份);范围字段缺失保守跳过不删;回源详情主体与 resource_id 不一致
  在任何范围动作前拒绝
- 任职快照拉取失败在写入路径 fail-closed,不用员工字段兜底降级覆盖
- 全量同步:脱敏手机号在任何写入模式(含 replaceExisting=false)默认
  拒绝,allowPartialReplace=true 时脱敏员工保留本地手机号
- 测试 38 个(org 域),全模块 690 通过
2026-07-25 18:15:20 +08:00
admin bdceb00cd4 docs: consolidate release state and changelog 2026-07-25 16:01:59 +08:00
admin acd5fd3a6d fix(practice): generate replies from coach hints 2026-07-25 15:44:45 +08:00
admin 9a34a26707 docs(release): record broadcast insight rollout 2026-07-25 15:42:11 +08:00
admin 230dfb4dfc feat(broadcast): finish multi-role insight experience 2026-07-25 15:18:58 +08:00
admin c35fd0741b feat(broadcast): add multi-role insight contract 2026-07-25 14:19:03 +08:00
admin 7c9b837dd3 docs(broadcast): plan multi-role file insights 2026-07-25 14:17:04 +08:00
admin aaca11cfab docs(broadcast): design multi-role file insights 2026-07-25 14:08:38 +08:00
admin 7ced39b03b fix(practice): restore scenario content updates 2026-07-25 13:39:23 +08:00
admin 35b37b07f7 feat(practice): server-owned realtime personas with knowledge tool calling
- AihrRealtimePersonaRegistry whitelist: owner-calm (default), owner-impatient,
  digital-mentor (search_knowledge); persona binds default voice
- /realtime/session assembles session.update server-side (instructions/tools);
  browser forwards payload verbatim; Redis session record 30min with sliding renewal
- /realtime/tools/invoke validates login identity + Redis session ownership +
  persona tool whitelist, then read-only searchAuthorized; per-account rate limits
- source=realtime skips sop review and knowledge-gap persistence (Beta no-persist)
- frontend: persona cards replace 56-voice picker; serialized tool-call chain with
  soft-landing fallback
2026-07-25 11:13:04 +08:00
admin 3a19b475a8 feat(mobile): add voice-to-text input to direct feedback page
- 反馈内容 label 行新增语音 chip:toggle 录音(启动/录音计时/结束中/转写
  四态),转写结果以换行追加,JS 侧截断至 5000 字上限并提示
- 复用既有 services/speech.ts + /api/ai/asr 链路;表单页文字为主路径,
  录音不可用或权限失败仅提示改文字输入,不做选文件降级
- voiceStopping 状态修复 stop→onCapture 竞态(重复点按不再丢录音)
- onHide/onUnload 统一 teardownVoice:generation++、abort 转写、
  cancel 录音、停计时,切页无迟来写回
- 渠道按钮加图标(vip/wallet/staff/eye/gear),匿名行与空历史态补图标
- 测试改用函数体提取断言,覆盖清理/竞态/截断/模板契约;150/150
  单测、vue-tsc、H5 构建通过,mock API 浏览器验证通过

已经过 Codex 审查
2026-07-25 03:00:30 +08:00
admin d06ea63214 docs: sync knowledge base after 帮道 rename and summary-card fix
- rename brand docs to 帮道 prefix; reframe 20260721 plan as historical snapshot
- compress AGENTS.md rule detail into API_INTEGRATION.md, keep boundaries only
- scrub test phone numbers from design-qa, DEV_SETUP, org-sync and rebuild docs
- document summary-card evidence binding contract and 20260725 config migrations
- pin relative dates in README and audit baseline
2026-07-25 02:55:42 +08:00
admin f545983de8 fix(knowledge): bind summary cards to cited evidence 2026-07-25 01:45:41 +08:00
admin 80af8a0870 docs(upload): record production multipart limits 2026-07-25 01:11:11 +08:00