Repository navigation
refactor: let one module write a recording's summary and action items - #122
Merged
Merged
Conversation
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 and why
Closes #115.
The summary and action-item writers took a prompt and left the rest to Publication: build the transcript, build the request, call the two writers separately, and match each action item's owner to an attendee. Each writer also repeated the same reply trimming and layers, and the action-item writer had no tests of its own.
RecordingWriterreplacesSummaryWriterandActionItemWriteras a service. It takes a recording (details, clips, pauses) and gives back:summarize: the summary, in the recording's own summary style;pullActionItems: the action items, each with its owner already matched to an attendee.Publicationno longer builds prompts or matches owners.SummaryWriter.tsandActionItems.tskeep the pure parts: the transcript, the styles' instructions, the reply checks and owner matching. They lose their service classes.unquotedinAiWritingis the one trim-and-strip-quotes step, now shared by headlines, replies and summaries.scriptedModelintest/fakes.tsreplaces the copies in the headline and reply writer tests and the old summary writer tests.The prompts, models and Sentry error names are the same as before, so nothing posted changes.
How I tested it
RecordingWritertests, run through its interface with a scripted model:NoAiActionItems;RecordingWriterfake. It records the same request text as before, so their assertions didn't change.pnpm vp run cipasses.Checklist
vp run cipasses