githubnext/ace2Public

Ace: a collaborative coding environment on the team's own machines

Set up a GitHub project's checkout on this machine from channel creation

IA

A GitHub project checked out only on another of the person's hosts showed as `ace2 · natembp` on Nate16, and every channel creation entry point was missing or disabled there. The person expected one ace2 project across machines and chose to set up a checkout on Nate16 and run channels there, with a default folder they can change.

**Expected** - A GitHub-backed project shows its ordinary name (ace2) in the picker and All Projects regardless of which host has a checkout. Folders without a GitHub remote keep host disambiguation; a channel's host stays independent. - A GitHub project without a checkout on this machine offers **Set up on this Mac**. New channel / + (Channels sidebar, All Projects per-project +, dashboard, GitHub **Open in a channel**) reaches setup instead of being hidden. Selecting a project never clones. - Setup shows an editable destination, `~/code/<repo>` by default, before cloning. The host clones asynchronously, expands `~`, normalizes the path, and registers the checkout through the existing project-open machinery. An existing matching checkout is opened; other non-empty folders are refused; failures stay in the form with the path preserved; Ace never deletes a partial clone. - A creation that led to setup continues locally with its initial dashboard or GitHub text; drafts survive until admission. Standalone setup only adds the project. Nothing is created or run on the other machine. - Cloning must not depend on gh's authenticated GraphQL lookup: on Nate16, `gh repo clone githubnext/ace2` is refused by organization SAML SSO applied to the gh token even though ace2 is public, while anonymous `git ls-remote https://github.com/githubnext/ace2.git` works. A plain `git clone` of the validated `https://github.com/<owner>/<repo>.git` works for public repositories and uses existing Git credential helpers only when the server requires authentication.

Part of #15; follows #157, which merged repository identity but deliberately creates only from this host's checkout. Dogfooding gap from #5.

  1. iamnbutlerparent-issue-addedlast month on GitHub

  2. iamnbutlerreferenced this in Verify repository-based project identity in the native app and across two hosts #15last month on GitHub

  3. iamnbutlerreferenced this in feat(app): set up a GitHub project's checkout on this machine before creating channels #205last month on GitHub

  4. iamnbutlerclosedlast month on GitHub

  5. iamnbutlerreferenced this in chore(desktop): prepare canary 0.0.20 #206last month on GitHub

  6. IA
    Author

    Validated natively with signed build-only Canary 0.0.20 (#206, run 37650079277; DMG SHA-256 `04fe5f0a56910a5cf6b7fcc2ddcde07eb81506607537d4873d01fc47a1ac1840` matched, Gatekeeper accepted), installed on natembp and Nate16.

    - On natembp, existing channels and drafts were kept. - On Nate16, the sidebar's New channel + in ace2 opened setup with `~/code/ace2`, edited to `/Users/natebutler/code/ace2`. **Clone and start channel** cloned public ace2 and created a channel within about 12 seconds, with no SSO prompt or error. - The channel `a24ec4567772d9e0` (renamed natively to `nate16-ace2-test`) is listed with natembp's channels under plain **ace2**. - Read-only peer metadata: host `nate16-1`, not hosted, repo `githubnext/ace2`, project ID `github:githubnext/ace2`, and project/root `/Users/natebutler/Code/ace2`. macOS resolved the typed lowercase path to the existing `Code` folder; only an exact-string path assertion differed. - No model run was checked on Nate16 (no providers configured there). Broader two-host acceptance remains in #15.