Skip to content

feat: add a configurable pregame experience to eventAssistant - #436

Merged
jencompgeek merged 7 commits into
mainfrom
jh/pregame-feature-config
Nov 9, 2026
Merged

jencompgeek merged 7 commits into
mainfrom
jh/pregame-feature-config

Conversation

@jencompgeek

@jencompgeek jencompgeek commented Nov 6, 2026 •

Copy link
Copy Markdown
Collaborator

What is in this PR?

Builds out the full pregame (pre-event early access) experience for eventAssistant
conversations. Organizers can configure how many minutes before the scheduled start
participants get early access to the room, a private warm-up question (organizer-written
or AI-generated, open text or single choice), and whether a recap of pregame activity
posts to the group chat once the event starts.

Also closes a gap where a conversation could still
be edited while it was already in its open pre-event window.

Changes in the codebase

  • Added the pregame feature to eventAssistant's conversation type
    (src/conversations/eventAssistant.ts): preEventMinutes, warm-up question source
    (organizer-written / AI-generated) and format (open text / single choice) with friendly
    option labels, and whether to post a recap on start.
    — including one nested inside a feature's own config, like pregame.preEventMinutes —
    directly onto the created conversation document instead of only into an agent's
    agentConfig. Renamed the underlying AgentProperty/resolveAgentProperties to
    PropertyBinding/resolvePropertyBindings since it's no longer agent-specific.
  • updateConversation now also rejects edits while a conversation is in its open pre-event
    window, not just while fully active, since participants are already engaging in the
    pregame channel by then.
  • Fixed the OpenAPI ConfigProperty.type enum, which was missing array even though it's
    a supported type.
  • Modified eventAssistant to skip group chat opener when not configured

Documentation and automated testing

Did you:

  • document any breaking changes in your commit messages?
  • document your changes as comments in the code? Use TSDoc format where appropriate.
  • update the README and docs to be clear and easy to use for end users and developers?
  • add and/or update automated tests?
  • update team documentation of any new or changed environment variables?

No breaking changes and no new environment variables, so those two are n/a.

Testing this PR

Test in conjunction with FE PR berkmancenter/nextspace#240

  • Create an eventAssistant conversation with the pregame feature enabled
  • Try both warm-up sources (organizer-written vs. AI-generated) and both formats (open
    text vs. single choice); confirm the right prompt/options render in the private chat in the participant view within 1-2 minutes of pregame window opening
  • While the conversation is inside its pre-event window, attempt an edit via the API or NS
    and confirm it's rejected with "Cannot update a conversation during its pre-event
    window."

Additional information

The propertyBindings mechanism is general-purpose (not pregame-specific) — it's what lets
any conversation type mirror a resolved feature-config value onto a real top-level field on
the conversation document, which preEventMinutes needed since several scheduling files
(preEventWindow.ts, scheduleConversationTimers.ts) read it directly off the document
rather than digging through conversation.features.

@jencompgeek
jencompgeek marked this pull request as ready for review November 6, 2026 15:42
@jencompgeek jencompgeek changed the title Jh/pregame feature config feat: add a configurable pregame experience to eventAssistant Nov 6, 2026
@jencompgeek
jencompgeek force-pushed the jh/pregame-feature-config branch 2 times, most recently from 2eb3190 to fdfb807 Compare November 6, 2026 21:55
@jencompgeek
jencompgeek force-pushed the jh/pregame-feature-config branch from fdfb807 to 3059a54 Compare November 9, 2026 21:00
@jencompgeek
jencompgeek merged commit 6caf177 into main Nov 9, 2026
1 check failed
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.

1 participant