feat(meetings): add summary + summary_state fields to the meeting model - #15
Open
Rahulkaushik01 wants to merge 1 commit into
Open
feat(meetings): add summary + summary_state fields to the meeting model#15Rahulkaushik01 wants to merge 1 commit into
Rahulkaushik01 wants to merge 1 commit into
Conversation
Adds AI title/summary storage on the shared Bot meeting record (one summary per meeting, visible to every viewer) and exposes it read-only in the member-facing MeetingSerializer. Schema + read exposure only — generation lands in a later phase, so every meeting starts null/PENDING and behaviour is unchanged. - bots/models.py: SummaryStates TextChoices (pending/generating/done/failed/skipped) + summary (TextField), summary_state (CharField, default pending), summary_generated_at (DateTimeField) on Bot - bots/meetings_serializers.py: expose summary + summary_state as plain fields (direct columns on the already-fetched row — preserves the no-N+1 property) - bots/migrations/0096_bot_summary_bot_summary_generated_at_and_more.py: additive, nullable/defaulted fields, depends on 0095 - bots/tests/test_meeting_summary_fields.py: defaults for bot + local, serializer exposes null summary + pending state, populated summary round-trip, and a shared (deduped) meeting shows the same summary to every viewer
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.
What & why
Adds storage for an AI-generated meeting title + summary on the shared
Botmeetingrecord, and exposes it in the member-facing
MeetingSerializer. This is the schema sliceof the summaries feature — storage + read exposure only; generation lands in a later
phase. One summary per meeting (shared by all viewers), covering bot meetings and local
recordings alike (same model, split by
session_type).No behaviour change: every meeting starts
summary=null,summary_state=pending, andnothing generates or displays it yet.
Changes (per file)
bots/models.py—SummaryStatesTextChoices (pending/generating/done/failed/skipped);summary(TextField, null),summary_state(CharField, choices, default pending),summary_generated_at(DateTimeField, null) onBot.bots/meetings_serializers.py— exposesummary+summary_stateas plain fields. Theyare direct columns on the already-fetched row, so the serializer's no-N+1 property is
preserved (still guarded by
TestMeetingListQueryCount).bots/migrations/0096_bot_summary_bot_summary_generated_at_and_more.py— additive,nullable/defaulted, depends on
0095; no backfill.bots/tests/test_meeting_summary_fields.py— 4 tests.Behaviour / lifecycle
a transcript-only wipe (
delete_data) is intentionally deferred to the generation phase,where it ships with the code that writes summaries — harmless until then (always null).
Testing
makemigrations --check→ No changes detected; migration applies + reverses cleanly.python manage.py test bots.tests.test_meeting_summary_fields→ 4 passed; meetings-list +journey suites → pass (no regression; query-count guard still green).
ruff check/ruff format --check→ clean.Notes
summary_statevalues are named choices (nomagic strings).