The mesh tier

A bigger brain, when one is nearby.

The solo tier is the floor โ€” it always works on one phone. The mesh tier is the ceiling: when a capable anchor device is reachable, the phone hands the explanation step to a larger MedPsy-4B running there, while OCR and the DDInter lookup stay local.

๐Ÿ“ฑ

The phone (consumer)

Runs OCR + DDInter grounding locally and holds a small on-device MedPsy for the solo path. For a hard case it opens a direct peer connection to the anchor by public key and delegates the explanation.

๐Ÿ–ฅ๏ธ

The anchor (provider)

A nearby laptop/desktop runs the larger MedPsy-4B and announces itself on the DHT. It performs the delegated explanation and streams the answer back to the phone.

Proven, not theoretical

Two physical machines, real delegation

We ran it for real: an anchor on one machine loaded MedPsy-4B and started a provider; a separate consumer machine connected over the Holepunch DHT and delegated a query with local fallback disabled (so a remote failure couldn't be masked). The answer was generated on the anchor and streamed back.

consumer โ†’ ๐Ÿบ peer connection opened (cross-device, over DHT) provider โ†’ delegated completion runs on MedPsy-4B consumer โ†’ GATE A: response received from PROVIDER โœ“ (TTFT ~6s)

Because the heavy model runs on the anchor, the phone gets a larger model's answer without holding it โ€” the win is capability (4B > on-device 1.7B), shared over your own devices.

Honest about the boundaries

What the mesh is โ€” and isn't

๐Ÿ”

Graceful fallback

If the anchor is unreachable, Pharos runs the explanation on the phone's own model. Resilience is handled at the device level โ€” no silent failures.

๐Ÿ“ก

Local-network tier

Peer discovery uses the Holepunch DHT, which bootstraps over the internet. So the mesh tier is the connected story; the solo tier is the airplane-mode one. We don't claim offline for the mesh.

๐Ÿงญ

Delegation, not magic

The SDK supports delegating inference to a peer; it does not do peer-to-peer model pulling or mid-stream failover. We build only on what the SDK actually guarantees.