Skip to content

Readiness: a check held by a macOS permission prompt says Python is missing #208

Open

Description

@AojdevStudio

Problem

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.

Activity

  1. pullfrog commented on Nov 8, 2026

    @pullfrog

    Plan

    1. In feat(studio): the window works on the sidecar's committed chats, and the claude -p runner is gone #201’s sidecar/src/agent.ts, replace the boolean succeeds result 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.
    2. 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.
    3. 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.

    Pullfrog  | Implement a fix ➔ | View workflow run | via Pullfrog | Using gpt-6.1-terra | 𝕏

  2. added
    bugSomething isn't working
    pythonPull requests that update python code
    on Nov 8, 2026
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

    bugSomething isn't workingpythonPull requests that update python code

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions