Move native startup services into atomic_lib and separate HTTP lifetime - #1416
Open
joepio wants to merge 2 commits into
Open
Move native startup services into atomic_lib and separate HTTP lifetime#1416joepio wants to merge 2 commits into
joepio wants to merge 2 commits into
Conversation
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.
The native app currently boots a full hosted-server adapter to access its local data. This PR begins removing that dependency: native storage opening, persisted identity loading and durable flushing now live in
atomic_lib::runtime, and HTTP serving has its own lifetime.AtomicNode::open_local,load_or_create_agentand an ownedstart_durable_flushguard. They run on plain Tokio without an HTTP origin, atomic-server or Actix. The hosted adapter consumes those same services instead of maintaining its own identity/flush implementations.serve::run_nodefromserve::serve_http, preservingserveand the managed-nodeserve_with_hookAPI. Tauri receives its native handle before HTTP starts and keeps the runtime alive after the HTTP adapter stops.db-redb,config, outside workspace feature unification.Remaining migration: Tauri still depends on atomic-server/Actix for configuration, plugin/bootstrap services and the current frontend's local HTTP/WS transport. No no-HTTP user setting is exposed. Native frontend reads/commits/events, attachment access, shared plugin services and ownership of the process-global Iroh lifetime remain. The end-state acceptance gate explicitly requires the default Tauri dependency graph to contain neither atomic-server nor Actix, plus desktop restore/offline/sync acceptance with no listener bound.
Related issues: #1196 (local-first SDK/API), #749 (origin independence). Related native-binding work: #1277 and #1241. These broader issues are not closed by this PR.
Validation on macOS:
--no-default-features, matching the Tauri server dependency.cargo check -p atomic-server-tauripasses. Compile-only frontend stub; no desktop UI or Windows acceptance claimed.ATOMICSERVER_SKIP_JS_BUILD=true).