Repository navigation
feat: add Xiaomi MiMo Code integration - #4267
Mahdifotohi wants to merge 2 commits into
Conversation
|
Thanks for the pull request, @Mahdifotohi. A maintainer will review it soon. Want to talk it through while it is in review? Come join us on our Discord server. For longer-form discussion there is also GitHub Discussions. A couple of things that speed up review: make sure the test suite passes on Python 3.10 and 3.13, and that the change keeps extraction deterministic. |
e11646f to
e4f629a
Compare
There was a problem hiding this comment.
Graphify reviewed this change.
Worth a look — the grounded gate found no coupling regressions or blocking issues, but 5 advisory finding(s) below merit a look before merge.
Not checked: tests were not run; no formal proof of the changed code.
Graphify review — findings
Adds Xiaomi MiMo Code support via graphify mimo install|uninstall|status [--project]. It installs the skill into .mimocode/skills/ or the global config dir (MIMOCODE_HOME/config, else XDG, else ~/.config/mimocode), using the PowerShell skill on Windows. It also registers a chat.message/tool.execute.before plugin in mimocode.json that runs a bounded graphify query and injects graph context before the model responds, and writes always-on guidance to AGENTS.md; detection now skips the installed .mimocode/plugins/graphify.js so it never lands in the graph.
Worth a look
- Installing the MiMo plugin can erase the user's mimocode.jsonc settings —
graphify/install.py:1820· Escalate · high- agreed by 2 of 2 members but NOT verified (no proof, no reproducing execution) — consensus is not a verdict; needs human review
- Project-scoped mimo uninstall also removes the global plugin —
graphify/install.py:2275· Escalate · medium- agreed by 2 of 2 members but NOT verified (no proof, no reproducing execution) — consensus is not a verdict; needs human review
- Uninstall deregisters any third-party plugin whose path ends in plugins/graphify.js —
graphify/install.py:1880· Escalate · medium- agreed by 2 of 2 members but NOT verified (no proof, no reproducing execution) — consensus is not a verdict; needs human review
- Help advertises
mimosubcommands but this diff adds no CLI dispatch for them —graphify/__main__.py:940· Escalate · medium- agreed by 2 of 2 members but NOT verified (no proof, no reproducing execution) — consensus is not a verdict; needs human review
- MiMo Windows uninstall removes a different skill id than install writes —
graphify/install.py· Escalate · medium- agreed by 2 of 2 members but NOT verified (no proof, no reproducing execution) — consensus is not a verdict; needs human review
Review partial — this diff was larger than one review pass covers, so later files were not reviewed; some findings may be missing.
Analysis details — impact, health, verification
Impact & health
Graphify review
Impact — 3735 functions depend on the 1073 functions this change touches.
Health — this change adds coupling hotspots:
- worse:
install()— 17 callers, 12 callees - worse:
dispatch_install_cli()— 5 callers, 34 callees - worse:
_copy_skill_file()— 19 callers, 7 callees - new:
_mimo_install()— 12 callers, 8 callees - worse:
_project_uninstall()— 6 callers, 14 callees - worse:
_project_install()— 4 callers, 14 callees - new:
_mimo_uninstall()— 8 callers, 6 callees - worse:
_agents_install()— 6 callers, 7 callees - …and 3 more — each is listed as a finding
Verification — 3735 functions in the blast radius were not formally verified this run (proofs are advisory here).
Gate & verification
graphify gate
PASS — objectively clean (no health regressions, tests not run — proofs not run this pass (advisory)). Grounded, not self-assessed.
Advisory (not blocking):
- verification_scope: 1867 function(s) in the blast radius were not formally verified this run
Test selection
Test selection
359 of 359 test file(s) selected (100%) via static blast radius.
Escalated to a full run for safety — the selection is not trustworthy on its own (see below). CI should run the whole suite.
tests/test_affected_cli.py— impact, full-run-safetytests/test_affected_member_seed.py— full-run-safetytests/test_agents_platform.py— impact, full-run-safetytests/test_analyze.py— full-run-safetytests/test_anthropic_custom_endpoint.py— full-run-safetytests/test_antigravity_install.py— full-run-safetytests/test_apm_fallback_version.py— full-run-safetytests/test_architecture_doc.py— full-run-safetytests/test_astro_extraction.py— impact, full-run-safetytests/test_astro_import_ids.py— full-run-safetytests/test_atomic_canvas_export.py— full-run-safetytests/test_atomic_version_stamp.py— impact, full-run-safetytests/test_atomic_writes.py— impact, full-run-safetytests/test_backend_env_isolation.py— full-run-safetytests/test_backend_extras.py— full-run-safetytests/test_benchmark.py— full-run-safetytests/test_benchmark_raw_graph.py— full-run-safetytests/test_blade_extractor.py— full-run-safetytests/test_build.py— impact, full-run-safetytests/test_build_located_semantic_identity.py— full-run-safetytests/test_build_merge_dedup_scope.py— full-run-safetytests/test_build_merge_hyperedges_and_prune.py— full-run-safetytests/test_build_merge_shrink_guard.py— full-run-safetytests/test_builtin_global_type_refs.py— full-run-safetytests/test_cache.py— full-run-safetytests/test_cache_stale_import_target.py— full-run-safetytests/test_callflow_html.py— full-run-safetytests/test_cargo_introspect.py— impact, full-run-safetytests/test_cargo_missing_manifest.py— full-run-safetytests/test_carried_hyperedge_remap.py— full-run-safetytests/test_case_sensitive_resolution.py— full-run-safetytests/test_charmap_encoding.py— impact, full-run-safetytests/test_chunking.py— impact, full-run-safetytests/test_cjs_module_extension.py— impact, full-run-safetytests/test_claude_cli_backend.py— impact, full-run-safetytests/test_claude_md.py— impact, full-run-safetytests/test_cli_broken_pipe.py— full-run-safetytests/test_cli_export.py— full-run-safetytests/test_cli_help.py— full-run-safetytests/test_cloud_cta.py— full-run-safetytests/test_cluster.py— full-run-safetytests/test_cluster_ambiguous_scale.py— full-run-safetytests/test_cluster_exclude_hubs.py— full-run-safetytests/test_cobol_extractor.py— full-run-safetytests/test_codebuddy.py— impact, full-run-safetytests/test_community_hub_labels.py— full-run-safetytests/test_community_labels_skill.py— full-run-safetytests/test_confidence.py— full-run-safetytests/test_corrupt_graph_json.py— full-run-safetytests/test_cpp_method_declarations.py— full-run-safety- … and 309 more
non-code file(s) changed (
ARCHITECTURE.md,README.md) → running the full suite for safety (a code graph can't see config/fixture/data deps)
changed code file(s) with no mapped test (
ARCHITECTURE.md,README.md) — a coverage gap or a missing link — running the full suite rather than only the selected tests
Selection is safe under the controlled-regression assumption; always-run tests + a periodic full run are the backstops. Advisory — it never changes the check verdict.
· 3 grounded finding(s) anchored inline below; 8 more finding(s) on lines outside this diff (see the check run).
| print(f" {shown_config} -> plugin deregistered") | ||
|
|
||
|
|
||
| def _mimo_install(project_dir: Path, *, project: bool = False) -> None: |
There was a problem hiding this comment.
_mimo_install()
fans out to 8 callees (efferent coupling); 12 callers depend on it (afferent coupling).
Grounded coupling-delta finding (deterministic), not an LLM guess.
| print("answering codebase questions. Run /graphify first to build the graph.") | ||
|
|
||
|
|
||
| def _mimo_uninstall(project_dir: Path, *, project: bool = False) -> None: |
There was a problem hiding this comment.
_mimo_uninstall()
fans out to 6 callees (efferent coupling); 8 callers depend on it (afferent coupling).
Grounded coupling-delta finding (deterministic), not an LLM guess.
| print(f" {global_agents} -> removed") | ||
|
|
||
|
|
||
| def _mimo_status(project_dir: Path, *, project: bool = False) -> None: |
There was a problem hiding this comment.
_mimo_status()
high coupling complexity (Ca·Ce = 12).
Grounded coupling-delta finding (deterministic), not an LLM guess.
Co-Authored-By: Gemini (via AGY)
Co-Authored-By: Gemini (via AGY)
e4f629a to
8d045b0
Compare
Windows (Python 3.11, uv):
Some full-suite failures appear platform-specific; some were also reproduced on the upstream baseline. A full Linux test run has not been performed locally.