Grand Diomande Research ยท Full HTML Reader

Trajectory Mobile - Voice Capture + Idea Vault

A React Native / Expo app for capturing ideas via voice and text, with full-text search, offline sync, priority management, and iOS widgets.

Agents That Account for Themselves research note experiment writeup candidate score 28 .md

Full Public Reader

Trajectory Mobile - Voice Capture + Idea Vault

A React Native / Expo app for capturing ideas via voice and text, with full-text search, offline sync, priority management, and iOS widgets.

Features

### ๐ŸŽค Voice Capture (CC-Speak Pattern)
- Low-latency recording - Audio system pre-warmed on mount for 10ms response
- Visual feedback - Pulse animation and duration display while recording
- Automatic file management - Recordings saved with proper cleanup

### ๐Ÿ’ก Idea Vault
- Dual input modes - Text or voice capture
- Auto-tagging - Smart tag suggestions based on content
- Custom tags - Add your own tags to organize ideas
- Priority levels - Urgent/High/Medium/Low with color-coded indicators
- Categories - Inbox, Project, Personal, Work, Creative, Research
- Swipe actions - Swipe left to delete, right to edit
- Persistent storage - Offline-first with sync queue

### ๐Ÿ” Full-Text Search + Fuzzy Matching
- Ranked results - Exact phrase matches score highest
- Fuzzy matching - Levenshtein distance for typo-tolerant search
- Highlighted results - Matched text highlighted in search results
- Tag + Category filtering - Filter by tags, categories, and sync state
- Priority boost - Urgent/high ideas rank higher

### ๐Ÿ“Š Statistics Dashboard
- Animated counters - Total ideas, this week, urgent count
- Priority breakdown - Visual bar chart by priority level
- Category distribution - At-a-glance category counts
- Top tags - Most used tags across all ideas
- Collapsible - Compact by default, tap to expand

### ๐Ÿ“ค Export & Sync
- Markdown export - Share/export all ideas as formatted markdown
- Offline-first sync - Queue-based with conflict resolution
- Background sync - Auto-syncs when coming online
- Conflict UI - Visual conflict resolution sheet

### ๐Ÿ“ฑ iOS Widget
- Small/Medium/Large home screen widgets
- Lock screen widgets (circular + rectangular)
- Quick Capture button on widget
- Quick Voice button for voice capture
- Priority indicators - Colored dots per idea
- Category icons - Visual category display

Getting Started

bash
# Install dependencies
npm install

# Start Expo
npx expo start

# Run on iOS simulator
npm run ios

# Run on Android emulator
npm run android

# Run in browser
npm run web

Project Structure

trajectory-mobile/
โ”œโ”€โ”€ App.tsx                 # Entry point
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ components/
โ”‚   โ”‚   โ”œโ”€โ”€ IdeaCard.tsx       # Individual idea display
โ”‚   โ”‚   โ”œโ”€โ”€ NewIdeaSheet.tsx   # Modal for creating ideas
โ”‚   โ”‚   โ”œโ”€โ”€ SearchBar.tsx      # Search input + tag filters
โ”‚   โ”‚   โ””โ”€โ”€ VoiceRecorder.tsx  # Recording UI with animations
โ”‚   โ”œโ”€โ”€ hooks/
โ”‚   โ”‚   โ”œโ”€โ”€ useIdeaVault.ts    # Idea CRUD + search + sync
โ”‚   โ”‚   โ””โ”€โ”€ useVoiceCapture.ts # Audio recording (CC-Speak)
โ”‚   โ”œโ”€โ”€ screens/
โ”‚   โ”‚   โ””โ”€โ”€ HomeScreen.tsx     # Main app screen
โ”‚   โ”œโ”€โ”€ types/
โ”‚   โ”‚   โ””โ”€โ”€ index.ts           # TypeScript interfaces
โ”‚   โ””โ”€โ”€ utils/
โ”‚       โ”œโ”€โ”€ search.ts          # Search algorithm + tag utils
โ”‚       โ””โ”€โ”€ storage.ts         # AsyncStorage + markdown export

Voice Capture Architecture

The voice capture system uses the CC-Speak pattern for minimal latency:

1. Pre-warm - Audio mode configured on component mount
2. Instant start - No setup delay when recording begins
3. Real-time metering - 100ms update interval for visualizations
4. Clean teardown - Proper resource cleanup on cancel/stop

typescript
// Pre-warm settings for low latency
await Audio.setAudioModeAsync({
  allowsRecordingIOS: true,
  playsInSilentModeIOS: true,
  interruptionModeIOS: 1, // DoNotMix
  interruptionModeAndroid: 1, // DoNotMix
});

Search Algorithm

The search uses a weighted scoring system:

Match TypeScore
Exact phrase+100
Word boundary+20
Partial match+10
Tag match+15
Recency (per day)+0.1

Backend Sync (Optional)

Set `EXPO_PUBLIC_TRAJECTORY_SYNC_URL` to enable backend sync:

bash
EXPO_PUBLIC_TRAJECTORY_SYNC_URL=https://your-trajectory-api.com

Expected API endpoint:

POST /api/ideas/sync
Body: { ideas: Idea[] }
Response: { ideas: Idea[] }

Tech Stack

  • React Native / Expo (SDK 53)
  • TypeScript for type safety
  • expo-av for audio recording
  • expo-file-system for file management
  • @react-native-async-storage for persistence

License

MIT

Promotion Decision

Attach run IDs, datasets, metrics, and reproduction commands.

Source Anchor

trajectory-mobile/README.md

Detected Structure

Method ยท Evaluation ยท Figures ยท Code Anchors ยท Architecture