Self-hosted SSH + SFTP + RDP in a browser — MobaXterm replacement
Go to file
Vantz Stockwell a36793563c
All checks were successful
Build & Sign Wraith / Build Windows + Sign (push) Successful in 3m45s
fix: WKWebView cursor/selection focus, theme restore on startup, status bar
Cursor blink + selection (ROOT CAUSE FOUND):
- xterm.js v6 uses DOM renderer, not canvas. Cursor blink and selection
  both require CSS focus classes set by the hidden textarea's focus event.
- WKWebView doesn't focus elements with opacity:0, width:0, height:0,
  left:-9999em — the textarea never receives focus, classes never toggle.
- Fix: Override .xterm-helper-textarea to left:0, top:0, width:1px,
  height:1px, opacity:0.01 — within viewport, non-zero, focusable.

Theme restoration on startup:
- sessionStore.activeTheme started as null on every launch
- ThemePicker saved active_theme to settings but nobody restored it
- Added theme restoration to MainLayout onMounted — reads active_theme
  setting, fetches theme from backend, calls setTheme() before any
  terminals open

Status bar:
- h-10 (40px) to match toolbar height for visual balance

Selection colors:
- Solid #264f78 (VS Code selection blue) instead of rgba transparency

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-30 12:14:02 -04:00
.gitea/workflows feat: migrate all artifacts to SeaweedFS — single source of truth 2026-03-26 15:52:10 -04:00
docs feat: MCP Phase 1 — scrollback buffer, terminal_read, terminal_execute 2026-03-24 23:00:32 -04:00
src fix: WKWebView cursor/selection focus, theme restore on startup, status bar 2026-03-30 12:14:02 -04:00
src-tauri fix: 6 UX regressions — popups, themes, cursor, selection, status bar 2026-03-30 10:58:45 -04:00
.gitignore chore: ignore worktree directories 2026-03-29 16:41:51 -04:00
AGENTS.md docs: rename Go reference from ../wraith to ../wraith-go-archive 2026-03-24 22:54:22 -04:00
CLAUDE.md feat: MCP Phase 1 — scrollback buffer, terminal_read, terminal_execute 2026-03-24 23:00:32 -04:00
index.html feat: Phase 1 complete — Tauri v2 foundation 2026-03-17 15:09:41 -04:00
package-lock.json feat: Tauri auto-updater + RDP vault credentials + sidebar persist 2026-03-25 12:42:01 -04:00
package.json feat: Tauri auto-updater + RDP vault credentials + sidebar persist 2026-03-25 12:42:01 -04:00
tsconfig.json feat: Phase 1 complete — Tauri v2 foundation 2026-03-17 15:09:41 -04:00
tsconfig.node.json feat: Phase 1 complete — Tauri v2 foundation 2026-03-17 15:09:41 -04:00
vite.config.ts feat: Phase 1 complete — Tauri v2 foundation 2026-03-17 15:09:41 -04:00