Commit Graph
100 Commits
Author SHA1 Message Date
admin 342f84a9de feat(aihr): complete company message R1-R3 2026-07-24 23:25: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 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 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 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
admin d7664e45a7 feat(work-results): support historical project outcomes 2026-07-22 00:29:19 +08:00
admin 49189474c1 fix(mobile): 主管待复盘筛选胶囊大字档横滑防换行
大字/超大字档下筛选行有效宽度收窄,胶囊文字被挤成两行。
改为胶囊条 flex 不收缩 + 横向滚动 + 文字 nowrap,排序按钮固定右侧。
三档(standard/large/extra-large)截图验证通过。
2026-07-21 12:39:20 +08:00
admin 321d7ac49a fix(mobile): extra-large font mode layout for work-results header and login code row
Zoom-1.25 shrinks the effective layout width, so the work-results
title wrapped mid-word and the login code placeholder was clipped.
Wrap the header actions to a second line and stack the code row.
2026-07-21 11:18:07 +08:00
admin a52d02032e fix(mobile): keep quick-tools four-grid in extra-large font mode
The extra-large accessibility rule forced .tools-grid to a single
column, which read as oversized full-width cards on WeChat. Keep the
2x2 grid at every font size; chip-row still degrades to one column.
2026-07-21 09:57:11 +08:00
admin 15282db621 docs: record work assistant production release 2026-07-21 05:16:28 +08:00
admin 11250811a6 fix: show work capture context before actions 2026-07-21 05:01:43 +08:00
admin 4536d607e3 feat: add project-scoped work assistant results 2026-07-21 04:44:15 +08:00
admin 53b15e506c fix(mobile): unify empty/loading states on question board and points pages 2026-07-21 01:45:14 +08:00
admin 6d2b5ec8b9 fix(mobile): polish candidate pages — clean text buttons, StateBlock empties, standard subpage header 2026-07-21 01:30:39 +08:00
admin 2198a92bae feat(mobile): unify page states with shared StateBlock component 2026-07-21 01:02:39 +08:00
admin ee28465c30 feat(mobile): redesign supervisor exam list, results and edit pages 2026-07-20 17:20:40 +08:00
admin da4c7f3847 feat(mobile): redesign supervisor team and assign flow with member detail and result pages 2026-07-20 16:47:26 +08:00
admin eea1ca1c6f feat(mobile): redesign profile pages per two-role design spec
Employee profile moves the growth summary to a compact five-metric
strip with a right-aligned detail pill, masks the phone number, adds
red-filled entry icons, keeps the three key evidence scores always
visible, and switches history rows to icon + inline score with a
view-all link. Supervisor profile masks the account phone as well.
2026-07-20 15:42:13 +08:00
admin 2dfee9f7ee fix(mobile): stack supervisor learner-mode banner title and stop button squeeze
The inline panel-title ran into the description text and the bordered
return button was compressed into an ugly two-line wrap; give the copy
column block layout and keep the action button on one line.
2026-07-20 14:10:19 +08:00
admin 5184672b61 fix(mobile): default h5 dev proxy to local backend on 8080
Bare npm run dev (including hosted preview sessions) has no portless
route, so the previous default target https://wygj-api.localhost was
unreachable and every API call failed with HTTP 500. scripts/dev.sh now
passes VITE_PROXY_TARGET explicitly, keeping the portless flow intact.
2026-07-20 13:55:50 +08:00
admin 6f2159db73 feat(mobile): redesign supervisor review flow with completion page
Rework the pending-review list with priority badges, filters and score
ordering, rebuild the review detail around a large-score header, score
bars, dialogue bubbles and a guided review form, and add a completion
page that summarizes the review outcome and the dispatched follow-up
assignment. All three pages resolve trainee display names through the
team snapshot so organization names replace raw app account labels.
2026-07-20 13:16:37 +08:00
admin b6a7af9e51 fix(backend): return canonical extPartyId in practice review detail
The reviewDetail query referenced a.trainee_name without declaring the
table alias, which 500s whenever org-sync display fields are enabled,
and the mobile payload never exposed extPartyId, so the supervisor
review pages could not resolve organization member names.
2026-07-20 13:16:18 +08:00
admin 0e46591d5f feat(mobile): redesign supervisor home as workbench dashboard 2026-07-20 11:48:01 +08:00
admin 11ef5b9721 test: align practice assertions with current behavior 2026-07-20 11:36:55 +08:00
admin dd7058a783 test: adapt exam idempotency test to model service constructor 2026-07-20 11:33:34 +08:00
admin 175a047952 fix: prevent NPE on practice finish without measured response latency 2026-07-20 11:27:13 +08:00
admin dd62533dd1 fix(mobile): prevent select-all button label wrapping in exam editor 2026-07-20 10:28:27 +08:00
admin 7716f0040d feat(mobile): AI question generation panel in supervisor exam editor
Hints input + preset chips + count picker; generated questions land in
the existing editor blocks for the supervisor to review before publish.
2026-07-20 10:16:40 +08:00
admin 4e9ccfa8b5 feat(backend): employee name fallback labels and AI exam question generation
- practice team members / exam targets: when person_name is empty, show
  phone-masked label (员工·尾号XXXX) instead of a bare 员工
- POST /api/aihr/mobile/exams/supervisor/ai-generate: LLM-generated exam
  questions grounded on SOP knowledge fragments, strict JSON sanitize,
  scores rebalanced to 100; clear errors when model unavailable
2026-07-20 10:16:40 +08:00
admin 875a1cfd2a fix(mobile): supervisor dashboard color semantics and polish
- workbench metrics: red only when value > 0 (was always red, even zeros)
- stable alert renders as calm green strip, not a clickable pink alarm card
- quick-entry header: drop duplicated member count
- header subtitle shows today's date
- team: low-risk member cards use neutral grey left bar (was red for all)
- team: 'normal' risk count is green (was red)
- team: difficulty sort chips flex-centered
2026-07-20 09:39:28 +08:00
admin 260b7f851e chore(mobile): reuse dev-api proxy config for vite preview 2026-07-20 09:18:39 +08:00
admin 95759d7f26 feat(backend): switch mentor TTS voice to cloned shifu-warm voice
Already deployed to production jar on 2026-07-20; committing to keep
repo in sync with the live service.
2026-07-20 09:03:58 +08:00
admin 578592b21d fix(mobile): flex-center pill buttons and fix learning task card layout
- learning: task-list/snippet-list use column direction (row squeeze caused
  one-char-per-line vertical text in today-task cards)
- learning/profile: fold-toggle flex-centered
- login: code-button flex-centered
- practice: transcript-toggle / bubble-action / style-chip flex-centered
- questions: filter-chip flex-centered
- sop: modal-close flex-centered with 32px hit area
- web-ai: bubble-action flex-centered
2026-07-20 09:03:58 +08:00
admin 0a5fc9a463 feat(assistant): unify confirmed memory capture 2026-07-20 02:30:06 +08:00
admin 46a6156d8c fix(mobile): highlight new-chat button and flex-center composer labels
- AskSourceHeader: solid brand-red new-chat button, flex-centered label
- replace padding+line-height centering with flex on chips, hold-talk,
  send, bubble-action, transcript-toggle, system-text, scope-note
- carries the in-flight AskSourceHeader extraction on sop/web-ai pages
  (parallel session work; its test updates intentionally left uncommitted)
2026-07-19 23:21:24 +08:00
admin 57866afc60 feat(web-ai): support qwen image search safely 2026-07-19 22:58:25 +08:00
admin 61bc7191d1 feat(web-ai): support qwen image search safely 2026-07-19 22:58:20 +08:00
admin a20ca50b87 feat(mobile): redesign profile page with identity card and deduped entries 2026-07-19 22:39:57 +08:00
admin c17d83fc59 feat(web-ai): render markdown answers safely 2026-07-19 22:02:49 +08:00
admin 7bd2c540fa feat(web-ai): support qwen web search agent 2026-07-19 21:32:39 +08:00
admin 6853facbe0 fix(web-ai): store encryption key in database 2026-07-19 20:20:57 +08:00
admin c47bf748cb fix(mobile): replace emoji glyphs with uni-icons and flex centering app-wide
- ChatComposer panel contract: callers now pass uni-icons type names
  (image/sound/list/help/checkmark) instead of emoji
- voice playback buttons: sound icon + pulse animation, no more 🔊/◼ chars
- practice recent list: rare symbols ⌕⌁◉ (tofu risk) -> wallet/gear/chatbubble
- sop resource icon ▶/文 -> 视/文 character badges
- back arrows: 22 char-based ← -> uni-icons back across 21 pages
- line-height centering -> flex in 8 spots (back buttons, media-remove,
  turn-voice capsule, option-marker, text-button, play-question)
2026-07-19 20:16:05 +08:00
admin 925b48e436 feat(work-report): add voice-first reporting flow 2026-07-19 12:17:11 +08:00
admin 24da833fa6 feat(personal-assistant): add confirmed project memory 2026-07-19 08:19:24 +08:00
admin 151cc26caf fix(mobile): precise centering in ask page switch and composer
Replace line-height centering with flex + fixed heights, and swap
emoji/unicode glyphs (+ × ⌨ 🎤) for uni-icons vector icons so
alignment and rendering are consistent across platforms.
2026-07-19 03:27:46 +08:00
admin 767e40ca7b docs(work-report): add implementation agent prompt 2026-07-19 03:21:16 +08:00
admin 6074258ea6 docs(work-report): define voice-first reporting flow 2026-07-19 03:17:16 +08:00
admin 9210b7dde6 feat(speech): switch mentor voice to anna and slow warm speed to 0.88
diana auditioned too bright for the mentor persona; anna measures
steadier (median F0 220Hz, lowest variance) in production auditions.
2026-07-19 03:01:48 +08:00
admin 7c67a38508 docs(personal-assistant): link voice-first design reference 2026-07-19 02:54:30 +08:00
admin 5760a5b70a feat(speech): switch mentor TTS voice to female diana
Code-only commit; production deployment handled separately.
2026-07-19 02:38:35 +08:00
admin 4c2b5deb00 feat(mobile): redesign today home and switch mentor persona to female
- today: immersive community hero + hold-to-talk voice card, numbered
  schedule rows, common-functions grid (learning/report/question-board)
- login: female mentor bust; sop: female mentor chat avatars
- speech: raise browser-fallback mentor pitch to match female voice
2026-07-19 02:38:18 +08:00
admin a8460bbaed docs(personal-assistant): define confirmed memory and simpler UX 2026-07-19 02:32:26 +08:00
admin 1028c55f42 docs: record ask memory production release 2026-07-18 21:33:44 +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 9a13ba7873 docs: record production TTS profile verification 2026-07-18 18:34:57 +08:00
admin 68d5600534 feat(speech): add role-aware emotional TTS profiles 2026-07-18 18:27:14 +08:00
adminandClaude Fable 5 c0538ad8c3 feat(mobile): learning page fold round 2 — deepen APP-like compression
用户复查后继续压缩(折叠不删减):
- 岗位 SOP:要点默认只显示 2 条,与答案共用「展开全文(含N条要点)」
  开关(原要点全量常显,该面板 1122px 是首因)
- 训练前预习卡:默认只显示「要点」,红线/可说话术收进
  「展开红线与可说话术」(练前场景里预习卡与练页预习视图重复度高)
- 错题本默认 3→2 条(展开全部不变)
- 学习后动作:三个竖排大按钮改为一行三列

高度变化:5452(初始)→3890(第一轮)→3039px(本轮,累计 -44%);
剩余为 8 个功能面板骨架高度,继续压需砍面板,violates 不影响功能原则。
面板分布:错题本 701→544、岗位SOP 1122→738、预习卡 596→361、
学习后动作 234→116。

验证:本地折叠/展开断言全过 + 生产复核 height<3300、双折叠就位。
发布备份 h5-before-$TS。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-18 13:43:57 +08:00
adminandClaude Fable 5 0a7eb38e05 feat: work-report module V1 — four report types with review flow
客户 2026-07-18 语音需求落地:「报」分四种——优秀案例/操作视频/
完整SOP/有用知识,员工提交、主管或运营审核。

