key
a3689591e7
docs(release): reconcile August 1 pilot evidence
2026-07-30 23:57:38 +08:00
key
c16a3e83d7
feat(release): close handler and microphone gaps
2026-07-30 12:01:45 +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
652e48884b
fix(aihr): recover stalled media processing
2026-07-29 15:09:01 +08:00
key
70e5516ff3
fix(release): close fixed-code mobile auth gaps
2026-07-29 11:59:30 +08:00
key
9ae5f750c8
fix: align Windows dev, App compiler, and ASR
2026-07-26 21:27:37 +08:00
admin and Claude 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
admin and Claude 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
admin
acd5fd3a6d
fix(practice): generate replies from coach hints
2026-07-25 15:44:45 +08:00
admin
230dfb4dfc
feat(broadcast): finish multi-role insight experience
2026-07-25 15:18:58 +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
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
admin
c9d2012ec1
feat(aihr): finalize practice growth and access boundaries
2026-07-25 00:42:19 +08:00
admin
a67444645e
docs(agent): sync final implementation state
2026-07-25 00:03:19 +08:00
admin
cc7563cac0
docs(agent): record local implementation boundary
2026-07-24 23:37:52 +08:00
admin
067cc30d80
feat(aihr): complete M3 protected practice replay
2026-07-23 22:21:43 +08:00
admin
927458b9e0
feat(aihr): harden M0-M2 mobile training flows
2026-07-23 21:18:13 +08:00
admin
163b08ecfe
feat(aihr): 重构运营后台与租户知识治理
...
- 重构运营总览、侧栏和内容运营工作台\n- 增加大喇叭、成果审核与运营统计链路\n- 补齐租户、知识空间、分类和知识维护闭环\n- 加固标签页租户上下文、停用租户写保护与迁移预检
2026-07-23 01:24:22 +08:00
admin
d7664e45a7
feat(work-results): support historical project outcomes
2026-07-22 00:29:19 +08:00
admin
4536d607e3
feat: add project-scoped work assistant results
2026-07-21 04:44:15 +08:00
admin
0a5fc9a463
feat(assistant): unify confirmed memory capture
2026-07-20 02:30:06 +08:00
admin
24da833fa6
feat(personal-assistant): add confirmed project memory
2026-07-19 08:19:24 +08:00
admin
064816a784
feat(knowledge): add short-term ask memory
2026-07-18 21:22:49 +08:00
admin
2eda757483
docs: define ask-master conversation memory plan
2026-07-18 20:47:26 +08:00
admin
68d5600534
feat(speech): add role-aware emotional TTS profiles
2026-07-18 18:27:14 +08:00
admin
267bb3525f
docs: sync production release truth
2026-07-18 01:30:13 +08:00
admin
6bdc86e3fc
feat: restore learning feedback and knowledge capabilities
2026-07-18 00:50:11 +08:00
admin
eacf1a0aea
feat(mobile): align employee practice screens for release
2026-07-15 11:23:08 +08:00
admin
82d93a1af1
feat(aihr): allow employees to complete onboarding tasks
2026-07-15 02:49:40 +08:00
admin
2f21895597
feat(aihr): add candidate voice interview answers
2026-07-15 02:45:00 +08:00
admin
40574c204d
fix(aihr): separate onboarding and candidate review states
2026-07-15 02:39:29 +08:00
admin
2f44e6b7d1
fix(aihr): close practice audio URL exposure
2026-07-15 01:32:02 +08:00
admin
09c3cbecb0
fix(aihr): protect case media playback
2026-07-15 01:23:41 +08:00
admin
0bfaee7d22
feat(aihr): complete case learning review loop
2026-07-14 23:41:59 +08:00
admin
77c576bf5c
fix(aihr): require explicit org sync dry run
2026-07-14 20:57:50 +08:00
admin
26f5160802
fix(aihr): avoid duplicate inline tts audio
2026-07-14 16:40:41 +08:00
admin
187a75f6f6
fix(aihr): harden daily drill fallback profile gate
2026-07-14 13:44:48 +08:00
admin
1730819bfc
fix(aihr): tighten org and daily drill gates
2026-07-14 13:38:58 +08:00
admin
b8be1bb6e4
fix(aihr): align app case permissions with brd
2026-07-14 11:15:07 +08:00
admin
2cae83ff1b
fix(aihr): scope mobile home metrics by identity
2026-07-14 10:23:56 +08:00
admin
4f96df27d2
fix(aihr): bind practice sessions to owner
2026-07-14 10:05:07 +08:00
admin
cd756150a1
fix(aihr): bind candidate interview sessions to owner
2026-07-14 09:59:44 +08:00
admin
e55abec630
feat(aihr): persist interview human review
2026-07-14 09:44:03 +08:00
admin
896495dddf
fix(aihr): tighten upload and rag evidence boundaries
2026-07-14 09:28:22 +08:00
admin
ac8cddbbee
feat(aihr): align competency profile with brd dimensions
2026-07-14 09:11:45 +08:00
admin
0f647f8086
fix(aihr): scope candidate links to tenant
2026-07-14 06:31:04 +08:00
admin
e332efb731
fix(aihr): prevent duplicate employee principal links
2026-07-14 06:29:03 +08:00