Commit graph

35 commits

Author SHA1 Message Date
8944e82c1f rm 2026-03-25 19:32:09 -04:00
ec9bc1f137 rm ai stuff from git 2026-03-25 19:30:22 -04:00
Hari
3819a85c47
tests and tooling (#4)
* init openspec

* clean out src, move mod into lib, remove trash

* create tests

* pre-commit hook

* add tests to CI

* update website

* README, CONTRIBUTING and Makefile

* openspec

* archive task

* fix ci order

* fix integration test

* fix validation tests
2026-03-25 19:29:59 -04:00
7dfab68304 mv skills into own dir 2026-03-25 18:36:21 -04:00
github-actions[bot]
bcf5f43fad release: v0.1.1 [skip ci] 2026-03-25 22:34:39 +00:00
Hari
6dce22eaef
stabilize (#3)
* specs

* Stabilize deskctl runtime foundation

Co-authored-by: Codex <noreply@openai.com>

* opsx archive

---------

Co-authored-by: Codex <noreply@openai.com>
2026-03-25 18:31:08 -04:00
Hari
d487a60209
openspec init (#2) 2026-03-25 17:31:55 -04:00
a6ea5cc9e8 changes (detect paths + calculate version)
|
build [cargo, docker]  (parallel matrix)
|
update-manifests (bump Cargo.toml, commit, tag)
|
release (GitHub release + checksums)
2026-03-25 16:54:11 -04:00
4bd14c0da3 ci 2026-03-25 16:44:58 -04:00
6845f6b7e4 Acknowledgements 2026-03-25 16:31:15 -04:00
f241dcc1c2 gitignore 2026-03-25 16:25:14 -04:00
07124001eb favicon 2026-03-25 16:24:27 -04:00
9a178e0b3a font 2026-03-25 16:04:04 -04:00
e3c96878b1 scaffold docs 2026-03-25 16:04:04 -04:00
600fd6503b base 2026-03-25 16:04:04 -04:00
26ec452878 public 2026-03-25 16:04:04 -04:00
50c9594780 site init (barrett) 2026-03-25 16:04:04 -04:00
f05f441dee gitignore and comment 2026-03-25 15:16:42 -04:00
2b65c83245 temp rm uva 2026-03-25 13:40:34 -04:00
76d810a44f uva 2026-03-25 13:18:11 -04:00
01332db3bf ci 2026-03-25 13:10:54 -04:00
5d655de594 docker-compose build 2026-03-25 12:40:14 -04:00
b108be8afe rename 2026-03-25 12:28:38 -04:00
e392ba1055 Rewrite X11 backend to drop xcap
Use x11rb directly for screenshot capture and window metadata so the Linux build no longer drags in Wayland build dependencies.

Co-authored-by: Codex <noreply@openai.com>
2026-03-25 12:28:23 -04:00
cc7490993a edition 2026-03-24 23:07:50 -04:00
46dd2f9c53 rename deps 2026-03-24 23:02:44 -04:00
62a1aab859 rename 2026-03-24 22:59:21 -04:00
9adc74f6b7 gitignore 2026-03-24 22:00:27 -04:00
03dfd6b6ea Phase 6: utility commands, SKILL.md, AGENTS.md, README.md
- Implement screen_size via xcap Monitor, mouse_position via x11rb
  query_pointer, standalone screenshot with optional annotation,
  launch for spawning detached processes
- Handler dispatchers for get-screen-size, get-mouse-position,
  screenshot, launch
- SKILL.md agent discovery file with allowed-tools frontmatter
- AGENTS.md contributor guidelines for AI agents
- README.md with installation, quick start, architecture overview
2026-03-24 21:40:29 -04:00
567115a6c2 Phase 5: window management via x11rb
- Add x11rb 0.13 dependency with randr feature
- RustConnection and root window in X11Backend
- Focus window via _NET_ACTIVE_WINDOW client message
- Close window via _NET_CLOSE_WINDOW client message
- Move/resize via configure_window
- Handler dispatchers for focus, close, move-window, resize-window
- list-windows command re-runs snapshot for fresh window tree
2026-03-24 21:36:56 -04:00
314a11bcba Phase 4: mouse + keyboard input via enigo
- Add enigo 0.6 dependency (x11rb/XTest backend)
- Enigo field in X11Backend for input simulation
- Click, double-click at absolute coords or @wN ref centers
- Type text into focused window, press individual keys
- Hotkey combinations (modifier press, key click, modifier release)
- Mouse move, scroll (vertical/horizontal), drag operations
- parse_key() mapping human-readable names to enigo Key values
- Handler dispatchers with ref resolution and coord parsing
2026-03-24 21:33:30 -04:00
0072a260b8 Phase 3: screenshot annotation with bounding boxes and @wN labels
- Add imageproc and ab_glyph dependencies
- Annotation module drawing colored bounding boxes per window
- White @wN labels on dark background at each window's top-left
- 8-color palette cycling for distinct window identification
- Back-to-front iteration so topmost labels are not occluded
- Embedded DejaVu Sans Mono font via include_bytes
- Wire --annotate flag into snapshot pipeline
2026-03-24 21:28:10 -04:00
79e6e0e25c Phase 2: snapshot - window tree + screenshot via xcap
- Add xcap and image dependencies
- DesktopBackend trait with all 16 methods for future extensibility
- X11Backend with real snapshot() using xcap Window::all() and
  Monitor::all() for z-ordered window enumeration and screenshot
- Stub implementations for input/window management (phases 4-6)
- Wire X11Backend into DaemonState (now returns Result)
- Real snapshot handler replacing placeholder, updates ref map
2026-03-24 21:24:34 -04:00
dfaa339594 Phase 1: project scaffold, clap CLI, self-re-exec daemon, NDJSON IPC
- Cargo.toml with clap, tokio, serde, anyhow dependencies
- Entry point with env-var routing to daemon or CLI mode
- Core protocol types (Request/Response NDJSON wire format)
- Session detection (X11 check with DISPLAY/XDG_SESSION_TYPE)
- RefMap with @wN selector resolution (direct, prefix, substring)
- Snapshot/WindowInfo shared types with Display impl
- clap derive CLI with all subcommands (snapshot, click, type, etc.)
- Client connection: socket path resolution, daemon auto-start via
  self-re-exec, NDJSON send/receive with retry backoff
- Tokio async daemon: Unix socket listener, accept loop, graceful
  shutdown via notify
- DaemonState holding session info and ref map
- Placeholder handler returning hardcoded snapshot response
2026-03-24 21:19:18 -04:00
17d4a1edeb Initial commit: add .gitignore 2026-03-24 21:08:54 -04:00