后端(新包 org.dromara.aihr.report):
- aihr_work_report 表(自建,utf8mb4_general_ci 显式声明,含提交人/
  审核人/状态/附件 OSS 编号,提交人与状态双索引)
- POST /api/aihr/work-report/reports 员工提交(类型/标题/说明校验)
- POST /attachment 附件上传(≤100MB,OSS 落盘,ossId 字符串安全)
- GET /reports/mine 我的上报;GET /reports 审核队列(canModerate 门禁,
  复用社区 Policy);POST /{id}/review APPROVE/REJECT
  (仅 PENDING 可审,重复审核 400)
- 审核通过后的入库动作留给运营在案例库/知识库人工完成(不自动入库,
  遵守'入知识库必须人工确认'原则)

员工端:
- 新页 pages/user/report(替换'建设中'占位):四类型卡片选择、
  标题+说明(说明支持录音转写)、附件选择上传(视频类必传校验)、
  我的上报列表(待审核/已通过/已驳回+审核意见)
- 「我」页常用功能入口文案更新

生产验证(端到端):
- API:员工提交→我的上报可见→员工查审核队列403→主管队列可见
  →审核通过→重复审核400 全通过
- UI:我页入口→上报页→选类型→填表→提交→列表显示'待审核',
  历史记录显示'已通过'+审核意见
- 后端发布(备份 ruoyi-admin.jar.bak-20260718123032,25s恢复),
  H5 已发布(备份 h5-before-20260718123032)

二期待办:主管端待审列表页(现主管可用接口审核)、通过后一键转
案例库/知识库、上报采纳积分奖励(等客户定规则)。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-18 12:38:14 +08:00
adminandClaude Fable 5 d5ea4b5451 feat(mobile): restore two old-H5 interaction loops in chat form
旧 H5 vs uniapp 逐功能盘点(客户要求'html 版本逻辑保持')后确认的
两个交互缺口,以会话形态补齐:

1. 学练闭环:总结卡底部新增「去练一遍」(旧版'开始跟读'),
   关卡后直达练页预习视图,学完话术立刻练。
2. 建议采用:老师傅提示气泡新增「用这句话回复」(旧版'建议回复'
   的真实数据版),ChatComposer 暴露 setDraft(text)——填入输入框并
   切键盘模式,员工可修改后发送;对打字困难的老年员工是关键路径。

盘点其余结论:旧版功能全部已迁移或被更优实现替代;
团队短板热力图为写死演示数据,真实版记 P2(需后端维度聚合);
演示角色切换/假数据脚手架确认不迁。

验证:本地+生产 E2E——总结卡→去练一遍→预习视图;
对练→老师傅提示→用这句话回复→输入框回填→发送进入下一轮。
发布备份 h5-before-$TS。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-18 11:29:05 +08:00
adminandClaude Fable 5 13ec3bf20c fix(case): align project scope query with 2026-07-16 org snapshot contract
客户反馈核验中发现:案例素材上传对所有 APP 用户报
「当前账号没有可用项目身份」——projectScopesForAppUser 查询快照表
已不存在的 project_ext_org_id 列(07-16 组织新契约更名为 project_code),
DataAccessException 被兜底吞掉后 scope 恒为空。全代码库仅此一处引用
旧列名(aihr_case_record 自身列不受影响,读写走同一解析器语义一致)。

修复后生产全链路跑通:主管上传语音(TTS合成测试音频)→ ASR 转写
→ organize 结构化(背景/处理/结果)→ curate 入库 → 员工 records 可见。
后端已发布(备份 ruoyi-admin.jar.bak-20260718095809,重启25s恢复)。

