Commit Graph

26 Commits

Author SHA1 Message Date
chrome-storm-c442
cf319c502e v1.9.16: add --s3-url presigned URL command to ssh.py
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 04:05:00 -05:00
chrome-storm-c442
3bafb0deb8 skill: enforce server type checking — MinIO/S3, presigned URL, workflow examples
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 02:25:41 -05:00
chrome-storm-c442
1e729fcf3a v1.9.1: PNG Material Design icons — 28 icons, dark/light theme, HiDPI, graceful Unicode fallback
- 56 PNG icons (28 unique × 2 color variants) from Material Design Icons (round style, 96×96px)
- core/icons.py: ctk_icon(), make_icon_button(), reconfigure_icon_button() with CTkImage cache
- Updated 15 GUI files: app.py, sidebar.py, server_dialog.py, all tabs
- build.py: auto-include assets/icons/ in PyInstaller bundle, patch rollover at 99→minor+1
- tools/download_icons.py: icon download script
- Automatic dark↔light theme switching via CTkImage dual-image support

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 07:27:49 -05:00
chrome-storm-c442
9b0e4c76a3 v1.9.0: S3 server type — bucket/object browser, drag-and-drop upload, resilient transfers
New server type: S3 (MinIO, AWS, any S3-compatible storage)
- core/s3_client.py: boto3 client with auto-reconnect, 10 retries, exponential backoff, multipart upload/download, tcp_keepalive
- gui/tabs/s3_tab.py: object browser (Treeview), bucket selector, folder navigation, drag-and-drop upload from Explorer (windnd), progress bar with %, multi-file upload
- CLI: --s3-buckets, --s3-ls, --s3-upload, --s3-download, --s3-delete with retry
- ServerDialog: access_key, secret_key, bucket fields
- Registration: server_store, connection_factory, status_checker, icons, app, i18n (EN/RU/ZH)
- Fix: build.py cleanup_old_releases now sorts by semver (was lexicographic, broke v1.8.100+)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 06:32:03 -05:00
chrome-storm-c442
72c7da5765 fix: install.sh — ignore chmod error on existing dirs
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 06:29:14 -05:00
chrome-storm-c442
b7e9c80690 v1.8.97: add install.sh — CLI installer for headless Linux servers
Installs ssh.py, encryption.py, Claude Code skill, Python dependencies.
Supports local source dir or downloads from Gitea.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 06:28:18 -05:00
chrome-storm-c442
85977863ec v1.8.84: skill-ssh.md — server type routing table for Redis/SQL/WinRM/etc
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 00:41:04 -05:00
chrome-storm-c442
1ee03a1da4 v1.8.74: skill docs update — resume/retry behavior, Windows SHA256 path fix
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 04:21:04 -05:00
chrome-storm-c442
7e7c1d3efc v1.8.73: reliable SFTP upload — chunked resume, SHA256 verification, adaptive retry
- CLI (ssh.py): chunked resume upload for files >10MB with .part atomic rename
- CLI: SHA256 verification (sha256sum on Linux, Get-FileHash on Windows)
- CLI: adaptive retry count based on file size (up to 30 for large files)
- CLI: SSH keepalive 15s + window_size 4MB for stable transfers
- CLI: path injection fix in SHA256 shell commands
- CLI: Windows SFTP path fix for PowerShell Get-FileHash
- GUI (ssh_client.py): chunked upload with resume in SFTPSession
- GUI: retry up to 3 attempts with SHA256 readback in SSHClientWrapper
- GUI: keepalive 15s + window_size 4MB in both auth paths
- Tested: 5MB, 15MB, 200MB uploads to Windows SSH server (116)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 10:03:07 -05:00
chrome-storm-c442
997c7d20a5 v1.8.66: fix 7 Redis bugs — shlex parser, GUI stats, SSL, error handling, dedup
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 07:15:46 -05:00
delta-cloud-208e
7c9e54bb44 feat: add --type support to --add command
- Support for all server types: ssh, telnet, mariadb, mssql, postgresql, redis, grafana, prometheus, winrm, rdp
- Add --type, --database, --token options to --add command
- Add server type validation
- Add type-specific fields (database, token, auth_method)
- Update skill-ssh.md with new usage

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-02-27 07:15:57 +00:00
chrome-storm-c442
b2c6f8fdd3 v1.8.65: Linux→Windows auto-sanitize commands for Windows SSH servers
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 08:27:57 -05:00
chrome-storm-c442
3a5d1b27fc v1.8.60: multi-type status check + --add in skill + skill docs update
- _check_status_one: proper connectivity check per server type
  (SSH/SQL/Redis/Grafana/Prometheus/WinRM/RDP)
- ping_server uses _check_status_one instead of paramiko-only
- check_status shows server type column
- skill-ssh.md: allow --add, document it, update --status description
- CLAUDE.md: add --add/--remove/--set-note to command reference

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 05:26:24 -05:00
chrome-storm-c442
4c7c15e497 docs: clarify file transfer rules in skill-ssh.md
- Shell commands (echo/base64/cat) banned only as file transfer method, not as regular commands
- Clarify --upload workflow: existing files upload directly, new files create locally first

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 02:30:13 -05:00
chrome-storm-c442
24e4493e1d v1.8.52: fix skill — enforce SFTP upload/download, ban stdin/base64 file transfer
Prevents Claude Code from using creative shell-based file transfer methods
(echo/base64/cat stdin) that fail with exit 127 on large files.
Skill now clearly mandates --upload/--download (SFTP) as the ONLY allowed method.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 02:12:12 -05:00
chrome-storm-c442
4959004a3f v1.8.52: icons module, Windows SSH sanitization, embedded RDP improvements, UI polish
- Add core/icons.py — centralized icon text helper with emoji/symbol support
- Add Windows SSH command sanitization in ssh.py (Linux→Windows auto-translation)
- Improve embedded RDP: launch tab connect/disconnect, fullscreen toggle
- Refactor sidebar: cleaner server type badges
- Update server_dialog: adaptive fields per server type
- Add setup_openssh.bat tool
- Update skill-ssh.md and CLAUDE.md docs for Windows SSH support
- Cleanup old releases, add v1.8.48-v1.8.52

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 14:37:37 -05:00
chrome-storm-c442
eede67e6a9 feat: multi-type server support — SQL, Redis, Grafana, Prometheus, Telnet, WinRM, RDP/VNC
Full implementation of multi-type server management across GUI and CLI:

New clients: SQLClient (MariaDB/MSSQL/PostgreSQL), RedisClient, GrafanaClient,
PrometheusClient, TelnetSession, WinRMClient, RemoteDesktopLauncher.

New GUI tabs: QueryTab (SQL editor + Treeview), RedisTab (console + history),
GrafanaTab (dashboards + alerts), PrometheusTab (PromQL + targets),
PowershellTab (PS/CMD), LaunchTab (RDP/VNC external client).

Infrastructure: TAB_REGISTRY for conditional tabs per server type,
adaptive server_dialog fields, colored type badges in sidebar,
status checker for all types (SSH/TCP/SQL/Redis/HTTP), 100+ i18n keys.

CLI: ssh.py extended with --sql, --redis, --grafana-*, --prom-*, --ps, --cmd.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 09:35:24 -05:00
chrome-storm-c442
2d1d942ddc docs: fix skill syntax, update fallback generator, add progress docs
- Fix --info/--set-note syntax in CLAUDE.md (global flags, not per-alias)
- Add --remove, --install-key to CLAUDE.md examples
- Replace minimal fallback skill generator with full version (security rules, all commands, progress, SFTP double-slash)
- Add upload/download progress reporting to skill-ssh.md and README
- Fix outdated v1.5.4 version in README build examples

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 07:43:15 -05:00
chrome-storm-c442
7d29f8446a feat: add upload/download progress reporting in ssh.py
Files <1MB show size+time in OK line. Files >=1MB show 25/50/75% milestones with transferred/total, plus speed in final OK line.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 07:38:40 -05:00
chrome-storm-c442
e75afddb99 fix: SFTP paths on Windows — double-slash for remote, remove broken MSYS env
- Remote paths in upload/download require // prefix on Windows/Git Bash
- Removed useless MSYS_NO_PATHCONV from Python (must be shell-level)
- Removed broken bash wrapper
- Updated skill docs with // path rule and examples

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 07:14:49 -05:00
chrome-storm-c442
d7101a12d2 chore: add release binaries v1.6.x, v1.8.9-v1.8.23 and fix MSYS path conversion
- Add 17 release executables that were missing from the remote repo
- Fix MSYS path conversion issue in tools/ssh.py for Windows compatibility
- Add nul to .gitignore to prevent Windows special file conflicts

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 07:08:40 -05:00
chrome-storm-c442
8554c73ba0 fix: word-boundary fuzzy alias search, _resolve_alias in remove_server
- "tor" now matches "API TOR contabo..." but NOT "investor"
- Whole-word match first, substring fallback second
- remove_server() now uses _resolve_alias() for consistency

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 07:02:38 -05:00
chrome-storm-c442
afa3210260 v1.8.23: upgrade ssh.py + skill for secure Claude Code integration
- Add --info (safe server details without credentials)
- Add --set-note (update server notes for context)
- Add --no-sudo flag documentation in skill
- Fix --add leaking user@ip:port in output
- Add WARNING to --list-full, forbid in skill
- Add notes column to --list output
- Update skill: portable path ~/.server-connections/, security rules, behavior docs
- Update CLAUDE.md: security section, architecture, dev commands, doc references

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 06:51:59 -05:00
chrome-storm-c442
efb508c982 v1.8.10: security audit fixes
- --list and --status no longer expose IP/port/user (only aliases)
- --list-full for admin use (not in skill)
- Removed --add from /ssh skill (servers added via GUI only)
- Removed exact file paths from skill template
- Added deny-read rules for ~/.server-connections/ files
- Wrapped main() in try/except to prevent traceback leaking
- Added needs_reencrypt() to encryption.py for future migration
- install_key no longer prints server IP

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 04:56:16 -05:00
chrome-storm-c442
bf39fd7b67 v1.2.0 + v1.3.0: Localization, About dialog, TOTP/2FA, stability improvements
v1.2.0:
- GUI localization (EN/RU/ZH) with language switcher and persistent selection
- About dialog (ⓘ) with app info, features, quick start guide
- core/i18n.py — internationalization module with t() function
- All GUI components translated via t() keys

v1.3.0:
- TOTP/2FA tab — Google Authenticator compatible codes with live 30s countdown,
  one-click copy, per-server secret management
- core/totp.py — TOTP module (pyotp, RFC 6238)
- core/logger.py — rotating file logger (5MB, 3 backups)
- Stronger Fernet encryption key with automatic migration from old key
- Thread-safe server store with locks, atomic writes, auto-restore on corruption
- Parallel status checks via ThreadPoolExecutor (up to 10 concurrent)
- SSH client: explicit channel cleanup, Unix key permissions
- Server dialog: port validation (1-65535), TOTP secret field
- Language change preserves active tab and server selection
- pyotp dependency added

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 11:07:51 -05:00
chrome-storm-c442
42a6a876d3 Add Claude Code integration: shared config + Setup tab
- Shared servers.json at ~/.server-connections/ (GUI + Claude Code)
- Setup tab: one-click install of ssh.py, /ssh skill, SSH key
- Duplicate checks — safe to run multiple times
- tools/ssh.py + tools/skill-ssh.md bundled
- Updated README with integration docs (EN/RU/ZH)
- Deploy guide for new machines

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 09:01:22 -05:00