Skip to content

docs(self-hosting): correct what a server change clears, and the cert requirement - #7158

Merged
waleedlatif1 merged 3 commits into
stagingfrom
docs/selfhost-desktop-accuracy
Aug 27, 2026
Merged

docs(self-hosting): correct what a server change clears, and the cert requirement#7158
waleedlatif1 merged 3 commits into
stagingfrom
docs/selfhost-desktop-accuracy

Conversation

@waleedlatif1

Copy link
Copy Markdown
Collaborator

Summary

Follow-up to #7136. Re-checked the self-hosting desktop page against the merged code and found one flat contradiction plus two gaps a self-hoster hits in practice.

  • Fixes an inaccuracy. The page said the built-in browser's profile survives a server change. It does not — the teardown clears the browser's saved sessions and the agent's folder grants along with the saved route, because those are capabilities granted to a specific deployment. The page now lists what is cleared and what is kept, says why, and notes that a change which cannot complete is refused rather than half-applied. (The page was written before review rounds changed this behavior twice.)
  • Certificate trust. Certificate errors are rejected outright with no "continue anyway" (security-guards.tscallback(false)), so a private CA that is not in the system trust store will not load however correct the URL is. A private CA is a normal self-host setup, so this belongs on the page.
  • Xcode 26. Packaging your own shell fails with an opaque Failed to check actool version on an older toolchain. I hit this myself.
  • Notes that the CLI asks which deployment you mean when a machine has more than one configuration, and states signing/notarization for a self-built shell as a requirement rather than predicting what happens without credentials.

Verification

Every claim on the page was re-checked against merged staging, and the behavioral ones were exercised against a real local deployment with APPCONFIG_ENVIRONMENT unset (the self-hoster code path):

  • Both update endpoints resolve, and the download 302s to the current stable .dmg
  • npx sim-setup desktop with real discovery
  • The full journey in the real app: Server… → picker → relaunch → loads the self-hosted server, with its own storage partition
  • Sign-in hands off to the self-hosted deployment's /desktop/auth, never in-window
  • An untrusted certificate shows Connection isn't secure and recovers via Change server — which is what the new callout documents

Type of Change

  • Documentation

Testing

bun run docs-manifest:check, bun run check:audits (36/36), and docs lint all pass. Docs-only change — no runtime code touched.

Checklist

  • Code follows project style guidelines
  • Self-reviewed my changes
  • Tests added/updated and passing
  • No new warnings introduced
  • I confirm that I have read and agree to the terms outlined in the Contributor License Agreement (CLA)

… requirement

The page said the built-in browser's profile survives a server change. It does
not — the teardown clears the browser's saved sessions and the agent's folder
grants along with the saved route, because those are capabilities granted to a
specific deployment. The page now lists what is cleared and what is kept, says
why, and notes that a change which cannot complete is refused rather than
half-applied.

Adds two things a self-hoster hits in practice. Certificate errors are rejected
outright with no "continue anyway", so a private CA that is not in the system
trust store will not load however correct the URL is — worth saying, since a
private CA is a normal self-host setup. And packaging your own shell needs
Xcode 26 or newer, which otherwise fails with an opaque actool error.

Also notes that the CLI asks which deployment you mean when a machine has more
than one configuration, and states signing/notarization for a self-built shell
as a requirement rather than predicting what happens without credentials.
@vercel

vercel Bot commented Aug 27, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
docs Ready Ready Preview Aug 27, 2026 5:24am

Request Review

@greptile-apps

greptile-apps Bot commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

Corrects the self-hosted desktop documentation to match current server-switch cleanup, TLS trust, packaging, signing, and notarization behavior.

  • Documents which deployment-specific capabilities are cleared when switching servers.
  • Adds certificate trust and Xcode requirements.
  • Replaces the sharing package command with the distribution-capable macOS package command.
  • Clarifies artifact naming and the filesystem-path requirement for the App Store Connect key.

Confidence Score: 5/5

The documentation-only PR appears safe to merge.

No blocking failure remains.

Important Files Changed

Filename Overview
apps/docs/content/docs/en/platform/self-hosting/desktop.mdx The revised server-switch and distribution instructions align with the current desktop lifecycle, packaging configuration, and release workflow.

Reviews (3): Last reviewed commit: "docs(self-hosting): spell out that APPLE..." | Re-trigger Greptile

Comment thread apps/docs/content/docs/en/platform/self-hosting/desktop.mdx Outdated

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 1 file

Confidence score: 5/5

  • Automated review surfaced no issues in the provided summaries.
  • No files require special attention.

Re-trigger cubic

…hare

package:share is the "send someone a build to try" path. It passes
-c.mac.timestamp=none to skip the per-file round trip to Apple's timestamp
authority, and its own docstring notes distribution builds need those
timestamps. Apple's notary service requires a secure timestamp, so a build made
that way cannot be notarized however many credentials the operator supplies —
which is exactly what the section was telling them to do.

package:mac inherits notarize and hardenedRuntime from electron-builder.yml and
leaves timestamps on, and bun run build honours SIM_DESKTOP_DEFAULT_ORIGIN the
same way, so the baked-origin instruction is unchanged. Its artifact path and
name differ from the share script's per-channel overrides, so those are
corrected too, and the two stacked warnings are merged into one.
@waleedlatif1

Copy link
Copy Markdown
Collaborator Author

@greptile

Comment thread apps/docs/content/docs/en/platform/self-hosting/desktop.mdx Outdated
The variable holds an absolute filesystem path to the App Store Connect key
file, not the key material, and @electron/notarize reads it through Node fs so
a leading ~ is not expanded — the release workflow carries a comment saying
exactly that. Listed alongside the other credentials with no explanation, it
reads like somewhere to paste the key, and notarization then fails while every
variable looks set.
@waleedlatif1

Copy link
Copy Markdown
Collaborator Author

@greptile

@waleedlatif1
waleedlatif1 merged commit b44b537 into staging Aug 27, 2026
4 of 5 checks passed
@waleedlatif1
waleedlatif1 deleted the docs/selfhost-desktop-accuracy branch August 27, 2026 05:22
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