Skip to content

feat(host): show the owner only projects they can access - #524

Merged
iamnbutler merged 4 commits into
mainfrom
access-view
Oct 19, 2026
Merged

iamnbutler merged 4 commits into
mainfrom
access-view

Conversation

@iamnbutler

Copy link
Copy Markdown
Contributor

Fixes #509
Part of #506. Stacked on #523.

The directory, lobby lifecycle events, and peers on older builds still carry every channel, so the owner's host now filters everything else its app sees by the owner's own project access:

  • Reachable peers' listings, plus the directory's and unreachable peers' remembered listings (everyone in gateway.ts).
  • Lobby subscriptions, which follow the filtered project set. Presence is resent when a project drops out, so its people leave right away.
  • Hosted channels and channels relayed to a peer: opening one in a project without access is refused.

The app needs no change. Projects come from listings, and a saved selection that disappears falls back to the first available project.

Smoke-tested: bun types, bun run ci, and the same access.ts checks as #523 against a local wrangler dev directory.

Not exercised: seeing a teammate's private project disappear and reappear. That needs a second person's Mac and is in the study scenarios.

Built in Ace

No. Built with Claude Code in a terminal, continuing the #506 session. Nothing here needed a capability Ace lacks.

The directory, lobby events, and hosts from before project access carry every channel, so the
owner's host filters peers' and the directory's listings, lobby subscriptions and presence, and
refuses to open hosted or relayed channels in projects the owner can't access.

Fixes #509
@iamnbutler
iamnbutler changed the base branch from access-check to main October 19, 2026 21:11
@iamnbutler
iamnbutler merged commit 0dd6824 into main Oct 19, 2026
1 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Show each person only the projects they can access

1 participant