diff --git a/.agents/skills/drive-trayscale/SKILL.md b/.agents/skills/drive-trayscale/SKILL.md index 667fcb5f..ef45e097 100644 --- a/.agents/skills/drive-trayscale/SKILL.md +++ b/.agents/skills/drive-trayscale/SKILL.md @@ -137,7 +137,22 @@ The search entry has no accessible name; address it as `--role entry` without `- `press` synthesizes AT-SPI key events, which often do nothing on GNOME Wayland but work on X11 (including Xvfb). Prefer actions. -Without a GNOME session (for example Xvfb plus a private `dbus-daemon --session` as the caller's bus), everything above works except `screenshot`, which needs GNOME Shell; use `--allow-fail`. The app needs a libadwaita new enough for `AdwViewSwitcherSidebar` (Debian trixie's 1.7 fails at startup with `Invalid object type 'AdwViewSwitcherSidebar'`). +Without a GNOME session (for example Xvfb plus a private `dbus-daemon --session` as the caller's bus), expect these gaps: + +- `screenshot` needs GNOME Shell. Pass `--allow-fail`. +- Under Xvfb with openbox, popovers do not draw, including the main menu and dropdown lists, so their items cannot be captured. +- An `AdwComboRow` (`combo box`) has no AT-SPI action, so `click` cannot open it. Use a pointer click, for example with `xdotool`. +- To return to the this-machine page, use a pointer click on its sidebar row. + +The app needs a libadwaita new enough for `AdwViewSwitcherSidebar` (Debian trixie's 1.7 fails at startup with `Invalid object type 'AdwViewSwitcherSidebar'`). To use a newer GTK and libadwaita than the system's, point puregotk at them and point `LD_LIBRARY_PATH` at their directory. GDK and GSK are in `libgtk-4.so.1`. A runtime built in an earlier session may be gone, so check that the files exist first: + +```bash +LIB=/lib/x86_64-linux-gnu +ls "$LIB/libadwaita-1.so.0" "$LIB/libgtk-4.so.1" +export LD_LIBRARY_PATH=$LIB PUREGOTK_ADW_PATH=$LIB/libadwaita-1.so.0 PUREGOTK_GTK_PATH=$LIB/libgtk-4.so.1 PUREGOTK_GDK_PATH=$LIB/libgtk-4.so.1 PUREGOTK_GSK_PATH=$LIB/libgtk-4.so.1 +``` + +`launch` passes these variables to the app. They work only for libraries built against the host's glibc. A runtime that ships its own libc, such as the Flatpak GNOME SDK, fails with a `GLIBC_PRIVATE` symbol lookup error. Run the command inside that runtime instead, for example with `bwrap` binding it over `/usr`. ## Fake peers (tsharness) @@ -151,6 +166,8 @@ Flags: `-extra N` adds `peer-NN` peers (every third offline); `-mullvad N` adds It serves the LocalAPI on `/run/tailscale/tailscaled.sock`, Trayscale's default socket, so use it only where no system `tailscaled` runs (create `/run/tailscale` writable by you first). Its `go.mod` pins `tailscale.com` separately from the app's; `run.sh` builds `tailscale`/`tailscaled` at the app's version into `$DIR` (default `/tmp/tsharness`). Go skips dot-directories, so CI does not build it. +To find out what `tailscaled` actually does in some state, reproduce the state on tsharness instead of reading its code or faking the LocalAPI. Read the result with `/tmp/tsharness/tailscale status --json` and `/tmp/tsharness/tailscale debug prefs`. + Against tsharness the forbidden actions only touch the fake node, so a calling skill may allow them, including sending files to `receiver`. Confirm with `check-fake-tailnet` first. ## Cleanup diff --git a/.agents/skills/verify-trayscale/SKILL.md b/.agents/skills/verify-trayscale/SKILL.md index 7cf87726..5b2411b3 100644 --- a/.agents/skills/verify-trayscale/SKILL.md +++ b/.agents/skills/verify-trayscale/SKILL.md @@ -1,6 +1,6 @@ --- name: verify-trayscale -description: Prove a Trayscale UI change by driving the GTK 4 / Libadwaita window the way a user does and capturing AT-SPI evidence. Use when proving a Trayscale UI change, checking the main window, About, Preferences, peer search, the this-machine page, or a peer page. +description: Prove a Trayscale UI change by driving the GTK 4 / Libadwaita window the way a user does and capturing AT-SPI evidence. Use when proving a Trayscale UI change, including a refactor of widget trees, `.ui` templates, or GObject subclasses that should look the same, or when checking the main window, About, Preferences, peer search, the this-machine page, or a peer page. --- # Verify Trayscale