admin
a83fb53ecd
feat(aihr): scope supervisor practice data
2026-07-09 11:37:33 +08:00
admin
53698e7832
feat(aihr): clarify org snapshot field usage
2026-07-09 11:03:47 +08:00
admin
2f5fb853a2
fix(aihr): require assignee for practice assignments
2026-07-09 11:02:11 +08:00
admin
82f861542f
fix(aihr): paginate org snapshot view
2026-07-09 10:50:19 +08:00
admin
678543e8a5
feat(aihr): complete uni-app role workflows
2026-07-09 10:42:20 +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
8d78bc69d1
feat(aihr): bind SOP direct-answer digest to sop_answer prompt template
...
- Seed aihr_prompt_template with code=sop_answer (conclusion-first + numbered
steps + citations appended), matching the built-in prompt
- Digest prefers the enabled sop_answer template, falls back to the built-in
constant, and logs prompt_version; answer/keyPoints/cautions contract unchanged
2026-07-08 14:52:02 +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
f40d2fcc6e
docs: archive MVP design-qa record and refresh doc indexes
...
- Move root design-qa.md → docs/archive/2026-07-mvp-delivery/ (MVP-phase
screenshot QA, concluded passed; register in archive README)
- Rename 20260708 UUID screenshot to descriptive name
- Index the 2026-07-08 integration plan in README, docs/README, AGENTS.md
2026-07-08 12:23:03 +08:00
admin
13c7bdc082
docs: adopt 2026-07-08 product decisions — 学练问报 integration plan
...
- Add docs/20260708/: integration plan v1.2 (product definition vs launch
demo split into four parts), meeting notes, customer 'third edition' docx,
WeChat follow-up screenshot
- Decisions: directed mentorship rejected → open question board; 学 module
upgraded to courses/no-fast-forward video/min reading time/irregular exams;
direct-answer SOP format; credit-gated offline promotion exam
- Customer replies on three open items: multi-app jump deferred (D6 stays),
leaderboard kept as opt-in switch (default off), manager evaluation gated
by org-structure permissions
- Master plan → v0.3 (§4.4 open question board + permission-gated evaluation,
§4.5 learning module, §8 resolved items); practice plan → v0.8 (sop_answer
template, style-regen buttons, answer thumbs up/down, credit rules in M4)
2026-07-08 12:22:47 +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
eeffbaf752
feat(aihr): return explicit no-evidence SOP answers and log knowledge gaps
...
- Empty/unanswerable SOP queries now return the fixed 「未在已入库 SOP 中找到明确依据」
response instead of falling back to seed answers (no fake answers)
- Record knowledge_gap (question/category/position/source) whenever search
yields no evidence — feeds the phase-two open question board
- Extract NO_CLEAR_SOP_EVIDENCE constant shared by digest prompt and checks
2026-07-08 12:22:33 +08:00
admin
2bdf527e26
feat(aihr): add prompt template management UI
2026-07-08 08:42:06 +08:00
admin
4b10b08eeb
feat(aihr): close phase two practice pilot gates
2026-07-08 00:51:32 +08:00
admin
1d14497bc3
docs: sync entry docs to phased plan structure
...
AGENTS.md/README.md 项目定位并入立项会重定位(银城员工端 APP、
三阶段边界、管家=生活顾问);docs/README.md 索引补总纲、立项会
纪要与组织同步接口设计;组织快照口径更新为可外部同步。
2026-07-07 11:06:21 +08:00
admin
9ecf4fdfc3
docs: adopt 2026-07-07 kickoff — phased master plan + practice plan v0.7
...
新增《银城员工端APP分阶段实施总纲》v0.2:三阶段(陪练→大喇叭+
知识学习平台→北森对接)、身份三轴模型与防遗漏分发策略;归档立项
会纪要。二期计划 v0.2→v0.7:客户反馈(传帮带/成长路径/提示词模板/
总结卡快速修复)与立项会增量(时间锚点/收费场景权重/每日三题/
knowledge_gap 钩子);确认管家=生活顾问、APP 形态=H5 套壳。BRD
同步传帮带与评级证据包口径。
2026-07-07 11:06:05 +08:00
admin
f5137a2b05
feat(aihr): add open org snapshot sync endpoint
...
新增 POST /api/aihr/org/sync,从开放组织系统 /open/v1/sync/snapshot
拉取公司/部门/员工快照刷新 aihr_org_snapshot;支持 dryRun 预检、
Bearer/client-credentials 鉴权与可选 HMAC 签名;外部未配置时保留
SQL seed。附接口契约设计 v1 与 API/DEV_SETUP 配置说明。
2026-07-07 11:05:41 +08:00
admin and GitHub
f84f5c6530
Merge pull request #2 from let5sne/codex/docs-phase2-routing-sync-20260707
...
Sync phase 2 planning document routing
2026-07-07 00:43:03 +08:00
admin
b2b31f292b
docs: sync phase 2 planning references
2026-07-07 00:41:18 +08:00
admin and GitHub
956cc0f908
Merge pull request #1 from let5sne/codex/h5-scenario-redesign-20260706
...
Align H5 scenario training design
2026-07-07 00:34:44 +08:00
admin
08266860f2
fix(mobile): sync role state on route changes
2026-07-07 00:30:35 +08:00
admin
a6112b6559
docs: add phase-2 practice development plan v0.2
...
综合缺口分析修订版与 BRD v1.1 制定二期推进计划,并补齐逐项复核
发现的 6 处缺漏:#6/#9/#16/师徒演练处置、#13 定向再练落点(M4)、
画像雷达图承载、TechSpec P1 表映射、场景管理权限口径、G6 成本上限。
2026-07-06 22:13:24 +08:00
admin
8361c5431e
docs: add verified revision of practice-gap analysis
...
原 docx 入库归档,新增修订版:更正 4 处现状错误(TTS多语气/场景管理/
画像时长系夸大或不存在,教练提示与ASR可编辑系漏计),划掉 1 条已实现
缺口(ASR实时纠错),降级 2 条半实现(预习卡/教练干预/情绪动态),标注
2 处与 TechSpec §6 评分决策的冲突及修订口径(逐句标注放 finish 后、
离线包不含对练);24 项缺口逐条挂 BACKLOG/规格锚点并给出四档排期
建议;文档独有亮点(录音回放/主管旁听/评分校准/离线包)单独标出。
2026-07-06 21:14:24 +08:00
admin
71562ea62b
feat(mobile): align h5 scenario training design
2026-07-06 11:14:51 +08:00
admin
b550f54eb8
docs: sync mentor layer, summary card and design baseline across docs
...
演示口径/验证步骤/README/AGENTS 全部对齐 P1 师傅层与 P0-2 总结卡
现状(师傅区四状态/今日安排/我的地图/tab今日练问我/建设中整页/
总结卡弹层);API_INTEGRATION 补检索轻概要行为与 summary-card 端点
契约;AGENTS 移动端规则更新(状态源勿新造/visibleTabs 钉死/REVIEW
修正项优先);BACKLOG 记「保存图片」与「学」板块零散待办;删除
docs/prototypes 下与 design/ 重复的 5 张设计图副本。
2026-07-05 23:00:10 +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
6d92033d5d
docs: adopt gpt-image-2 design boards as P1 visual baseline
...
5 张设计图入库并出评审结论 REVIEW.md:采纳为视觉基准;修正项——
师傅形象全线统一为效果总板老师傅(插画风,首页图女性写实形象不采
用,发出者逻辑破裂)、首页形象占屏压回≤1/5+滚动收缩、对手戏每轮
评分只做教练轻提示(评分仍只在 finish)、知识类型四 tab 依赖 B8
未落前不做假 tab。H5_REDESIGN 头部加视觉基准指针。
2026-07-05 01:29:34 +08:00
admin
2ecbb43fa2
docs: H5 redesign v1.1 - digital mentor avatar layer
...
按甲方构想新增 §2.0 数字师傅形象层:2D 插画形象+四状态状态机
(待机/聆听/思考/说话,状态源即现有 sopRecording/sopLoading/
sopSpeaking),语音/文字/按钮三交互(快捷 chips 按岗位配置);形象是
系统行为的「发出者」,监工感变带教感(化解 G4);守 BRD 红线不做
数字人视频。员工端首页布局修订(形象+气泡统摄双面板,悬浮球升维
合体),路线 P1/P2 更新,人设卡邀甲方定稿。
2026-07-05 00:37:20 +08:00
admin
3d5365e460
docs: add H5 redesign blueprint (digital mentor v1.0)
...
沉淀 H5 前端重构设计蓝本:「随身师傅」定位(用户原话背书)、六条
设计铁律、三端三形态 IA(员工端双引擎首页+问师傅答案卡、候选人端
线性漏斗、主管端监工驾驶舱)、知识类型分层、问学练评分发闭环(规则
版 v1)、岗位身份前置依赖、蓝领工具感视觉方向、工程还债与 P0-P3
路线度量;生活顾问为英雄岗位做深,四保一服后置做广。
2026-07-05 00:18:47 +08:00
admin
df074f143e
docs: add feedback item 13 - living consultant as hero position
...
截图10入库:生活顾问岗(日常小区服务/物业费停车费催缴/投诉)要全面
AI 陪练,「感觉像老带新的感觉」为数字师傅定位提供用户原话背书。
ANALYSIS 补第13条与北极星背书;BACKLOG B2/B8 岗位策略更新为
「生活顾问优先做深,四保一服其次做广」——现有投诉/催费 seed 场景
本就属该岗位,项目最初名称即含生活顾问。
2026-07-05 00:10:50 +08:00
admin
7c7a5b05d0
docs: capture 2026-07-04 user feedback analysis and backlog updates
...
新增 feedback/2026070423/ANALYSIS.md:9 张反馈截图逐条解码(信息图
HTML 卡片/按钮触发小窗总结/页面必须切换/可点视觉分化/角色职责地图/
员工五段旅程/主管学习监工/四保一服场景/连贯语音对手戏/动作类知识
视频化/AI 分发决策),拔高为「数字师傅」定位与三个产品跃迁(媒介
匹配/经验资产库/语音对手戏),附行动清单。BACKLOG:B2 增补连贯语音
对手戏与四保一服场景维度,B4 优先级上调(表演型知识主媒介),新增
B8 数字师傅(学习旅程模块化+主管监控面板+个性化分发引擎+知识类型
维度)。
2026-07-04 23:57:54 +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
e26e3c75cc
docs: sync mobile voice release notes
2026-07-04 18:38:12 +08:00
admin
775873e31b
chore: demo fixed-code opt-in flag, sop tweaks and doc sync
...
短信固定验证码增加 aihr.sms.demo-fixed-code-enabled 显式开关(prod
默认仍禁用,演示环境可显式放行);SOP 服务小调整;mobile base 支持
VITE_BASE;作战清单/TechSpec/API_INTEGRATION/docs README 同步。
2026-07-04 16:05:50 +08:00
admin
d622c7fb7e
feat(aihr): admin dashboard with real aggregates
...
新增 /api/aihr/dashboard 聚合面试/对练/知识库/组织快照真实数据,
管理端首页从静态卡片改为 API 优先 + fallback。
2026-07-04 16:05:50 +08:00
admin
0539adf612
feat(aihr): persist interview results and candidate material review
...
面试记录落 aihr_interview_result(GET /records 查询),候选人补充资料
走 OSS + aihr_candidate_material,管理端 AI 面试页可审核通过/驳回;
案例整理服务增强;两张新表纳入 reset 脚本。
2026-07-04 16:05:50 +08:00
admin
c47a9bb075
docs: sync mobile scenario home, tab navigation and sop panel
...
员工端五情境区、底部 tab 整页互斥切换、死按钮 toast、查SOP面板同步
进 DEMO_ACCEPTANCE 演示口径、DEV_SETUP 验证步骤、README 概览;
AGENTS 补规则:不要把面板改回首页叠加渲染、未实现入口必须走 toast。
2026-07-04 14:56:32 +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
660842b555
docs: sync stale statements after async-queue/video/vision/rerank work
...
图片 OCR 空结果行为从「空正文0片段」更正为「待处理落库」;category
全集补 vision;README 英雄路径口径更新为真模型优先;AGENTS 补异步
队列/视频/ffmpeg/rerank 规则与新表清单,seed 演示流表述改为降级链
约束。
2026-07-04 01:12:18 +08:00
admin
df20627fbb
feat(aihr): keyframe caption and rerank in retrieval pipeline
...
视频关键帧 vision prompt 从纯 OCR 扩展为「文字+一句画面描述」,纯视觉
信息(动作/场景演示)进入文本向量可检索;检索 RRF 融合后接
category=rerank 模型(bge-reranker-v2-m3)语义重排,未配置或失败保持
RRF 顺序(TechSpec 12.3 最后一环)。BACKLOG 记入 B7 视觉向量检索
(Doubao-embedding-vision,二期)。端到端验证:重传视频片段带画面描述;
检索「首次反馈时限」视频转写片段重排后命中第一。
2026-07-04 01:06:09 +08:00
admin
fe1eef3905
feat(aihr): support video upload with asr transcript and keyframe ocr
...
新增 AihrVideoService:ffmpeg 抽音轨按5分钟分段调 asr 转写([mm:ss]
时间戳),30s间隔(≤40帧)抽关键帧调 vision 提取画面文字(重复画面去重),
合并文本复用既有归类/切片/向量化链路。视频只走异步队列(同步接口
拒绝),≤500MB/≤60分钟,同时只加工1个,卡死判定放宽到120分钟;无
asr/vision 结果按「待处理」落库不报错。前端 accept/筛选/文案与
overview 类型徽标同步。端到端验证:30s培训视频语音逐字转写+画面
四要点完整提取,自动归类投诉处理SOP。
2026-07-04 00:24:24 +08:00
admin
90e96322bb
feat(aihr): allow vision category in model config
...
模型配置 category 校验与管理端下拉补 vision 类目;此前后端只放行
chat/vector/rerank/asr/tts,视觉模型无法从管理端保存。
2026-07-04 00:02:41 +08:00
admin
61235b6257
fix(aihr): image upload without usable vision model no longer fails
...
图片 OCR 拿不到文字(未配视觉模型/模型不支持图片/图片无文字)时不再
抛「文件内容不能为空」:改为落 OSS + attach 标待处理、0 片段完成,
说明写入队列条目在面板展示(作战清单 M7 口径);OCR 调用失败补日志,
之前被静默吞掉难排查。前端批次表 error 列改名「说明」。
2026-07-03 23:51:37 +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
4fa23617a4
feat(aihr): decouple batch upload from processing via async queue
...
批量上传治本:POST /doc/upload-async 只暂存+入队即秒回,后台 worker
(并发2)复用 saveDocument 链路逐条解析/归类/向量化;队列表
aihr_knowledge_upload_item 状态机 0/1/2/3,完成/失败 CAS 写入,同名
文件串行防撞 attach 唯一键,卡住30分钟清扫重置,失败暂存保留72h。
新增 GET /doc/upload-items 批次查询与 POST /doc/upload-items/{id}/retry
单文件重试。资料处理页批量导入改走异步:提交即返回,新增本批次
进度面板(排队/加工中/完成/失败+进度条+单条重试),轮询防过期回写。
同步接口保留给 SOP 页单文件即时预览。
2026-07-03 23:36:56 +08:00
admin
e47f6a2f48
docs: sync agents/readme/integration/setup with llm, speech and import-cancel
...
对练真LLM与语音接口、短信固定验证码、组织快照表写入 AGENTS.md 规则
与 API_INTEGRATION/DEV_SETUP/README;导入任务取消同步进作战清单、
迁移计划与 TechSpec。
2026-07-03 21:45:38 +08:00