SolarOS 4.17.7 manual · app
chat
Tabbed provider-neutral conversation client. The Channels tab groups conversations by named instance, including IRC, Gateway, MeshCore, and Link. Enter selects a conversation and opens its bounded shared history on the Chat tab, which also contains the message/command input. The app opens and remains useful offline; network or radio transport jobs connect independently.
/leave removes the current channel or room from Chat's Channels tab and returns to that tab. Its local history is retained. Use /join instance channel to show the room and its previous messages again. Explicit departures survive restart; disconnecting a provider keeps its channels visible. Messages still provides access to retained history while a room is left.
MeshCore channel labels distinguish [radio] and [companion]. Entries marked (history) retain readable messages but cannot accept sends. After submitting a message, the footer follows its delivery state through queued, sending, sent, delivered, or failed.
Usage:
chat [instance|class|conversation-id]
With no selector, Chat opens a unified view and initially selects the newest unread conversation. An instance name or provider class filters the list. A decimal conversation ID opens exactly that conversation.
The background gateway-sync job owns the gateway transport connection, retries, and joined-channel replay. Each join sends the greatest stable message ID retained for that room as its cursor; the gateway replays only newer messages. Requested membership and server-confirmed membership are separate, connection-scoped states. The shared messaging service owns queued outbound messages and gateway-sync consumes only gateway requests. Start it explicitly with job start gateway-sync, just like email-sync. Closing or suspending chat does not disconnect an already-running synchronizer. Incoming messages remain in the shared bounded messaging store and publish bounded notifications to the universal inbox; reopening the app replays retained conversations from every provider. With SD storage, full messages are retained under /.messages/messages.bin. On internal flash, Chat restores the compact message copy already retained in /.inbox/messages.bin, so it consumes no second flash ring. Both backends deduplicate transport replays by stable message identity and keep linked Inbox read state aligned.
Unlike email-sync, gateway-sync takes no interval argument: it waits for Wi-Fi and reconnects with exponential backoff while remaining in the running state.
Gateway setup and room lifecycle use gateway status, gateway configure, gateway connect, gateway disconnect, gateway rooms, gateway join, gateway leave, and gateway delete. Gateway synchronization runs only under the gateway-sync job name. Selecting a known gateway room in the Channels tab requests a join automatically and opens it after the server confirms joined.
Additional Gateway connections use messages add gateway NAME URL [TOKEN], messages connect NAME, and messages join NAME ROOM. The same gateway-sync job maintains every enabled instance independently. In Chat, use /add gateway NAME URL [TOKEN], /connect NAME, and /join NAME ROOM. /remove NAME closes the instance and deletes its settings, pending sends, and local history.
Conversation rows show provider, unread, and security state. Outbound rows show queued/sending/sent/delivered/failed state. Use /new CONTACT_ID to open a direct conversation with the contact's preferred endpoint. Sending to a discovered endpoint asks for a second Enter confirmation; blocked endpoints cannot be messaged.
The conversation header reports the selected instance's state. Connection providers use disconnected, connecting, and connected; connectionless MeshCore and Link providers use stopped, starting, ready, and error.
In-app commands:
/help
/new contact-id
/join instance channel
/query instance nickname
/leave
/connect instance
/disconnect instance
/remove instance
/server instance host port nickname
/sasl instance account password
/sasl instance off
/status
/quit
Controls:
Tabswitches between the Channels and Chat tabs.- In Channels,
Up/Downselect a conversation andEnterjoins a known gateway room if necessary, then opens the Chat tab. - In Chat,
Up/Downnavigate input history andEntersends input. Page Up/Page Downscroll messages.Escor app-exit key exits.