Commit Graph
543 Commits
Author SHA1 Message Date
key adedcb4200 release(android): close 0.1.17 device candidate 2026-07-30 21:02:56 +08:00
key c16a3e83d7 feat(release): close handler and microphone gaps 2026-07-30 12:01:45 +08:00
key 8934f13811 docs(release): record learning fix deployment 2026-07-30 01:05:58 +08:00
key edb8c8255b fix(learning): restore mobile mistakes query 2026-07-30 00:40:03 +08:00
key 380d8e6e32 fix(mobile): converge work report confirmation 2026-07-30 00:14:42 +08:00
key 5027bef32d fix(mobile): support Android system file picker 2026-07-29 23:52:44 +08:00
key 6a6b264f22 docs: record 500MB upload production verification 2026-07-29 21:58:52 +08:00
key 140aa6f31f fix: allow 500MB async knowledge uploads 2026-07-29 17:55:12 +08:00
key 6ba7df863f chore: add UI audits and reconcile release docs 2026-07-29 16:10:46 +08:00
key 652e48884b fix(aihr): recover stalled media processing 2026-07-29 15:09:01 +08:00
key f17b904b5c docs(release): register complete external gate archive 2026-07-29 12:55:01 +08:00
key 46f4616bd4 fix(release): gate channel and distribution acceptance 2026-07-29 12:51:31 +08:00
key 5ee002ddcd docs(release): register self-consistent handoff archive 2026-07-29 12:46:15 +08:00
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