Skip to content

G3 Community chat: Chat and People with Home #86

Open
0 of 2 issues completed
Open

Description

@andersalm

Current design (Anders, 14 Oct, comment 6171916401): in 0.8.0 Community posts travel over the gossip topic through the seed's Community node, which only forwards (it stores and confirms nothing); direct Home-to-Home delivery stays. The Carrier relay (#345), DMs across networks and offline catch-up across networks move to 0.8.1. Items below that assume the relay or a storing seed node are 0.8.1.

Release: 0.8.0. Owner: Anders (@andersalm). OMP owns integration and release. Irzhy (@irzhywau) reviews selected risky areas on one frozen SHA; Sasha (@SashaMIT) owns PR #116 and phone acceptance.

Goal and ownership

A person opens Home, joins Community, finds another person, approves a contact through Inbox, and sends a direct message in the same Chat window. On return, the person sees the right conversation, history and delivery state.

Proof for Chat lives here. Code: PR #309, then the Community node follow-up (branch fix/139-community-node); relay #354; Community pin (branch feat/community-release-pin, which includes #334). #260 holds guest sign-up; #264 Leave/Rejoin. #323 holds the full retention and rejoin rules in After 0.8.0.

Runtime owns identity, authorization, routing, delivery evidence and lifecycle. Profiles sign authored messages. Every Home keeps its own copy and checks every post; in 0.8.0 the Community node only forwards (design note above). Chat requests scoped Runtime operations and presents clear controls. This follows PRINCIPLES.md, especially local ownership, stable identity, explicit authority and one canonical operation path.

Done means

