| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| public | ||
| src | ||
| .dockerignore | ||
| .env.example | ||
| Dockerfile | ||
| components.json | ||
| eslint.config.mjs | ||
| next-env.d.ts | ||
| next.config.mjs | ||
| package.json | ||
| postcss.config.mjs | ||
| tsconfig.json |
现象:上次时间已选后显示「18m_plus ×」「12_18m ×」而不是「18 个月以上 ×」「12-18 个月 ×」。
根因:消费方按 `d.key` 查维度,而 source='patient' 的三个维度(上次时间 / 上次医生 / 偏好医生)
key 是空串、筛选串用的是 `id` —— 查不到维度 → 退回显示 value 本身。
加 `id` 时改了组装侧(plan.service)和面板渲染,漏了这两处消费点:
- patient-picker-rail 的已选 chip:改用 personaTagDimId 查维度;
顺带把 `kv.split(':')` 改成按**首个冒号**拆(取值理论上可含冒号,如医生姓名)。
- mcp-server.factory 的 personaTags 说明:同样按 key 生成,会给 LLM 一个**空维度名**,
它照着发就永远筛不出人。改用 personaTagDimId;开集维度(医生)options 为空,
提示改成"自由文本 + 指向 GET /pac/v1/plans/doctors",免得 LLM 瞎猜姓名。
测试:persona-spec-drift 补一条 —— 闭集维度的每个取值都必须能按 **id** 查回中文,
锁住"用 id 一定查得回来"这个不变量。656 tests / 42 suites 全过。
本地实测:已选 chip 显示「0-3 个月 / 12-18 个月 / 18 个月以上」,
hover 提示「上次时间:0-3 个月(点击移除)」;请求带
personaTags=last_visit_bucket:0_3m,… 返回 200。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| public | Loading commit data... | |
| src | Loading commit data... | |
| .dockerignore | Loading commit data... | |
| .env.example | Loading commit data... | |
| Dockerfile | Loading commit data... | |
| components.json | Loading commit data... | |
| eslint.config.mjs | Loading commit data... | |
| next-env.d.ts | Loading commit data... | |
| next.config.mjs | Loading commit data... | |
| package.json | Loading commit data... | |
| postcss.config.mjs | Loading commit data... | |
| tsconfig.json | Loading commit data... |