Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
f6eb468
feat: enable auto-reconnect for SseServer
Sep 1, 2026
9b0c736
cli-59: merged
Sep 1, 2026
ce63af0
fix: Correct SseServer inheritance for keepalive and reconnect
Sep 1, 2026
7a7990a
#666: Update `--show-prompts` to account for how conversation system …
dwash96 Sep 1, 2026
b2a6eb8
build: Exclude markdown files from flake8 linting
Sep 1, 2026
11e9213
test: implement Section 11 test cases for CLI-59
Sep 1, 2026
c680f41
docs: add SSE keep-alive and reconnection docs to README
Sep 1, 2026
53cb9d0
fix: update flake8 exclude pattern to support markdown files
Sep 1, 2026
82f5fbc
#667 - Part 1: Configure proper passthrough and storage of "none" rea…
dwash96 Sep 2, 2026
5ff7a4b
Update model metadata
dwash96 Sep 2, 2026
be0c138
#667 - Part 2: Actually detect glm and kimi models to change default …
dwash96 Sep 2, 2026
6d096e2
Make `/workspace` command work instead of adding `/open` command, upd…
dwash96 Sep 2, 2026
00653bc
Fix test file name
dwash96 Sep 2, 2026
2af5167
Detect branch changes and update TUI footer
dwash96 Sep 2, 2026
c48bbc6
Update editing guidelines
dwash96 Sep 2, 2026
e5106d2
Be clear that start line is also inclusive
dwash96 Sep 2, 2026
1780653
Make completions widget pah parsing platfom agnotstic
dwash96 Sep 2, 2026
2175d26
Make git polling foreground coder aware
dwash96 Sep 3, 2026
538bc8e
Merge remote-tracking branch 'szmania/cli-59-sse-connection-timeout' …
dwash96 Sep 3, 2026
3c451ff
Revert README change
dwash96 Sep 3, 2026
721de98
#671: Make default mcp server hack work with single task MCP server c…
dwash96 Sep 3, 2026
3fe569b
#672: Add support for model provider session headers
dwash96 Sep 3, 2026
7e601aa
Update ReadFile repeated read de-duplication
dwash96 Sep 3, 2026
5e160cc
Be clearer about what content IDs are in system prompts, strip hashli…
dwash96 Sep 4, 2026
c969caf
#673: Run tests before auto-committing
dwash96 Sep 4, 2026
9ed5e8c
Make sure skills inject without disrupting context
dwash96 Sep 5, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .flake8
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
[flake8]
ignore = E203,W503
max-line-length = 120
exclude = *.md,*.markdown
7 changes: 4 additions & 3 deletions cecli/coders/agent_coder.py
Original file line number Diff line number Diff line change
Expand Up @@ -463,7 +463,6 @@ def _calculate_context_block_tokens(self, force=False):
"skills",
"servers",
"sub_agents",
"loaded_skills",
"orchestration",
]
for block_type in block_types:
Expand Down Expand Up @@ -499,8 +498,6 @@ def _generate_context_block(self, block_name):
content = self.get_skills_context()
elif block_name == "servers":
content = self.get_servers_context()
elif block_name == "loaded_skills":
content = self.get_skills_content()
elif block_name == "orchestration":
content = self.get_orchestration_context()
elif block_name == "sub_agents" and (
Expand Down Expand Up @@ -643,6 +640,10 @@ def format_chat_chunks(self):
# Add pre-message context blocks (priority 125 - between REPO and READONLY_FILES)
ConversationService.get_chunks(self).add_pre_message_context_blocks()

ConversationService.get_chunks(self).add_active_skills_messages(
getattr(self, "skills_manager", None)
)

ConversationService.get_chunks(self).add_readonly_files_messages()
ConversationService.get_chunks(self).add_chat_files_messages()

Expand Down
20 changes: 11 additions & 9 deletions cecli/coders/base_coder.py
Original file line number Diff line number Diff line change
Expand Up @@ -2919,6 +2919,17 @@ async def format_in_executor():

edited = await self.apply_updates()

# Run tests before committing so failing tests abort the commit and
# reflect the errors back for the model to fix first.
if edited and self.auto_test and self.test_cmd:
test_errors = await self.commands.execute("test", self.test_cmd)
self.test_outcome = not test_errors
if test_errors:
ok = await self.io.confirm_ask("Attempt to fix test errors?")
if ok:
self.reflected_message = test_errors
return

if edited:
self.coder_edited_files.update(edited)
saved_message = await self.auto_commit(edited)
Expand Down Expand Up @@ -2991,15 +3002,6 @@ async def format_in_executor():
mark_for_demotion=1,
)

if edited and self.auto_test and self.test_cmd:
test_errors = await self.commands.execute("test", self.test_cmd)
self.test_outcome = not test_errors
if test_errors:
ok = await self.io.confirm_ask("Attempt to fix test errors?")
if ok:
self.reflected_message = test_errors
return

# Turn complete: drop the per-turn LLM stream buffers. They are reset at
# the start of the next send(), so holding on to them while idle only
# wastes memory (chunks can be large for long streaming responses).
Expand Down
3 changes: 0 additions & 3 deletions cecli/commands/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,6 @@
from .model import ModelCommand
from .models import ModelsCommand
from .multiline_mode import MultilineModeCommand
from .open import OpenCommand
from .paste import PasteCommand
from .queue import QueueCommand
from .quit import QuitCommand
Expand Down Expand Up @@ -152,7 +151,6 @@
CommandRegistry.register(ModelCommand)
CommandRegistry.register(ModelsCommand)
CommandRegistry.register(MultilineModeCommand)
CommandRegistry.register(OpenCommand)
CommandRegistry.register(PasteCommand)
CommandRegistry.register(QueueCommand)
CommandRegistry.register(QuitCommand)
Expand Down Expand Up @@ -242,7 +240,6 @@
"ModelCommand",
"ModelsCommand",
"MultilineModeCommand",
"OpenCommand",
"parse_quoted_filenames",
"PasteCommand",
"quote_filename",
Expand Down
1 change: 1 addition & 0 deletions cecli/commands/load_mcp.py
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,7 @@ def get_completions(cls, io, coder, args) -> List[str]:
server.name
for server in coder.mcp_manager
if server not in coder.mcp_manager.connected_servers
and server.name != "unnamed-server"
]
return server_names
except Exception:
Expand Down
76 changes: 0 additions & 76 deletions cecli/commands/open.py

This file was deleted.

2 changes: 1 addition & 1 deletion cecli/commands/run.py
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ async def execute(cls, io, coder, args, **kwargs):
io.placeholder = "What's wrong? Fix"

if add_on_nonzero_exit and not exit_status:
return "" # No test failures
return "Test command ran by user. All tests passed." # No test failures

# Return None if output wasn't added or command succeeded
return format_command_result(io, "run", "Command executed successfully")
Expand Down
Loading
Loading