comate-cli 0.7.0a4__tar.gz → 0.7.0a5__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (159) hide show
  1. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/PKG-INFO +1 -1
  2. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/terminal_agent/mention_completer.py +2 -0
  3. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/pyproject.toml +1 -1
  4. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_mention_completer.py +32 -0
  5. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/.gitignore +0 -0
  6. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/CHANGELOG.md +0 -0
  7. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/README.md +0 -0
  8. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/bash-exit-code-green-dot-bug.md +0 -0
  9. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/__init__.py +0 -0
  10. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/__main__.py +0 -0
  11. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/main.py +0 -0
  12. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/mcp_cli.py +0 -0
  13. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/terminal_agent/__init__.py +0 -0
  14. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/terminal_agent/animations.py +0 -0
  15. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/terminal_agent/app.py +0 -0
  16. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/terminal_agent/assistant_render.py +0 -0
  17. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/terminal_agent/codenames.py +0 -0
  18. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/terminal_agent/custom_slash_commands.py +0 -0
  19. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/terminal_agent/env_utils.py +0 -0
  20. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/terminal_agent/error_display.py +0 -0
  21. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/terminal_agent/event_renderer.py +0 -0
  22. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/terminal_agent/figures.py +0 -0
  23. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/terminal_agent/fragment_utils.py +0 -0
  24. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/terminal_agent/history_printer.py +0 -0
  25. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/terminal_agent/input_geometry.py +0 -0
  26. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/terminal_agent/layout_coordinator.py +0 -0
  27. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/terminal_agent/logging_adapter.py +0 -0
  28. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/terminal_agent/logo.py +0 -0
  29. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/terminal_agent/markdown_render.py +0 -0
  30. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/terminal_agent/message_style.py +0 -0
  31. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/terminal_agent/models.py +0 -0
  32. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/terminal_agent/path_context_hint.py +0 -0
  33. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/terminal_agent/plugins/__init__.py +0 -0
  34. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/terminal_agent/plugins/components/__init__.py +0 -0
  35. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/terminal_agent/plugins/components/detail_view.py +0 -0
  36. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/terminal_agent/plugins/components/plugin_list.py +0 -0
  37. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/terminal_agent/plugins/components/search_box.py +0 -0
  38. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/terminal_agent/plugins/components/tab_bar.py +0 -0
  39. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/terminal_agent/plugins/marketplace_install_view.py +0 -0
  40. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/terminal_agent/plugins/plugin_picker.py +0 -0
  41. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/terminal_agent/plugins/tabs/__init__.py +0 -0
  42. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/terminal_agent/plugins/tabs/discover_tab.py +0 -0
  43. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/terminal_agent/plugins/tabs/errors_tab.py +0 -0
  44. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/terminal_agent/plugins/tabs/installed_tab.py +0 -0
  45. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/terminal_agent/plugins/tabs/marketplaces_tab.py +0 -0
  46. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/terminal_agent/preflight.py +0 -0
  47. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/terminal_agent/question_view.py +0 -0
  48. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/terminal_agent/resume_picker.py +0 -0
  49. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/terminal_agent/resume_preview.py +0 -0
  50. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/terminal_agent/resume_selector.py +0 -0
  51. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/terminal_agent/rpc_protocol.py +0 -0
  52. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/terminal_agent/rpc_stdio.py +0 -0
  53. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/terminal_agent/selection_menu.py +0 -0
  54. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/terminal_agent/slash_commands.py +0 -0
  55. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/terminal_agent/startup.py +0 -0
  56. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/terminal_agent/status_bar.py +0 -0
  57. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/terminal_agent/text_effects.py +0 -0
  58. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/terminal_agent/tips.py +0 -0
  59. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/terminal_agent/tool_result_formatters.py +0 -0
  60. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/terminal_agent/tool_result_store.py +0 -0
  61. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/terminal_agent/tool_result_viewer.py +0 -0
  62. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/terminal_agent/tool_view.py +0 -0
  63. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/terminal_agent/transcript_viewer.py +0 -0
  64. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/terminal_agent/tui.py +0 -0
  65. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/terminal_agent/tui_parts/__init__.py +0 -0
  66. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/terminal_agent/tui_parts/btw_view.py +0 -0
  67. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/terminal_agent/tui_parts/commands.py +0 -0
  68. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/terminal_agent/tui_parts/history_sync.py +0 -0
  69. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/terminal_agent/tui_parts/input_behavior.py +0 -0
  70. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/terminal_agent/tui_parts/key_bindings.py +0 -0
  71. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/terminal_agent/tui_parts/mcp_connecting_view.py +0 -0
  72. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/terminal_agent/tui_parts/render_panels.py +0 -0
  73. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/terminal_agent/tui_parts/slash_command_registry.py +0 -0
  74. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/comate_cli/terminal_agent/tui_parts/ui_mode.py +0 -0
  75. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/docs/hooks.md +0 -0
  76. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/docs/superpowers/plans/2026-04-03-phrase-shuffle.md +0 -0
  77. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/docs/superpowers/specs/2026-04-01-conditional-diff-subtitle-design.md +0 -0
  78. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/docs/superpowers/specs/2026-04-03-phrase-shuffle-design.md +0 -0
  79. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/conftest.py +0 -0
  80. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_animator_shuffle.py +0 -0
  81. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_app_mcp_preload.py +0 -0
  82. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_app_preflight_gate.py +0 -0
  83. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_app_print_mode.py +0 -0
  84. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_app_shutdown.py +0 -0
  85. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_app_usage_line.py +0 -0
  86. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_btw_slash_command.py +0 -0
  87. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_cli_project_root.py +0 -0
  88. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_compact_command_semantics.py +0 -0
  89. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_completion_context_activation.py +0 -0
  90. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_completion_status_panel.py +0 -0
  91. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_context_command.py +0 -0
  92. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_custom_slash_commands.py +0 -0
  93. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_discover_tab.py +0 -0
  94. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_errors_tab.py +0 -0
  95. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_event_renderer.py +0 -0
  96. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_event_renderer_boundary.py +0 -0
  97. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_event_renderer_e2e.py +0 -0
  98. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_event_renderer_log_boundary.py +0 -0
  99. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_event_renderer_log_queue.py +0 -0
  100. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_event_renderer_streaming.py +0 -0
  101. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_format_error.py +0 -0
  102. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_handle_error.py +0 -0
  103. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_history_printer.py +0 -0
  104. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_history_printer_log.py +0 -0
  105. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_history_sync.py +0 -0
  106. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_input_behavior.py +0 -0
  107. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_input_history.py +0 -0
  108. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_installed_tab.py +0 -0
  109. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_interrupt_exit_semantics.py +0 -0
  110. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_layout_coordinator.py +0 -0
  111. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_logging_adapter.py +0 -0
  112. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_logo.py +0 -0
  113. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_main_args.py +0 -0
  114. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_markdown_render.py +0 -0
  115. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_marketplaces_tab.py +0 -0
  116. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_mcp_cli.py +0 -0
  117. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_mcp_slash_command.py +0 -0
  118. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_path_context_hint.py +0 -0
  119. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_plugin_slash_commands.py +0 -0
  120. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_plugin_tui_components.py +0 -0
  121. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_preflight.py +0 -0
  122. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_preflight_copilot.py +0 -0
  123. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_question_key_bindings.py +0 -0
  124. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_question_view.py +0 -0
  125. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_resume_picker.py +0 -0
  126. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_resume_preview.py +0 -0
  127. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_resume_selector.py +0 -0
  128. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_rewind_command_semantics.py +0 -0
  129. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_rpc_protocol.py +0 -0
  130. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_rpc_stdio_bridge.py +0 -0
  131. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_selection_menu.py +0 -0
  132. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_session_query_token_summary.py +0 -0
  133. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_skills_slash_command.py +0 -0
  134. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_slash_argument_hint.py +0 -0
  135. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_slash_completer.py +0 -0
  136. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_slash_registry.py +0 -0
  137. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_status_bar.py +0 -0
  138. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_status_bar_transient.py +0 -0
  139. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_task_panel_format.py +0 -0
  140. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_task_panel_key_bindings.py +0 -0
  141. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_task_panel_rendering.py +0 -0
  142. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_task_poll.py +0 -0
  143. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_tool_result_formatters.py +0 -0
  144. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_tool_result_store.py +0 -0
  145. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_tool_result_viewer.py +0 -0
  146. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_tool_result_viewer_key_bindings.py +0 -0
  147. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_tool_view.py +0 -0
  148. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_transcript_viewer.py +0 -0
  149. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_tui_elapsed_status.py +0 -0
  150. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_tui_esc_queue.py +0 -0
  151. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_tui_mcp_init_gate.py +0 -0
  152. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_tui_paste_placeholder.py +0 -0
  153. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_tui_queue_preview.py +0 -0
  154. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_tui_queue_sdk_source.py +0 -0
  155. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_tui_split_invariance.py +0 -0
  156. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_tui_team_messages.py +0 -0
  157. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_tui_tool_result_registry_lifecycle.py +0 -0
  158. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/tests/test_update_check.py +0 -0
  159. {comate_cli-0.7.0a4 → comate_cli-0.7.0a5}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: comate-cli
