Skip to content

feat: Add a new demo domain for an airline support assistant#23

Open
vishal-bala wants to merge 7 commits into
mainfrom
domain/airline-support
Open

feat: Add a new demo domain for an airline support assistant#23
vishal-bala wants to merge 7 commits into
mainfrom
domain/airline-support

Conversation

@vishal-bala
Copy link
Copy Markdown

@vishal-bala vishal-bala commented May 6, 2026

Changes

This PR adds a complete airline-support domain pack for Context Surfaces, including schema, prompt, generated models, demo data, docs, tests, and synthetic branding. The domain is built around a realistic airline-support model that separates booking-scoped itinerary segments, shared operating-flight status, flight-level disruptions, and traveller-level reassignment records so the demo can show credible record-backed reasoning in disruption and post-rebooking workflows.

Additional Changes

  • Adds a light-themed airline demo experience with generic public-safe branding.
  • Improves shared agent-trace readability in the frontend for light themes.
  • Includes targeted validation, smoke coverage, and domain tests for the new pack.

Demo Paths

The primary demo path is a disruption recovery scenario: the traveller asks what happened to a disrupted flight, then follows up to see the updated itinerary and understand next steps. This path demonstrates signed-in traveller resolution, booking lookup, itinerary inspection, operating-flight lookup, disruption lookup, reassignment lookup, and the distinction between confirmed trip facts and general policy guidance.

The secondary demo path focuses on post-rebooking serviceability: after the reassignment, the traveller asks whether they can still check in, whether baggage will continue to the final destination, and which terminal they should use. This path demonstrates how the assistant grounds follow-up support questions in the updated itinerary while combining record-backed facts with policy-based check-in and baggage guidance.

A backup profile path is also included for audiences who want to inspect identity grounding and read-only personalization. In that flow, the traveller asks what the profile says about their status and what contact details are on file, allowing the demo to show privacy-safe profile-backed answers without exposing internal-only fields.


Note

Medium Risk
Adds a full new demo domain (schema/models/data generation/internal tools) plus theme-driven frontend styling changes; moderate risk due to new runtime configuration and UI theming behavior that could affect other domains.

Overview
Adds a new airline-support demo domain pack (schema, generated Context Surface models, prompt/playbooks, synthetic dataset generator, branding/theme, and demo-path docs) to support disruption + rebooking support flows with record-backed reasoning and a Simple RAG contrast.

Updates the shared frontend to better support themed/light domains by dynamically setting document.documentElement.style.colorScheme based on the domain background and revising CSS to be more theme-token driven (e.g., color-mix, shadows, panels, and logo image sizing). Improves scripts/load_data.py to fail fast with a clearer message when generated JSONL rows no longer match the current pydantic model schema, and adds targeted tests covering the new domain and its data generator.

Reviewed by Cursor Bugbot for commit e311788. Bugbot is set up for automated code reviews on this repo. Configure here.

@vishal-bala vishal-bala self-assigned this May 6, 2026
@jit-ci
Copy link
Copy Markdown

jit-ci Bot commented May 6, 2026

🛡️ Jit Security Scan Results

CRITICAL HIGH MEDIUM

✅ No security findings were detected in this PR


Security scan by Jit

Comment thread frontend/src/styles.css
.trace-line-main { display: flex; align-items: center; gap: 10px; min-width: 0; }
.trace-line-right { display: inline-flex; align-items: center; justify-content: flex-end; gap: 10px; flex: 0 0 auto; min-width: 72px; }
.trace-pill { display: inline-flex; align-items: center; flex: 0 0 auto; padding: 3px 7px; border-radius: 999px; background: rgba(255,255,255,0.06); color: var(--muted); font-size: 0.68rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; }
.trace-pill { display: inline-flex; align-items: center; flex: 0 0 auto; padding: 3px 7px; border-radius: 999px; background: color-mix(in srgb, var(--accent) 12%, white); color: var(--soft); font-size: 0.68rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; }
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Light backgrounds with theme-dependent text break dark themes

High Severity

Several elements use color-mix(in srgb, var(--accent) N%, white) for backgrounds, producing an always-near-white result, while pairing it with theme-dependent text colors (var(--soft), var(--text)) that resolve to light values on dark themes. For example, on the electrohub theme (--accent: #31c7ff, --soft: #d5e5fb, --text: #f2f7ff), .trace-pill, .send-button, and .quick-start-chip:hover all render light text on a near-white background, making them unreadable. The .tool-source pills correctly use hardcoded dark text colors for the same pattern — these elements need the same treatment.

Additional Locations (2)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 3c6c7c2. Configure here.

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