fix(mobile): hydrate peer presence before live heartbeat - #25
Draft
BrianInAz wants to merge 2 commits into
Draft
Conversation
Signed-off-by: Brian Charbonneau <github@briancharbonneau.com>
|
Bugbot is not enabled for your account, so this pull request was not reviewed. Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs. |
Signed-off-by: Brian Charbonneau <github@briancharbonneau.com>
BrianInAz
marked this pull request as draft
August 10, 2026 08:34
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
Root cause
iOS previously consumed only ephemeral live presence events. Events received before a DM pubkey was tracked were discarded, and ephemeral events are not stored or replayed, so an already-online Hermes peer remained gray until its next heartbeat. Relay connectivity and peer presence are separate signals.
TDD and validation
Acceptance used only the isolated iOS 26.5 simulator and the worktree-specific debug bundle. The existing public Home Lab CA was trusted only in that simulator after explicit approval. The unbacked physical iOS 27 beta phone was not touched.
Evidence and tracking
ios-buzz-59eScope boundaries
No Desktop, CLI, relay, Hermes runtime, heartbeat, TTL, authentication, membership, or protocol changes are included. No Hermes identity or private device identifier is hardcoded or documented.
CI blocker
Workflow run 31370360522 was cancelled immediately after it unexpectedly started the GitHub-hosted macOS Desktop job. The path-filter log proves a pre-existing CI defect: the Desktop filter's standalone
!desktop/src-tauri/**entry marks every changed file outside that directory—including mobile/docs/Beads-only changes—as Desktop scope.This is tracked separately as Beads
ios-buzz-59e.8. Repository policy forbids agent-started hosted macOS/Windows jobs, and the presence remediation forbids workarounds, so this run will not be rerun and the CI filter will not be changed in this PR. The PR remains draft pending explicit authorization for a separate TDD CI-filter remediation or a human decision on merge.