v1.9.40: add Codex integration — skill setup, deploy, GUI buttons

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
IPGO Developer
2026-03-07 07:27:22 +00:00
parent ddd6951610
commit e2bdffb41e
14 changed files with 1067 additions and 130 deletions

View File

@@ -115,6 +115,7 @@ def build():
"--add-data", f"tools/ssh.py{os.pathsep}tools",
"--add-data", f"tools/skill-ssh.md{os.pathsep}tools",
"--add-data", f"core/encryption.py{os.pathsep}core",
"--add-data", f".codex/skills/server-manager{os.pathsep}.codex/skills/server-manager",
]
# PNG icons for GUI (Material Design)
@@ -350,34 +351,32 @@ def cleanup_old_releases():
def deploy_shared_files():
"""Auto-deploy ssh.py, encryption.py, skill to shared dirs after build.
"""Auto-deploy shared CLI files and local agent integrations after build."""
from core.claude_setup import (
install_claude_skill,
install_codex_skill,
install_ssh_script,
)
Ensures Claude Code /ssh skill always uses the latest version.
Without this, editing tools/ssh.py updates the exe but NOT the live
~/.server-connections/ssh.py that Claude Code actually calls.
"""
shared_dir = os.path.expanduser("~/.server-connections")
skill_dir = os.path.expanduser("~/.claude/commands")
deploy_map = [
(os.path.join(PROJECT_DIR, "tools", "ssh.py"),
os.path.join(shared_dir, "ssh.py")),
(os.path.join(PROJECT_DIR, "core", "encryption.py"),
os.path.join(shared_dir, "encryption.py")),
(os.path.join(PROJECT_DIR, "tools", "skill-ssh.md"),
os.path.join(skill_dir, "ssh.md")),
deploy_steps = [
install_ssh_script,
install_claude_skill,
install_codex_skill,
]
deployed = []
for src, dst in deploy_map:
if not os.path.exists(src):
continue
os.makedirs(os.path.dirname(dst), exist_ok=True)
shutil.copy2(src, dst)
deployed.append(os.path.basename(dst))
for step in deploy_steps:
try:
result = step()
if result:
deployed.append(result.replace("\n", "; "))
except Exception as exc:
print(f"WARNING: auto-deploy step failed ({step.__name__}): {exc}")
if deployed:
print(f"Auto-deployed to local: {', '.join(deployed)}")
print("Auto-deployed to local:")
for item in deployed:
print(f"- {item}")
if __name__ == "__main__":