Skip to content

fix(app): show who has joined the team directory and name its Mac when it is down - #644

Merged
iamnbutler merged 3 commits into
mainfrom
fix-team-truth
Oct 22, 2026
Merged

iamnbutler merged 3 commits into
mainfrom
fix-team-truth

Conversation

@iamnbutler

Copy link
Copy Markdown
Contributor

Team directory status now matches what is actually set up.

  • Team setup on a host that serves or has joined a directory no longer shows "You're the first on this tailnet". It shows "Your team": whether this Mac serves the directory or which directory it joined, plus every host in it. Ask to join is still offered, but not to teammates already in this host's directory. "List channels elsewhere…" leads to the existing directory step.
  • Settings → Team has a new "In the directory" list: each host, its owner, and when it last synced. Diagnostics now carry the directory's hosts; older hosts omit them.
  • Sync errors when a teammate's Mac serves the directory now name that Mac. The Mac is found by the address it publishes there. Offline reads macb, which serves the directory, is offline. Channels stay listed as they were. A 404 reads macb stopped serving the directory. …. A deployed directory still gets the generic message.

Fixes #604. Fixes #605. Fixes #608. Map: ^120, ^901, ^112. Not changed: where the directory lives, which is waiting on a product decision.

Smoke test on an isolated host (own ACE_HOME and port 4734). Tailscale was replaced on PATH by a failing stub so the host stayed off the real tailnet. The directory was the real directory-server module served on loopback, with a fixed caller standing in for whois; a second host "macb" published with address 127.0.0.1:

  • Settings → Team listed macb (octocat) and this host, each with a sync time.
  • Team setup showed "Your team · This Mac is in your team's directory at 127.0.0.1:4738" with both hosts.
  • After the harness stopped serving, Refresh read macb stopped serving the directory. Channels stay listed as they were.
  • After the harness was killed, Refresh read macb, which serves the directory, is offline. Channels stay listed as they were.
  • Not tested: the "(this Mac)" label and the Ask to join filter, which need a live tailnet and peers.

Built in Ace

Made from Claude Code (a fix-train worker), not in Ace, because it was run headless as a parallel agent with its own isolated host. Gap tracked in the dogfooding meta issue, #5.

…n it is down

Why: apps/host/src/directory.ts#function server | a served directory's Mac is found by the address it publishes; a deployed directory matches none and keeps the generic error
@iamnbutler
iamnbutler merged commit a45f0ef into main Oct 22, 2026
1 check passed
@iamnbutler
iamnbutler deleted the fix-team-truth branch October 22, 2026 20:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant