Skip to content

fix: Finder live checks, select-all receipts, Finder focus, and Finder renames that never happen - #126

Merged
iamnbutler merged 2 commits into
mainfrom
fix/finder-live-checks
Oct 17, 2026
Merged

iamnbutler merged 2 commits into
mainfrom
fix/finder-live-checks

Conversation

@iamnbutler

Copy link
Copy Markdown
Contributor

Fixes the Finder cluster and the #77 key failures from the 0.13.1 live run (14 pass, 8 fail, 17 skip).

Causes and fixes

Product

  • Inspect trimming dropped Finder's file list. The 32 KB result cap cut from the tail, and Finder's ~120-element sidebar comes first. Trimming now keeps scope containers (window, split group, scroll area, outline, table, list, browser, tab group, web area) and drops other elements first. Tested in test/inspect-trim.test.mjs.
  • Table reads.
    • A label that only repeats the role description ("cell", "column", "image") was used as cell text or a column title.
    • A folder's disclosure triangle put 0 in its Name cell.
    • A sorted column was titled AXAscendingSortDirection.
    • All three are fixed, with a fixture captured from real Finder (finderRoleLabels).
  • Command-A on a text field returned unknown with "receipt does not match successful projected response outcome".
    • The client sends cmd,char:61, and peekaboo-layout-keys.patch resolves char: keys with KeyboardLayoutTranslator.current(), which is nil off the main thread.
    • The client validates receipts off-main, so isSelectAllShortcut was false there. The contract lacked the AX-value select-all rule that the host (on main) had used.
    • New peekaboo-layout-shortcuts.patch classifies paste and select-all chords without a layout.
  • feat: paste files into a Finder folder with desktop_insert, confirmed by their names appearing there (#3) #114 paste refused, "no exact focused control".
    • Finder reports two focused elements: an off-screen sidebar cell and the list outline. Peekaboo's tie-break (CFEqual with the app's AXFocusedUIElement, plus window ownership) was off for any truncated tree, and Finder always hits the 200-element budget.
    • New peekaboo-focus-budget.patch allows the tie-break for budget cuts (depth, count, children) but not for a deadline, an incomplete read or the app-scoped fallback.
    • Upstream's suppression tests keep those cases, and a new test covers the budget kinds. The README explains why the identity isn't weakened.
  • feat: write one table cell by row and column, confirmed by reading the table again #92 Finder rename reported completed without renaming.
    • Finder shows a name written to its name field through Accessibility, but never renames the file. AXConfirm doesn't commit it, and the background keyboard route can't reach the name editor.
    • desktop_set_cell, desktop_type and desktop_set_value now refuse a Finder file-list name field before input, with CELL_NOT_EDITABLE and a hint (shell mv, or the foreground Finder route).
    • The route is added to docs/recipes.md and marked unverified.
  • Key sequences stopped by a focus change (Command-N, then more keys) reported a bare DESKTOP_ACTION_FAILED. The host's at-dispatch focus failure is indeterminate, and the client only handled undispatched failures. Every mid-sequence stop is now KEY_SEQUENCE_STOPPED, and the message says when the stopping key may have been sent.

Harness (scripts/live-check.mjs)

Verification

Known, not fixed here

  • feat: hold modifier keys during clicks, and press key sequences against one snapshot #77 Command-click and Shift-click come back unknown every time, with "Cursor restoration: The physical cursor restoration was dispatched but could not be verified". It happened 4 of 4 times on a fixture window. The selection itself is right in my runs. The harness run once selected only the first row. This looks like a bug in modifier-click cursor restoration and needs its own issue.

…lean table reads, select-all receipts, Finder focus, and refuse Finder renames that never happen
@iamnbutler
iamnbutler force-pushed the fix/finder-live-checks branch from ce84ffd to dbb2027 Compare October 17, 2026 14:57
@iamnbutler
iamnbutler merged commit 2a5113d into main Oct 17, 2026
2 checks passed
@iamnbutler
iamnbutler deleted the fix/finder-live-checks branch October 17, 2026 15:07
@iamnbutler iamnbutler mentioned this pull request Oct 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant