comate-cli 0.6.1__tar.gz → 0.6.2__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 (142) hide show
  1. {comate_cli-0.6.1 → comate_cli-0.6.2}/PKG-INFO +1 -1
  2. {comate_cli-0.6.1 → comate_cli-0.6.2}/comate_cli/terminal_agent/event_renderer.py +0 -1
  3. {comate_cli-0.6.1 → comate_cli-0.6.2}/pyproject.toml +1 -1
  4. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_event_renderer_log_boundary.py +17 -10
  5. {comate_cli-0.6.1 → comate_cli-0.6.2}/.gitignore +0 -0
  6. {comate_cli-0.6.1 → comate_cli-0.6.2}/README.md +0 -0
  7. {comate_cli-0.6.1 → comate_cli-0.6.2}/comate_cli/__init__.py +0 -0
  8. {comate_cli-0.6.1 → comate_cli-0.6.2}/comate_cli/__main__.py +0 -0
  9. {comate_cli-0.6.1 → comate_cli-0.6.2}/comate_cli/main.py +0 -0
  10. {comate_cli-0.6.1 → comate_cli-0.6.2}/comate_cli/mcp_cli.py +0 -0
  11. {comate_cli-0.6.1 → comate_cli-0.6.2}/comate_cli/terminal_agent/__init__.py +0 -0
  12. {comate_cli-0.6.1 → comate_cli-0.6.2}/comate_cli/terminal_agent/animations.py +0 -0
  13. {comate_cli-0.6.1 → comate_cli-0.6.2}/comate_cli/terminal_agent/app.py +0 -0
  14. {comate_cli-0.6.1 → comate_cli-0.6.2}/comate_cli/terminal_agent/assistant_render.py +0 -0
  15. {comate_cli-0.6.1 → comate_cli-0.6.2}/comate_cli/terminal_agent/codenames.py +0 -0
  16. {comate_cli-0.6.1 → comate_cli-0.6.2}/comate_cli/terminal_agent/custom_slash_commands.py +0 -0
  17. {comate_cli-0.6.1 → comate_cli-0.6.2}/comate_cli/terminal_agent/env_utils.py +0 -0
  18. {comate_cli-0.6.1 → comate_cli-0.6.2}/comate_cli/terminal_agent/error_display.py +0 -0
  19. {comate_cli-0.6.1 → comate_cli-0.6.2}/comate_cli/terminal_agent/figures.py +0 -0
  20. {comate_cli-0.6.1 → comate_cli-0.6.2}/comate_cli/terminal_agent/fragment_utils.py +0 -0
  21. {comate_cli-0.6.1 → comate_cli-0.6.2}/comate_cli/terminal_agent/history_printer.py +0 -0
  22. {comate_cli-0.6.1 → comate_cli-0.6.2}/comate_cli/terminal_agent/input_geometry.py +0 -0
  23. {comate_cli-0.6.1 → comate_cli-0.6.2}/comate_cli/terminal_agent/layout_coordinator.py +0 -0
  24. {comate_cli-0.6.1 → comate_cli-0.6.2}/comate_cli/terminal_agent/logging_adapter.py +0 -0
  25. {comate_cli-0.6.1 → comate_cli-0.6.2}/comate_cli/terminal_agent/logo.py +0 -0
  26. {comate_cli-0.6.1 → comate_cli-0.6.2}/comate_cli/terminal_agent/markdown_render.py +0 -0
  27. {comate_cli-0.6.1 → comate_cli-0.6.2}/comate_cli/terminal_agent/mention_completer.py +0 -0
  28. {comate_cli-0.6.1 → comate_cli-0.6.2}/comate_cli/terminal_agent/message_style.py +0 -0
  29. {comate_cli-0.6.1 → comate_cli-0.6.2}/comate_cli/terminal_agent/models.py +0 -0
  30. {comate_cli-0.6.1 → comate_cli-0.6.2}/comate_cli/terminal_agent/path_context_hint.py +0 -0
  31. {comate_cli-0.6.1 → comate_cli-0.6.2}/comate_cli/terminal_agent/plugins/__init__.py +0 -0
  32. {comate_cli-0.6.1 → comate_cli-0.6.2}/comate_cli/terminal_agent/plugins/components/__init__.py +0 -0
  33. {comate_cli-0.6.1 → comate_cli-0.6.2}/comate_cli/terminal_agent/plugins/components/detail_view.py +0 -0
  34. {comate_cli-0.6.1 → comate_cli-0.6.2}/comate_cli/terminal_agent/plugins/components/plugin_list.py +0 -0
  35. {comate_cli-0.6.1 → comate_cli-0.6.2}/comate_cli/terminal_agent/plugins/components/search_box.py +0 -0
  36. {comate_cli-0.6.1 → comate_cli-0.6.2}/comate_cli/terminal_agent/plugins/components/tab_bar.py +0 -0
  37. {comate_cli-0.6.1 → comate_cli-0.6.2}/comate_cli/terminal_agent/plugins/marketplace_install_view.py +0 -0
  38. {comate_cli-0.6.1 → comate_cli-0.6.2}/comate_cli/terminal_agent/plugins/plugin_picker.py +0 -0
  39. {comate_cli-0.6.1 → comate_cli-0.6.2}/comate_cli/terminal_agent/plugins/tabs/__init__.py +0 -0
  40. {comate_cli-0.6.1 → comate_cli-0.6.2}/comate_cli/terminal_agent/plugins/tabs/discover_tab.py +0 -0
  41. {comate_cli-0.6.1 → comate_cli-0.6.2}/comate_cli/terminal_agent/plugins/tabs/errors_tab.py +0 -0
  42. {comate_cli-0.6.1 → comate_cli-0.6.2}/comate_cli/terminal_agent/plugins/tabs/installed_tab.py +0 -0
  43. {comate_cli-0.6.1 → comate_cli-0.6.2}/comate_cli/terminal_agent/plugins/tabs/marketplaces_tab.py +0 -0
  44. {comate_cli-0.6.1 → comate_cli-0.6.2}/comate_cli/terminal_agent/preflight.py +0 -0
  45. {comate_cli-0.6.1 → comate_cli-0.6.2}/comate_cli/terminal_agent/question_view.py +0 -0
  46. {comate_cli-0.6.1 → comate_cli-0.6.2}/comate_cli/terminal_agent/resume_selector.py +0 -0
  47. {comate_cli-0.6.1 → comate_cli-0.6.2}/comate_cli/terminal_agent/rewind_store.py +0 -0
  48. {comate_cli-0.6.1 → comate_cli-0.6.2}/comate_cli/terminal_agent/rpc_protocol.py +0 -0
  49. {comate_cli-0.6.1 → comate_cli-0.6.2}/comate_cli/terminal_agent/rpc_stdio.py +0 -0
  50. {comate_cli-0.6.1 → comate_cli-0.6.2}/comate_cli/terminal_agent/selection_menu.py +0 -0
  51. {comate_cli-0.6.1 → comate_cli-0.6.2}/comate_cli/terminal_agent/session_view.py +0 -0
  52. {comate_cli-0.6.1 → comate_cli-0.6.2}/comate_cli/terminal_agent/slash_commands.py +0 -0
  53. {comate_cli-0.6.1 → comate_cli-0.6.2}/comate_cli/terminal_agent/startup.py +0 -0
  54. {comate_cli-0.6.1 → comate_cli-0.6.2}/comate_cli/terminal_agent/status_bar.py +0 -0
  55. {comate_cli-0.6.1 → comate_cli-0.6.2}/comate_cli/terminal_agent/text_effects.py +0 -0
  56. {comate_cli-0.6.1 → comate_cli-0.6.2}/comate_cli/terminal_agent/tips.py +0 -0
  57. {comate_cli-0.6.1 → comate_cli-0.6.2}/comate_cli/terminal_agent/tool_view.py +0 -0
  58. {comate_cli-0.6.1 → comate_cli-0.6.2}/comate_cli/terminal_agent/tui.py +0 -0
  59. {comate_cli-0.6.1 → comate_cli-0.6.2}/comate_cli/terminal_agent/tui_parts/__init__.py +0 -0
  60. {comate_cli-0.6.1 → comate_cli-0.6.2}/comate_cli/terminal_agent/tui_parts/commands.py +0 -0
  61. {comate_cli-0.6.1 → comate_cli-0.6.2}/comate_cli/terminal_agent/tui_parts/history_sync.py +0 -0
  62. {comate_cli-0.6.1 → comate_cli-0.6.2}/comate_cli/terminal_agent/tui_parts/input_behavior.py +0 -0
  63. {comate_cli-0.6.1 → comate_cli-0.6.2}/comate_cli/terminal_agent/tui_parts/key_bindings.py +0 -0
  64. {comate_cli-0.6.1 → comate_cli-0.6.2}/comate_cli/terminal_agent/tui_parts/mcp_connecting_view.py +0 -0
  65. {comate_cli-0.6.1 → comate_cli-0.6.2}/comate_cli/terminal_agent/tui_parts/render_panels.py +0 -0
  66. {comate_cli-0.6.1 → comate_cli-0.6.2}/comate_cli/terminal_agent/tui_parts/slash_command_registry.py +0 -0
  67. {comate_cli-0.6.1 → comate_cli-0.6.2}/comate_cli/terminal_agent/tui_parts/ui_mode.py +0 -0
  68. {comate_cli-0.6.1 → comate_cli-0.6.2}/docs/superpowers/plans/2026-04-03-phrase-shuffle.md +0 -0
  69. {comate_cli-0.6.1 → comate_cli-0.6.2}/docs/superpowers/specs/2026-04-01-conditional-diff-subtitle-design.md +0 -0
  70. {comate_cli-0.6.1 → comate_cli-0.6.2}/docs/superpowers/specs/2026-04-03-phrase-shuffle-design.md +0 -0
  71. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/conftest.py +0 -0
  72. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_animator_shuffle.py +0 -0
  73. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_app_mcp_preload.py +0 -0
  74. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_app_preflight_gate.py +0 -0
  75. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_app_print_mode.py +0 -0
  76. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_app_shutdown.py +0 -0
  77. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_app_usage_line.py +0 -0
  78. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_cli_project_root.py +0 -0
  79. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_compact_command_semantics.py +0 -0
  80. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_completion_context_activation.py +0 -0
  81. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_completion_status_panel.py +0 -0
  82. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_context_command.py +0 -0
  83. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_custom_slash_commands.py +0 -0
  84. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_discover_tab.py +0 -0
  85. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_errors_tab.py +0 -0
  86. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_event_renderer.py +0 -0
  87. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_event_renderer_boundary.py +0 -0
  88. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_event_renderer_e2e.py +0 -0
  89. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_event_renderer_log_queue.py +0 -0
  90. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_event_renderer_streaming.py +0 -0
  91. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_format_error.py +0 -0
  92. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_handle_error.py +0 -0
  93. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_history_printer.py +0 -0
  94. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_history_printer_log.py +0 -0
  95. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_history_sync.py +0 -0
  96. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_input_behavior.py +0 -0
  97. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_input_history.py +0 -0
  98. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_installed_tab.py +0 -0
  99. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_interrupt_exit_semantics.py +0 -0
  100. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_layout_coordinator.py +0 -0
  101. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_logging_adapter.py +0 -0
  102. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_logo.py +0 -0
  103. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_main_args.py +0 -0
  104. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_markdown_render.py +0 -0
  105. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_marketplaces_tab.py +0 -0
  106. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_mcp_cli.py +0 -0
  107. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_mcp_slash_command.py +0 -0
  108. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_mention_completer.py +0 -0
  109. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_path_context_hint.py +0 -0
  110. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_plugin_slash_commands.py +0 -0
  111. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_plugin_tui_components.py +0 -0
  112. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_preflight.py +0 -0
  113. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_preflight_copilot.py +0 -0
  114. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_question_key_bindings.py +0 -0
  115. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_question_view.py +0 -0
  116. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_resume_selector.py +0 -0
  117. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_rewind_command_semantics.py +0 -0
  118. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_rewind_store.py +0 -0
  119. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_rpc_protocol.py +0 -0
  120. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_rpc_stdio_bridge.py +0 -0
  121. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_selection_menu.py +0 -0
  122. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_skills_slash_command.py +0 -0
  123. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_slash_argument_hint.py +0 -0
  124. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_slash_completer.py +0 -0
  125. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_slash_registry.py +0 -0
  126. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_status_bar.py +0 -0
  127. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_status_bar_transient.py +0 -0
  128. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_task_panel_format.py +0 -0
  129. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_task_panel_key_bindings.py +0 -0
  130. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_task_panel_rendering.py +0 -0
  131. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_task_poll.py +0 -0
  132. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_tool_view.py +0 -0
  133. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_tui_elapsed_status.py +0 -0
  134. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_tui_esc_queue.py +0 -0
  135. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_tui_mcp_init_gate.py +0 -0
  136. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_tui_paste_placeholder.py +0 -0
  137. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_tui_queue_preview.py +0 -0
  138. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_tui_queue_sdk_source.py +0 -0
  139. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_tui_split_invariance.py +0 -0
  140. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_tui_team_messages.py +0 -0
  141. {comate_cli-0.6.1 → comate_cli-0.6.2}/tests/test_update_check.py +0 -0
  142. {comate_cli-0.6.1 → comate_cli-0.6.2}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: comate-cli
3
- Version: 0.6.1
3
+ Version: 0.6.2
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
@@ -578,7 +578,6 @@ class EventRenderer:
578
578
  self._thinking_batch = ""
579
579
  self._loading_aux_text = ""
580
580
  self._rebuild_loading_line()
581
- self.flush_pending_logs()
582
581
 
583
582
  def seed_user_message(self, content: str) -> None:
584
583
  normalized = content.strip()
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "comate-cli"
7
- version = "0.6.1"
7
+ version = "0.6.2"
8
8
  description = "Comate terminal CLI built on comate-agent-sdk"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
@@ -1,11 +1,10 @@
1
1
  """运行期 boundary 触发 flush_pending_logs 的集成测试。
2
2
 
3
3
  boundary 列表:
4
- 1. start_turn()
5
- 2. _flush_assistant_segment() 提交 assistant entry 之后
6
- 3. _append_history_entry(tool_result) 之后
7
- 4. seed_user_message() 提交 user entry 之后
8
- 5. finalize_turn() 中 _force_flush_all / _flush_assistant_segment 之后
4
+ 1. _flush_assistant_segment() 提交 assistant entry 之后
5
+ 2. _append_history_entry(tool_result) 之后
6
+ 3. seed_user_message() 提交 user entry 之后
7
+ 4. finalize_turn() _force_flush_all / _flush_assistant_segment 之后
9
8
  """
