Commit Graph
883 Commits
Author SHA1 Message Date
admin c2358686ce fix(agent): tolerate Jackson int-range decode in Redis draft/session reads
全局 Redisson codec 用 DefaultTyping.NON_FINAL,final 的 Long/record 不写类名:
数字草稿 id 读回 Integer、realtime 会话 record 读回 LinkedHashMap,confirm 与
工具调用路径双双 ClassCastException(生产 19:35 日志实证)。改为 Number/String
防御转换与 ObjectMapper.convertValue 显式还原,补 3 个回归测试,模块 693 全绿。
2026-07-25 19:48:17 +08:00
admin bb8b2dde7e fix(exam): replace unfounded 4-char title rule with explicit validation messages
- 考试名称仅要求非空,移除无依据的至少 4 字限制;保留及格分 1-100、
  至少一题、总分 100、题干/选项/答案完整、至少一名员工的发布校验
- 发布坞展示具体校验失败原因,不再静默禁用按钮
- CHANGELOG/README 同步 2026-07-25 组织姓名定向补齐与生产复核记录
2026-07-25 18:15:32 +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 75469b850b docs(changelog): add precise release timestamps 2026-07-25 16:08:07 +08:00
admin 382f2ed5db docs(release): record practice reply deployment 2026-07-25 16:05:34 +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 7990db6883 feat(broadcast): expose employee role insights 2026-07-25 14:33:27 +08:00
admin 91ebe41259 feat(broadcast): generate grounded role insights 2026-07-25 14:24:08 +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 2b3c37677d fix(mobile): prioritize practice actions above guidance 2026-07-25 13:17:32 +08:00
admin fa9d6da975 feat(practice): streamline pilot content operations 2026-07-25 12:51:39 +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
admin 4d2b3828c0 feat(brand): rename product to 帮道 2026-07-25 01:09:49 +08:00
admin 7e37b6803e fix(upload): allow 500mb multipart uploads 2026-07-25 01:06:38 +08:00
admin c9d2012ec1 feat(aihr): finalize practice growth and access boundaries 2026-07-25 00:42:19 +08:00
admin a90f40e4d8 merge: integrate qwen tts voice preferences
# Conflicts:
#	backend/ruoyi-modules/ruoyi-aihr/src/test/java/org/dromara/aihr/service/AihrSpeechServiceTest.java
#	mobile-uni/src/pages/user/profile/index.vue
#	mobile-uni/src/services/speech.ts
#	mobile-uni/src/services/tts-voice-preference.ts
#	mobile-uni/tests/tts-voice-preference.test.mjs
2026-07-25 00:20:28 +08:00
admin ca8f86c042 merge: integrate tenant org directory hotfix 2026-07-25 00:19:19 +08:00
admin f6ffafda30 fix(mobile): type direct feedback switch event 2026-07-25 00:16:56 +08:00
admin 09278d40c6 merge: integrate broadcast question correction
# Conflicts:
#	docs/BRD_PRODUCTION_MIGRATION_RUNBOOK.md
2026-07-25 00:13:49 +08:00
admin 5f8d8f96f0 fix(agent): preserve broadcast consultation context 2026-07-25 00:12:53 +08:00
admin a67444645e docs(agent): sync final implementation state 2026-07-25 00:03:19 +08:00
admin 9b39ffbb76 fix(agent): bound user questions 2026-07-24 23:48:25 +08:00
admin 56f663b8a2 docs(agent): align integrated product plan 2026-07-24 23:42:28 +08:00
admin cc7563cac0 docs(agent): record local implementation boundary 2026-07-24 23:37:52 +08:00
admin fdd98049e5 fix(agent): decouple media analysis from knowledge scope 2026-07-24 23:37:46 +08:00
admin 342f84a9de feat(aihr): complete company message R1-R3 2026-07-24 23:25:15 +08:00
admin 5b7c5613f5 feat(agent): move mobile ask to unified agent 2026-07-24 22:36:14 +08:00
admin 6ba4e06a2f feat(agent): audit orchestrated runs 2026-07-24 22:13:04 +08:00
admin 434bab6fed feat(agent): require web research consent 2026-07-24 20:37:51 +08:00
admin 6f8c549752 feat(agent): confirm existing domain drafts 2026-07-24 20:33:07 +08:00
admin 775a326ae2 fix(agent): route media by intent 2026-07-24 20:27:03 +08:00
admin ffe830f64a feat(agent): orchestrate read-only work tools 2026-07-24 20:17:21 +08:00
admin b4cc83168d feat(agent): enforce tool policy 2026-07-24 20:12:43 +08:00
admin ac6b14926a feat(agent): add conservative intent planner 2026-07-24 20:08:28 +08:00
admin 36b5bc8564 docs(agent): approve design and add implementation plan 2026-07-24 19:47:15 +08:00
admin 5d864a1444 docs(aihr): plan company message R1-R3 2026-07-24 16:06:05 +08:00
admin 41fbacca73 docs(agent): define digital master orchestration 2026-07-24 15:03:20 +08:00
admin 743d629dc8 fix(knowledge): use native file downloads in app 2026-07-24 14:52:07 +08:00
admin bdc4ffad9f fix(knowledge): share public download tickets across tenant context 2026-07-24 13:51:44 +08:00
admin 442ba66848 fix(knowledge): make protected file downloads WebView-safe 2026-07-24 13:31:30 +08:00