同轮生产验证(有奖征题闭环,零代码改动):员工发问→运营审核→
后台发悬赏征题(rewardPoints=50+deadline)→员工回答→审核→采纳最佳
→积分0→50到账(明细正确)、重复采纳不重复发奖、员工调管理接口403、
员工端问题榜/积分页 UI 呈现全部正确。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-18 10:01:53 +08:00
adminandClaude Fable 5 dd3f39ef44 feat(mobile): learning page APP-ification (fold long content, batch 2 of app-like)
学习中心页(全站最长,实测 5452px)按「折叠不删减」治理:
- 岗位 SOP 长答案默认收起为 140 字预览+「展开全文/收起全文」
  (短答案不出现开关;切换主题自动复位)
- 学习资料段落(snippet)默认只显示标题行,点标题展开/收起正文;
  超长文档标题两行截断
- 错题本默认 3 条,「展开全部 N 条」可切换(随归因筛选联动)

实测页面高度 5452 → 3834(-30%),其余为八个功能面板固有高度,
继续压缩需删减面板,违背不影响功能原则,不做。
本地+生产复核:高度、段落默认收起、点击展开均通过。
发布备份 h5-before-$TS。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-18 09:44:30 +08:00
adminandClaude Fable 5 6935476e3f feat(mobile): web-ai chat rebuild (batch 3) + profile page APP-ification
用户三项决定落地:
1. 问AI(全网)页会话化:重写为微信式会话(欢迎/免责=AI气泡,
   脱敏与敏感信息提醒保留,未启用=系统气泡+输入条禁用,
   同意告知由勾选框改为首次发送前确认弹窗(会话内记忆),
   答案气泡带播报+来源N条折叠(外链可点),按住说话松开即发+
   选音频,ChatComposer 复用;无tab栏子页,输入条自带安全区)
2. 配置维持不变(active_timeout/姓名字段/固定验证码按原状)
3. 知识大库开放:财务报备/销售话术/行政制度/培训视频/图片素材
   (1004/1005/1007/1008/1009/1010)绑定移动端应用并授
   employee/supervisor READ;1006「验收测试」为测试库,
   为免污染员工检索结果暂不开放(报告中说明)。
   生产验证:员工问「财务报备流程」「销售话术要点」均返回真实答案。

新需求「H5 像 APP」首批:「我」页 APP 化——折叠不删减:
- 成长摘要保留核心数字,五维评分+成长路径收进「展开能力详情」
- 成长证据包默认收起(标题行+展开按钮)
- 最近练过默认3条,「展开全部N条」可切换
页面高度 3072→1976px,信息全部一次点击可达。

验证:本地5项断言+生产3项复核全过(webai气泡/禁用态/composer、
profile折叠/高度、大库检索)。发布备份 h5-before-20260718092234。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-18 09:23:51 +08:00
adminandClaude Fable 5 a90f241def fix(mobile): overnight audit round — IA cleanup, internal codes, exam guard
夜间自迭代体检(生产四tab+7子页,截图+console+接口+文案标志采集)
发现三类问题,本轮修复:

1. 信息架构(采纳用户建议):今日页「我的地图」四宫格三项与底部tab
   重复(问/练),仅学习中心/工作上报有增量 → 整块从今日页移除,
   「学习中心/我的训练概况/工作上报」下沉到「我」页新「常用功能」组
   (图标+标题+说明行,与我的积分同列);今日页保留小贴士条,
   页面高度显著缩短、不再与tab栏功能重复。

2. 内部编码泄漏:派发 reason 里的调度批次码(AUTO22-20260717
   PILOT-04)在今日「今日安排」、练页「最近练过」、学习中心
   「昨日错题重练」三处原样示人 → 新增 services/text.ts
   stripInternalCodes(剥前缀码保留人话,整行为码则回退默认文案),
   三处渲染点统一接入。

3. 功能不通:直接访问 /pages/user/exam/index(无id)会请求
   /api/aihr/mobile/exams/0 → 服务端500 → load() 增加 id 守卫,
   显示「请从学习中心·考试任务进入」且不再发请求。

同时:今日「打字问」描述改为不换行文案(原两行文案窄列截断)。

验证:本地7项断言全过;生产复核 map removed/code clean/
profile entries/exam guard/exams|0 not fired 全 true。
发布备份 h5-before-20260718055449。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-18 05:56:15 +08:00