Skip to content

feat(home-feed): persona avatar for assistant-sent notifications#31060

Merged
siddseethepalli merged 1 commit into
mainfrom
do/persona-avatar-feed-rows
May 18, 2026
Merged

feat(home-feed): persona avatar for assistant-sent notifications#31060
siddseethepalli merged 1 commit into
mainfrom
do/persona-avatar-feed-rows

Conversation

@siddseethepalli
Copy link
Copy Markdown
Contributor

@siddseethepalli siddseethepalli commented May 18, 2026

Summary

  • Daemon: add optional fromAssistant: boolean to FeedItem (Zod + TS); populate from signal.sourceChannel === \"assistant_tool\" in home-feed-side-effect.ts.
  • Swift mirror: add fromAssistant: Bool? to FeedItem (Codable init + Equatable). Hash is identifier-only so untouched.
  • macOS UI: HomeRecapRow gains showsPersonaAvatar flag — when true, the 26pt leading slot renders the persona avatar (custom image, animated character, or static fallback) instead of the tinted category icon. HomePageView passes item.fromAssistant == true through.

Shape choice: went with B (fromAssistant?: boolean) over A (sourceChannel?: enum). This field is a UI-driver flag — clients don't need to route on every possible NotificationSourceChannel value, they only need to know "did the assistant emit this herself". Carrying the full enum would leak a daemon-internal taxonomy onto the wire with no consumer for the extra values. If a future client needs finer-grained source data we can widen then.

System-generated rows (heartbeat, job failures, watchers — sourceChannel != \"assistant_tool\") keep the existing category icons. The 26pt frame is preserved on both branches so toggling the flag never shifts row layout.

Test plan

  • bun test src/notifications/__tests__/home-feed-side-effect.test.ts — 24 pass (2 new: assistant_tool → true, scheduler → false)
  • bunx tsc --noEmit clean
  • Visual check: send a notification via assistant notifications send and confirm the row renders the persona avatar; trigger a watcher/heartbeat and confirm the bell icon stays.

Original prompt

Velissa's critique #2 — when a feed item originated from the assistant herself (sourceChannel=assistant_tool), the row should show her persona avatar instead of a generic bell icon. Calls out this as the highest identity-shift per LOC in the home feed. Sidd wants all six critique items shipped in parallel; this PR ships #2 (the avatar work, which spans daemon → Swift).


Open in Devin Review

@siddseethepalli siddseethepalli merged commit 3b17bf5 into main May 18, 2026
@siddseethepalli siddseethepalli deleted the do/persona-avatar-feed-rows branch May 18, 2026 22:22
Copy link
Copy Markdown
Contributor

@devin-ai-integration devin-ai-integration Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no potential bugs to report.

View in Devin Review to see 3 additional findings.

Open in Devin Review

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