Skip to content

Route Google Chat mentions and slash commands to separate handlers #1

Closed

Description

@amitavroy

Context

The Google Chat webhook (GH-2) only handles @mentions (chat.messagePayload). Slash commands arrive as chat.appCommandPayload (captured in tests/fixtures/google-slash-command.json) and are dropped at the endpoint. We want both event kinds to reach the worker and be handled separately, as groundwork for ingesting /add-knowledge content later.

Decisions

  • handle_event only decides the event kind and delegates.
  • Private _handle_mention and _handle_command in app/services/google_chat.py each do their own logging (no ingestion yet).
  • Model appCommandPayload in app/schemas/google_chat.py (shares space/message shape with messagePayload, adds appCommandMetadata).
  • The endpoint dispatches and acks slash commands too; only events with neither payload still get {}.

Scope

  • Schema: AppCommandMetadata, AppCommandPayload, ChatPayload.app_command_payload
  • Service: dispatch + two private handlers
  • Router: stop dropping slash commands
  • Tests driven by both fixtures

Out of scope

  • Actually ingesting the /add-knowledge text into the RAG pipeline
  • Routing between multiple slash commands

Builds on GH-2.

Full design doc: docs/plans/006-google-chat-mention-command-handlers.md

Activity

  1. amitavroy commented on Oct 18, 2026

    @amitavroy
    OwnerAuthor

    Shipped: Google Chat @mentions and slash commands now reach the worker and are handled by separate private handlers (_handle_mention, _handle_command), with the slash-command payload modelled and tested. Details are in the "Google Chat webhook" wiki section and docs/wiki/google-bot.md.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions