Skip to content

refactor: let one module write a recording's summary and action items - #122

Merged
ChristopherPHolder merged 1 commit into
mainfrom
refactor/recording-summary
Oct 31, 2026
Merged

ChristopherPHolder merged 1 commit into
mainfrom
refactor/recording-summary

Conversation

@ChristopherPHolder

Copy link
Copy Markdown
Collaborator

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.

  • RecordingWriter replaces SummaryWriter and ActionItemWriter as 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.
  • Publication no longer builds prompts or matches owners.
  • SummaryWriter.ts and ActionItems.ts keep the pure parts: the transcript, the styles' instructions, the reply checks and owner matching. They lose their service classes.
  • unquoted in AiWriting is the one trim-and-strip-quotes step, now shared by headlines, replies and summaries.
  • Tests share one fake model: scriptedModel in test/fakes.ts replaces 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

  • New RecordingWriter tests, run through its interface with a scripted model:
    • each style's instructions and token budget, with the request built from the title and transcript;
    • the length checks;
    • action items with owners matched, and an unknown owner left unassigned;
    • a failing model reports NoAiActionItems;
    • no provider configured.
  • The Recorder and Publication tests use one RecordingWriter fake. It records the same request text as before, so their assertions didn't change.
  • pnpm vp run ci passes.

Checklist

  • vp run ci passes
  • Tests cover the change
  • Docs updated if what gets posted, the configuration, the Console or the deploy changed (module table only)
  • New environment variables are wired through (none)
  • Ready to ship: merging this deploys it to production

@ChristopherPHolder
ChristopherPHolder enabled auto-merge (squash) October 31, 2026 11:03
@ChristopherPHolder
ChristopherPHolder merged commit 7d7fe55 into main Oct 31, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Let summary writing take a recording, not a prompt

1 participant