Skip to content

Help hosts find new connections after an event #82

Description

@KalebCole

User scenario

I hosted a neighborhood mixer with dozens of guests. The next morning I want to remember the people I did not already know, so I can make a deliberate follow-up list without mistaking them for my established Partiful Mutuals.

Problem

guests list <eventId> is a host-only raw roster, while contacts list is account-wide and does not say where a relationship began. guests mutuals in #76 answers the opposite question, who I already know at an event. Neither command identifies the event attendees who are new to me.

Proposed experience

partiful events connections <eventId> --new
partiful events connections <eventId> --new --status GOING MAYBE
partiful events connections <eventId> --new --format json

Human output groups eligible attendees as "new to you" and reports excluded categories such as known Mutuals, unnamed plus-ones, and unavailable identities. JSON output preserves machine-readable counts, event metadata, each eligible display name, RSVP status, and an explicit basis describing the comparison; it must not expose user IDs in human summaries.

Scope boundaries

Read only the caller's permitted attendee and relationship data. Do not bypass event visibility, infer friendships from phone numbers, scrape social profiles, or send follow-ups. This is not invite recommendation or contact tagging.

Discovery needed

Verified repo facts: hosted-event guest reads exist; contacts list returns names, user IDs, and shared-event counts; #76 verified /getMutuals for established Mutuals. Unknown: whether a canonical attendee-visible identity read is available to non-hosts and whether prior shared-event data is sufficiently complete to define "new." Discover those capabilities before choosing the comparison source; fail closed when identities or permissions are unavailable.

Acceptance criteria

  • events connections <eventId> --new returns only people who can be compared through permitted, exact identities.
  • Human output explains the comparison basis and omission counts without printing identifiers.
  • JSON output has a stable success/error envelope, event ID, counts, entries, and omission reasons.
  • An empty result is successful and says no new comparable connections were found.
  • Hidden rosters, permission denials, ambiguous identities, and API failures return actionable structured errors without partial private data.
  • Tests cover exact joins, known-Mutual exclusion, duplicate guests, plus-ones without identities, empty lists, permission denial, and JSON output.

Related work

#76 finds known people on an attendee list; this intentionally surfaces the complementary new-to-me set after an event. #15 proposes invite suggestions and contact tags, while this is a read-only post-event reconnection outcome rather than a recommendation engine. #77-#81 may later provide local history, but they do not define this user-facing outcome.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions