diff --git a/agent-node/VERSION b/agent-node/VERSION index 140333f..c2320f5 100644 --- a/agent-node/VERSION +++ b/agent-node/VERSION @@ -1 +1 @@ -1.0.19 +1.0.20 diff --git a/agent-node/src/agent_node/node.py b/agent-node/src/agent_node/node.py index c6e4468..222dc6e 100644 --- a/agent-node/src/agent_node/node.py +++ b/agent-node/src/agent_node/node.py @@ -564,8 +564,8 @@ index = 0 while True: - chunk = f.read(1024 * 1024) # 1MB chunks - is_final = len(chunk) < 1024 * 1024 + chunk = f.read(1024 * 512) # 512KB chunks + is_final = len(chunk) < 1024 * 512 self.task_queue.put(agent_pb2.ClientTaskMessage( file_sync=agent_pb2.FileSyncMessage( @@ -581,6 +581,9 @@ ) )) + import time + time.sleep(0.02) # Throttle to ~25MB/s, preserves gRPC bandwidth for health reporting + if is_final or not chunk: break index += 1 diff --git a/ai-hub/app/core/grpc/services/assistant.py b/ai-hub/app/core/grpc/services/assistant.py index e79a748..86782fe 100644 --- a/ai-hub/app/core/grpc/services/assistant.py +++ b/ai-hub/app/core/grpc/services/assistant.py @@ -65,8 +65,9 @@ index = 0 while True: - chunk = f.read(1024 * 1024) # 1MB chunks - is_final = len(chunk) < 1024 * 1024 + import time + chunk = f.read(1024 * 512) # 512KB chunks + is_final = len(chunk) < 1024 * 512 node.queue.put(agent_pb2.ServerTaskMessage( file_sync=agent_pb2.FileSyncMessage( @@ -80,6 +81,7 @@ ) ) )) + time.sleep(0.02) # ~25MB/s throttle to allow interleaving with other Node messages if is_final or not chunk: break diff --git a/skills/mesh-terminal-control/logic.py b/skills/mesh-terminal-control/logic.py index 41236ed..5a138b7 100644 --- a/skills/mesh-terminal-control/logic.py +++ b/skills/mesh-terminal-control/logic.py @@ -68,7 +68,10 @@ os.chdir(cwd) # Launch shell - os.execv("/bin/bash", ["/bin/bash", "--login"]) + shell_path = "/bin/bash" + if not os.path.exists(shell_path): + shell_path = "/bin/sh" + os.execv(shell_path, [shell_path, "--login"]) # Parent # Set non-blocking