refactor: Major upgrade to v5.1b6 - AWS SSM support & Distributed Architecture
Core & Protocols: - Native AWS SSM support added (aws ssm start-session). - Improved Pexpect logic for ssm, kubectl, and docker. - Cleaned connection success messages (omitting ports for non-IP protocols). gRPC Layer: - Migrated gRPC modules to 'connpy/grpc_layer/'. - Implemented dynamic node naming (e.g. ssm-i-xxxx@aws) for accurate server-side logging. - Added automatic sys.path resolution for gRPC generated modules. - Enhanced InteractNode response with initial connection status. Printer & Concurrency: - Implemented ThreadLocalStream for isolated thread-safe output. - Self-healing Console objects to prevent 'closed file' errors in test/async environments. - Capture clean plugin output in remote executions. AI & Services: - Improved tool registration and debug visualization. - Restored native dictionary returns for AI tools to fix Web UI rendering. - Increased backup retention to 100 copies in SyncService. - Silenced noisy auto-sync CLI messages. Quality & Docs: - Total tests: 267 (all passing). - New test suites for gRPC layer and printer concurrency. - Updated .gitignore to exclude internal planning docs. - Full technical documentation regenerated with pdoc.
This commit is contained in:
+12
-1
@@ -445,8 +445,19 @@ class connapp:
|
||||
|
||||
try:
|
||||
if args.subcommand in getattr(self.plugins, "remote_plugins", {}):
|
||||
import json as _json
|
||||
for chunk in self.services.plugins.invoke_plugin(args.subcommand, args):
|
||||
print(chunk, end="", flush=True)
|
||||
if "__interact__" in chunk:
|
||||
try:
|
||||
data = _json.loads(chunk.strip())
|
||||
params = data.get("__interact__")
|
||||
if params:
|
||||
self.services.nodes.connect_dynamic(params, debug=getattr(args, 'debug', False))
|
||||
break
|
||||
except (ValueError, KeyError):
|
||||
print(chunk, end="", flush=True)
|
||||
else:
|
||||
print(chunk, end="", flush=True)
|
||||
elif args.subcommand in self.plugins.plugins:
|
||||
self.plugins.plugins[args.subcommand].Entrypoint(args, self.plugins.plugin_parsers[args.subcommand].parser, self)
|
||||
else:
|
||||
|
||||
Reference in New Issue
Block a user