Skip to content

Allow local-only channels without a connected Tailscale account #712

Open

Description

@marandaneto

Problem

bun ace new --project <path> fails with "Start Tailscale first: every channel belongs to a tailnet." when Tailscale is unavailable or cannot authenticate. A managed device can require a tailnet the signed-in account cannot access, blocking all local use of Ace.

Proposed behavior

Allow channels scoped to this host when no tailnet is connected. Keep the host on authenticated loopback only: no tailnet listener, peer discovery, directory publication, or lobbies. Preserve existing tailnet channels and keep them isolated from local-only channels; do not reinterpret legacy unscoped records.

Built in Ace gap

Investigation and implementation use Pi because Ace cannot create the channel needed to do this work. This is a dogfooding blocker for machines without tailnet access.

Related: #5, #539.

Activity

  1. marandaneto commented on Nov 8, 2026

    @marandaneto
    Author

    Implemented an unpushed local patch in lane local-channels: disconnected hosts create explicitly scoped local-only catalog records and automatically use the existing authenticated loopback-only host mode. Real tailnet identity remains separate; existing records are not rewritten and legacy records without a tailnet remain hidden.

    Verified with Tailscale actually reporting NeedsLogin: CLI creation/listing/opening, human messages, backup/restore with transcript preservation, and duplicate-name refusal. The host listens only on 127.0.0.1, reports loopback mode, and has no directory hosts or directory listener. bun types and bun run ci pass (existing lint warnings).

    A real model invocation could not run: this Ace profile has no configured provider keys. Live connected-tailnet validation is blocked by the device policy described above. No Tailscale policy changes or mocks used.

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions