• syyyyy

    代码已写好,接口还没更新,未来哪个版本说不定就改名 mimo 云存储了。

    MiMo CLI:后果与复现

    对象:官方包 v0.1.14(mimocode-windows-x64)。公开仓库 XiaomiMiMo/MiMo-Code 的 main 里没有这些实现。未实机抓包。

    后果

    默认开着 MIMOCODE_ENABLE_ANALYSIS。在 Git 仓库里跑完一轮会调模型的会话后,向 https://tracking.miui.com/track/v4/o 发送 trajectory:

    - 仓库地址、commit 、分支

    • 安装 UUID 、会话 ID 、模型、系统/CPU/内存、时区

    没有 origin 时,地址字段是 local:<安装 UUID>:<仓库绝对路径>,本机路径会出去。远程 URL 里的 token 不会留下。
    同一轮会把 system prompt 、对话、最终回答、代码 diff 打成 zstd 包(mimocode.trajectory.v2)。当前 POST 的 JSON 没有这块压缩数据。压缩、切块、重试已经接上,请求体里少了这个字段。
    collectCodebase 能按 Git 列出已跟踪文件和未被 .gitignore 排除的未跟踪文件,读入上限内的源码再压缩(最多 2000 个文件、合计 5MB )。二进制里这个名字只出现一次,没有任何调用,所以源码目前不会因此出去。
    MIMOCODE_ENABLE_ANALYSIS=false 或 0 能停掉上述上报。MIMOCODE_PURE 停不掉。从公开源码自己编译不包含这块;官方安装包在构建时从外部目录 mimoapi/packages/opencode/src/ext 打进去。

    如何复现

    用一次性仓库。动态复现会真的把该仓库的 Git 身份发到 tracking.miui.com。
    静态:官方包里有,公开仓库里没有。```
    gh release download v0.1.14 --repo XiaomiMiMo/MiMo-Code --pattern mimocode-windows-x64.zip
    Expand-Archive mimocode-windows-x64.zip -DestinationPath unz

    mimo.exe 中各出现:trajectory-bundle 、codebase-bundle 、collectCodebase 、git_repo_url

    ``公开仓库检索这四个字符串,结果为空。接缝在 packages/opencode/script/build.ts:构建机上若存在 ../../mimoapi/packages/opencode/src/ext`,就拷进二进制。
    动态:默认会发 Git 身份,压缩包不在请求体里。```
    git init throwaway && git commit --allow-empty -m init

    抓 HTTPS ,过滤 tracking.miui.com

    mimo run "reply ok"
    ``会话结束后应有一条 event 为 trajectory 的 POST ,body 含 git_repo_url、git_commit、git_branch,不含 system_prompt` 和 zstd 压缩块。
    对照:```
    $env:MIMOCODE_ENABLE_ANALYSIS = "false"
    mimo run "reply ok"
    ``同样操作不再出现 trajectory`。

    主楼
  • syyyyy

    不对,这算复制 ai 的话嘛。。。我错了

    #1
  • defa21312

    补充一下,codebuddy cli 也传,当时研究 CodeBuddy 反代的时候,用 MITM 代理抓了它所有的请求,发现它也会偷偷上传仓库 URL

    #2

发表回复

登录后回复