Skip to content

Releases: zhutoumeme/mcd-git

v0.2.5:Windows PowerShell 补全 + 跨平台命令引导

Choose a tag to compare

@zhutoumeme zhutoumeme released this 13 Oct 05:45

mcd-git v0.2.5:跨平台命令补全

这一版把命令补全和跨平台使用引导补完整。

新增

  • Windows PowerShell 原生补全:支持 PowerShell 5.1 和 PowerShell 7+,通过 Register-ArgumentCompleter 补全子命令、选项、二维码样式、卡片样式和餐品名。
  • 多平台补全引导:README 现在包含 macOS/Linux Bash、Zsh、Fish、Windows Git Bash、Windows WSL、Windows PowerShell 的安装、重载和验证命令。
  • 人工终端入口统一:补全和人工敲命令优先使用 mcd-git;Agent 自动化仍使用稳定的 git mcd --json。
  • 离线餐品补全:mcd-git add <TAB> 读取本机菜单缓存,不会因为按 Tab 触发 MCP 请求。菜单缓存由正常的 ls-remote / 菜单查询流程刷新。

推荐用法

mcd-git st<TAB>
mcd-git add 巨<TAB>
mcd-git card --style <TAB>
mcd-git push --qr <TAB>

git mcd 仍然保留为 Git 子命令入口,但其 Tab 补全取决于当前系统是否加载 Git 自带补全脚本;mcd-git 是稳定推荐入口。

安装补全

# Bash
printf '\n# mcd-git completion\neval "$(mcd-git completion bash)"\n' >> ~/.bashrc
source ~/.bashrc

# Zsh
eval "$(mcd-git completion zsh)"

# Fish
mcd-git completion fish > ~/.config/fish/completions/mcd-git.fish

PowerShell 用户把 mcd-git completion powershell 的输出加载到 $PROFILE,README 有可直接复制的幂等安装脚本。

说明

  • 补全过程不联网、不调用 MCP。
  • 默认二维码、确认闸、Token 安全和菜单缓存行为保持不变。
  • 兼容 Python 3.9+,没有新增运行时依赖。

v0.2.4:默认二维码各终端都扫得出,命令行和餐品名都能 TAB 补全

Choose a tag to compare

@zhutoumeme zhutoumeme released this 12 Oct 12:21

mcd-git v0.2.4

两件事:默认支付二维码在 macOS Terminal.app 里也能扫出来了,命令行可以按 TAB 补全,餐品名也能补。

修复:默认二维码各终端都扫得出

  • 默认改成整格画法:每个模块画成两个带背景色的空格,不依赖「▀」半块字形。上一版默认的半块码在 macOS Terminal.app 里扫不出,这一版默认就能扫。
  • --qr 取值:full(默认)/ half / fancy / fancy=名字。half 高度减半、更紧凑,但部分终端(比如 Terminal.app)可能扫不出。
  • 终端太窄自动退回:放不下整格码时退回半块,并提示把窗口拉宽后运行 git mcd show 重新出码。fancy 放不下时先退整格。
  • 二维码内容不变,扫了直接拉起麦当劳 App 付款,下面的文字支付链接也照旧。

新增:命令补全

# zsh:写进 ~/.zshrc
eval "$(mcd-git completion zsh)"
# bash:写进 ~/.bashrc(macOS 自带 bash 3.2 也能用)
eval "$(mcd-git completion bash)"
# fish
mcd-git completion fish > ~/.config/fish/completions/mcd-git.fish
  • 子命令、选项,以及 --qr fancy=burger、card --style receipt 这类取值都能补,zsh 候选带中文说明。
  • 餐品名补全:git mcd add 巨<TAB> → 巨无霸 / 巨无霸套餐。输「鸡腿」能补出麦辣鸡腿堡、板烧鸡腿堡。名字里有空格、括号、引号也能正确转义。restore --staged <TAB> 补的是购物车里的餐品。
  • 菜单读本机缓存 menu-cache.json(权限 600,只有餐品 code、名称、类型和门店,不存价格和地址)。缓存只在 ls-remote / add 这类本来就要查菜单的命令里顺手写,不多调接口。按 TAB 只读本机文件、不联网,一次大约 0.02 秒。缓存 24 小时有效,换门店后要重新 ls-remote。--demo 第一次就能补。
  • git mcd <TAB>:zsh 直接能用(git mc<TAB> 也行)。bash 要先加载 git 自带的 git-completion.bash,没加载时用等价的 mcd-git <TAB>。fish 的脚本照写,但还没实测。

