Skip to content

feat(contacts): direct peer-to-peer connections via connection strings - #47

Open
chanderlud wants to merge 7 commits into
masterfrom
feature/direct-contacts
Open

feat(contacts): direct peer-to-peer connections via connection strings#47
chanderlud wants to merge 7 commits into
masterfrom
feature/direct-contacts

Conversation

@chanderlud

@chanderlud chanderlud commented Jul 3, 2026

Copy link
Copy Markdown
Owner

Summary

Direct contacts now use Rust-validated, versioned tp1: invitations instead of user-managed JSON address strings. Users copy an invitation from Networking and paste it when adding or editing a contact.

What changed

  • Direct invitations contain only direct IP transport addresses; relay paths are filtered on export and rejected during token decode, legacy migration, persisted-contact loading, and interactive import.
  • Invalid, mismatched, unsupported, or relay-bearing invitations fail closed and never fall back to normal discovery or relay dialing.
  • Manager resets, profile switches, and shutdown cancel stale direct dials safely.
  • Inactive managers expose no invitation, and Networking refreshes the invitation after a successful restart.
  • Invalid stored invitation data leaves the profile and contact usable with direct mode disabled.
  • Contact UI provides paste, enable, remove, and copy flows without displaying editable transport JSON.

@chanderlud chanderlud linked an issue Jul 11, 2026 that may be closed by this pull request
# Conflicts:
#	lib/core/rust/flutter.dart
#	lib/core/rust/frb_generated.dart
#	rust/telepathy-core/src/frb_generated.rs
#	rust/telepathy-core/src/internal/core.rs
#	test/screens/settings/sections/profiles_test.dart
# Conflicts:
#	rust/telepathy-core/src/internal.rs
#	rust/telepathy-core/src/internal/core.rs
…out avoiding cancellation on FRB callbacks. refactors helpers into helpers.rs
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Direct contacts

1 participant