Skip to content

Add read, edit, and photo management for the authenticated profile #99

Description

@KalebCole

User scenario

I want an agent to read and update my Partiful profile without opening the app, including replacing or removing my profile photo.

Problem

The CLI has no profile command. It cannot show the authenticated account's public profile fields, update them, or manage the profile image. This also leaves agents without a supported way to confirm the identity used when Partiful creates cards or attributes event activity.

Verified product and API facts

Current Partiful profile editing uses getCurrentUser and updateUser. The observed editable fields are name, bio, photo, and socials. Profile images use the profile_image upload flow. No separate editable username field was observed. The CLI already has authenticated request and multipart upload infrastructure, but its upload helper is currently poster-specific.

No live profile mutation was performed during investigation.

Proposed experience

partiful profile get
partiful profile update --name "Kaleb" --bio "Seattle"
partiful profile update --social instagram=kaleb
partiful profile photo set ./portrait.jpg --dry-run
partiful profile photo remove --dry-run
partiful schema profile.update

profile get should return the caller's safe public profile representation. Updates should patch only supplied fields. Photo commands should validate the file locally, show the intended mutation under --dry-run, upload only after approval, then read the profile back.

Scope boundaries

  • Do not expose phone numbers, authentication metadata, internal account flags, or raw upstream payloads in normal output.
  • Do not invent a username field or let callers edit derived badges and statistics.
  • Do not clear omitted fields. An empty value must be an explicit supported action.
  • Reuse a generalized upload helper rather than duplicating multipart logic.
  • Profile photo changes are visible account mutations and need the same confirmation policy as other visible writes.

Discovery needed

Verify the exact updateUser patch envelope, social-link schema, profile-image response shape, supported image types and limits, and explicit photo-removal representation. Determine whether getCurrentUser is sufficient for read-back or whether the public profile read differs materially.

Acceptance criteria

  • profile get returns a stable JSON object containing only safe profile fields.
  • profile update patches only fields supplied by the caller.
  • Social links can be added, changed, and explicitly removed without replacing unrelated entries.
  • Profile photos can be set and removed after local validation.
  • --dry-run performs no upload and no account mutation.
  • Successful writes are read back and returned as normalized state.
  • Empty profiles and absent optional fields are successful states.
  • Invalid files, validation failures, permission errors, upload failures, and read-back mismatches produce structured errors.
  • CLI help, schema introspection, unit tests, and one controlled update/read-back/restore E2E ship together.

Related work

Profile badges are derived, read-only data and belong in a separate issue. Cards use the authenticated profile as sender identity but remain a separate product contract. Closed #5 established event-poster uploads; profile images use a different upload type and must not be treated as event posters.

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