说明

  • Agent 不需要补全,照常用 --json。
  • 不新增依赖,兼容 Python 3.9+。

安装 / 升级

uv tool install --force git+https://github.com/zhutoumeme/mcd-git@v0.2.4
# 或
pip install -U "git+https://github.com/zhutoumeme/mcd-git@v0.2.4"

试玩不需要 Token:eval "$(mcd-git completion zsh)" 之后试试 git mcd --demo add 巨<TAB>。完整变更见 CHANGELOG.md。

v0.2.3:二维码变小、扫码进 App、麦当劳主题码(6 款随机)

Choose a tag to compare

@zhutoumeme zhutoumeme released this 11 Oct 14:32

mcd-git v0.2.3

终端支付二维码的一轮改进:更小、能直接拉起 App、还能玩麦当劳主题码。

二维码变化

  • 更紧凑:默认改用半块画法、纠错 M,二维码比上版小一多半,不再占满终端。
  • 扫了直接进 App:二维码编码的是麦当劳收银页里那条链接(jumpToApp),手机扫了直接拉起麦当劳 App 付款,省掉中间网页。文字那行仍是原支付链接,方便在浏览器打开。
  • git mcd show 也出码:查待支付订单时同样显示二维码,不只是 push 当时。
  • --qr full:想要更大更清楚的码时用,适合个别终端半块扫不出的情况。

麦当劳主题码 --qr fancy

  • 麦门金配色 + 正中一个像素麦当劳元素 Logo + 纠错 H。每次随机出一个,一共 6 款:汉堡、薯条、麦乐鸡、甜筒、派、金拱门 M。
  • 想要固定某一款:git mcd push --qr fancy=burger(也支持 fancy:burger)。可选名字:burger、fries、nuggets、cone、pie、arch。
  • 底部会提示当前是哪一款,和普通码一样扫。
  • 终端太窄时自动退回普通二维码并提示,保证总能扫。

说明

  • 默认永远是朴素紧凑的那版(最通用)。full 和 fancy 都是你主动 --qr 选的——支付码是功能性的,默认保持最稳。
  • 6 款主题码都经过机器识别验证可扫。不新增依赖,兼容 Python 3.9+。

安装 / 升级

uv tool install --force git+https://github.com/zhutoumeme/mcd-git@v0.2.3
# 或
pip install -U "git+https://github.com/zhutoumeme/mcd-git@v0.2.3"

试玩不需要 Token:git mcd --demo push --qr fancy(先 add、commit 再 push)。完整变更见 CHANGELOG.md。

v0.2.2:跨平台 Token(Windows 支持)+ 卡片细节

Choose a tag to compare

@zhutoumeme zhutoumeme released this 11 Oct 11:10

mcd-git v0.2.2

跨平台兼容(主要补上 Windows)和两个吃麦贡献图的细节修复。

跨平台 Token 与本地目录

  • Token 和本地状态目录现在按系统解析:Windows 用 %APPDATA%\mcd-mcp\token 和 %APPDATA%\mcd-git,支持 XDG_CONFIG_HOME,默认仍是 ~/.config。查找顺序:环境变量 MCD_MCP_TOKEN(所有平台最高优先、最推荐)→ XDG_CONFIG_HOME → Windows %APPDATA% → ~/.config,取第一个存在且非空的。
  • 向后兼容:已经存在的 ~/.config/mcd-git 会继续沿用,升级和换平台都不会迁移,老用户的账本不动。
  • 找不到 Token 时,报错按系统给命令:Windows 提示 setx MCD_MCP_TOKEN "你的Token" 或当前终端 $env:MCD_MCP_TOKEN="你的Token",其它平台保持 export + 写文件;路径按实际解析结果显示,不再统一写 ~/.config。
  • README 和 SKILL 新增 macOS / Linux / Windows 三套 Token 申请和配置指南。Token 只放本机、只进请求头、不上传,行为没变;--demo 全流程依旧不需要 Token。

