Report actual application activity and visibility in desktop inventory
iamnbutler opened ·
`desktop_apps` currently reports every application's `is_active` as false, and can report `is_hidden: false` without observing visibility. This blocked an active-app literal insertion check during native dogfooding under #8 and #5.
Observed with development candidate 033 during #76/#78 work: the exact Ace UI process PID 62961, generation `1791200036085948`, was visible and focused, but repeated native inventory output contained `active: []`. The evidence is `/tmp/ace-literal-active-inventory.log`. No insertion or clipboard-vault preparation occurred in the blocked check. This output is not evidence that macOS was locked or that activation failed.
The source cause is confirmed: `apps/desktop/native/sources/client/client.swift` calls Peekaboo's `listApplicationMutationInventory()`. That inventory constructs `ServiceApplicationInfo` with process identity and targeting metadata, leaving `isActive` and `isHidden` at their default false values. Ace then exposes those defaults as observed state. Peekaboo's normal application observation API reads presentation metadata separately.
The fix should retain the mutation inventory's PID/process-generation authority and completeness, join actual presentation observations only when both identifiers match, and expose unavailable or ambiguous state as unknown. A failed metadata read must not discard an otherwise useful identity inventory. No implicit activation or weakened action validation is needed.
Validation should confirm real foreground/hidden state on disposable apps, retain exact process identity, and preserve usable inventory plus explicit unknown state when presentation metadata cannot be trusted. A focused client-only candidate is being reviewed; signed-build and live validation remain pending.
iamnbutlerreferenced this in [Meta] Complete native computer use in Ace #8last month on GitHub
iamnbutlerreferenced this in [Meta] Dogfood Ace end to end #5last month on GitHub
iamnbutlerreferenced this in fix(desktop): report observed application activity and visibility #80last month on GitHub
- IA
Focused fix opened as #80 on `feat/github-cache`, without the keyboard/clipboard work. It keeps mutation inventory identity and completeness, joins presentation metadata by exact PID and generation, and preserves useful inventory with explicit unknown state when metadata is unavailable.
Type checks, lint/format checks, Swift parsing, and diff checks passed. A signed integration candidate containing the same client fix returned the real Ace process (PID 90884, generation `1791201492523935`) with `is_active: true`, `is_hidden: false`, and both known flags true. Evidence: `/tmp/ace-actions-validation-xaLuQq/keyboard-webview-P8v6xF/inventory.json`. The broader read-only consistency check is still running; #80 remains a draft pending final review.
iamnbutlerreferenced this in Explain native inspection failure when the desktop or target window becomes unavailable #64last month on GitHub
- IA
Fixed by merged PR #80 on feat/github-cache. The signed native result agrees with an independent AppKit activity check, and unknown metadata is explicit. No new canary has been published for this merge.