Repository navigation
Companion on a real Mac: navigation goals type the address, steer instead of repeating, stale grants by signature (Microphone too) - #96
Merged
Conversation
…g instead of repeating, stale grants by signature (Microphone too) From the real run at 4bbd728 ("open Chrome and go to example.com"): 1. Three tasks ended stuck clicking Chrome's focused address bar. The goal carried the address but `text` was null, so typing was never offered. Now: - a navigation goal's address, taken literally right after the verb, is the text to type; - a click chosen on a text box that already has the focus types into it; - the same action chosen again on an unchanged screen is not done again: it leaves the next question and the decider is told it did nothing (triedWithoutEffect); "stuck" only when nothing else fits. 2. "Screen Recording kept from an older build" while TCC said Allowed: the check trusted an osascript preflight over the app's own. Screen Recording and the Microphone are now what macOS answers this process; only Accessibility's AX probe can call a "yes" stale. A grant's history is kept by signing identity (designated requirement), not version and file time, so an update signed by the same certificate never looks stale. 3. The Microphone joins the stale card, with a reset (tccutil reset Microphone) that asks again. Checks: apps/desktop-helper type-check, test (138); apps/companion type-check, lint, test (295), build. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… of a fixed sleep Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…e dropped Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…OS asks again A microphone grant never recorded under any signature (JJ's: the ad-hoc build's TCC row) cannot be told stale from history; macOS reports it denied and never prompts again by itself. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes from the first real-Mac run of the companion (JJ's MacBook, signed build at
4bbd728, "open Chrome and go to example.com"). Onmain.Summary
Evidence
computer_usetasks endedstuckwith "It kept doing the same thing (clicked the textbox “Address and search bar” containing “https://github.com/jayleaton/t3code/pull/138” (focused)) without the screen changing." Settings showed "Screen Recording kept from an older build" while TCC saidScreenCapture: Allowed (System Set).type "example.com"and thenpress Enterwith the field. This test fails on the old code.triedWithoutEffectis set. After steering, the decider's next pick runs. With nothing left, the task endsstuck.navigationText: URLs, hosts with paths, and no false matches ("open the email from paypal.com…", email addresses).grantedwhatever another process says. A same-certificate update isn't stale. Accessibility on with a failing AX read is stale. A grant missing under the ad-hoc signature is stale for all three permissions, Microphone included. Legacyversion@mtimeentries never call anything stale.Merge Danger
Door: two-way. The settings'
grantsentries change format. Old entries are ignored, never called stale.Blast Radius: app. Affects the controller's step choice on every OS, and macOS permission states in Settings.
🤖 Generated with Claude Code