cyph3rasi f788a58388 Use the node's real web login flow to unlock identity and keep the main launch window visible
Hop-State: A_06FPPA11QG0EKYJHPW7QM4R
Hop-Proposal: R_06FPP9ZQ3ATBZF574QJCR60
Hop-Task: T_06FPP77C4H3JW2MW9WBT0JR
Hop-Attempt: AT_06FPP77C4GJT5HE6CA98S2G
2026-07-16 06:40:20 -07:00

Synapsis Desktop

A Tauri desktop client for the Synapsis federated social network. The first-run experience follows the same node-first model as the native iOS app:

  1. Choose and verify a Synapsis node.
  2. Sign in with an existing account or create a new account on that node.
  3. Continue directly into that node's real signed-in web experience.

Node and authentication requests run in Rust so independent nodes do not need to opt into browser CORS. After authentication, HttpOnly session cookies are securely handed to the native webview and the selected node's actual web client opens in the same window.

Develop

Requirements: Bun, Rust, and the platform prerequisites for Tauri 2.

bun install
bun run tauri dev

The standalone frontend preview is available with bun run dev, but node connection is intentionally disabled outside Tauri because the native command layer owns networking.

Validate

bun run build
cargo test --manifest-path src-tauri/Cargo.toml

Current scope

  • Animated signal-field launch and onboarding visuals.
  • Node URL normalization and /api/node verification.
  • Persistent web-session detection across app launches.
  • Cookie-based sign in, account creation, and sign out.
  • The selected node's complete website experience after authentication.

The node address and HttpOnly website session persist between launches using the native webview's cookie store.

Auto-updates

Production builds check the newest public release at GnosysLabs/Synapsis-Desktop on Githop. When a newer signed release is present, Synapsis downloads it, verifies it with the embedded updater public key, installs it, and relaunches automatically. Development builds do not check for updates.

The encrypted updater private key lives outside this repository at /Users/christopher/.tauri/synapsis-desktop-updater.key. Matching TAURI_SIGNING_PRIVATE_KEY and TAURI_SIGNING_PRIVATE_KEY_PASSWORD secrets are configured for the Githop repository. Never commit the private key or password.

To prepare a macOS update locally:

  1. Increment version in src-tauri/tauri.conf.json, src-tauri/Cargo.toml, and package.json.
  2. Run bun run release. The release script reads the Apple notarization and updater signing credentials from macOS Keychain, then builds and notarizes the app, updater archive, and signature. It does not create a DMG.
  3. Run bun run release:manifest to create latest.json beside the archive.
  4. Create a Githop release tagged v<version> and attach Synapsis.app.tar.gz, Synapsis.app.tar.gz.sig, and latest.json.

The release tag and manifest tag must match. Override the defaults with SYNAPSIS_RELEASE_TAG and SYNAPSIS_RELEASE_NOTES when needed.

S
Description
No description provided
Readme 729 KiB
Languages
Rust 55.4%
TypeScript 39.6%
JavaScript 2.1%
Shell 1.9%
HTML 1%