吃麦贡献图

  • 默认文件名按样式区分:mcd-contributions-skyline.svg、-receipt.svg、-grid.svg。连跑多种样式不再互相覆盖。用 -o 指定路径时完全照旧。
  • 节前就能看到 1024 程序员节标记:今天还没到 10-24 时,卡片右边界会提前延伸到 10-24 那一周,天际线插上「0x400」小旗、小票画红圈、格子描边。过了 10-24 则维持原状。满一年数据(含 demo)的卡片输出与上版完全一致。

安装 / 升级

# 通用(推荐):先配置 Token 环境变量
#   macOS / Linux:  export MCD_MCP_TOKEN="你的Token"
#   Windows PowerShell:  setx MCD_MCP_TOKEN "你的Token"(需重开终端)
uv tool install --force git+https://github.com/zhutoumeme/mcd-git@v0.2.2
# 或
pip install -U "git+https://github.com/zhutoumeme/mcd-git@v0.2.2"

Token 在 open.mcd.cn/mcp 控制台申请。想先看效果,git mcd --demo card 不需要 Token。完整变更见 CHANGELOG.md。

v0.2.1:卡片自适应窗口 + 试玩体验修复

Choose a tag to compare

@zhutoumeme zhutoumeme released this 11 Oct 09:53

mcd-git v0.2.1

一轮真实试玩打磨:吃麦贡献图改成按你的数据自适应,加上一批点餐途中发现的体验修复。

吃麦贡献图

  • 自适应时间窗口:天际线和年度小票不再固定画 53 周,而是从你最早一单所在的周画到本周,最少 12 周、最多 53 周。记录少时图形自动放大居中,稀疏数据也能铺开,不会大半张是空地。满一年的数据和 0.2.0 一样。grid 平面格子仍是固定 53 周。
  • 10-24 不在窗口里时就不画小旗和红圈。底部的「Happy 0x400 Day」是 1024 特别版固定标语,一直都在。
  • git mcd card 现在显示完整的写入路径(家目录显示成 ~/…),--json 给绝对路径。
  • 小票里的长餐品名放宽了显示长度,不再早早被截断。

点餐体验

  • 价格更准:需要同时买随单购会员卡才成立的优惠价(如「随单购麦金卡优惠」),不再被当成单价显示。add、ls-remote、status 显示真实可得价,并淡色注明「需随单购麦金卡」。促销优惠照常直接生效。
  • ls-remote 更好读:不带关键词时按菜单分类分组,店名按终端宽度显示全称,超过一屏自动分页。
  • init 选门店:门店名和地址尽量显示全称,搜索结果带营业状态和时间;新增 --limit N;只给 --city 不给关键词时,调用接口前就提示要补一个地标关键词。
  • 门店没营业时(code 600057)给出提示:这家店现在可能没开,怎么换一家,有预约时段的话怎么预约。
  • 打错子命令会提示相近命令,比如 git mcd ls-remotr → 「你是不是想输入:git mcd ls-remote」。
  • rebase 会遍历券里的全部商品找能用的,用不上时说明原因(券不适用,还是查不到商品详情)。
  • diff:rebase 之后购物车没变就不再重复提示;购物车为空时给一行提示。

终端二维码

  • push 打印的二维码在部分终端(如 macOS Terminal.app)里手机扫不出来:静区从 2 个模块加到 4 个;终端够宽时每个模块画成整格背景色,不再依赖半块字形。二维码下面也加了提示:扫不出来就直接打开支付链接,或到麦当劳 App 订单页付款。

安装 / 升级

uv tool install --force git+https://github.com/zhutoumeme/mcd-git@v0.2.1
# 或
pip install -U "git+https://github.com/zhutoumeme/mcd-git@v0.2.1"

完整变更见 CHANGELOG.md。

v0.2.0:1024 特别版(吃麦贡献图 / pull 领券 / log --stat)

Choose a tag to compare

@zhutoumeme zhutoumeme released this 10 Oct 20:36

mcd-git v0.2.0:1024 特别版

0.2.0 新增三个命令:给 10-24 程序员节准备的吃麦贡献图 card,领券前先确认的 pull,以及吃麦统计 log --stat。

麦门天际线(demo 合成数据)

新增

  • git mcd card:吃麦贡献图
    • 把最近 53 周的吃麦记录画成一张卡片:终端里先预览,同时在本机生成一个自包含的 SVG,浅色和深色主题自动切换,不引用外部字体、图片或脚本。用 --style 选样式:
      • skyline 麦门天际线(默认):等距 3D,每天吃几次就叠几层汉堡,图片加载时汉堡会一层层落下来;10-24 那一格插一面「0x400」小旗。适合贴到 GitHub 主页。
      • receipt 年度吃麦小票:竖版热敏小票,包含 TOP 5、点阵热力图、时段分布和 TOTAL。适合发朋友圈、小红书。
      • grid 平面格子:GitHub 风格的 7 × 53 格子。
    • 卡片默认只显示总单数、最常点的餐品和最常吃的时段,加 --with-savings 才显示用券省下的钱。门店、订单号、具体下单时刻和总消费都不会出现。
  • git mcd pull:领券,先确认
    • 先列出可领的券,你同意后一次全部领取。麦当劳接口只能一次领全部,不能只领其中几张,确认摘要里会写明。
    • 在终端里运行会问 y/N。Agent 调用或带 --json 时只给出摘要,要执行就运行返回里带 --confirm <指纹> 的那条命令。
    • 预览 10 分钟内有效,只能用一次;确认时如果券列表变了,会拒绝执行。结果不确定时不会自动重试。
    • --dry-run 只看不领;没有可领的券时输出 Already up to date.。
  • git mcd log --stat:吃麦统计
    • 仿照 git log --stat,每一单列出餐品、实付和省了多少。
    • 最后一段是汇总:总单数、实付、省下的钱,按时段(早餐 / 午饭 / 下午茶 / 晚饭 / 夜宵)的分布,以及最常点的前 3 名。已取消和待支付的单照常列出,但不计入金额。
    • 支持 -n、--since、--until。
  • 本机订单账本 ~/.config/mcd-git/ledger.json(权限 600)
    • card 和 log --stat 的数据都来自这里。平时运行其他命令时会顺手更新,不会额外调用 MCP。
    • 只存下单时间、状态、餐品和份数、金额、取餐方式。订单号原文、手机号、地址、取餐码、支付链接都不存。
    • 删掉这个文件就清空了。
  • --demo 补了一年的合成订单,不用 Token,运行 git mcd --demo card 就能看到效果。

变化

  • 写操作只放行三个:create-order(push)、cancel-order(revert)、auto-bind-coupons(pull),都要先确认。积分兑换、抽奖、派对订单、新建地址一律拦截。
  • fetch 发现有可领的券时,会提示用 git mcd pull 领取。

说明

  • 领券每次都要你手动触发并确认,只领你自己账户里的券,没有定时、循环或后台领券。pull 已经在作者本人账户上真实测过:6 张可领券一次领取成功。
  • 新命令都支持 --demo、--json 和 -h。兼容 Python 3.9+,没有新增运行时依赖。
  • 「省下的钱」只统计有优惠明细的订单,所以是个下限。麦当劳接口只返回最近 10 单,真实账户的卡片会随着使用慢慢丰富起来。

安装 / 升级

uv tool install --force git+https://github.com/zhutoumeme/mcd-git@v0.2.0
# 或
pip install -U "git+https://github.com/zhutoumeme/mcd-git@v0.2.0"

完整变更见 CHANGELOG.md。