Repository navigation
Admins see a new app's Preview link and password in Your Apps with the owner's Mac off - #187
Merged
Merged
Conversation
…e owner's Mac off A bot that makes an app on its computer while the owner's Mac is off already keeps the app's record and its Preview's label copy in Bops Cloud, and shares the Preview password with its exact link. Your Apps still showed that app by name only, because members' sites came from the owner's Mac's read alone. Now Bops Cloud fills in the link where the Mac's read has none (cloud/ws-slice.ts sitesFilled): - Admins and members with Your Apps at Write see the link and its password. Read sees the link and that it asks for a password, never the password. - Only the link the app's record names: its label copy (a runner keeps only one sealed for that app), under orgo.dev, with no port, path, query or sign in. Nothing for an app that lost its computer, or a Preview whose password the owner turned off. - A link the Mac read stands as it is; a site the Mac read before its Preview was made gets the link. - Members see up to 100 apps (was 30), so the newest apps a bot made aren't the ones cut. Ships with Bops Cloud only.
TigerYWang
marked this pull request as ready for review
November 12, 2026 14:58
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changes
When a bot makes a new app on its computer while the owner's Mac is off, Your Apps now shows its Preview link right away:
MAX_APPS_FROM_COMPUTER). New apps come last in the list, so with the old cap of 30 the newest ones were the ones hidden.This is a Bops Cloud change only (
cloud/ws-slice.ts, newsitesFilled/previewLinkOf/recordSitesnext towithCloudPasswords). The rest of the diff is comments (cloud/preview-passwords.ts, theSharedApp.sitescomment incloud/protocol.ts) and tests.Why
With the Mac off, Bops Cloud already has everything it needs. The runner writes the app's record with its sealed Preview label (
computer-scope.tsHOSTING_NEW / RUN_SHAPE /sealedFor). It also shares the password together with its exact Orgo link (POST /v1/apps/preview-password, held toappHomeHere). ButappsForbuilt members'sitesonly from the owner's Mac's copy (appsForMembers), so the app showed by name only until the Mac came back. Nothing members need should wait on the owner's Mac.Which link is shown
previewPasswords["<app>/<site>"]). Bops Cloud can't build it from the label alone, because orgo-web may put it underorgo.devor another name insideorgo.dev.https://<label>.<names>.orgo.dev(an optional/at the end is allowed) and<label>is the site's own label copy on the app's record. So: no port (not even:443), no path, query, hash or sign in, no capitals, no trailing dot, and nothing outsideorgo.dev.withCloudPasswords, which matches the filled link exactly.lost, or for a site withpasswordOff(only the owner's Mac writes that).How I checked it
node --test cloud/test/core-members.test.ts: 83 pass. There are 5 new tests, red against main'sws-slice.tsand green with this change:web.orgo.devandstaging.orgo.devlinks do show.atonly, never by the password.node --test cloud/test/core-preview-passwords.test.tson a throwaway Postgres 18: 9 pass. The new end to end test (red before, green after):node --test --test-concurrency=1 "cloud/test/core-*.test.ts": 376 pass, 0 fail.test-members(all passed),test-shared70,test-preview-password27,test-computer-scope19,test-live14,test-bot-groups22,test-hosted-apps-ui73,test-state-merge41,test-keys48,test-app-restore22.npx tsc -p cloud/tsconfig.json --noEmitandnpx next typegen && npx tsc --noEmit -p .are clean. eslint on the touched files is clean.check-public.shis OK.Versions
*_MIN_VERSIONgate.sites[].preview,previewProtectedandpreviewPassword. Older windows ignorepreviewPasswordAt.Not done, limits
SharedAppCard. I left the window alone to avoid conflicts.lib/server/member-acts.ts); with the Mac off they wait. Chat with the bot on its computer works.