Skip to content

Add manual contact entry on iOS - #158

Merged
torlando-tech merged 8 commits into
mainfrom
feat/ios-manual-contact-entry
Aug 8, 2026
Merged

Add manual contact entry on iOS#158
torlando-tech merged 8 commits into
mainfrom
feat/ios-manual-contact-entry

Conversation

@torlando-tech

Copy link
Copy Markdown
Owner

Summary

  • add a native + contact action with QR scanning and manual hash/LXMA entry
  • keep hash-only contact creation passive and defer path resolution until send time
  • reuse previously heard announce names without overwriting custom nicknames
  • sequence duplicate-contact feedback safely after sheet dismissal
  • add a visible Paste button beside the manual address field
  • preserve Network-tab QR scanning and the macOS clipboard workflow

Verification

  • 302 shipping XCTest tests passed with zero failures
  • 262 static contract tests passed, with 1 expected skip
  • Model B simulator build succeeded
  • signed physical iPhone build, codesign verification, install, and launch succeeded
  • physical checks confirmed manual entry, duplicate feedback dismissal, announced-name reuse, and Paste button behavior
  • exact-head standards and specification reviews reported no findings

Risk and rollback

The change is limited to Contacts UI, contact-name selection, and regression coverage. Hash-only additions do not request paths. Rollback is the normal revert of this PR.

@greptile-apps

greptile-apps Bot commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

The PR adds native QR and manual contact entry while keeping hash-only additions passive until send time.

  • Adds validated LXMA/hash parsing and contact persistence with announced-name reuse.
  • Adds iOS contact-entry sheets, paste support, and safely sequenced duplicate-contact feedback.
  • Prevents cancellation and interactive dismissal while an add operation is active.

Confidence Score: 5/5

The PR appears safe to merge.

No blocking failure remains.

Important Files Changed

Filename Overview
Sources/ColumbaApp/ViewModels/ContactsViewModel.swift Adds manual-input parsing and passive contact persistence while preserving send-time path resolution.
Sources/ColumbaApp/Views/Contacts/AddContactSheet.swift Adds manual contact entry and prevents dismissal during active persistence, resolving the previously reported cancellation race.
Sources/ColumbaApp/Views/Contacts/ContactsView.swift Adds the contact action menu and presents existing-contact feedback only after the owning sheet finishes dismissing.
Tests/ColumbaAppTests/AnnounceClassificationTests.swift Adds coverage for manual hash/LXMA parsing and announced-name persistence.
Tests/static/test_qr_contact_send_path_contract.py Extends static contracts for passive hash entry, paste affordance, dismissal protection, and feedback sequencing.

Reviews (2): Last reviewed commit: "fix: prevent cancellation during contact..." | Re-trigger Greptile

@torlando-tech
torlando-tech merged commit 8e7178e into main Aug 8, 2026
4 checks passed
@torlando-tech
torlando-tech deleted the feat/ios-manual-contact-entry branch August 8, 2026 18:33
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.

1 participant