Skip to content

Conversation

@ainergiz
Copy link
Owner

Add the ability to annotate bookmarks with personal notes explaining why
a tweet was saved. Annotations are stored locally in ~/.config/xfeed/annotations.json.

Features:

  • Storage layer in src/config/annotations.ts for persistent annotations
  • useAnnotations hook for React state management with debounced saves
  • AnnotationEditor modal for adding/editing/deleting annotations
  • Visual indicator [+] on PostCard for annotated bookmarks
  • 'a' keybinding in BookmarksScreen and PostDetailScreen
  • Annotation display in PostDetailScreen for bookmarked tweets

The implementation follows existing patterns:

  • Config storage pattern from src/config/loader.ts
  • Modal pattern from FolderNameInputModal
  • State management pattern from useActions hook

ainergiz pushed a commit that referenced this pull request Jan 12, 2026
- Make @username clickable in PostCard and QuotedPostCard to navigate
  to profile
- Add inline expansion for truncated posts with < 280 chars remaining
- Long truncated posts open detail view on Show More click
- Pass onProfileOpen callback through PostList to all timeline screens
- Include hover highlighting for interactive elements

Closes #232
claude and others added 2 commits January 13, 2026 00:37
Add the ability to annotate bookmarks with personal notes explaining why
a tweet was saved. Annotations are stored locally in ~/.config/xfeed/annotations.json.

Features:
- Storage layer in src/config/annotations.ts for persistent annotations
- useAnnotations hook for React state management with debounced saves
- AnnotationEditor modal for adding/editing/deleting annotations
- Visual indicator [+] on PostCard for annotated bookmarks
- 'a' keybinding in BookmarksScreen and PostDetailScreen
- Annotation display in PostDetailScreen for bookmarked tweets

The implementation follows existing patterns:
- Config storage pattern from src/config/loader.ts
- Modal pattern from FolderNameInputModal
- State management pattern from useActions hook
- Fix annotation dialog input styling with bordered box wrapper
- Add consistent width to dialog header, content, and footer sections
- Remove debounced save for annotations - now saves immediately to disk
- Add post_ctas_fetch_enabled feature flag to fix X API 400 errors

Fixes #136

Co-Authored-By: Claude Opus 4.5 <[email protected]>
@ainergiz ainergiz force-pushed the claude/add-bookmark-annotations-I2gkc branch from d121b25 to 4c9c8dc Compare January 13, 2026 00:38
@ainergiz ainergiz merged commit 4f6ff6a into main Jan 13, 2026
3 of 4 checks passed
@ainergiz ainergiz deleted the claude/add-bookmark-annotations-I2gkc branch January 13, 2026 00:39
@ainergiz ainergiz mentioned this pull request Jan 17, 2026
2 tasks
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.

3 participants