comate-cli 0.4.1__tar.gz → 0.4.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.
- {comate_cli-0.4.1 → comate_cli-0.4.2}/PKG-INFO +1 -1
- {comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/terminal_agent/mention_completer.py +1 -1
- {comate_cli-0.4.1 → comate_cli-0.4.2}/pyproject.toml +1 -1
- {comate_cli-0.4.1 → comate_cli-0.4.2}/tests/test_mention_completer.py +54 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/uv.lock +1 -1
- {comate_cli-0.4.1 → comate_cli-0.4.2}/.gitignore +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/README.md +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/__init__.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/__main__.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/main.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/mcp_cli.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/terminal_agent/__init__.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/terminal_agent/animations.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/terminal_agent/app.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/terminal_agent/assistant_render.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/terminal_agent/codenames.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/terminal_agent/custom_slash_commands.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/terminal_agent/env_utils.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/terminal_agent/error_display.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/terminal_agent/event_renderer.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/terminal_agent/fragment_utils.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/terminal_agent/history_printer.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/terminal_agent/input_geometry.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/terminal_agent/layout_coordinator.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/terminal_agent/logging_adapter.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/terminal_agent/logo.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/terminal_agent/markdown_render.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/terminal_agent/message_style.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/terminal_agent/models.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/terminal_agent/path_context_hint.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/terminal_agent/plugins/__init__.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/terminal_agent/plugins/components/__init__.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/terminal_agent/plugins/components/detail_view.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/terminal_agent/plugins/components/plugin_list.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/terminal_agent/plugins/components/search_box.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/terminal_agent/plugins/components/tab_bar.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/terminal_agent/plugins/marketplace_install_view.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/terminal_agent/plugins/plugin_picker.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/terminal_agent/plugins/tabs/__init__.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/terminal_agent/plugins/tabs/discover_tab.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/terminal_agent/plugins/tabs/errors_tab.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/terminal_agent/plugins/tabs/installed_tab.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/terminal_agent/plugins/tabs/marketplaces_tab.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/terminal_agent/preflight.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/terminal_agent/question_view.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/terminal_agent/resume_selector.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/terminal_agent/rewind_store.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/terminal_agent/rpc_protocol.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/terminal_agent/rpc_stdio.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/terminal_agent/selection_menu.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/terminal_agent/session_view.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/terminal_agent/slash_commands.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/terminal_agent/startup.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/terminal_agent/status_bar.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/terminal_agent/text_effects.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/terminal_agent/tips.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/terminal_agent/tool_view.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/terminal_agent/tui.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/terminal_agent/tui_parts/__init__.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/terminal_agent/tui_parts/commands.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/terminal_agent/tui_parts/history_sync.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/terminal_agent/tui_parts/input_behavior.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/terminal_agent/tui_parts/key_bindings.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/terminal_agent/tui_parts/render_panels.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/terminal_agent/tui_parts/slash_command_registry.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/terminal_agent/tui_parts/ui_mode.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/docs/superpowers/specs/2026-04-01-conditional-diff-subtitle-design.md +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/tests/conftest.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/tests/test_app_mcp_preload.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/tests/test_app_preflight_gate.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/tests/test_app_print_mode.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/tests/test_app_shutdown.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/tests/test_app_usage_line.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/tests/test_cli_project_root.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/tests/test_compact_command_semantics.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/tests/test_completion_context_activation.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/tests/test_completion_status_panel.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/tests/test_context_command.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/tests/test_custom_slash_commands.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/tests/test_discover_tab.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/tests/test_errors_tab.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/tests/test_event_renderer.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/tests/test_format_error.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/tests/test_handle_error.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/tests/test_history_printer.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/tests/test_history_sync.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/tests/test_input_behavior.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/tests/test_input_history.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/tests/test_installed_tab.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/tests/test_interrupt_exit_semantics.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/tests/test_layout_coordinator.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/tests/test_logging_adapter.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/tests/test_logo.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/tests/test_main_args.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/tests/test_marketplaces_tab.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/tests/test_mcp_cli.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/tests/test_mcp_slash_command.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/tests/test_path_context_hint.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/tests/test_plugin_slash_commands.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/tests/test_plugin_tui_components.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/tests/test_preflight.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/tests/test_preflight_copilot.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/tests/test_question_key_bindings.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/tests/test_question_view.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/tests/test_resume_selector.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/tests/test_rewind_command_semantics.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/tests/test_rewind_store.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/tests/test_rpc_protocol.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/tests/test_rpc_stdio_bridge.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/tests/test_selection_menu.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/tests/test_skills_slash_command.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/tests/test_slash_argument_hint.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/tests/test_slash_completer.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/tests/test_slash_registry.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/tests/test_status_bar.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/tests/test_status_bar_transient.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/tests/test_task_panel_format.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/tests/test_task_panel_key_bindings.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/tests/test_task_panel_rendering.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/tests/test_task_poll.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/tests/test_tool_view.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/tests/test_tui_elapsed_status.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/tests/test_tui_mcp_init_gate.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/tests/test_tui_paste_placeholder.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/tests/test_tui_split_invariance.py +0 -0
- {comate_cli-0.4.1 → comate_cli-0.4.2}/tests/test_update_check.py +0 -0
|
@@ -157,7 +157,7 @@ class LocalFileMentionCompleter(Completer):
|
|
|
157
157
|
if not matched:
|
|
158
158
|
return None
|
|
159
159
|
matched.sort(key=str.lower)
|
|
160
|
-
return context, matched
|
|
160
|
+
return context, matched
|
|
161
161
|
|
|
162
162
|
source = self._candidate_paths(context.fragment)
|
|
163
163
|
if not source:
|
|
@@ -23,6 +23,48 @@ class TestLocalFileMentionCompleter(unittest.TestCase):
|
|
|
23
23
|
def tearDown(self) -> None:
|
|
24
24
|
self._tmpdir.cleanup()
|
|
25
25
|
|
|
26
|
+
def _populate_many_src_directories(self) -> None:
|
|
27
|
+
names = [
|
|
28
|
+
"assistant",
|
|
29
|
+
"bootstrap",
|
|
30
|
+
"bridge",
|
|
31
|
+
"buddy",
|
|
32
|
+
"cli",
|
|
33
|
+
"commands",
|
|
34
|
+
"components",
|
|
35
|
+
"constants",
|
|
36
|
+
"context",
|
|
37
|
+
"coordinator",
|
|
38
|
+
"entrypoints",
|
|
39
|
+
"history",
|
|
40
|
+
"hooks",
|
|
41
|
+
"ink",
|
|
42
|
+
"keybindings",
|
|
43
|
+
"memdir",
|
|
44
|
+
"migrations",
|
|
45
|
+
"moreright",
|
|
46
|
+
"native-ts",
|
|
47
|
+
"outputStyles",
|
|
48
|
+
"plugins",
|
|
49
|
+
"query",
|
|
50
|
+
"remote",
|
|
51
|
+
"schemas",
|
|
52
|
+
"screens",
|
|
53
|
+
"server",
|
|
54
|
+
"services",
|
|
55
|
+
"skills",
|
|
56
|
+
"state",
|
|
57
|
+
"tasks",
|
|
58
|
+
"tools",
|
|
59
|
+
"types",
|
|
60
|
+
"upstreamproxy",
|
|
61
|
+
"utils",
|
|
62
|
+
"vim",
|
|
63
|
+
"voice",
|
|
64
|
+
]
|
|
65
|
+
for name in names:
|
|
66
|
+
(self.root / "src" / name).mkdir(parents=True, exist_ok=True)
|
|
67
|
+
|
|
26
68
|
def test_guard_ignores_email_trigger(self) -> None:
|
|
27
69
|
context = self.completer.extract_context("contact me: foo@example.com")
|
|
28
70
|
self.assertIsNone(context)
|
|
@@ -98,6 +140,18 @@ class TestLocalFileMentionCompleter(unittest.TestCase):
|
|
|
98
140
|
_, candidates = result
|
|
99
141
|
self.assertIn("target/sub/", candidates)
|
|
100
142
|
|
|
143
|
+
def test_directory_completion_does_not_truncate_late_entries(self) -> None:
|
|
144
|
+
self._populate_many_src_directories()
|
|
145
|
+
|
|
146
|
+
doc = Document(text="@src/", cursor_position=len("@src/"))
|
|
147
|
+
event = CompleteEvent(completion_requested=True)
|
|
148
|
+
|
|
149
|
+
completions = list(self.completer.get_completions(doc, event))
|
|
150
|
+
|
|
151
|
+
self.assertTrue(completions)
|
|
152
|
+
display_texts = [completion.display_text for completion in completions]
|
|
153
|
+
self.assertIn("src/tools/", display_texts)
|
|
154
|
+
|
|
101
155
|
|
|
102
156
|
if __name__ == "__main__":
|
|
103
157
|
unittest.main(verbosity=2)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/terminal_agent/plugins/components/__init__.py
RENAMED
|
File without changes
|
{comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/terminal_agent/plugins/components/detail_view.py
RENAMED
|
File without changes
|
{comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/terminal_agent/plugins/components/plugin_list.py
RENAMED
|
File without changes
|
{comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/terminal_agent/plugins/components/search_box.py
RENAMED
|
File without changes
|
{comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/terminal_agent/plugins/components/tab_bar.py
RENAMED
|
File without changes
|
{comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/terminal_agent/plugins/marketplace_install_view.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/terminal_agent/plugins/tabs/discover_tab.py
RENAMED
|
File without changes
|
|
File without changes
|
{comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/terminal_agent/plugins/tabs/installed_tab.py
RENAMED
|
File without changes
|
{comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/terminal_agent/plugins/tabs/marketplaces_tab.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{comate_cli-0.4.1 → comate_cli-0.4.2}/comate_cli/terminal_agent/tui_parts/slash_command_registry.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|