Repository navigation
docs: correct Model B architecture to verified ground truth - #218
Merged
Merged
Conversation
The docs and code comments carried a stale "native ReticulumSwift node in the NE" phantom that contradicted how Model B actually runs. A ground-truth pass over the code confirmed the single RNS runtime is the embedded-Python RNS node (`app/rns_bridge.py` via `NEPythonRNS`) in BOTH flavors - shipping runs it in-process in the app (`PythonRNSBackend`), Model B runs it in-process in the Network Extension (the app is a thin IPC proxy/UI client). ReticulumSwift is not the runtime in either flavor; the app targets carry it only as a compile-time link so retained shared sources that reference ReticulumSwift/LXMFSwift types type-check. This change is comment/string-accuracy only - zero logic changes: - ARCHITECTURE.md, README.md, docs/MODEL_B_BACKGROUND_DELIVERY.md: correct the "runs the native stack" claim, the NE-owns-ReticulumSwift bullet, the ReticulumSwift link paragraphs, and the flavor table. - Swift comments in ColumbaApp.swift, AppServices.swift, BackendPreference.swift, ProxyRnsBackend.swift, AppGroupPaths.swift, OutboxQueue.swift, ProxyIPC.swift: replace references to the removed `NEReticulumNode` type and non-existent methods with the current `NEPythonRNS` / `rns_bridge` names; correct the misleading "Auto stays local" tunnel-mode wording to state it is a no-op in Model B.
Contributor
|
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
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.
Summary
The docs and code comments carried a stale "native ReticulumSwift node in the
NE" phantom that contradicted how Model B actually runs. A ground-truth pass
over the code confirmed the single RNS runtime is the embedded-Python RNS
node (
app/rns_bridge.pyviaNEPythonRNS) in both flavors:PythonRNSBackend).IPC proxy / UI client.
ReticulumSwift is not the runtime in either flavor. The app targets carry
it only as a compile-time link so retained shared sources that reference
ReticulumSwift/LXMFSwifttypes type-check (e.g.MessageRepository,LocationSharingManager,CeaseTelemetry). The NE target declares it as acompile-time
packageProductDependencyonly - it is not in the NE'sframeworks build phase, so it is not linked into the extension binary and no
ReticulumSwift object runs there.
This is comment/string-accuracy only - zero logic changes.
Files
ARCHITECTURE.md,README.md,docs/MODEL_B_BACKGROUND_DELIVERY.md:correct the "runs the native stack" claim, the NE-owns-ReticulumSwift
bullet, the ReticulumSwift link paragraphs, and the flavor table.
ColumbaApp.swift,AppServices.swift,BackendPreference.swift,ProxyRnsBackend.swift,AppGroupPaths.swift,OutboxQueue.swift,ProxyIPC.swift: replace references to the removedNEReticulumNodetype and non-existent methods with the currentNEPythonRNS/rns_bridgenames; correct the misleading"Auto stays local" tunnel-mode wording to state it is a no-op in Model B.
Verification
swiftc -parse(no syntax errors).ARCHITECTURE.mdis byte-identical to HEAD; only aclarifying note above it changed.
Scope note
ReticulumSwift / LXMFSwift removal is intentionally out of scope here.
The build graph (pbxproj), the reconciler (
isolate-modelb-targets.rb), andthe static contract tests all enforce ReticulumSwift linkage as a deliberate
invariant (the
@_exported import ReticulumSwiftin LXMFSwift means the keptLXMFSwiftproduct transitively pulls it in). Reversing that is a separate,coordinated change.