Each exposed feature works from start to end, including recovery. Keep an unfinished feature hidden until its journey passes; hiding it leaves its task open. Source checks and green CI are separate from installed acceptance.

  • Join: Create account is visible on the first screen. A new visitor signs in within 30 seconds and enters Community, with welcome text for a new account.
  • One Community: fresh install.sh Homes, and people signed in to them from a browser, share the release-default Community and send/receive both ways. Runtime installs and verifies the signed network configuration through the canonical setup/update path.
  • Speed and initial history: messages appear for other people on the same Home within 1 second and between Homes within 3 seconds. Local history appears when Chat opens.
  • Chat basics: desktop Enter sends and Shift+Enter adds a line. Phone Return retains the accepted newline behavior. Times and day separators use the local calendar. Direct conversations and Community have per-account unread badges; direct messages also notify.
  • Connect: every participant name opens a Profile card with Message and Add contact. Message opens the exact direct conversation inside the same Chat window. Add contact from Community reaches the recipient's Inbox with a notification. Discovery starts off and, when enabled, shows people within a few seconds.
    • The approved contact route, POST /api/apps/chat-room/contacts/request, requires a valid Chat launch token and the sender's own Profile. The recipient decides in Inbox. Bounds: 16 requests per sender, 128 stored records, 512 KiB.
  • Direct messages: accepted contacts exchange signed 1:1 messages across Homes when both are online. Re-check on the candidate (see 0.8.0: Release 0.8.0 #93). Earlier proof (alpha.19, same network ~0.35 s; across networks is 0.8.1): G3 Community chat: Chat and People with Home #86 (comment)
  • Authority: people approve their contacts and explicitly enable Discovery. Runtime verifies Profile authorship and destination authority. For 0.8.0 the only bootstrap is the seed host's separate Community node (item 9); participant Homes retain message ownership. The seed's install/release role (Seed: run the seed service under its own account without sudo or Docker #174) runs apart from it.
  • Installed proof: on the signed candidate, Homes on the same network pass the complete journey. Repeat after restart and update, and record signup/message times.
  • Availability (0.8.0): the release network lists one bootstrap peer, the Community node on the seed host. It runs as its own Runtime (own account, data root, port and resource limits), apart from the release and update service. Carrier connects Homes directly. While the node is unreachable: Homes already connected keep exchanging Community messages and catch-up; a Home that starts or restarts cannot join Community; Discovery and new contact requests stop; new direct messages show Sending, are retried for up to 24 hours and then show expired; nothing already received is lost; Chat states plainly that Community is unreachable. Canonical text: docs/COLLABORATION_NETWORK_PROFILE.md "Availability". Any Home serving as bootstrap: Community works while any participant is online (open bootstrap and relay) #324.
  • Delivery across networks (Discovery off): 8 Homes, 56/56 pairs in 0.6-2.2 s. Proof: G3 Community chat: Chat and People with Home #86 (comment) item 1
  • Restart: other Homes keep exchanging while one restarts; it returns to Live without reload. Proof: same comment, item 2
  • Link recovery: seed link cut shows "Community unreachable" and returns to Live after restore without reload. Proof: same comment, item 3 (posts sent during the cut did not reach the cut Home)

Moved to 0.8.1

Per the 14 Oct design note: catch-up from the Community node for a Home that was away; Post when alone (the node keeps posts for later joiners); installed proof with Sasha's and Irzhy's Homes over the relay; relay fallback in Availability (#345). Scale (30 members, 7-day catch-up) is not a release gate.

Not in 0.8.0

Invite links and QR codes, an offline direct-message mailbox, user-created groups and reactions (#323, #342, #285).

Activity

  1. added this to the 0.7.1 milestone on Sep 29, 2026
  2. andersalm commented on Sep 29, 2026

    @andersalm
    ContributorAuthor

    Retained Chat test detail from the earlier product reviews:

    Define and test pending, delivered, failed and expired message states. Explain presence separately from Home availability, and state what delivery is possible when the recipient stays offline beyond retention. Exercise restart, contact removal and relay/rendezvous loss. Keep sender retry evidence separate from offline store-and-forward delivery.

    Community remains the onboarding space. User-created groups are later work. This adds detail to the existing messaging and offline criteria; it does not create another Chat workstream. The issue body now replaces the copied Chat briefing as the work record.

  3. irzhywau commented on Sep 29, 2026

    @irzhywau
    Collaborator

    Implementation plan (checklist)

    Work branch: feat/0.7.1-chat-people-on-invite, stacked on #117 (fix/chat-invite-in-home-0.7.1-models), which targets feat/0.7.1-models. All 0.7.1 work is in #123, which replaced #121. Follow-up work is in #139. #123 merges after #117. Anders reviews the Runtime and server changes. Sasha reviews the first-visit and Chat design.

    Decisions (2026-09-29)

    • Offline delivery: Community keeps a short, signed catch-up history. Direct messages arrive when both people are online, and Chat shows that state clearly. The encrypted mailbox stays later work.
    • Spam: add small, basic limits in this release.
    • Speed: Chat must feel instant. New messages appear without a visible delay.
    • Every Runtime joins the public Community room by default, with an explicit opt-out.

    Review decisions (Anders, 2026-09-29)

    • Approved: every Home joins Community by default through the signed network profile in the release. An isolated Home is an explicit setting. Setup says this in one line and shows where to turn it off. docs/COLLABORATION_NETWORK_PROFILE.md changes in the same PR.
    • Invite link and QR ship in 0.7.2. Add contact from Community covers 0.7.1.
    • Each PR says "Part of G3 Community chat: Chat and People with Home #86". A PR is marked ready when its part works end to end. Anders reviews the Runtime and server parts. Sasha reviews the first visit and the Chat design.
    • Every seed change (for example, a stable node address) needs Anders' approval of the exact change first.
    • The release test under Proof is the Done means for G3 Community chat: Chat and People with Home #86.

    1. The three blockers

    • Create account on the first screen. The lock screen shows a "Create account" button when guest sign-up is on. It opens the existing guest passkey flow. (In Chat and People with Home: connect, approve contacts and recover (#86) #123. Waiting for review and the live check.)

      • QA-30 (Anders, 2026-09-29) reproduced the hidden sign-up on the public Home, which runs 0.7.0-dev without this fix. The button is #home-unlock-create; the passkey circle is #home-unlock-person ("Use passkey"). QA should target these after the fix is deployed.
    • Welcome text fits the account. A new account sees "Save a Recovery Kit so you can get back into your account." The "updated kit" text is only for accounts whose kit predates their Profile. The server now tells Home which case applies. (In Chat and People with Home: connect, approve contacts and recover (#86) #123. Waiting for review and the live check.)

    • Discovery is fast and honest. Discovery shows "Connecting…" while it reaches the seed, retries within 15 seconds while it is on, and retries at once when the person turns it on or presses Refresh. Failed passes are logged so the seed shows the cause. People updates on its own when Discovery connects. (In Chat and People with Home: connect, approve contacts and recover (#86) #123. Waiting for review and the live check.)

    • Every Home joins Community automatically. The signed release carries the seed's signed network profile, the same way it carries the model catalog. elastos setup (and so install.sh) installs it, and updates move it forward only along its signed chain. People can choose an isolated Home with an explicit setting. (In Chat and People with Home: connect, approve contacts and recover (#86) #123: setup and update install the pinned network, elastos setup --isolated and install.sh --isolated keep a new Home isolated, and a Home publishes its network file at GET /.well-known/elastos/collaboration-network.json. Nothing changes until a release carries the pin.)

    • Discovery keeps working when one queued contact request or answer is refused (for example after the meeting-point Home restarts). (In Chat and People with Home: connect, approve contacts and recover (#86) #123.)

    • The meeting-point Home pins its Carrier address. Found in a two-Home test: without carrier_bind_addr, a restart can move its port and every other Home loses the network (contacts one-sided, direct messages stuck on Sending). docs/TROUBLESHOOTING.md records the diagnosis. The public Home needs its port pinned before its network file ships.

    • A way to publish a second signed version of a network file when the meeting point's address changes: elastos collaboration-config generate-revision. (In Chat and People with Home: connect, approve contacts and recover (#86) #123. Used on 2026-09-30 when a test Mac's address changed.)

    • Build identity: the public Home reports no build or commit (QA-30). Anders decides whether Home should report one, so QA and the release test can name the exact build.

    2. Connect in one or two clicks

    • Clicking any name in Chat (People panel or message author) opens a profile card with Message or Add contact. The card shows no technical IDs. (In Chat and People with Home: connect, approve contacts and recover (#86) #123: the card shows You / Contact / Requested / Pending; Message opens the direct chat in the same window; Add contact works when the person is visible in Discovery.)
    • Add contact from a profile card. Decided (2026-09-30): in 0.7.1 it goes through Discovery, and the request still arrives in Inbox for approval.
    • Message opens the direct chat inside the same Chat window, from Chat, People and Inbox. (In Chat and People with Home: connect, approve contacts and recover (#86) #123. Inbox Open on a direct-message notice now opens that conversation.)
    • Invite link, stage 1: chat-room: invite, join and access controls show in Home again #117 (Sasha, draft). The Chat UI part is fixed: Home shows Create join link, the join box and the access panel again (they were hidden by an inverted condition), and the join button works whenever the join box shows. This covers rooms outside the configured network.
    • Invite link, stage 2: joining works. The server still refuses the join step: invites/join and invites/claim answer "Room join claims are unavailable through this legacy transport path". A second Home can join from the link only after this server work.
    • Invite link, stage 3: the shared network. Once every Home joins Community by default, Homes use the configured network, where chat-room: invite, join and access controls show in Home again #117 keeps these controls hidden. Inside Community, "Add contact" from a profile card covers adding people. An invite link or QR for someone outside Community moves to the next release.
    • Decided (Anders): invite link and QR ship in 0.7.2.

    3. Chat basics

    4. Delivery and catch-up — moved to #139

    • Direct messages show clear states: Sending, Sent, "Will deliver when you're both online", and "Not delivered" with Retry.
    • Community catch-up: the seed keeps a bounded history of recent signed Community messages. A Home that comes back online collects what it missed, and each message still carries its sender's signature.

    5. Small spam limits — moved to #139

    • A per-person send limit in Community, with a "Slow down" message.
    • A per-browser limit on guest sign-up, on top of the existing global limit.
    • A per-person limit in the Discovery relay, so one person cannot fill the list.
    • If time allows: a seed-side block list for Community. Otherwise it moves to the next release.

    Later (next release)

    Encrypted mailbox, invite link and QR, user-created groups, attachments in direct messages, moderation beyond the block list.

    Proof

    • Unit and source checks for each change. (just test: 4626 passed, 0 failed; entropy, alignment and Inbox smoke pass.)
    • Two-runtime test: a fresh install.sh Home joins Community with no setup step.
    • Release test: 3 web users on the seed and 2 self-hosted Homes, one behind a home router. Record times for sign-up, Community message, direct message, catch-up after being offline, and after a restart and an update. Include contact removal, relay loss and an expired direct message.
  4. irzhywau commented on Sep 29, 2026

    @irzhywau
    Collaborator

    @andersalm what do you think about this plan for now? does it fit with your expectation?

  5. andersalm commented on Sep 29, 2026

    @andersalm
    ContributorAuthor

    @irzhywau Yes, the plan fits. My decisions:

    • Approved: every Home joins Community by default through the signed network profile in the release, and an isolated Home is an explicit setting. Setup says this in one line and shows where to turn it off. Please update docs/COLLABORATION_NETWORK_PROFILE.md in the same PR.
    • Invite link and QR in 0.7.2 is fine, because Add contact from Community covers 0.7.1. Nothing broken or confusing ships, so chat-room: invite, join and access controls show in Home again #117 stays a draft until the server join step works.
    • Small PRs into feat/0.7.1-models, one per checklist group, each with "Part of G3 Community chat: Chat and People with Home #86", blockers first. Mark a PR ready when its part works end to end. I review the Runtime and server parts; Sasha reviews the first visit and the Chat design.
    • Seed changes (for example the stable node address) need my approval of the exact change first.
    • Proof: the release test at the end of your plan is the Done means for G3 Community chat: Chat and People with Home #86.
  6. andersalm commented on Sep 29, 2026

    @andersalm
    ContributorAuthor

    QA retest 2026-09-29 (public Home)

    Verdict: STILL_REPRO on https://elastos.elacitylabs.com/home/

    Steps

    1. Open /home/ as a new visitor (no session).
    2. Observe the scenic lock face.

    Expected

    Create account / Create guest and Use passkey are visible and clickable on the first screen (per Done means: new visitor sees Create account).

    Actual

    • Surface is scenic wallpaper + clock + monogram e only.
    • DOM has #home-unlock-primary (“Use passkey”) and #home-unlock-secondary (“Create guest account”), both 0×0 rects (display:block / visibility:visible / opacity:1).
    • Normal Playwright clicks time out as not visible. Force/JS click can still open the create card — control exists but is not painted/hittable UX.

    Build / identity

    • Hosted runtime reports 0.7.0-dev via /api/apps/home/summary and runtime/ensure.
    • No x-elastos-build / git-sha response header on /home/.

    Evidence

    Local (box): /workspace/elastos-qa/github-reset-20260929/retest-public/ — RETEST.md, qa30-*.png, qa30-dom.json.

    Notion archive id: QA-30.

  7. irzhywau commented on Sep 30, 2026

    @irzhywau
    Collaborator

    @andersalm What do you mean here?

    Invite link and QR in 0.7.2 is fine, because Add contact from Community covers 0.7.1. Nothing broken or confusing ships, so #117 stays a draft until the server join step works.

    Especially the part: "until the server join step works."

  8. andersalm commented on Sep 30, 2026

    @andersalm
    ContributorAuthor

    @irzhywau By "the server join step" I mean the two endpoints that let a second Home join a room from an invite link: invites/join and invites/claim in elastos-server/src/api/gateway_room.rs (lines 881 and 932 on feat/0.7.1-models). They still answer "Room join claims are unavailable through this legacy transport path", as you noted on #117.

    So with #117 merged, Home would show "Create join link", but a second Home that opens the link could not join. That is a visible control that does not work, so it stays hidden: #117 stays a draft until those endpoints work, together with invite links and QR in 0.7.2.

    One consequence: please rebase #123 onto feat/0.7.1-models and target it there directly, as #121 did. Its three changes (Create account, welcome text, Discovery) touch no chat-room files and merge cleanly without #117, so they should not wait for it.

  9. andersalm commented on Sep 30, 2026

    @andersalm
    ContributorAuthor

    @irzhywau heads-up to avoid double work: Sasha's #134 already contains "Enter sends, Shift+Enter starts a new line" (with input-method handling) for Chat. Please take that item off your checklist, and review the Chat part of #134 when it leaves draft.

  10. irzhywau commented on Sep 30, 2026

    @irzhywau
    Collaborator

    ok got it

  11. 84 remaining items

  12. andersalm commented on Oct 14, 2026

    @andersalm
    ContributorAuthor

    RC 0.8.0-alpha.16, Anders, 14 Oct: Mac and Jetson Homes in the release Community saw nothing of each other until People -> Discovery was turned on on both; then posts and Chat synced. The Linux acceptance (comment above) failed for the same reason. Community must work without the Discovery switch: fix options being compared now.

  13. andersalm commented on Oct 14, 2026

    @andersalm
    ContributorAuthor

    Cross-network test on the RC, 14 Oct: a Namespace box and Anders's Jetson (home NAT), Discovery on: People presence crossed in 3 s through the seed node, but Community posts did not arrive (box post stayed Sending for 3 min). Same-LAN Homes work. Posts go Home to Home directly, with no relay (#345 is 0.8.1), so Homes behind different routers cannot exchange posts in this RC.

  14. andersalm commented on Oct 14, 2026

    @andersalm
    ContributorAuthor

    Decision (Anders, 14 Oct): 0.8.0-alpha.17 restores Community posts and receipts over the gossip topic (as in alpha.15), keeping direct delivery; the seed node only forwards, never stores or confirms. Posts are signed but readable by the seed in transit until the relay (#345, 0.8.1) makes delivery end-to-end encrypted.
    Acceptance: Homes on different networks with Discovery off on both.

  15. andersalm commented on Oct 15, 2026

    @andersalm
    ContributorAuthor

    RC 0.8.0-alpha.17 (source 37df2f6), Linux x86_64 Namespace box, Discovery off, 15 Oct: fresh install 1 min 20 s; sign-up and Community join pass. Posts are shown once, and 'Sending' clears only on another Home's signed receipt (alpha.17 Home "Test Update", not the seed). Delivery takes 33-89 s both ways (box post at 05:13:00Z got its receipt at 05:14:28Z; "hey" took 55 s), so the 10 s target fails. The post-while-Home-stopped check could not be run (no partner post).
    Cause (gossip debug log on the box): the QUIC connection to the seed Community node d17d1552 times out every 35-55 s (connection lost: timed out → NeighborDown → redial → NeighborUp). Frames arrive only in the 1-2 s burst after each NeighborUp, so the receiver-side RetryRequired stall does not explain the delay.
    Seed: elastos-community (alpha.15) uses its full 1-CPU quota (cgroup usage about 1.0 s/s, nr_throttled rising), runs one tokio worker, and has a full UDP receive queue on 77.42.19.31:4434 (Recv-Q 427 KB; RcvbufErrors rising). It drops packets, and the paths die. Fix: find what is using that CPU and raise the quota/workers, or upgrade the node to alpha.17. Neither has been tested.

  16. andersalm commented on Oct 16, 2026

    @andersalm
    ContributorAuthor

    Installed alpha.19, two Linux Homes on two networks, seed Community node on alpha.19: Community posts with Discovery off A->B ~1.9 s, B->A ~2.4 s; Discovery on: People shows the other member across networks, contact request, Open Inbox and Accept work; same-network direct message ~0.35 s; message box back to one line; People -> Message reuses the Chat window. PASS. As documented in the [0.8.0] notes, direct messages across networks stay "Sending" until the relay (0.8.1); non-blocking: Retry gives no feedback and on one send the text stayed in the box.

  17. andersalm commented on Oct 16, 2026

    @andersalm
    ContributorAuthor

    Possible 0.8.0 blocker, under investigation: Anders's Jetson Home (alpha.19) stopped receiving Community at 00:28Z, right when another Home on the same network restarted for its update, and stayed "Community unreachable" for 55+ min; UDP to the seed works, the seed forwards nothing to the Jetson and the Jetson sends no rejoin; a page reload does not help. Hypothesis: a stuck neighbour connection blocks iroh-gossip (0.101) sends (net.rs:686). Reproducing on Linux boxes (two Homes on one network + one on another, restart one).

  18. andersalm commented on Oct 16, 2026

    @andersalm
    ContributorAuthor

    Remaining for 0.8.0 (15 Oct 22:45 COT; final candidate alpha.21 = alpha.20 + automatic Community recovery; plan #93 6207232773): full rerun on installed alpha.21: two networks with Discovery off, the restart-freeze scenario on Anders's Mac + Jetson, and a forced dead link recovering by itself without reload. Relay, storing node and cross-network direct messages are 0.8.1 per the 14 Oct design.

  19. andersalm commented on Oct 16, 2026

    @andersalm
    ContributorAuthor

    Automatic recovery proven on real Homes (source builds of the final head 55dcb79 and of 78b6e33; three Homes on two networks, real seed node, Discovery off): with one Home's UDP to the seed blocked for ~3 min it showed "Community unreachable", rejoined, rebuilt its gossip link and logged "Community link recovered" 7 s after the link returned, then received posts again without reload or restart. Restarts (SIGKILL/SIGTERM on both networks): posts flow all ways, no watchdog churn; 15 min of silence and a Discovery-on Home going offline: 0 rejoin/rebuild lines; the seed logs "watchdog is off: this Runtime is a Community bootstrap node". Evidence kept by OMP. Posts sent while a Home is cut off do not arrive later (no catch-up with Discovery off; 0.8.1 storing node).

  20. andersalm commented on Oct 16, 2026

    @andersalm
    ContributorAuthor

    Likely root cause of the Community freezes (16 Oct): Carrier builds iroh-gossip with the default membership config, active_view_capacity = 5 (iroh-gossip 0.101 hyparview.rs:202). The seed Community node is the hub for Homes behind NAT; with more than 5 Homes joined it keeps 5 active neighbours and evicts a random one whenever another Home (re)joins, and the evicted Home has no other neighbour, so it shows "Community unreachable". Seen twice when one Home restarted: the Jetson last night, and three Linux test Homes on separate boxes at 11:48Z today. Earlier tests never had more than 5 Homes. Also: the watchdog treats trickling frames as healthy and does not recover a Home with 0 peers. Fix in progress for alpha.22 (hub capacity on the bootstrap node; watchdog rule), with the replay-table fix #401.

  21. andersalm commented on Oct 16, 2026

    @andersalm
    ContributorAuthor

    Seed Community node upgraded 0.8.0-alpha.19 → 0.8.0-alpha.22 at 18:23Z 16 Oct (signed hashes verified; rollback files .before-1792175000). It now logs: carrier: this node is a Community bootstrap node; gossip runs as the hub active_view=512. So the 5-neighbour limit (root cause, 6215286052) no longer applies at the hub; Homes keep the iroh defaults. Installed checks with 8 Homes across networks (joins, restarts, a cut link, 30 min of presence) are running now on alpha.22 (head QmXnA5ao7PMfwdj7pGaxpWs14gfgD15FtmhVQPj1EphFXm).

  22. andersalm commented on Oct 16, 2026

    @andersalm
    ContributorAuthor

    alpha.22 installed checks: Community across networks PASS. Six (then eight) Homes on separate networks: every pair delivered in 0.6-2.9 s. With one Home restarted (twice), the others were unaffected and the restarted Home rejoined. Discovery on/off in every combination: 30/30 pairs. Evidence: rc-tests/runs/a22-community8-20261016T1825Z/runs/. The seed hub runs as the hub (6222024819).
    For 0.8.1 (Community first run, with #92 6219855275 item 3): Homes with Discovery on showed "Earlier Community posts cannot be loaded right now." while three other Discovery-on Homes were online. Discovery visibility windows are ten minutes, and history needs both sides visible at once (window30.json), so earlier posts rarely load. A new Home with Discovery off sees "Turn on Discovery in People to load earlier Community posts." Anders: having to use Discovery for Community is confusing; Community should not need it.

  23. andersalm commented on Oct 16, 2026

    @andersalm
    ContributorAuthor

    alpha.22 Community with 8 Homes across networks + 1 Mac Home: all six items PASS (evidence rc-tests/runs/a22-community8-20261016T1825Z/runs/).

    1. Eight Homes post: 56/56 pairs, 0.6-2.2 s (median 1.4 s), Discovery off everywhere.
    2. Restart Home 3, then 6: the others exchanged 20/20 while it was down and 25/25 after; it was back to "Live" with no reload.
    3. Seed link cut on Home 5 for 205 s: "Community unreachable" after about 54 s; "Live" again 6 s after restore with no reload; new posts in 1.5 s. Posts sent during the cut were not delivered to Home 5.
    4. Late joiners 7 and 8: no change on 1-6; next round 56/56.
    5. 30 minutes all open: each Home's tombstones grew by exactly 1 (the one post); a post then reached all 8 in 0.7-2.2 s.
    6. Mac Home joined: 32/32.
      Remaining for first run: Community should work without Discovery: a new Home sees nobody and no earlier posts #410 (Community without Discovery), being built for alpha.23.
  24. andersalm commented on Oct 16, 2026

    @andersalm
    ContributorAuthor

    Added three ticked boxes proven by the alpha.22 8-Home run (#86 (comment)): delivery across networks with Discovery off, restart, link recovery. All other boxes stay open: history, contacts, Join/first run depend on #410 (alpha.23); alpha.22 evidence does not accept alpha.23.

  25. andersalm commented on Oct 19, 2026

    @andersalm
    ContributorAuthor

    Anders reports that Sasha's Community now works after the latest alpha, while Anders-to-Sasha DMs still fail through Retry. The actual DM HTTP result and reverse direction remain unmeasured.
    Published alpha.23 bfefe92f619f48468b117dad957659862917e166 sends DMs through a separate Carrier PeerDid invocation; invocation failures return Pending and Retry reuses the durable signed message (source). Community success therefore leaves this pair route and receiving contact admission to check; the general relay remains in #345.
    OMP owns the target trace: capture a current send/Retry HTTP status and safe delivery fields, both accepted-contact states, the sender's exact Carrier failure or the receiver's admission result, and whether Sasha sees the message. Preserve both Homes and keep raw logs, tokens and message bodies private.

  26. andersalm commented on Oct 19, 2026

    @andersalm
    ContributorAuthor

    Anders confirms that Mac–Jetson DMs deliver in both directions. The earlier People Online/Offline mismatch was resolved when he enabled Jetson Community visibility.
    This is human installed evidence for that pair; the exact artifact and visibility-mode receipts remain uncaptured. The report does not establish that visibility controls DM delivery.
    Anders-to-Sasha DM failure remains open. Its connection, receiver-admission and receipt-return paths still need target evidence.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingsecurity

Type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions