You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Readiness: a check held by a macOS permission prompt says Python is missing #208
On the Mac mini, the signed build of #201 (361b3c5) said "Install a Python for uv: run "uv python install" in Terminal, then check again." But the Mac has a Python that uv manages, and uv python find passes in 0.07 s from Terminal with the same PATH.
The cause: uv python find looks through every PATH entry. On that Mac, one entry leads to a folder on an external drive. So macOS showed "“Materialize 3D.app” would like to access files on a removable volume." While the prompt waited, the check hit its 5 s limit (CHECK_MS in sidecar/src/agent.ts) and counted Python as missing. After Allow, Check again passed.
So the readiness notice names the wrong fix when macOS holds the check for a permission. Anyone whose PATH reaches an external drive, a network share, or a protected folder sees "Install a Python" for a Python they already have.
Fix
When a toolchain check ends at its time limit, not with a failing exit, the notice should say so. For example: "Checking for Python took too long. macOS may be asking Materialize 3D for permission. Answer it, then check again." Keep "Install a Python for uv" for a check that actually fails.
Test
A sidecar test with a fake uv whose python find hangs. The need it reports names the time limit and the permission prompt, not an install. The existing test, "a check that hangs ends at its limit", covers the timing.
Have toolchainNeeds() report a timeout-specific fix for both uv --version and uv python find, mentioning that macOS may be awaiting permission and asking the person to answer it and check again. Keep the existing install guidance for actual failures and retain the existing need kinds.
Extend sidecar/test/agent.test.ts with hanging fake commands and assertions on the reported fix, plus nonzero-exit and successful-retry coverage. Run the sidecar tests and verify the notice in the signed macOS app if available.
The closest candidate, #202, concerns legacy chat import after a Documents permission denial, not this readiness timeout; it is not a duplicate.
Activity
pullfrog commentedon Nov 8, 2026
Plan
sidecar/src/agent.ts, replace the booleansucceedsresult with an explicit success, failure, or timeout result. Preserve the deadline and subprocess cleanup; distinguish an actual deadline from a nonzero exit or spawn failure.toolchainNeeds()report a timeout-specific fix for bothuv --versionanduv python find, mentioning that macOS may be awaiting permission and asking the person to answer it and check again. Keep the existing install guidance for actual failures and retain the existing need kinds.sidecar/test/agent.test.tswith hanging fake commands and assertions on the reported fix, plus nonzero-exit and successful-retry coverage. Run the sidecar tests and verify the notice in the signed macOS app if available.The closest candidate, #202, concerns legacy chat import after a Documents permission denial, not this readiness timeout; it is not a duplicate.
gpt-6.1-terra| 𝕏