fix: clean up defensive shims and finish CI stabilization from #17660 (#17801)

PR #17660 landed a sweep of CI fixes but left three loose ends:

1. tests/cli/test_cli_loading_indicator.py::test_reload_mcp_sets_busy_state_
   and_prints_status — /reload-mcp gained a prompt-cache-invalidation
   confirmation (commit 4d7fc0f37) that was never wired into this test.
   The test exercises the loading-indicator path, so pre-approve via
   config and go straight into _reload_mcp().

2. tools/mcp_tool.py _make_tool_handler — the added
   getattr(server, '_rpc_lock', None) + 'skip the lock if missing'
   branch is inconsistent with four sibling call sites that still
   direct-access server._rpc_lock. The lock is guaranteed by
   MCPServerTask.__init__; falling through to an unlocked
   session.call_tool would silently serialize-strip RPCs if the guard
   ever triggered. Restore direct access.

3. tui_gateway/server.py _messages_as_conversation — the helper
   existed only to catch 'TypeError: include_ancestors unexpected'
   from mocked SessionDBs that don't actually exist. The real
   SessionDB.get_messages_as_conversation has accepted
   include_ancestors since introduction, and every test FakeDB in
   the repo already declares the kwarg. Remove the shim, inline the
   two call sites.
This commit is contained in:
Teknium 2026-04-29 23:53:17 -07:00 committed by GitHub
parent 3c27efbb91
commit 21e695fcb6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 14 additions and 23 deletions

View file

@ -1860,18 +1860,6 @@ def _enrich_with_attached_images(user_text: str, image_paths: list[str]) -> str:
return text or "What do you see in this image?"
def _messages_as_conversation(db, session_id: str, *, include_ancestors: bool = False):
if include_ancestors:
try:
return db.get_messages_as_conversation(
session_id, include_ancestors=True
)
except TypeError as exc:
if "include_ancestors" not in str(exc):
raise
return db.get_messages_as_conversation(session_id)
def _history_to_messages(history: list[dict]) -> list[dict]:
messages = []
tool_call_args = {}
@ -2080,9 +2068,9 @@ def _(rid, params: dict) -> dict:
_enable_gateway_prompts()
try:
db.reopen_session(target)
history = _messages_as_conversation(db, target)
display_history = _messages_as_conversation(
db, target, include_ancestors=True
history = db.get_messages_as_conversation(target)
display_history = db.get_messages_as_conversation(
target, include_ancestors=True
)
messages = _history_to_messages(display_history)
tokens = _set_session_context(target)
@ -2227,8 +2215,8 @@ def _(rid, params: dict) -> dict:
db = _get_db()
if db is not None and session.get("session_key"):
try:
history = _messages_as_conversation(
db, session["session_key"], include_ancestors=True
history = db.get_messages_as_conversation(
session["session_key"], include_ancestors=True
)
except Exception:
pass