Skip to content

Luma integration for welcoming attendees#2624

Open
Prachi1615 wants to merge 41 commits into
mainfrom
luma-integration
Open

Luma integration for welcoming attendees#2624
Prachi1615 wants to merge 41 commits into
mainfrom
luma-integration

Conversation

@Prachi1615

@Prachi1615 Prachi1615 commented Jun 12, 2026

Copy link
Copy Markdown
Collaborator

This PR introduces the following-

  • Add QR Scanner input plugin (QRScanner / QRScannerRTSP) that decodes Luma check-in QR codes from camera or RTSP stream
  • Add Luma API client (internal/providers/luma) to look up guest details by ticket key
  • Scanner enriches QR scans with guest name and personalized greeting before emitting to prompt, so the LLM can repeat the exact greeting via speak action
  • Includes debouncing to avoid repeated greetings for the same guest within a configurable window
  • Add configs for local dev (luma_checkin_local), Go2/Thor (luma_checkin_go2), and production (luma_checkin)

Copilot AI review requested due to automatic review settings June 12, 2026 01:53
@Prachi1615 Prachi1615 requested review from a team as code owners June 12, 2026 01:53
@github-actions github-actions Bot added dependencies Pull requests that update a dependency file tests Test files config Configuration files plugins go core labels Jun 12, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new QR-scanner input plugin that decodes Luma check-in QR codes, optionally enriches scans via Luma’s public API into a deterministic greeting string, and introduces new configs for “greeter” modes; also adjusts FFmpeg camera capture behavior and logging for debugging.

Changes:

  • Introduce QRScanner / QRScannerRTSP input plugins with QR decode + dedupe + optional Luma enrichment (and optional direct TTS path).
  • Add an internal Luma API client (/v1/event/get-guest) plus unit tests for URL parsing, decoding, debouncing, and greeting formatting.
  • Update FFmpeg camera capture defaults/logging and add new mode configs for Luma check-in.

Reviewed changes

Copilot reviewed 17 out of 18 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
plugins/inputs/qr_scanner/url_parse.go Parse Luma check-in URLs into (eventID, pk) for scan validation.
plugins/inputs/qr_scanner/url_parse_test.go Tests for Luma URL parsing behavior and edge cases.
plugins/inputs/qr_scanner/qr_scanner.go Main QR scanner sensor implementation (capture, decode, dedupe, enrich, emit).
plugins/inputs/qr_scanner/format_scan_message_test.go Tests for scan formatting, Luma lookup outcomes, and direct-TTS path.
plugins/inputs/qr_scanner/export_test.go Test-only exports/helpers/fakes for black-box style tests.
plugins/inputs/qr_scanner/decode.go JPEG QR decoding via gozxing.
plugins/inputs/qr_scanner/decode_test.go Round-trip and “blank frame” tests for QR decode.
plugins/inputs/qr_scanner/debounce.go Dedupe/debounce implementation for repeated PKs.
plugins/inputs/qr_scanner/debounce_test.go Tests for debounce windowing and pruning.
plugins/inputs/inputs.go Registers the new qr_scanner input plugin via blank import.
internal/providers/vlm/vlm_test.go Updates expectations for NewVideoStream default config behavior.
internal/providers/vlm/video_stream.go Removes forced FPS/size defaults; adds FFmpeg stderr piping/logging; adjusts args emission.
internal/providers/luma/client.go Adds Luma public API client for guest lookup and greeting templating helpers.
go.mod Adds gozxing dependency (QR decoding) and related indirect deps.
go.sum Records checksums for newly added dependencies.
config/luma_checkin.json5 New production greeter mode config using QR scanner + Luma enrichment.
config/luma_checkin_local.json5 New local dev greeter config.
config/luma_checkin_go2.json5 New Go2/Thor greeter config using RTSP input.
config/conversation.json5 Adds explicit VLM input camera config (fps/resolution).

Comment thread internal/providers/vlm/video_stream.go Outdated
Comment thread internal/providers/vlm/video_stream.go Outdated
Comment thread plugins/inputs/qr_scanner/qr_scanner.go
Comment thread internal/providers/luma/client.go Outdated
@Prachi1615 Prachi1615 changed the title Luma integration for Greeting attendees Luma integration for welcomingattendees Jun 12, 2026
@Prachi1615 Prachi1615 changed the title Luma integration for welcomingattendees Luma integration for welcoming attendees Jun 12, 2026
Prachi1615 and others added 17 commits June 13, 2026 20:32
Introduce Luma check-in support and refactor QR scanner into a Luma-focused flow.

- Add config/luma_checkin_local.json5 with default modes and Luma/TTS settings.
- New provider package internal/providers/luma: RecordCheckIn/LastCheckIn and tests.
- Add hooks/luma_hook.go and tests; refactor greeting hook to extract announceGenerated for shared LLM->TTS flow.
- Update internal/providers/luma client: simplify HTTP client usage and remove unused greeting formatting helpers; adjust tests.
- Register and add Luma background plugin: move/rename checkin background to plugins/backgrounds/luma (LumaCheckin) and adjust logic to use luma.LastCheckIn to trigger checkin_complete; update tests.
- Replace QR scanner input with plugins/inputs/luma_checkin: rename files/packages, simplify formatScanMessage to perform Luma lookup/check-in and record check-ins (luma.RecordCheckIn), remove direct TTS bypass and related helpers; update registrations (NewLumaCheckin/NewLumaCheckinRTSP) and tests accordingly.
- Update plugin import registrations and prune removed test helpers and exports.

Overall this change integrates Luma guest lookup/check-in into the codebase, centralizes greeting generation, and renames/refactors the QR scanner into a dedicated Luma check-in plugin.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

config Configuration files core dependencies Pull requests that update a dependency file go plugins tests Test files

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants