[ImgBot] Optimize images#3
Open
imgbot[bot] wants to merge 11 commits intomainfrom
Open
Conversation
Replace the single-PTY WebSocket server with a full tmux-backed session management system. The web UI now shows a dashboard of all tmux sessions and lets you connect to any of them from a browser (including mobile). Both the host terminal and web client see identical output via tmux's native multi-attach capability. Backend: - server/discovery.js: tmux session/pane discovery - server/session-manager.js: attach/create/kill sessions via node-pty - server/index.js: Express HTTP + WebSocket server (serves frontend + REST API) Frontend (vanilla JS SPA): - Dashboard view: session list with create/kill controls, auto-refresh - Terminal view: xterm.js with WebGL, connects to tmux sessions via WS - Mobile-responsive CSS with touch-friendly controls Removes legacy server.js and index.html (no backward compatibility). https://claude.ai/code/session_01AHJHHHVAfsAqpn6jS8B84P
Integrates Kitty's `kitten @` remote control for window discovery alongside the existing tmux backbone. Kitty windows appear on the dashboard with previews and metadata, and can be connected via tmux sessions. - New server/kitty-discovery.js module (kitten @ ls, get-text) - Unified /api/discover endpoint returning tmux + kitty sources - /api/kitty/windows endpoint for direct kitty queries - Dashboard shows Kitty windows with purple accent + source badges - "Connect via tmux" creates a tmux session in the kitty window's cwd https://claude.ai/code/session_01AHJHHHVAfsAqpn6jS8B84P
Replace separate Kitty/tmux dashboard sections with unified session
cards. tmux sessions are the single source of truth — Kitty windows
are linked via PID matching (tmux client PID = Kitty window PID).
Changes:
- Add tmux-kitty-shell wrapper script for Kitty→tmux integration
- Add listTmuxClients() for PID-based Kitty-tmux session matching
- Rewrite discoverAll() with 3-way join (sessions + clients + Kitty)
- Simplify Kitty discovery (drop per-window getWindowText calls)
- Launch Kitty window on host when creating sessions from browser
- Unified dashboard cards with Kitty badge enrichment
- Dimmed section for unlinked Kitty windows (not in tmux)
- Update /api/discover response shape to { sessions, unmatchedKitty }
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Extract shared exec-util.js (replaces 3 duplicate exec wrappers) - Add LOCALE_ENV constant + closeClient() helper in session-manager - Add apiHandler() + annotateWebClients() helpers in index.js - Add install.sh with full automated setup - Add systemd user service with file watcher for auto-restart - Fix tmux -u flag and UTF-8 locale in all tmux invocations Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- AMOLED black theme with mint-green accent (IBM Plex Mono + DM Sans) - Custom modal replaces browser confirm/alert dialogs - Zoom +/- buttons with WebGL addon reload for font changes - Reconnect button (lightning bolt) on disconnect - WebSocket heartbeat every 30s to prevent Cloudflare idle timeout - Mobile responsive: dynamic font sizing, dvh, orientation change, visualViewport listener, pinch-to-zoom + pan enabled - No-cache headers on static assets (prevents stale JS via Cloudflare) - Session safety: removed destroy-unattached, server restart won't kill terminal sessions, only explicit Kill button does - Header title links to dashboard - Updated README with full feature docs, Cloudflare Tunnel setup, Zero Trust security guide, systemd management commands Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- PWA: manifest.json, service worker (network-first for local assets, cache-first for CDN), install button, crossorigin=use-credentials for Cloudflare Access compatibility - Icon: isometric 3D cube — ethernet jack (top), </> code (left), matrix binary rain (right). Includes flat backup variant. - Input optimization: raw WebSocket sends for keystrokes (no JSON wrapping), fast-path on server skips JSON.parse for non-control messages, charCode check on output avoids try/catch overhead - Terminal: zoom +/- buttons with WebGL addon reload, reconnect button, heartbeat ping every 30s, orientation change handler, visualViewport listener, dynamic font sizing - UI: AMOLED black theme, custom modal dialogs, no-cache headers for HTML/SW/manifest, header links to dashboard - Cache busting: no-cache headers on critical files to prevent Cloudflare from serving stale JS/HTML Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…sizes Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Arcs span between left/right vertices of top face, dot anchors near bottom vertex. No isometric skew — complements the <> shape. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
*Total -- 244.82kb -> 175.19kb (28.44%) /public/readme_assets/temrinal_view.png -- 90.57kb -> 61.77kb (31.8%) /public/readme_assets/session_listing.png -- 57.94kb -> 40.29kb (30.46%) /public/readme_assets/session_info.png -- 53.77kb -> 38.88kb (27.7%) /public/icons/icon-512-flat.png -- 15.28kb -> 12.28kb (19.62%) /public/icons/icon-512.png -- 15.28kb -> 12.28kb (19.62%) /public/icon-512-flat.svg -- 2.18kb -> 1.75kb (19.61%) /public/icon-192.svg -- 2.18kb -> 1.75kb (19.61%) /public/icon-512.svg -- 2.18kb -> 1.75kb (19.61%) /public/icons/icon-192.png -- 5.44kb -> 4.43kb (18.54%) Signed-off-by: ImgBotApp <ImgBotHelp@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Beep boop. Your images are optimized!
Your image file size has been reduced by 28% 🎉
Details
📝 docs |
repo | 🙋🏾 issues | 🏪 marketplace
~Imgbot - Part of Optimole family