Commit Graph
17 Commits
Author SHA1 Message Date
admin 4d2b3828c0 feat(brand): rename product to 帮道 2026-07-25 01:09:49 +08:00
admin e4070c8b8c refactor(mobile): extract types, static data, utils, styles from App.vue
Pure moves only — zero behavior change, template untouched:
- types.ts (447), utils.ts (51), data/{auth,navigation,practice,mentor,
  home,supervisor,icons}.ts, styles/app.css (4690, still global non-scoped
  via <style src>)
- App.vue 9006 → 3559 lines; 98 moved declarations verbatim except
  export/import syntax
- Built CSS hash identical to pre-refactor (byte-equal styles); reactive
  state, computed, watchers, lifecycle and templates all stay in App.vue
- Component-level split deferred to phase two after 2026-07-10 Alpha
2026-07-08 21:07:45 +08:00
admin 15cd789da6 feat(aihr): add SOP answer thumbs up/down feedback loop
- New aihr_knowledge_answer_feedback table; unique (tenant, query_norm,
  fragment_id) pair keeps submissions idempotent
- POST /api/knowledge/answer-feedback (fragmentIds array), GET pending-review
  list, POST /{id}/review — all under existing auth scope
- Down-voted (question, fragment) pairs are filtered from dbSearch fusion
  results; if filtering empties the hit list the original results are kept
  with an explanatory caution (never degrade to no-answer)
- Feedback table missing/unreachable → filter silently skipped, search
  behavior unchanged (degradation chain preserved)
- SnippetResponse gains optional trailing fragmentId (db hits only; seed
  fallback stays null); mobile sopPanel adds 👍/👎 with locked state after
  submit, up votes auto-marked reviewed to keep the review queue clean
2026-07-08 15:09:27 +08:00
admin 7fd61b6ca3 feat(aihr): add coach-hint style regeneration buttons to practice turn
- /turn accepts optional regenerate+style (serious/gentle/detailed/professional);
  regenerate short-circuits before rememberTraineeReply — no round advance,
  no trainee reply write, no scoring impact; only same-round coachHint evidence
  is overwritten
- Style instruction injected into existing LLM turn prompt; LLM missing/failed
  returns original hint with explicit message (no fake data)
- Mobile practice page renders 再严肃/再温柔/更细致/更专业 pills under coach
  hints; success replaces text with a style note, failure toasts and keeps
  original; old clients unaffected (fields appended)
2026-07-08 14:52:02 +08:00
admin e8d90609c1 fix(mobile): harden stored auth credentials and login response validation
- Treat 'undefined'/'null' localStorage values as absent; clear incomplete
  token/clientId pairs and prompt re-login instead of sending broken headers
- Gate authenticated UI on both token and clientId via isAuthenticated
- Reject login responses missing access_token or client_id
2026-07-08 12:22:33 +08:00
admin 4b10b08eeb feat(aihr): close phase two practice pilot gates 2026-07-08 00:51:32 +08:00
admin 08266860f2 fix(mobile): sync role state on route changes 2026-07-07 00:30:35 +08:00
admin 71562ea62b feat(mobile): align h5 scenario training design 2026-07-06 11:14:51 +08:00
admin 617847f7e0 feat(aihr): on-demand summary card with infographic bottom sheet
P0-2 按甲方钦定交互落地(反馈#2:显式按钮+小窗+预期等待):新端点
POST /api/knowledge/summary-card 复用检索命中片段调 chat 模型
(temperature=0,30s超时)生成结构化卡{title,steps,objections,scripts,
reminders},无命中/无模型/失败均明确报错可重试,不兜假数据;检索
底层拆出 dbHits() 避免总结卡重复触发轻概要 LLM。移动端:概要卡下
「✨生成总结卡·约10秒生成」按钮→底部弹层(拖条+X+深遮罩),四区块
信息图排版(蓝序号四步法/橙块异议/绿引用话术/✓提醒)对照设计基准,
430px 两列 375px 单列;听一遍(独立 TTS 状态)+开始跟读(问练焊接);
SOP 面板配色统一蓝色系。「保存图片」需 html2canvas 依赖本轮不做。
实测:端点4s返回结构化卡;浏览器弹层与 summary-modal 设计图逐区块
一致。
2026-07-05 03:21:37 +08:00
admin 9af439dc2a feat(mobile): P1 digital mentor layer per design baseline
按 design/ 视觉基准实现员工端 P1:师傅区(mentor.png 头像+师傅口吻
气泡+早上好标记保留为小字)、四状态状态机(idle呼吸眨眼/listening
波纹/thinking点动/speaking音波,状态源复用 sop* refs)、滚动收缩右下
悬浮头像;按住说话(松开转写自动搜索,无麦克风降级选择语音)+打字问;
快捷chips四条(点击直达SOP搜索);今日安排(序号+行动按钮,真数据
优先)、我的地图四色块;「建设中」从 toast 升级整页;员工端 tab 钉死
今日/练/问/我(修复后端home旧文案覆盖)。头像资产自效果总板裁切。
浏览器实测:首页/悬浮头像/chip搜索/建设中四链路与设计图一致。
2026-07-05 02:37:17 +08:00
admin 4c5c343aca feat(aihr): structured digest answer with layered mobile presentation
用户反馈「检索返回一堆文字不便总结」修复。后端:检索命中后新增
RAG 生成环节 searchDigest——chat 模型 temperature=0 把 top5 片段压
成结构化概要(直接回答≤60字+3-6条可执行要点+0-3条注意红线),硬约束
不得编造、片段答不了则明示无依据;模型未配置/超时/解析失败回退
片段原文拼接,15s 超时不拖垮检索。SearchResponse 增 keyPoints/
cautions 字段。移动端:sopPanel 结果改三层——概要卡(回答大字+要点
列表+警示色块)默认唯一展开;「查看依据」折叠原文片段,单条3行截断
点击展开;「听一遍」按钮把概要送 TTS 播报(独立播放状态,关面板即停,
未配 tts 提示降级)。候选人端知识 tab 同套概要卡+依据折叠,消除
原文倾泻。实测:「客服接待基础流程」4s 返回概要+5要点+3红线。
2026-07-04 23:27:08 +08:00
admin 03247bcad9 fix(mobile): bottom tabbar switches whole views instead of inline panels
用户反馈「底部菜单不像正常菜单切换,点击后只在当前页面」修复:
tab 视图互斥渲染(isHomeTab + activeUserPanel/activeSupervisorPanel
条件重组),三端首页/训练/知识/我的整页切换,不再页中叠加;切 tab
滚动回顶;训练 tab 不自动开局、进行中会话切走可切回;SOP 全屏层
返回进入前 tab;首页「我的成长」收敛为摘要卡(综合能力/今日完成/
待复盘+查看全部),完整画像与历史仅在「我的」tab,消除同屏重复。
2026-07-04 14:50:28 +08:00
admin 3dfb98ff1b feat(mobile): restructure worker home into scenario-based task flow
员工端首页从功能陈列改为情境任务流,回应甲方「学的时候怎么用、
工作的时候怎么用、碰到问题怎么用」反馈:五区依次为「今天要学」
(训练卡进度接真数据:practiceHistory 按今日 MM-dd 统计,完成后 CTA
变再练一次,接口失败保持静态兜底)、「练完要复盘」(最近一条评分+
导师改写摘要,点击进复盘详情,含空态引导)、「工作中要用」(查SOP
升级为通栏大按钮卡)、「碰到问题要报」(素材上报)、「我的成长」
(进度+能力画像移至底部)。员工端 ToolGrid 移除,候选人/主管端零
改动,demo-check 14 条标记保留。
2026-07-04 14:33:42 +08:00
admin 0f5aa340a7 feat(mobile): kill dead buttons and add real SOP search panel
用户反馈「按钮点不动、没互动」修复:所有未实现入口点击弹「本期演示
未开放,正在建设中」toast(2s 自动消失),不再无反应;新增全屏「查
SOP」面板——文本/语音提问(独立录音状态+无麦克风文件兜底)、调
/api/knowledge/search(category=sop 全库检索),展示回答+依据+引用
片段,15s 超时、失败不兜假数据;员工端「查SOP」工具格、岗前SOP复习
卡、主管端「查SOP」快捷格三处入口接入。每日一练保持直通开始训练。
2026-07-04 14:23:08 +08:00
admin 77aa992872 feat(aihr): switch interview and case flows to real-model-first pipeline
AI 面试 /start 动态出题、/finish 按真实回答结构化评分(未配模型用本地
Rubric 估分);案例沉淀 /upload 改 multipart 真实语音+ASR 转写,
/organize 用真实 transcript 调 chat 模型整理;seed service 重构为
AihrInterviewService/AihrCaseService;前端面试/案例/对练页与移动端、
demo-check、验收文档同步真实链路口径。
2026-07-03 23:45:20 +08:00
admin e0490b28cb feat(aihr): add asr/tts speech gateway and mobile voice practice
新增 /api/ai/asr(multipart转写)与 /api/ai/tts(mp3 base64 dataURL),走
OpenAI 兼容 audio 接口(硅基流动 SenseVoice/CosyVoice2,复用模型管理
配置,新增 asr/tts 类目);移动端对练页接语音输入(MediaRecorder)与
客户台词自动播报,未配置/失败降级文本。ASR 限 5MB、TTS 限 300 字,
multipart 头部字段去 CRLF 防注入。
2026-07-03 20:55:38 +08:00
admin f869d66c90 feat: complete aihr mvp mobile workflow 2026-07-03 16:43:37 +08:00