Skip to content

[ImgBot] Optimize images#3

Open
imgbot[bot] wants to merge 11 commits intomainfrom
imgbot
Open

[ImgBot] Optimize images#3
imgbot[bot] wants to merge 11 commits intomainfrom
imgbot

Conversation

@imgbot
Copy link
Copy Markdown

@imgbot imgbot Bot commented Apr 5, 2026

Beep boop. Your images are optimized!

Your image file size has been reduced by 28% 🎉

Details
File Before After Percent reduction
/public/readme_assets/temrinal_view.png 90.57kb 61.77kb 31.80%
/public/readme_assets/session_listing.png 57.94kb 40.29kb 30.46%
/public/readme_assets/session_info.png 53.77kb 38.88kb 27.70%
/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%
Total : 244.82kb 175.19kb 28.44%

📝 docs | :octocat: repo | 🙋🏾 issues | 🏪 marketplace

~Imgbot - Part of Optimole family

claude and others added 11 commits April 5, 2026 21:53
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants