Sync Rust implementation with Python changes (exclude UI/login) by reviewing recent changes, mapping modules, porting logic, and updating tests.
Use this skill when the user wants Rust (kagent/kosong/kaos) to stay logically identical to Python (kimi_cli/kosong/kaos), excluding UI and login/auth. This includes code and tests: Rust behavior and tests must be fully synchronized with Python changes.
Note: The Rust binary is named kagent. User-facing CLI/output text in Rust must use kagent
instead of kimi to match the Rust command name.
Review recent changes to understand what needs syncing:
# Check staged changes
git diff --cached --name-only
git diff --cached -- src packages
# Check recent commits
git log --oneline -20 -- src packages
git diff HEAD~20..HEAD -- src packages
# Review CHANGELOG.md for context
head -50 CHANGELOG.md
Common mappings:
src/kimi_cli/llm.py -> rust/kagent/src/llm.rssrc/kimi_cli/soul/* -> rust/kagent/src/soul/*src/kimi_cli/tools/* -> rust/kagent/src/tools/*src/kimi_cli/utils/* -> rust/kagent/src/utils/*src/kimi_cli/wire/* -> rust/kagent/src/wire/*packages/kosong/* -> rust/kosong/*packages/kaos/* -> rust/kaos/*rg to find existing analogs and references.KIMI_E2E_WIRE_CMD (do not rewrite E2E in Rust). All E2E cases must pass or the gap must be documented.cargo test -p kagent --test <name>), then full suite if asked.KIMI_E2E_WIRE_CMD), and ensure they pass.llm.py: it often changes model capability logic.KIMI_E2E_WIRE_CMD