Skip to content

Releases: smallchristy123/mcmeal-compass

v3.7.6 · 首屏演示版

Choose a tag to compare

@smallchristy123 smallchristy123 released this 19 Oct 08:24

改了什么

1. 首屏加一段 15 秒演示(docs/assets/demo.gif)

900×620 · 71 帧 · 241 KB。两幕:

  • npm run demo → 门店营养速览:121 项餐品里只有 38 项(31.4%)能配上官方营养,其余如实标「D 级 · 无法验证」;
  • node src/cli.ts --offline --budget 35 → 三方案,逐条给出名称 / 实付 / 价源 / 营养 / 依据链。

口径:屏幕上每一行文字都逐字取自真实运行输出,只做终端换行,不改字、不补数。
因此画面里保留了「数据产生于 2026-10-10、已超时效、仅作历史样例」的警告——这是刻意的,不做美化。

2. 明细表按「显示列」对齐(O12)

--top 明细表原用 padEnd(24) 按 UTF-16 码元补齐,而中文在终端占 2 列
('纯悦'.length === 2,显示却是 4 列),导致同一列落到第 35~38 列,CJK 终端下必然歪。

  • 新增 src/text-width.ts:displayWidth / padDisplay / padStartDisplay / clipDisplay;
  • 表头数值列改为右对齐(数据列本就右对齐,表头左对齐会错开一个单元格);
  • 截断按显示列,且宁可不截也不切断商品名;
  • 新增 tests/text-width.test.ts(6 项,含端到端断言「表头与每行在级别前显示宽度相等」)。

修复后 --top 8 全部对齐到 76 显示列。

没改什么

src/pricing.ts、src/recommend.ts、src/matching.ts 等业务逻辑未动。
价源四态、失败分流、isDefault 三态判据、roundListOf 覆盖面基线,全部保持 v3.7.5 的状态。

验证

  • npm run gate:385 / 385 通过(版本源一致 · 夹具一致 · 类型干净 · 离线可跑)
  • 仓库占位扫描:0 finding

边界(写在明处,不藏角落)

  • 不提供下单:REAL_ORDERING_ENABLED = false,调用即抛 ORDERING_DISABLED;
  • 单门店、单时段:在线链路有实测留档,但尚未做多门店/多时段系统性复核;
  • 演示用的是 10-10 快照,已超时效,不代表当前可售;
  • 输出仅供参考,不构成医疗或营养建议。

与 v3.7.5 的差别

v3.7.5 解决「README 状态行落后于实况」与「仓库一张图都没有」;
v3.7.6 补上动态演示,并修掉一处任何 CJK 终端都会看到的表格错位。
两版均不含功能变更。

v3.7.5 · 首屏版:README 状态对齐 + 两张说明图

Choose a tag to compare

@smallchristy123 smallchristy123 released this 19 Oct 02:14

v3.7.5 · 首屏版

文档与视觉修订,代码与测试零改动。

改了什么

  • README 状态行按版本如实标注:v3.7.3 已获第三方签收(2026-10-16);v3.7.4 / v3.7.5 为维护版、待复评。
  • 首屏加「30 秒上手」:npm install && npm run demo,并给出逐字取自真实运行的输出。
  • 新增两张说明图(docs/assets/):
    • how-it-works.svg —— 一次查询的数据流:输入 → 官方 MCP 四类调用 → 规则引擎五步 → 三张方案
    • trust-levels.svg —— 营养可信度 A/B/C/D 四档 + 价源四态 + 两个明确出口

没改什么

src/** 与 tests/** 零改动。价源四态、失败分流、isDefault 三态判据、roundListOf 覆盖面基线,全部未动。

验证

  • npm run gate:版本源一致 · 测试全绿 · 类型干净 · 离线可跑
  • 两轮独立在线复核(门店 3450021):各 45/45 HTTP 200,clientVersion=3.7.5
  • 从交付包原地复现:SHA256SUMS 156/156 全 OK

边界

本版不提供下单能力(REAL_ORDERING_ENABLED = false);输出不构成医疗或营养建议。