Commit Graph

102 Commits

Author SHA1 Message Date
chrome-storm-c442
d33f573483 v1.9.18: revert GUI to v1.9.14 state — fix broken window display
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 04:09:47 -05:00
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
01ab318e4b v1.9.15: fix minimize/restore — remove grab_set, add Win32 restore fallback
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 03:58:32 -05:00
chrome-storm-c442
f9a81a4825 v1.9.14: fix dialog minimize bug — restore modal dialogs on un-minimize
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 03:25:18 -05:00
chrome-storm-c442
b37e696094 v1.9.13: remove cleanup_gitea_releases — keep all Gitea releases
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 09:35:17 -05:00
chrome-storm-c442
289ce65431 chore: remove 12 old exe from git + use git rm in cleanup
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 09:32:01 -05:00
chrome-storm-c442
704ce3bef2 v1.9.12: cleanup orphan Gitea tags alongside old releases
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 09:29:53 -05:00
chrome-storm-c442
00f3b76d2a v1.9.11: always check updates on startup + cleanup Gitea releases
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 09:27:21 -05:00
chrome-storm-c442
efbbfa13ee v1.9.10: cleanup old Gitea releases — keep first + last 5
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 09:21:33 -05:00
chrome-storm-c442
3c4d02c5ec v1.9.9: fix stale server data after Edit — force reconnect with fresh credentials
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 09:11:36 -05:00
chrome-storm-c442
5b4672dfe3 v1.9.8: S3 resumable download — Range GET with .s3part resume on disconnect
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 08:33:48 -05:00
chrome-storm-c442
f445953a82 v1.9.7: S3 folder download — recursive with preserved directory structure
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 08:19:07 -05:00
chrome-storm-c442
2a56ececd1 v1.9.6: S3 navigation — Backspace/Alt+Left to go back, right-click empty area menu
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 08:12:51 -05:00
chrome-storm-c442
f233d5cf70 v1.9.5: S3 — new folder, folder delete with confirmation, folder drag-and-drop
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 08:07:40 -05:00
chrome-storm-c442
61461767fd v1.9.4: S3 optimizations — skip redundant health checks, folder drag-and-drop
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 07:59:26 -05:00
chrome-storm-c442
bc2a3bc6b5 v1.9.3: S3 context menu — two link types: temp 48h + permanent direct
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 07:47:01 -05:00
chrome-storm-c442
e403da4f9d v1.9.2: S3 right-click context menu — copy presigned download link
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 07:36:21 -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
f2dc978c57 v1.8.99: fix update script — delete-before-copy, size verification, error logging
Previous BAT script falsely reported success because `if exist` checked
the pre-existing file, not the copy result. Now: deletes old DST first,
copies with /B (binary), verifies size matches expected, logs all errors.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 03:12:54 -05:00
chrome-storm-c442
c9e3ee8fc5 server groups: grouped sidebar, GroupDialog, context menus, i18n + cleanup old releases
- Groups CRUD in sidebar (create, rename, change color, reorder, delete)
- Collapsible group headers with color dots and server count
- "Move to Group" context menu on servers
- Group dropdown in ServerDialog (add/edit)
- 17 i18n keys (EN/RU/ZH)
- Search auto-expands groups
- Cleaned up old release binaries

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 02:12:35 -05:00
chrome-storm-c442
2f84429b10 v1.8.98: fix ghost "eue" text in terminal — strip DCS/APC/PM/SOS sequences
pyte 0.8.2 doesn't handle DCS string sequences (ESC P ... ST). When
nano/ncurses sends DECRQSS queries, pyte consumed the introducer but
rendered the payload as visible text. Added regex pre-filter to strip
DCS/APC/PM/SOS sequences before feeding data to pyte.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 01:49:35 -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
7af788b72e v1.8.96: persist sidebar width across restarts
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 05:47:08 -05:00
chrome-storm-c442
08307fbe9b v1.8.95: resizable sidebar via PanedWindow — drag to widen server list
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 05:42:41 -05:00
chrome-storm-c442
2174168200 v1.8.94: test release for update mechanism verification
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 04:15:06 -05:00
chrome-storm-c442
273666236a v1.8.93: rewrite update script from VBS+PowerShell to plain BAT with logging
VBS→PowerShell chain was silently failing. BAT is simpler, doesn't depend
on execution policy, and writes detailed log to %TEMP%\sm_update.log
for debugging.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 04:13:36 -05:00
chrome-storm-c442
bc48aea1e4 v1.8.92: fix Ctrl+S/Q and all Ctrl+key combos with non-Latin keyboard layouts
Ctrl+key shortcuts now use physical keycodes as fallback, so Ctrl+S (save
in nano), Ctrl+Q (XON), Ctrl+A/E/R/W/T etc. work regardless of whether
the keyboard layout is English, Russian, or any other.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 04:10:30 -05:00
chrome-storm-c442
bc7be1057b v1.8.91: terminal background pure black (#000000) instead of dark blue
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 04:06:46 -05:00
chrome-storm-c442
d0f84d00eb v1.8.90: fix update script — remove $ErrorActionPreference=Stop, launch via cmd start
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 02:14:06 -05:00
chrome-storm-c442
1218f4d72d v1.8.89: fix DLL error on auto-update — clean all stale _MEI dirs, launch via explorer.exe
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 02:11:02 -05:00
chrome-storm-c442
acc93f98e3 v1.8.86: fix update DLL error — cleanup old _MEI dir, delay before launch, retry copy
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 00:50:04 -05:00
chrome-storm-c442
57ea90f210 v1.8.85: build.py auto-publishes Gitea release with exe asset
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 00:45:53 -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
6b08dbe85f chore: clean old releases, keep v1.0.0 + v1.8.79-v1.8.83
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 09:46:33 -05:00
chrome-storm-c442
0fbf8dc811 v1.8.83: test build for os.startfile update verification
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 09:39:22 -05:00
chrome-storm-c442
7a654c9ef6 v1.8.82: fix update apply — os.startfile(vbs) + os._exit(0)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 09:36:01 -05:00
chrome-storm-c442
bf27141a85 v1.8.81: fix update apply — os._exit(0) to kill daemon threads
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 09:31:17 -05:00
chrome-storm-c442
e929995803 v1.8.80: test build for auto-updater verification
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 09:07:31 -05:00
chrome-storm-c442
9d41dc03ee v1.8.79: fix updater — hardcoded Gitea API URL for frozen exe
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 09:04:28 -05:00
chrome-storm-c442
9393134593 v1.8.78: auto-updater — Gitea releases check, download, apply
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 09:00:27 -05:00
chrome-storm-c442
c23eb36dcc v1.8.75: build.py auto-deploys ssh.py, encryption.py, skill to local dirs
Prevents stale ~/.server-connections/ssh.py after code changes.
Every build now auto-copies tools/ssh.py, core/encryption.py
and tools/skill-ssh.md to their shared locations.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 04:53:08 -05:00
chrome-storm-c442
b28e199108 Merge branch 'master' of https://git.sensey24.ru/aibot777/server-manager 2026-03-01 04:21:33 -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
cosmic-frost-8b10
326cc5a78c v1.8.74: Linux x64 release build
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 15:09:04 +00: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
aea5030623 v1.8.71: fix Windows compatibility — guard Linux-only X11 code with platform check
- main.py: wrap _ensure_display_access() in sys.platform != "win32" check
- main.py: add FileNotFoundError to except in _find_active_xauthority()
- claude_setup.py: platform-aware error message for ssh-keygen not found
- CLAUDE.md: add mandatory cross-platform rules for all contributors

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 08:41:15 -05:00
cosmic-frost-8b10
508a288022 v1.8.70: fix SSH key generation — use ssh-keygen instead of broken paramiko
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 13:34:35 +00:00
cosmic-frost-8b10
d51c0aa09a v1.8.69: smart X display auto-detection and xauth fix
Automatically finds active display from X11 sockets and processes,
locates .Xauthority from display owner in /home/*, and merges
xauth cookies so root can use another user's X session.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 13:29:21 +00:00
cosmic-frost-8b10
8169e3e137 v1.8.68: auto-fix X display authorization on startup
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 13:27:02 +00:00