diff --git a/ai-hub/app/core/grpc/services/grpc_server.py b/ai-hub/app/core/grpc/services/grpc_server.py index 84975aa..37a5546 100644 --- a/ai-hub/app/core/grpc/services/grpc_server.py +++ b/ai-hub/app/core/grpc/services/grpc_server.py @@ -230,7 +230,10 @@ def _read_results(): try: for msg in request_iterator: - self._handle_client_message(msg, node_id, node) + try: + self._handle_client_message(msg, node_id, node) + except Exception as inner_e: + logger.error(f"[!] Error processing task message from {node_id}: {inner_e}", exc_info=True) except Exception as e: logger.warning(f"Results listener closed for {node_id}: {e}") @@ -371,7 +374,11 @@ # M6: Only reconcile for real user sessions, not for the modular explorer. if fs.session_id != "__fs_explorer__": - drifts = self.mirror.reconcile(fs.session_id, fs.manifest) + # Do not reconcile on shallow manifests triggered by interactive FS tools + if task_id and any(task_id.startswith(p) for p in ("fs-ls-", "fs-write-", "fs-rm-")): + pass + else: + drifts = self.mirror.reconcile(fs.session_id, fs.manifest) if drifts: print(f" [📁🏃] Drift Detected (Node -> Server): Requesting {len(drifts)} files") # Request node to push these specific files