3
- Version: 0.7.0a4
3
+ Version: 0.7.0a5
4
4
  Summary: Comate terminal CLI built on comate-agent-sdk
5
5
  Project-URL: Homepage, https://github.com/AndyLee1024/agent-sdk
6
6
  Project-URL: Repository, https://github.com/AndyLee1024/agent-sdk
@@ -412,6 +412,8 @@ class LocalFileMentionCompleter(Completer):
412
412
  cwd=self._root,
413
413
  capture_output=True,
414
414
  text=True,
415
+ encoding="utf-8",
416
+ errors="replace",
415
417
  check=False,
416
418
  timeout=5,
417
419
  )
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "comate-cli"
7
- version = "0.7.0a4"
7
+ version = "0.7.0a5"
8
8
  description = "Comate terminal CLI built on comate-agent-sdk"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
@@ -562,6 +562,38 @@ class TestLocalFileMentionCompleter(unittest.TestCase):
562
562
  quotepath_index = cmd.index("core.quotepath=false")
563
563
  self.assertLess(quotepath_index, ls_files_index)
564
564
 
565
+ def test_git_index_decodes_utf8_paths_without_windows_locale_loss(self) -> None:
566
+ """Windows 中文 locale 下 subprocess text 模式默认按 GBK 解码。
567
+
568
+ git 在 core.quotepath=false 时输出 UTF-8 路径;索引命令必须显式用
569
+ UTF-8 解码,不能依赖进程 locale。
570
+ """
571
+ payload = "docs/测.txt\n".encode("utf-8")
572
+
573
+ def _run_with_windows_locale_default(
574
+ args: list[str],
575
+ **kwargs: object,
576
+ ) -> subprocess.CompletedProcess[str]:
577
+ encoding = str(kwargs.get("encoding") or "gbk")
578
+ errors = str(kwargs.get("errors") or "replace")
579
+ return subprocess.CompletedProcess(
580
+ args=args,
581
+ returncode=0,
582
+ stdout=payload.decode(encoding, errors=errors),
583
+ stderr="",
584
+ )
585
+
586
+ with patch(
587
+ "comate_cli.terminal_agent.mention_completer.subprocess.run",
588
+ side_effect=_run_with_windows_locale_default,
589
+ ) as mock_run:
590
+ paths = self.completer._get_paths_from_git()
591
+
592
+ self.assertEqual(paths, ["docs/测.txt"])
593
+ _, kwargs = mock_run.call_args
594
+ self.assertEqual(kwargs.get("encoding"), "utf-8")
595
+ self.assertEqual(kwargs.get("errors"), "replace")
596
+
565
597
  @unittest.skipUnless(shutil.which("git"), "git not available")
566
598
  def test_git_index_handles_chinese_paths_with_default_quotepath(self) -> None:
567
599
  """Bug #1 端到端:在默认 git 配置下(core.quotepath=true),
File without changes
File without changes
File without changes
File without changes
File without changes