Skip to content

Offer to host an unhosted drive on atomic.place after secret sign-in - #2219

Closed
joepio wants to merge 2 commits into
developfrom
host-on-atomic-place
Closed

joepio wants to merge 2 commits into
developfrom
host-on-atomic-place

Conversation

@joepio

@joepio joepio commented Oct 11, 2026

Copy link
Copy Markdown
Member

Before: someone who signs in with a secret and whose drive is hosted nowhere lands in the app with no hint that they can have it hosted. The only route is the Cloud Server row on the Sync page, and a signed-out user sees no action there.

After: right after such a sign-in a toast offers "Host on atomic.place" (with "Not now"). The button opens the existing hosting consent text, then the existing portal sign-in (email and magic link), then enrols the drive. The hosting node then publishes the pkarr record (#2198), so later sign-ins on any new instance find the drive without anything typed. The offer stays away when no portal is known, the person chose their own server, the server in use is managed, or the drive is already enrolled.

How: helpers/managed/hostOnPortal.ts (pure shouldOfferPortalHosting plus the enrol, sign-in, retry sequence), components/Cloud/HostOnPortalOffer.tsx, a toast helper, and one call in GettingStartedFlow after the vault backup. The consent text moved unchanged into HostingConsentNotice, shared with the Sync page. No portal URL is hardcoded, so the open core does not depend on atomic-saas. A build or install that knows no portal shows nothing.

Open points: a completely fresh FOSS instance knows no portal, so the offer only appears where a portal is configured or remembered. SyncRoute.backupToCloud keeps its own copy of the enrol, sign-in, retry sequence. Whether a free account may enrol a drive, and publishing the pkarr record on enrolment, are on the saas side.

Screenshots follow in a comment.


Generated by Claude Code

The Toaster sat outside DialogGlobalContextProvider, so a Dialog rendered
from a toast had no portal and never appeared. Render the Toaster inside the
provider, and cover it with a test through the real Providers. Reword the
offer for a personal drive.

joepio commented Oct 11, 2026

Copy link
Copy Markdown
Member Author

Run 5218 (head 24582b5) is red in "Dagger CI". Everything else passed, including the downstream atomic-saas build. The one failure is browser/lib/tests/agent-profile-sync.integration.test.ts (1 failed, 22 passed in the lib integration suite). Its log shows Unauthorized. Chat log entry ... is not yours: only its author or a writer of the chat may change or remove it, a server permission check on chat log entries. This PR changes only browser/data-browser (UI, tests and .po files) and nothing in browser/lib or the server, so the failure is not caused by this diff. I have asked TrekMeester for one re-run to confirm; if it fails again I will look at the test on develop.


Generated by Claude Code

joepio commented Oct 11, 2026

Copy link
Copy Markdown
Member Author

Closing without merging: the owner rejected this. A pop-up that promotes atomic.place after every secret sign-in reads as advertising, and the open core should not push it.


Generated by Claude Code

@joepio joepio closed this Oct 11, 2026
@joepio joepio reopened this Oct 11, 2026

joepio commented Oct 11, 2026

Copy link
Copy Markdown
Member Author

Reopened. The owner asked to keep this PR open while he decides; my earlier closing comment was premature. Not for merge yet.


Generated by Claude Code

joepio commented Oct 13, 2026

Copy link
Copy Markdown
Member Author

Gesloten op verzoek van Joep (opruimen van drafts, 13 okt): Joep wil geen ongevraagde atomic.place-promotie in de open-source app. Heropenen kan altijd.


Generated by Claude Code

@joepio joepio closed this Oct 13, 2026
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.

1 participant