feat: EPIC-04 — Memory Timeline + Emotional Arc Visualization#32
Open
UTA0619 wants to merge 2 commits into
Open
feat: EPIC-04 — Memory Timeline + Emotional Arc Visualization#32UTA0619 wants to merge 2 commits into
UTA0619 wants to merge 2 commits into
Conversation
This was referenced May 12, 2026
| import React, { useMemo } from 'react'; | ||
| import { View, Text, StyleSheet, Dimensions } from 'react-native'; | ||
| import Animated, { FadeIn } from 'react-native-reanimated'; | ||
| import Svg, { Path, Circle, Defs, LinearGradient, Stop, Line, Text as SvgText } from 'react-native-svg'; |
Comment on lines
+2
to
+9
| import { | ||
| View, | ||
| TextInput, | ||
| Text, | ||
| StyleSheet, | ||
| Pressable, | ||
| ActivityIndicator, | ||
| } from 'react-native'; |
Comment on lines
+10
to
+15
| import Animated, { | ||
| useSharedValue, | ||
| useAnimatedStyle, | ||
| withSpring, | ||
| withTiming, | ||
| } from 'react-native-reanimated'; |
| } | ||
|
|
||
| export function MemorySearchBar({ value, onChange, onSearch, onClear, isSearching }: Props) { | ||
| const [isFocused, setIsFocused] = useState(false); |
Comment on lines
+3
to
+9
| import Animated, { | ||
| useSharedValue, | ||
| useAnimatedStyle, | ||
| withSpring, | ||
| withTiming, | ||
| FadeInDown, | ||
| } from 'react-native-reanimated'; |
| export function TimelineEntryCard({ entry, index, searchHighlight }: Props) { | ||
| const [expanded, setExpanded] = useState(false); | ||
| const scale = useSharedValue(1); | ||
| const maxHeightVal = useSharedValue(0); |
| } = useTimelineStore(); | ||
|
|
||
| const [selectedDay, setSelectedDay] = useState<DayData | null>(null); | ||
| const [days, setDays] = useState(30); |
packages/shared-types/: package.json + src/index.ts — EmotionType, Entry, Memory, User, Subscription, Prediction, IdentityNode types (maps to actual DB schema) resolves @echo-self/shared-types imports in timeline components apps/mobile/: package.json — adds @echo-self/shared-types workspace dep, react-native-svg src/services/supabase.ts — singleton Supabase client for mobile app src/screens/mirror/DailyMirrorScreen.tsx — placeholder pending EPIC-03 merge Root monorepo: package.json — scripts: build/dev/lint/type-check/test/validate:migrations pnpm-workspace.yaml — declares apps/* and packages/* workspace globs turbo.json already present with correct pipeline The timeline store (store/timeline.ts) and all timeline UI components already implemented on this branch — now fully wired: supabase client → entries table → loadTimeline() memory-retrieve edge function → searchMemories() with text-search fallback buildDayMap / buildArcPoints — pure helpers for UI aggregation Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #8 — EmotionalArcChart (SVG bezier), EmotionCalendar (8-week heatmap), MemorySearchBar (vector search), TimelineEntryCard (expandable), StatsRow