Skip to content

Run the live checks deferred while the screen was locked #42

Closed as not planned

Description

@iamnbutler

One list of the live checks that must pass on an unlocked Mac before this issue closes. Run them with the dev app (npm run dev-app) or the installed release; docs/live-checks.md has the setup. Tick an item when it passes. When one fails, open an issue and link it next to the item.

Each item names the PR it came from. Everything the harness already runs is the first item; the rest needs a person, a second display or Space, or an app the harness can't set up.

1. Automated

2. Window outline (#43)

  • Inspect, then click: the target window gets the outline and label.
  • Switching Spaces: the outline disappears on the other Space and comes back on return.
  • A full-screen target: the outline sits at the screen edges, above the window.
  • Dragging the target window by hand: the outline follows smoothly.
  • Turning Highlight agent's window off removes the outline; turning it on restores it.
  • Clicks on the outline's margin and label reach the window underneath.
  • Hover, press and drag outline their target windows too.

3. Pointer: hover, press, drag, modifier clicks

4. Element actions and values (#47)

  • AXShowMenu on a Finder file shows its context menu in the next inspect; AXCancel dismisses it.
  • Finder list view disclosure triangle: desktop_set_value true expands it, false collapses it.
  • TextEdit Format › Font panel stepper: AXIncrement, AXDecrement and desktop_set_value all change it.
  • Displays brightness slider: set it and restore it.
  • A pop-up button: choose Breeze, read it back, restore Boop.
  • AXConfirm, AXRaise and AXScrollToVisible work on elements that advertise them.
  • desktop_type into a TextEdit or System Settings search field still completes.

5. Keys

6. Menus, launch, open, dialogs

7. Reading and tables

8. Waits (#70)

  • window_appears with title_contains, started before desktop_open of a TextEdit file, matches the new window; window_gone matches after desktop_close.
  • element_appears for TextEdit's close button returns a snapshot that desktop_click accepts with that element ID.
  • text_contains with an element matcher, and text_changes reporting before.
  • dialog_appears after Command-S on an untitled document, dialog_gone after Cancel.
  • app_quit after desktop_quit of TextEdit.
  • A scope search on a long Safari page for an element deeper than 200 elements.
  • While a wait polls, another agent's action interleaves; lsof shows no ~/.peekaboo lock held between polls.

9. Windows, Spaces, displays

10. Clipboard and insert

11. Notifications (#74)

  • desktop_notifications with one banner: one entry with app, title, body, fields_from, and actions including open and Close.
  • close: completed, notification_gone: true, and the banner is gone.
  • open on a fresh banner: the posting app comes forward; completed (or unknown if the banner stays).
  • A named app action (Reminders "Mark as Completed" or Calendar "Snooze"): the result matches the screen.
  • Reusing a consumed ID: refused ("Notification gone; read again"), nothing sent.
  • Notification Center open with a group stack: open expands it, and a re-read lists its members.
  • UserNotificationCenter alerts appear only under system_alerts, and nothing is pressed.
  • A non–Notification Center window with custom actions (Mail's message list) has no attributes.customActions.

12. Menu bar and Dock (#41)

  • desktop_dock launches or activates TextEdit by its exact title.
  • desktop_dock right-click with menu_item (Finder › New Finder Window) works; it moves the physical pointer.
  • desktop_menubar_click on a third-party status item (1Password) opens its menu; note whether the menu window shows in desktop_windows.

13. The Desktop Tools menu

  • feat: list recent agent activity in the app's menu #98 After a click, three keys, an inspect, a clipboard read and a refused action from an agent with DESKTOP_TOOLS_AGENT set: Recent Activity lists the last 5, newest first, with agent, pid, time, outcome icon, app and window title; the keys fold into "Key ×3"; All Activity (n) lists up to 20; typed text and clipboard contents appear nowhere; the list is empty after a restart.
  • feat: pause all input from the app menu #100 Pause All Input: the icon becomes a pause sign and the status reads "(input paused)"; desktop_click is refused with the pause message and listed as "paused"; desktop_clipboard_write is refused and the clipboard is unchanged; desktop_windows, desktop_inspect and capture still work; after Resume the same click completes; a relaunch starts resumed.
  • feat: ask once per agent before it controls the Mac, and keep agent input off Desktop Tools' own UI (#24) #120 Approved Agents: a new agent's first input raises the prompt; Allow lets it through; Revoke refuses it again; Allow and Forget work from the submenu; Recent Activity names Claude Code claude-code.

14. Other

Questions to answer and record (not pass/fail)

Write the answer next to the question here, or in the linked issue.

What changed in this rewrite

The 29 per-PR comments are folded into the list above and hidden as outdated. Dropped: the second, identical #51 comment; checks npm run live-check now runs (#77 clicks and key sequences, #82, #86 Finder and Safari columns, #88 Safari, #89, #90, #92 Finder and web grid, #96 PNG and refusals, #99 TextEdit and web refusal, #107, #110, #111); the #92 Finder rename, since desktop_set_cell now refuses Finder's Name column by design; the "second inspect after 1–2 s" sparse WKWebView step, replaced by #111; and test notes, caveats and surprises that weren't checks.

Activity

  1. iamnbutler commented on Oct 17, 2026

    @iamnbutler
    Author
  2. iamnbutler commented on Oct 17, 2026

    @iamnbutler
    Author
  3. iamnbutler commented on Oct 17, 2026

    @iamnbutler
    Author
  4. iamnbutler commented on Oct 17, 2026

    @iamnbutler
    Author
  5. iamnbutler commented on Oct 17, 2026

    @iamnbutler
    Author
  6. iamnbutler commented on Oct 17, 2026

    @iamnbutler
    Author
  7. iamnbutler commented on Oct 17, 2026

    @iamnbutler
    Author
  8. iamnbutler commented on Oct 17, 2026

    @iamnbutler
    Author
  9. iamnbutler commented on Oct 17, 2026

    @iamnbutler
    Author
  10. iamnbutler commented on Oct 17, 2026

    @iamnbutler
    Author
  11. iamnbutler commented on Oct 17, 2026

    @iamnbutler
    Author
  12. iamnbutler commented on Oct 17, 2026

    @iamnbutler
    Author
  13. iamnbutler commented on Oct 17, 2026

    @iamnbutler
    Author
  14. iamnbutler commented on Oct 17, 2026

    @iamnbutler
    Author
  15. iamnbutler commented on Oct 17, 2026

    @iamnbutler
    Author
  16. 2 remaining items

  17. iamnbutler commented on Oct 17, 2026

    @iamnbutler
    Author
  18. iamnbutler commented on Oct 17, 2026

    @iamnbutler
    Author
  19. iamnbutler commented on Oct 17, 2026

    @iamnbutler
    Author
  20. iamnbutler commented on Oct 17, 2026

    @iamnbutler
    Author
  21. iamnbutler commented on Oct 17, 2026

    @iamnbutler
    Author
  22. iamnbutler commented on Oct 17, 2026

    @iamnbutler
    Author
  23. iamnbutler commented on Oct 17, 2026

    @iamnbutler
    Author
  24. iamnbutler commented on Oct 17, 2026

    @iamnbutler
    Author
  25. iamnbutler commented on Oct 17, 2026

    @iamnbutler
    Author
  26. iamnbutler commented on Oct 17, 2026

    @iamnbutler
    Author
  27. added a commit that references this issue on Oct 17, 2026
  28. iamnbutler commented on Oct 17, 2026

    @iamnbutler
    Author
  29. iamnbutler commented on Oct 17, 2026

    @iamnbutler
    Author
  30. iamnbutler commented on Oct 17, 2026

    @iamnbutler
    ContributorAuthor

    Replaced by #129, which lists only the checks no test covers.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions