admin and Claude Opus 5
788a2abbe4
fix(mobile): avoid status bar overlap on custom-nav pages
...
全局 navigationStyle 为 custom,页面需自行避让状态栏,但四处顶部内容仍被状态栏
压住:练习页标题与对话页标题、我的页顶部卡片、问答页头部。
避让不能走 CSS:env(safe-area-inset-top) 在 Android WebView 恒为 0(该值本是
iOS 刘海概念,Chromium 仅在配置 display-cutout 时才上报),uni-app 注入的
--status-bar-height 实测在 App 端同样取不到,两者都会静默回落成 0,造成"构建产物
里改动存在但运行时无效"。改由 utils/safe-area.ts 读
uni.getSystemInfoSync().statusBarHeight,各页面以内联样式绑定 padding-top。
profile 页同时把 min-height 从 100vh 改为 100%:叠加状态栏内边距后 100vh 会
溢出一屏高度产生多余滚动。
真机(vivo V2443A,720x1600,状态栏 72px)像素验证:修复前状态栏下缘 60-80px 带内
有 872 个文字像素,修复后四处均为 0。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-07-26 00:58:18 +08:00
admin and Claude Opus 5
29bb10e1fa
docs(changelog): record the App-Plus batch and the build:app false green
...
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-07-26 00:03:06 +08:00
admin and Claude Opus 5
4fc0c1f5f8
chore(mobile): bump App version to 0.1.5 (versionCode 105)
...
Covers the App-Plus batch in this series: renderjs realtime practice, request
timeout abort, App-Plus date/query API replacements, and on-demand native
voice. Native permissions and plugins are unchanged, so this ships as a normal
cloud rebuild.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-07-25 23:59:05 +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
7b014765d6
fix(agent): answer follow-up questions instead of asking to clarify
...
The planner falls back to CLARIFY whenever no keyword matches and the model
plan is unavailable or malformed. Mid-conversation that produced a dead end:
a follow-up such as "如果我要报销,一般需要查哪几个文件?" was answered with a
clarification request even though the previous turn had established context.
When a non-media request carries a conversationId and a contextVersion above
zero (i.e. at least one turn has completed), route CLARIFY to KNOWLEDGE_QA
with a grounded knowledge search.
Tradeoff: this also suppresses the deliberate CLARIFY for explicitly vague
phrasing ("你看着办", "帮我处理一下") from the second turn onward, which will
now run a knowledge search instead of asking back. Blank input is still
rejected earlier by requireQuestion.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-07-25 23:58:30 +08:00
admin and Claude Opus 5
73712994c6
fix(mobile): stop preloading answer TTS on native App
...
On native App the eager TTS request delayed the answer bubble: the message was
created in `preparing` state, so the text stayed behind a voice line that was
still waiting on a round trip.
Skip the preload when `isNativeAppRuntime()`, marking the voice `unavailable`
so the text and citations render immediately. The existing `unavailable`
branch already exposes a play button that calls `toggleAnswerSpeech`, so voice
stays reachable on demand instead of being dropped. H5 keeps preloading.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-07-25 23:58:19 +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 and Claude Opus 5
3055d2bec9
fix(mobile): replace App-Plus unsupported date and query APIs
...
`URLSearchParams` is absent from the App-Plus JS core, and
`toLocaleDateString('sv-SE', { timeZone: 'Asia/Shanghai' })` depends on full
ICU data that the App runtime does not ship, so the work-result pages built
either a broken query string or the device-local date.
Build query strings with `encodeURIComponent`, and centralise the business day
in `currentShanghaiDate()`, which shifts the epoch by a fixed UTC+8 offset
before slicing the ISO date. Asia/Shanghai has no DST, so the fixed offset is
exact rather than an approximation.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-07-25 23:57:06 +08:00
admin and Claude Opus 5
27f4cdac70
fix(mobile): abort uni.request when the platform timeout does not fire
...
Some uni-app platforms ignore the `timeout` option, leaving the returned
promise pending forever and hanging the calling page with no error path.
Drive the deadline locally: keep a single-shot `finish` guard so success,
failure and timeout can only settle once, and on timeout call `task.abort()`
before rejecting so the in-flight request is released instead of leaking.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-07-25 23:56:56 +08:00
admin and Claude 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
ab3af277c1
fix(speech): convert base64 TTS data URI before playback per platform
...
后端 TTS 以 data: URI 返回 base64 mp3(生产实证为合法 LAME mp3),但
App-Plus 的 InnerAudioContext 不支持 data: URI,iOS Safari/微信 webview
也常静默失败,统一报"语音播放失败"。播放前按平台转换:H5 转 Blob URL,
App 端经 plus.io 落 _doc/ 临时文件后播放 file:// 路径,播完清理;Blob 不可
用时退回原始 data: URI。竞态守卫与缓存语义保持不变,158 单测全绿。
2026-07-25 20:37:30 +08:00
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
admin
e45425f4d3
fix(aihr): namespace external organization directory ids
2026-07-24 09:24:45 +08:00
admin
83c497c5f1
fix(aihr): namespace external organization directory ids
2026-07-24 09:19:16 +08:00
admin
474d46e728
feat(speech): add qwen tts voice preferences
2026-07-24 01:54:37 +08:00
admin
faa2a77e9a
feat(practice): complete five-position training operations
2026-07-24 00:26:27 +08:00
admin
4902830e6d
feat: add qwen tts voice preferences
2026-07-23 22:37:12 +08:00
admin
39ff6f6ceb
test: add qwen tts adapter and voice preference reproducers
2026-07-23 22:21:52 +08:00
admin
067cc30d80
feat(aihr): complete M3 protected practice replay
2026-07-23 22:21:43 +08:00
admin
83f775faec
fix(mobile): stack extra-large schedule actions
2026-07-23 22:18:44 +08:00
admin
bf82ff9691
chore: prepare local speech context for isolated tts work
2026-07-23 22:12:42 +08:00
admin
dfaa198ac8
chore(mobile-app): align native build metadata
2026-07-23 21:18:51 +08:00
admin
927458b9e0
feat(aihr): harden M0-M2 mobile training flows
2026-07-23 21:18:13 +08:00
admin
06322c994b
feat(aihr): add tenant organization governance
2026-07-23 15:58:38 +08:00
admin
6a90fd977c
docs(mobile-app): sync native packaging guidance
2026-07-23 15:05:15 +08:00
admin
0f5c2e8667
feat(mobile-app): prepare native app packaging
2026-07-23 14:40:23 +08:00
admin
f6609808df
feat(aihr): add M1 broadcast targeting and mandatory reads
2026-07-23 12:11:41 +08:00
admin
cd94f4fe9f
test: add M1 broadcast acceptance reproducers
2026-07-23 11:27:53 +08:00
admin
f023417aed
chore(release): verify personal assistant schema
2026-07-23 09:43:22 +08:00
admin
4b31848e3d
fix(aihr): harden broadcast and mobile assistant flows
2026-07-23 03:35:36 +08:00
admin
62c8b41672
feat(mobile-uni): 重构“我”(个人中心)为原生App沉浸式卡片看板,禁用Emoji全面采用uni-icons矢量图标
2026-07-23 02:20:10 +08:00
admin
b4ae0e6da0
feat(mobile-uni): 彻底完成登录页、首页、学习中心与问答页UI/UX极简重构及单条消息追问功能
2026-07-23 02:16:57 +08:00
admin
63dea94fc1
fix(mobile-uni): 优化 AskSourceHeader 390px 视口间距,保证顶栏三个区域舒展平铺
2026-07-23 02:16:08 +08:00
admin
5a31896394
fix(mobile-uni): 清理原生 Emoji 符号,全面替换为 uni-icons 标准矢量图标规避跨终端兼容风险
2026-07-23 02:12:47 +08:00
admin
eb973418d5
fix(mobile-uni): 极简压缩“问”模块顶部Header与项目栏,大幅释放对话框垂直空间
2026-07-23 02:09:30 +08:00
admin
9ccfe1afae
refactor(mobile-uni): 彻底移除底部悬浮胶囊Bar,恢复原生App纯净卡片流与流内快捷动作
2026-07-23 02:01:03 +08:00
admin
a8a1845fdd
fix(mobile-uni): 在 Tab 视图末尾注入 90px 实体占位 Element 彻底规避底部 Dock 遮挡
2026-07-23 01:56:22 +08:00
admin
8bce7aff0f
fix(mobile-uni): 修复 panel-head 右对齐、隐藏 scroll-view 滚动条并消除底部悬浮 Dock 遮挡
2026-07-23 01:53:48 +08:00
admin
4381dd8f7e
fix(mobile-uni): 彻底优化学习中心UI细节,替换长框刷新按钮为精致图标,重构空状态与筛选Chips
2026-07-23 01:50:55 +08:00
admin
dd187cf15c
feat(mobile-uni): 全面重构“学”(学习中心)页面为原生App分段视图架构,新增Segmented Tabs与悬浮Dock
2026-07-23 01:47:26 +08:00
admin
390bbda993
style(mobile-uni): 重构今日安排任务列表排版,新增Top-Meta栏与主题色卡片亮边
2026-07-23 01:35:06 +08:00
admin
163b08ecfe
feat(aihr): 重构运营后台与租户知识治理
...
- 重构运营总览、侧栏和内容运营工作台\n- 增加大喇叭、成果审核与运营统计链路\n- 补齐租户、知识空间、分类和知识维护闭环\n- 加固标签页租户上下文、停用租户写保护与迁移预检
2026-07-23 01:24:22 +08:00
admin
333c365c6f
style(mobile-uni): 优化员工端首页与登录页UI交互,更名为银城帮道
2026-07-23 00:42:51 +08:00
admin
4ab0fccc73
fix(knowledge): parse PDFs through safe Tika adapter
2026-07-22 21:44:40 +08:00
admin
455267cf6f
feat: add realtime practice voice selector
2026-07-22 12:24:46 +08:00
admin
87772cc64c
feat: add qwen realtime practice beta
2026-07-22 09:29:39 +08:00
admin
b7dd1bca27
Merge branch 'codex/web-ai-image-search' into codex/multi-tenant-knowledge-platform
...
# Conflicts:
# mobile-uni/src/pages/user/web-ai/index.vue
2026-07-22 08:54:45 +08:00
admin
2488febf19
Merge branch 'codex/personal-assistant-phase2' into codex/multi-tenant-knowledge-platform
...
# Conflicts:
# backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/domain/AihrSopDto.java
# backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrModelSeedService.java
# backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrSopSeedService.java
# backend/ruoyi-modules/ruoyi-aihr/src/test/java/org/dromara/aihr/service/AihrModelSeedServiceTest.java
# backend/ruoyi-modules/ruoyi-aihr/src/test/java/org/dromara/aihr/service/AihrSopSeedServiceTest.java
# docs/API_INTEGRATION.md
# docs/个人AI助理阶段二专项TechSpec.md
# docs/个人AI助理阶段二开发推进计划.md
# frontend/src/views/knowledge/processing.vue
# mobile-uni/src/pages/user/sop/index.vue
# mobile-uni/src/services/api.ts
# mobile-uni/src/services/personal-assistant.ts
# mobile-uni/tests/personal-assistant.test.mjs
# scripts/demo-check.sh
# scripts/personal-assistant-smoke.sh
2026-07-22 08:54:04 +08:00
admin
c38a723ae4
Merge branch 'codex/brd-release-20260715' into codex/multi-tenant-knowledge-platform
...
# Conflicts:
# AGENTS.md
# README.md
# backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/domain/AihrPracticeDto.java
# backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrOrgSyncService.java
# backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrPracticeSeedService.java
# backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrUploadQueueService.java
# backend/ruoyi-modules/ruoyi-aihr/src/test/java/org/dromara/aihr/service/AihrOrgSyncServiceTest.java
# backend/ruoyi-modules/ruoyi-aihr/src/test/java/org/dromara/aihr/service/AihrPracticeSeedServiceTest.java
# backend/ruoyi-modules/ruoyi-aihr/src/test/java/org/dromara/aihr/service/AihrUploadQueueServiceTest.java
# docs/20260708/uni-app用户侧前端重建计划.md
# docs/API_INTEGRATION.md
# docs/BRD_IMPLEMENTATION_AUDIT.md
# docs/BRD_PRODUCTION_MIGRATION_RUNBOOK.md
# docs/DEMO_ACCEPTANCE.md
# docs/DEV_SETUP.md
# docs/FIGMA_IMPLEMENTATION_MATRIX.md
# docs/README.md
# frontend/src/views/knowledge/processing.vue
# mobile-uni/src/pages/supervisor/assign/index.vue
# mobile-uni/src/pages/supervisor/index/index.vue
# mobile-uni/src/pages/supervisor/profile/index.vue
# mobile-uni/src/pages/supervisor/review/index.vue
# mobile-uni/src/pages/supervisor/reviews/index.vue
# mobile-uni/src/pages/supervisor/team/index.vue
# mobile-uni/src/pages/user/cases/index.vue
# mobile-uni/src/pages/user/practice/index.vue
# mobile-uni/src/pages/user/profile/index.vue
# mobile-uni/src/pages/user/sop/index.vue
# mobile-uni/src/pages/user/today/index.vue
# mobile-uni/src/types/api.ts
# scripts/tests/aihr-schema-migrations.test.sh
2026-07-22 08:41:49 +08:00
admin
1ffb1c7bd0
Merge branch 'codex/production-collation-release-fix' into codex/multi-tenant-knowledge-platform
...
# Conflicts:
# AGENTS.md
# README.md
# backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrUploadQueueService.java
# backend/ruoyi-modules/ruoyi-aihr/src/test/java/org/dromara/aihr/service/AihrUploadQueueServiceTest.java
# docs/API_INTEGRATION.md
# docs/BRD_PRODUCTION_MIGRATION_RUNBOOK.md
# docs/DEV_SETUP.md
# docs/H5_REDESIGN.md
# docs/README.md
# docs/RUOYI_AI_INCREMENTAL_MIGRATION.md
# docs/物业AI人力资源系统开发规格TechSpec.md
# scripts/release-preflight.sh
# scripts/tests/aihr-schema-migrations.test.sh
2026-07-22 08:38:40 +08:00
admin
3b636b221a
docs(release): record work results rollout
2026-07-22 00:43:33 +08:00