10
9
  from __future__ import annotations
11
10
 
@@ -35,14 +34,20 @@ def test_seed_user_message_flushes_pending_logs_attaching_to_user() -> None:
35
34
  assert history[-1].attached is True
36
35
 
37
36
 
38
- def test_start_turn_flushes_pending_logs() -> None:
39
- """boundary 1:新 turn 开始,把 idle 期堆积的 log 落地。"""
37
+ def test_start_turn_keeps_pending_logs_until_first_visible_anchor() -> None:
38
+ """ turn 开始不抢先落地 log;第一条 user anchor 承接它。"""
40
39
  renderer = EventRenderer()
41
40
  renderer.enqueue_log(severity="warning", message="idle warn")
42
41
  renderer.start_turn()
43
- logs = _log_entries(renderer)
44
- assert len(logs) == 1
45
- assert logs[0].text == "idle warn"
42
+
43
+ assert _log_entries(renderer) == []
44
+ assert renderer._pending_logs == [("warning", "idle warn")]
45
+
46
+ renderer.seed_user_message("hello")
47
+ history = renderer.history_entries()
48
+ assert [entry.entry_type for entry in history] == ["user", "log"]
49
+ assert history[-1].text == "idle warn"
50
+ assert history[-1].attached is True
46
51
 
47
52
 
48
53
  def test_finalize_turn_flushes_pending_logs_after_text_delta_tail() -> None:
@@ -98,6 +103,8 @@ def test_interrupt_turn_does_not_drop_pending_logs() -> None:
98
103
  renderer.interrupt_turn()
99
104
  assert len(renderer._pending_logs) == 1
100
105
  renderer.start_turn()
106
+ assert len(renderer._pending_logs) == 1
107
+ renderer.seed_user_message("next turn")
101
108
  logs = _log_entries(renderer)
102
109
  assert len(logs) == 1
103
110
  assert logs[0].text == "will survive"
File without changes
File without changes
File without changes
File without changes