Repository navigation
feat: add live meeting Q&A with bounded transcript context - #280
Merged
Merged
Conversation
kr1shap
marked this pull request as ready for review
October 17, 2026 01:47
kr1shap
requested review from
andrei-akopian,
pusheen5000000 and
qiuethan
as code owners
October 17, 2026 01:47
7 tasks
Refresh the dev preview through staging commit 4dd459a, including the OpenAI response-compatibility fix and current catalog changes. Keep the newer gateway rollout separate until its dev infrastructure is provisioned.
qiuethan
approved these changes
Oct 18, 2026
qiuethan
left a comment
Collaborator
There was a problem hiding this comment.
Approved the refreshed Q&A implementation. CI and local checks passed, and live GPT probes produced valid Q&A JSON. The refreshed commit is deployed successfully on Misty dev.
This branch was successfully deployed
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 this changes
Adds
/qna questionin a meeting's recording text channel. Replies are private and concise, using finalized speech from the last 15 minutes of elapsed meeting time, with up to three validated speaker/timestamp references. Each reply identifies the meeting using the exact filename shared with its minutes PDF.The command registers globally with
beta: falseand an “In progress” description. It requires the invoking guild's active recording and exact recording text channel; threads are separate channels. No directory lookup or user-specific filtering is added, and existing service authentication remains intact.Why
Participants can ask about the current discussion without waiting for recording to finish. The implementation reuses the current transcript and existing LLM
/chat, with no database, embeddings, retrieval index, or conversation history.thinking: false, a 1,024-token output budget, and the existing configured request timeout; minutes generation retains its existing behavior.max(1, default_shared_workers // 4): a base of 14 allows 3 Q&A workers, and 32 allows 8. Excess requests fail immediately with 429; cancellation holds a slot until the actual worker finishes.Zone
Deliberately spans
services/meeting,discord-bot, shared documentation, androot: the authenticated HTTP contract, Discord consumer, and recording documentation must agree.File rationale
Paths below are relative to their indicated directory.
README.md,AGENTS.md,docs/MEETING-RECORDING.mdservices/meetingREADME.md,docs/API.md,docs/ARCHITECTURE.mdservices/meetingsrc/contracts.pyservices/meetingsrc/pipeline/qna.pyservices/meetingsrc/pipeline/qna_runner.py,src/api/app.pyservices/meetingsrc/pipeline/llm_client.pyservices/meetingsrc/api/wiring.py,src/api/routers/meetings.py,src/sessions.pyservices/meetingtests/conftest.pyservices/meetingtests/test_qna.py,tests/test_qna_runner.pyservices/meetingtests/test_llm_client.py,tests/test_meetings_api.py,tests/test_openapi.py,tests/test_sessions.pydiscord-botREADME.md,src/commands/qna.js,src/commands/index.jsdiscord-botsrc/adapters/discord/qna.js,src/adapters/discord/index.js,src/context.jsdiscord-botsrc/meeting/meetingClient.js,src/meeting/meetingSurface.jsdiscord-botsrc/meeting/meetingFilename.js,src/adapters/discord/meetingPosts.jsdiscord-botsrc/messages/qna.jsdiscord-bottest/commands.test.js,test/qna.test.jsHow to verify
All suites use offline fakes; no paid live calls were made.
Meeting and bot suites, both lint/format checks, and Git whitespace checks passed. After the final pool reduction, the full meeting suite and Ruff checks passed again. Python imports were verified to resolve to this checkout. One existing Starlette/httpx deprecation warning remains.
Regression coverage includes exact window boundaries and silence, size-cap retention, malformed/invented citations, unsupported answers, private errors, recording-channel selection, stable meeting filenames, stop races, and audio ingestion/stop remaining responsive while Q&A capacity is saturated.
Deployment notes
/qnabecomes available globally. Global availability does not change ephemeral reply visibility.