concurrent notifications, activity feed polish, PCA memory layout
- notification_poller: dispatch notifications as background tasks with
semaphore(3), mark as read immediately, non-blocking daily post
- agent: make save_url title required so activity feed always has labels
- main: activity feed icons, domain display, titles, linkified URLs,
batched avatar fetches (chunks of 25)
- namespace_memory: replace random projection with PCA (numpy SVD) for
2D memory graph layout
- trim logfire extras, add numpy dep
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>