Feature: Online accounts, social links, and gamer tags on person profiles #29

Closed
opened 2026-05-28 00:15:50 +00:00 by Mark · 3 comments
Owner

Feature Request

Expand the Person data model to track online presence — social media accounts, gaming handles, messaging platform IDs, etc.

Fields to Add

interface Person {
  // existing fields...
  onlineAccounts?: {
    platform: string;        // "GitHub", "Twitter", "Instagram", "LinkedIn", "Discord", "Steam", "Xbox", "PlayStation", "custom"
    handle: string;
    url?: string;
    isPrimary?: boolean;
  }[];
  gamerTags?: {
    platform: string;        // "Steam", "Xbox", "PlayStation", "Nintendo", "Battle.net", "Riot", "custom"
    tag: string;
    isPrimary?: boolean;
  }[];
}

UI

  • New "Online" section on PersonDetail page (collapsible, below contact info)
  • Shows social links as tappable buttons (open in browser)
  • Shows gamer tags as badges/cards
  • Edit drawer gets new fields for adding accounts/tags

Existing overlap

This partially overlaps with the existing socials field on Person. Might consolidate or replace it.

## Feature Request Expand the Person data model to track online presence — social media accounts, gaming handles, messaging platform IDs, etc. ## Fields to Add ```typescript interface Person { // existing fields... onlineAccounts?: { platform: string; // "GitHub", "Twitter", "Instagram", "LinkedIn", "Discord", "Steam", "Xbox", "PlayStation", "custom" handle: string; url?: string; isPrimary?: boolean; }[]; gamerTags?: { platform: string; // "Steam", "Xbox", "PlayStation", "Nintendo", "Battle.net", "Riot", "custom" tag: string; isPrimary?: boolean; }[]; } ``` ## UI - New "Online" section on PersonDetail page (collapsible, below contact info) - Shows social links as tappable buttons (open in browser) - Shows gamer tags as badges/cards - Edit drawer gets new fields for adding accounts/tags ## Existing overlap This partially overlaps with the existing `socials` field on Person. Might consolidate or replace it.
Author
Owner

⏸ Needs Decision

Blocking factors:

  • Didn't meet auto-approve criteria — scope=medium, risk=low, spec=aligned

Scope: medium Risk: low Spec: aligned Type: feature
Summary: Add online accounts (social links) and gamer tags to person data model and profile UI.
Suggestion: Consolidate into the new onlineAccounts field and deprecate the old socials field. Keep nested arrays in Dexie (no new table). Build a reusable OnlineAccountCard for link rendering. Add collapsible "Online" section on PersonDetail and corresponding fields in the edit drawer.
Rationale: Medium scope: touches types, db schema, PersonDetail page, and edit drawer (4-8 files). Low risk: additive optional fields with no breaking changes. Aligned: tracking online presence fits the PRM mission. Existing socials field overlaps, worth consolidating.

Action: Review each blocking factor above. Remove blocked:needs-decision label to route back to triage.

## ⏸ Needs Decision **Blocking factors:** - **Didn't meet auto-approve criteria** — scope=medium, risk=low, spec=aligned --- **Scope:** medium **Risk:** low **Spec:** aligned **Type:** feature **Summary:** Add online accounts (social links) and gamer tags to person data model and profile UI. **Suggestion:** Consolidate into the new `onlineAccounts` field and deprecate the old `socials` field. Keep nested arrays in Dexie (no new table). Build a reusable `OnlineAccountCard` for link rendering. Add collapsible "Online" section on PersonDetail and corresponding fields in the edit drawer. **Rationale:** Medium scope: touches types, db schema, PersonDetail page, and edit drawer (4-8 files). Low risk: additive optional fields with no breaking changes. Aligned: tracking online presence fits the PRM mission. Existing `socials` field overlaps, worth consolidating. **Action:** Review each blocking factor above. Remove `blocked:needs-decision` label to route back to triage.
Author
Owner

⏸ Needs Decision

What needs to be decided?

  • Is this issue still relevant? If yes, remove the blocked:needs-decision label to route back to triage.

Blocking factors:

  • Didn't meet auto-approve criteria — scope=small, risk=low, spec=partial

Scope: small Risk: low Spec: partial Type: feature
Summary: Add online accounts (extending/replacing existing socials) and gamer tags as new person-level data fields with edit drawer UI and profile display sections.
Suggestion: Consolidate: replace the existing SocialProfile/socials field with an enriched onlineAccounts interface (add isPrimary, rename username → handle) for cleaner data model. Add gamerTags as a separate parallel array. Mark the old socials as deprecated (keep reading for data migration, stop writing). New fields need ~40 lines of form UI in AddPersonDrawer (collapsible "Online" section) and ~60 lines of display in PersonDetail OverviewTab (collapsible section between Contact Info and Important Dates).
Rationale: Scope is small (6 files, all additive, <150 lines total). Risk is low — no existing paths broken, new fields are optional arrays with defaults of []. Spec alignment is partial because the proposed onlineAccounts directly overlaps the existing socials field; consolidation is the right call (the issue hints at it). Pure feature, no bug/security concerns.

To unblock: Remove the blocked:needs-decision label. The triage will apply the appropriate outcome based on your choice above.

## ⏸ Needs Decision **What needs to be decided?** - **Is this issue still relevant?** If yes, remove the `blocked:needs-decision` label to route back to triage. **Blocking factors:** - **Didn't meet auto-approve criteria** — scope=small, risk=low, spec=partial --- **Scope:** small **Risk:** low **Spec:** partial **Type:** feature **Summary:** Add online accounts (extending/replacing existing socials) and gamer tags as new person-level data fields with edit drawer UI and profile display sections. **Suggestion:** Consolidate: replace the existing `SocialProfile`/`socials` field with an enriched `onlineAccounts` interface (add `isPrimary`, rename `username` → `handle`) for cleaner data model. Add `gamerTags` as a separate parallel array. Mark the old `socials` as deprecated (keep reading for data migration, stop writing). New fields need ~40 lines of form UI in AddPersonDrawer (collapsible "Online" section) and ~60 lines of display in PersonDetail OverviewTab (collapsible section between Contact Info and Important Dates). **Rationale:** Scope is small (6 files, all additive, <150 lines total). Risk is low — no existing paths broken, new fields are optional arrays with defaults of []. Spec alignment is partial because the proposed `onlineAccounts` directly overlaps the existing `socials` field; consolidation is the right call (the issue hints at it). Pure feature, no bug/security concerns. **To unblock:** Remove the `blocked:needs-decision` label. The triage will apply the appropriate outcome based on your choice above.
Mark closed this issue 2026-05-31 02:28:25 +00:00
Author
Owner

Implementation Complete

Added online accounts and gamer tags support to person profiles:

Changes

  • types.ts: Added OnlineAccount and GamerTag interfaces with platform, handle/url/tag, and optional isPrimary fields
  • schemas.ts: Added Zod schemas for validation with platform validation and URL optionality
  • AddPersonDrawer.tsx: New collapsible sections for adding online accounts and gamer tags during person creation
  • PersonDetail.tsx: New "Online Accounts" and "Gamer Tags" sections displaying accounts with tappable links and tags with badges

Features

  • 10 preset platforms for online accounts (GitHub, Twitter/X, Instagram, LinkedIn, Discord, Facebook, YouTube, TikTok, Snapchat, Other)
  • 6 preset platforms for gamer tags (Steam, Xbox, PlayStation, Nintendo, Battle.net, Riot)
  • Primary account/tag designation support
  • Clean badge/card UI for display
  • Tappable links that open external URLs

Tests

All 727 tests passing, build successful, lint clean.

## Implementation Complete Added online accounts and gamer tags support to person profiles: ### Changes - **types.ts**: Added `OnlineAccount` and `GamerTag` interfaces with platform, handle/url/tag, and optional isPrimary fields - **schemas.ts**: Added Zod schemas for validation with platform validation and URL optionality - **AddPersonDrawer.tsx**: New collapsible sections for adding online accounts and gamer tags during person creation - **PersonDetail.tsx**: New "Online Accounts" and "Gamer Tags" sections displaying accounts with tappable links and tags with badges ### Features - 10 preset platforms for online accounts (GitHub, Twitter/X, Instagram, LinkedIn, Discord, Facebook, YouTube, TikTok, Snapchat, Other) - 6 preset platforms for gamer tags (Steam, Xbox, PlayStation, Nintendo, Battle.net, Riot) - Primary account/tag designation support - Clean badge/card UI for display - Tappable links that open external URLs ### Tests All 727 tests passing, build successful, lint clean.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Mark/kimi_agent_kin_app_sync#29
No description provided.