0cf6ab15d9
fix: filter cloaked windows (DwmGetWindowAttribute DWMWA_CLOAKED) to exclude background UWP apps
2026-03-06 02:41:12 +01:00
073ac283aa
fix: filter applicationframehost (UWP container, always duplicate)
2026-03-06 02:39:08 +01:00
bc8ffa191d
simplify: only IsWindowVisible + non-empty title, no complex filters
2026-03-06 02:33:18 +01:00
15e177087b
fix: PWSTR type for QueryFullProcessImageNameW
2026-03-06 02:25:12 +01:00
cd1388a02b
fix: fallback to title when process name unavailable, dont skip windows
2026-03-06 02:23:10 +01:00
948f7de3a9
fix: loosen ghost window filter, only block Program Manager
2026-03-06 02:19:27 +01:00
8a873e4923
fix: compile errors - GetWindowLongA, Win32_System_ProcessStatus feature
2026-03-06 02:11:20 +01:00
450604bbbd
fix: process-name window labels, ghost window filtering, self-restart after setup
2026-03-06 02:06:20 +01:00
0b4a6de8ae
refactor: enforce device labels, unify screenshot, remove deprecated commands, session-id-less design
...
- Device labels: lowercase, no whitespace, only a-z 0-9 - _ (enforced at config time)
- Session IDs removed: device label is the sole identifier
- Routes changed: /sessions/:id → /devices/:label
- Removed commands: click, type, find-window, wait-for-window, label, old version, server-version
- Renamed: status → version (compares relay/remote.py/client commits)
- Unified screenshot: takes 'screen' or a window label as argument
- Windows listed with human-readable labels (same format as device labels)
- Single instance enforcement via PID lock file
- Removed input.rs (click/type functionality)
- All docs and code in English
- Protocol: Hello.label is now required (String, not Option<String>)
- Client auto-migrates invalid labels on startup
2026-03-06 01:55:28 +01:00
5fd01a423d
fix: exec errors show first stderr line instead of 'exit 1'
2026-03-05 21:31:16 +01:00
996f74b24f
feat: prompt returns answer to caller + commit on own header line
2026-03-05 21:22:18 +01:00
c5ef006414
fix: header values all dimmed (no admin, device, session)
2026-03-05 21:12:16 +01:00
1ec82cd177
feat: prompt reads from stdin in CLI ( 🌀 / 🎤 table rows, purple answer)
2026-03-05 21:08:14 +01:00
9589958cb1
fix: banner alignment + rename commands (execute, connect, list windows, set/get clipboard, etc)
2026-03-05 20:57:22 +01:00
20cae0b717
fix: header alignment, 🪪 session, commit-only version, clipboard shows text, no extra blank lines
2026-03-05 20:45:49 +01:00
05a63fe911
fix: truncate before colorize (no dangling ANSI), emoji cleanup (#, 📁 )
2026-03-05 20:35:07 +01:00
03d80067a8
feat: structured startup header with privileges, device, session
2026-03-05 20:22:58 +01:00
b37eec24bc
fix: emoji column alignment + remove '· exit 0' from success output
...
- Add unicode-width crate, emoji_cell() pads 1-wide symbols (ℹ, ☀) to 2 cols
- All action/status cells now occupy exactly 2 terminal display columns
- exec success: show only first output line, no trailing '· exit 0'
2026-03-05 20:10:28 +01:00
8f26d2fbf3
ci: fix VPS deploy key
2026-03-05 20:04:15 +01:00
72f19af12b
feat: all output lines in table format incl. connecting/session rows
2026-03-05 19:59:18 +01:00
959a00ff8a
refactor: table-style display with live spinner ( 🔄 → ✅ / ❌ )
...
- Remove \t-based alignment (fixes emoji spacing inconsistencies)
- New display.rs module: table rows with dynamic terminal-width columns
- Columns: action_emoji | name (14ch) | payload (55%) | status_emoji | result (45%)
- cmd_start() prints 🔄 spinner, cmd_done() overwrites line in-place via ANSI cursor-up
- Payload and result truncated to column width with ellipsis
- Consistent 2-space gaps after every emoji (no tab stops)
- Add terminal_size crate for dynamic width (fallback: 120)
2026-03-05 19:47:39 +01:00
7c0341a5f3
docs: vollständige Befehlsdokumentation in SKILL.md und README
2026-03-04 14:07:51 +01:00
fc9a7e2ec2
fix: handle LogsResponse in ws_handler match
2026-03-04 11:59:54 +01:00
9f933b39e7
feat: move skill files to repo root
2026-03-03 17:32:26 +01:00
db3fa9f416
feat: file logging on client, logs command to fetch last N lines
2026-03-03 17:09:23 +01:00
23bbb5b603
fix(client): use ❌ instead of ✗ for errors
2026-03-03 17:02:20 +01:00
3aa78756a5
fix(client): use \t for consistent emoji alignment everywhere
2026-03-03 17:01:58 +01:00
e42ad48235
fix(remote.py): window_id as string in argparse for focus/maximize
2026-03-03 17:00:06 +01:00
0439c70a27
feat(remote.py): show own git commit in status command
2026-03-03 16:56:37 +01:00
6643a33570
feat: status command (relay+client sync), remove version from banner
2026-03-03 16:55:11 +01:00
d114c813fb
fix(client): remove → arrow before globe, use ✅ for ok log
2026-03-03 16:53:02 +01:00
9285dbbd49
fix(client): window screenshot via crop instead of PrintWindow, fix SW_MINIMIZE
2026-03-03 16:49:57 +01:00
92d3907ec7
fix(client): PrintWindow in Gdi not WindowsAndMessaging, clean up unused imports
2026-03-03 16:44:46 +01:00
efc9cab2c3
feat: window screenshot (PrintWindow), name-based window resolution
2026-03-03 16:39:23 +01:00
27b1ffc55b
fix(client): safe Unicode truncation via trunc(), fixes panic on non-ASCII chars
2026-03-03 16:35:20 +01:00
1823b6021a
fix(client): globe emoji before Connecting
2026-03-03 16:29:29 +01:00
314ebab5c9
fix(client): per-command emojis, remove separator line, fix admin line indent
2026-03-03 16:28:26 +01:00
20e97b932b
fix: test missing timeout_ms field, unused title warning
2026-03-03 16:20:23 +01:00
b86717f7dc
ci: auto-deploy server + client to VPS on every push to master
2026-03-03 16:16:46 +01:00
e00270550d
feat: wait-for-window command; add click guideline to SKILL.md
2026-03-03 16:12:32 +01:00
7ddaf5ddfe
docs: update README + SKILL.md with prompt, timeout, all current commands
2026-03-03 16:08:02 +01:00
537ed95a3c
feat: configurable exec timeout per request (--timeout flag, default 30s)
2026-03-03 16:05:29 +01:00
1c0af1693b
fix(client): remove dash separator before admin status in banner
2026-03-03 16:01:18 +01:00
4af2680078
fix(client): show ✗ on non-zero exit code instead of ✓
2026-03-03 15:57:04 +01:00
72cf15a6e3
fix(client): enable ANSI processing explicitly for admin/elevated terminals
2026-03-03 15:49:55 +01:00
e0edf60461
feat: prompt command (MessageBox), admin status in banner
2026-03-03 15:44:27 +01:00
fdd2124da8
feat: add OpenClaw skill (remote.py + SKILL.md + config.env.example)
2026-03-03 15:39:33 +01:00
4bad20a24c
fix(client): filter invisible windows server-side, log shows real count
2026-03-03 15:35:58 +01:00
e942bbad58
fix(client): force-foreground with fake Alt key, filter visible-only windows
2026-03-03 15:29:14 +01:00
672676d3d7
feat: find-window, run, clipboard, label-routing, persistent session-id, exe icon
2026-03-03 15:19:54 +01:00