# Proto Schema Changelog

Version history for `noteflow.proto` schema changes.

## v0.2.0 (Sprint 0 - Foundation)

**Release Date**: December 2024

This release consolidates proto schema additions for Sprints 1-6 into a single coordinated update.

### New Messages

#### Summarization (Sprint 1)

- **SummarizationOptions**: Configurable summarization parameters
  - `tone`: professional, casual, technical, friendly
  - `format`: bullet_points, narrative, structured, concise
  - `verbosity`: minimal, balanced, detailed, comprehensive

#### Named Entity Recognition (Sprint 4)

- **ExtractEntitiesRequest**: Request to extract entities from a meeting
  - `meeting_id`: Target meeting UUID
  - `force_refresh`: Bypass cache flag

- **ExtractedEntity**: Extracted entity information
  - `id`: Entity UUID
  - `text`: Original text
  - `category`: person, company, product, technical, acronym, location, date, other
  - `segment_ids`: Transcript segment references
  - `confidence`: Extraction confidence score
  - `is_pinned`: User-pinned flag

- **ExtractEntitiesResponse**: NER extraction result
  - `entities`: List of extracted entities
  - `total_count`: Total entity count
  - `cached`: Whether result came from cache

#### Calendar Integration (Sprint 5)

- **CalendarEvent**: Calendar event information
  - `id`: Event identifier
  - `title`: Event title
  - `start_time`: Unix timestamp
  - `end_time`: Unix timestamp
  - `attendees`: List of attendee emails
  - `location`: Event location
  - `description`: Event description
  - `meeting_url`: Meeting URL if available
  - `is_recurring`: Recurrence flag
  - `provider`: Calendar provider (google, outlook, etc.)

- **ListCalendarEventsRequest**: Request to list upcoming events
  - `hours_ahead`: Lookahead window
  - `limit`: Maximum events to return
  - `provider`: Filter by provider

- **ListCalendarEventsResponse**: Calendar events list
  - `events`: List of calendar events
  - `total_count`: Total matching count

- **CalendarProvider**: Provider information
  - `name`: Provider identifier (google, outlook)
  - `is_authenticated`: Connection status
  - `display_name`: Human-readable name

- **GetCalendarProvidersRequest/Response**: Provider discovery
- **InitiateCalendarAuthRequest/Response**: OAuth initiation
- **CompleteCalendarAuthRequest/Response**: OAuth completion

### Updated Messages

- **GenerateSummaryRequest**: Added `options` field (SummarizationOptions)

### New Enum Values

- **ExportFormat**: Added `EXPORT_FORMAT_PDF = 3` (Sprint 3)

### New RPCs

| RPC | Request | Response | Description |
|-----|---------|----------|-------------|
| ExtractEntities | ExtractEntitiesRequest | ExtractEntitiesResponse | Extract named entities |
| ListCalendarEvents | ListCalendarEventsRequest | ListCalendarEventsResponse | List upcoming events |
| GetCalendarProviders | GetCalendarProvidersRequest | GetCalendarProvidersResponse | Get connected providers |
| InitiateCalendarAuth | InitiateCalendarAuthRequest | InitiateCalendarAuthResponse | Start OAuth flow |
| CompleteCalendarAuth | CompleteCalendarAuthRequest | CompleteCalendarAuthResponse | Complete OAuth flow |

### Database Schema Changes

New tables added to support proto changes:

| Table | Purpose |
|-------|---------|
| `named_entities` | NER extraction storage |
| `webhook_configs` | Webhook configuration |
| `webhook_deliveries` | Webhook delivery audit log |

### Migration Path

- Migration `h2c3d4e5f6g7`: Creates `named_entities` table
- Migration `i3d4e5f6g7h8`: Creates `webhook_configs` and `webhook_deliveries` tables

### Breaking Changes

None. All changes are additive and backward-compatible.

### Client Updates Required

- **Rust (Tauri)**: Update `types.rs` with `Pdf = 3` in ExportFormat enum
- **TypeScript**: Add corresponding enum value if mirroring ExportFormat

---

## v0.1.0 (Initial Release)

**Release Date**: 2024

Initial proto schema with core meeting management, transcription, and export functionality.

### Core Messages

- Meeting, Segment, WordTiming
- Summary, KeyPoint, ActionItem
- Annotation, Speaker

### Core RPCs

- CreateMeeting, GetMeeting, ListMeetings, DeleteMeeting
- StreamAudio, ListTranscriptSegments
- GenerateSummary, GetSummary
- CreateAnnotation, ListAnnotations, UpdateAnnotation, DeleteAnnotation
- ExportMeeting
- RefineSpeakerDiarization, GetDiarizationJobStatus, RenameSpeaker
