Private
Public Access
refactor(ai_client): migrate cleanup + reset_session cache.delete to helper (Phase 11 sites 3+4)
Sites L432 (cleanup) and L450 (reset_session) had:
try: _gemini_client.caches.delete(name=_gemini_cache.name)
except Exception: pass
This is bare 'except: pass' = INTERNAL_SILENT_SWALLOW violation (logging is NOT
a drain; 'pass' is the worst form of silent recovery).
Migration: use existing _delete_gemini_cache_result() helper (added Phase 10).
The helper returns Result[None]; on SDK error logs a warning to comms.
The caller ignores the Result (cleanup is best-effort).
Audit: ai_client SS 11 -> 9.
This commit is contained in:
+2
-10
@@ -426,11 +426,7 @@ def cleanup() -> None:
|
|||||||
"""Performs cleanup operations like deleting server-side Gemini caches."""
|
"""Performs cleanup operations like deleting server-side Gemini caches."""
|
||||||
global _gemini_client, _gemini_cache, _gemini_cached_file_paths
|
global _gemini_client, _gemini_cache, _gemini_cached_file_paths
|
||||||
if _gemini_client and _gemini_cache:
|
if _gemini_client and _gemini_cache:
|
||||||
#TODO(Ed): Exception(Review)
|
_delete_gemini_cache_result()
|
||||||
try:
|
|
||||||
_gemini_client.caches.delete(name=_gemini_cache.name)
|
|
||||||
except Exception:
|
|
||||||
pass
|
|
||||||
_gemini_cached_file_paths = []
|
_gemini_cached_file_paths = []
|
||||||
|
|
||||||
def reset_session() -> None:
|
def reset_session() -> None:
|
||||||
@@ -444,11 +440,7 @@ def reset_session() -> None:
|
|||||||
global _CACHED_ANTHROPIC_TOOLS, _CACHED_DEEPSEEK_TOOLS
|
global _CACHED_ANTHROPIC_TOOLS, _CACHED_DEEPSEEK_TOOLS
|
||||||
global _gemini_cli_adapter
|
global _gemini_cli_adapter
|
||||||
if _gemini_client and _gemini_cache:
|
if _gemini_client and _gemini_cache:
|
||||||
#TODO(Ed): Review(Exception)
|
_delete_gemini_cache_result()
|
||||||
try:
|
|
||||||
_gemini_client.caches.delete(name=_gemini_cache.name)
|
|
||||||
except Exception:
|
|
||||||
pass
|
|
||||||
_gemini_client = None
|
_gemini_client = None
|
||||||
_gemini_chat = None
|
_gemini_chat = None
|
||||||
_gemini_cache = None
|
_gemini_cache = None
|
||||||
|
|||||||
@@ -0,0 +1,34 @@
|
|||||||
|
"""Phase 11 sites 3+4: cleanup + reset_session cache.delete.
|
||||||
|
|
||||||
|
Both have:
|
||||||
|
try: _gemini_client.caches.delete(name=_gemini_cache.name)
|
||||||
|
except Exception: pass
|
||||||
|
|
||||||
|
Migration: use _delete_gemini_cache_result() (already added in Phase 10).
|
||||||
|
The helper returns Result[None]; on error it logs a warning and resets
|
||||||
|
cache state. Caller ignores the Result.
|
||||||
|
"""
|
||||||
|
import sys
|
||||||
|
sys.path.insert(0, ".")
|
||||||
|
|
||||||
|
|
||||||
|
def test_phase11_sites34_cleanup_calls_delete_helper():
|
||||||
|
"""cleanup() must call _delete_gemini_cache_result, not raw caches.delete."""
|
||||||
|
import inspect
|
||||||
|
import src.ai_client
|
||||||
|
src_text = inspect.getsource(src.ai_client.cleanup)
|
||||||
|
assert "_delete_gemini_cache_result" in src_text, \
|
||||||
|
"cleanup() should call _delete_gemini_cache_result helper"
|
||||||
|
assert "except Exception" not in src_text, \
|
||||||
|
"cleanup() must NOT have a bare 'except Exception: pass'"
|
||||||
|
|
||||||
|
|
||||||
|
def test_phase11_sites34_reset_session_calls_delete_helper():
|
||||||
|
"""reset_session() must call _delete_gemini_cache_result, not raw caches.delete."""
|
||||||
|
import inspect
|
||||||
|
import src.ai_client
|
||||||
|
src_text = inspect.getsource(src.ai_client.reset_session)
|
||||||
|
assert "_delete_gemini_cache_result" in src_text, \
|
||||||
|
"reset_session() should call _delete_gemini_cache_result helper"
|
||||||
|
assert "except Exception" not in src_text, \
|
||||||
|
"reset_session() must NOT have a bare 'except Exception: pass'"
|
||||||
Reference in New Issue
Block a user