ServingIntel Community – SI-KDS Release Notes

SI-KDS Release Notes

Version 2026.1.9

(Published: January 30, 2026)

CRITICAL BUG FIX

Bug Fix: Duplicate Key Exception on Startup
Resolved a critical crash that prevented the application from starting when the database contained multiple customer marker rows for the same seat number. The MapToDisplayOrder method now uses GroupBy to handle duplicate seat keys gracefully, taking the first customer name per seat and returning an empty dictionary for null input.

Files Modified: OrderRepository.cs (line 759-762), AppVersion.cs

Version 2026.1.8

(Published: January 30, 2026)

DIAGNOSTIC BUILD

Hotfix: Root Cause Identification
Intermediate diagnostic build that identified the exact location of the startup crash in OrderRepository.cs MapToDisplayOrder method. This build provided stack trace analysis leading to the v2026.1.9 fix.

Version 2026.1.7

(Published: January 29, 2026)

CRITICAL BUG FIXES

Bug Fix: Orders Not Persisting Across Restarts – Active and bumped tickets now persist and reload correctly when the application restarts. Added GetBumpedOrdersAsync() to IOrderRepository and updated OrderManagerService.InitializeAsync() to load existing orders from the database on startup.

Bug Fix: Added Items Not Displaying on Main Screen – Items added to existing orders via POS now immediately appear on the KDS display. Updated UpdateTicketProperties() to sync SeatGroups, ReceivedTime, TableName, and GuestCount in addition to the Items collection.

Bug Fix: Multi-Part Ticket Splitting – Large orders spanning multiple columns no longer show duplicate seats. Rewrote BuildTicketColumns() to split by SeatGroups rather than Items, ensuring each column displays only its assigned seats.

Bug Fix: Customer Names Not Displaying – Customer names now appear correctly beside seat badges instead of showing ‘Guest 1’. Added separate SQL query to retrieve ParsedCustomerName from customer marker items.

UI BUG FIXES

Bug Fix: Item/Modifier Font Colors – Removed redundant DataContext prefixes from XAML binding paths that prevented color styling from applying correctly.

Bug Fix: Color Picker Selection – Replaced ItemsControl with ListBox and added checkmark highlight to show selected color in the color palette popup.

Bug Fix: Release Notes Window Crash – Simplified XAML structure and removed accordion pattern that caused crashes due to missing BoolToVisibility resource.

Bug Fix: Modifier Text Visibility – Changed modifier text to Bold with increased font size (13-14px main, 12-13px recall) for better visibility in kitchen environments.

Bug Fix: Header Display Consistency – All tickets now consistently show ‘Table X – Y Guests’ format instead of varying between customer name and table info.

NEW FEATURE

User Story: Ticket Zoom Controls – Added zoom in/out buttons to the bottom toolbar allowing kitchen staff to scale ticket size from 50% to 200% (default 80%, 10% increments). Zoom setting persists across application restarts via settings.json. Scales ticket cards, text, badges, headers, and BUMP button while leaving toolbars unchanged.

Version 2026.1.6

(Published: January 2026)

MAJOR FEATURE RELEASE: RECIPE MODULE

User Story: Recipe Library – Full-screen recipe browsing with touch-optimized card-based layout, real-time search, category filtering (Breakfast, Lunch, Dinner, Snacks, Beverages), IDDSI texture level filtering, diet type filtering, and allergen exclusion filters.

User Story: Recipe Builder – Five-tab interface for comprehensive recipe management including Basic Info, Ingredients (280+ USDA ingredients), Instructions (with HACCP CCP marking), Texture & Diet (IDDSI compliance), and Review (auto-calculated nutrition).

User Story: Favorites & Recent Recipes – Per-device tracking of favorite recipes with heart icon toggle and recent recipes view showing timestamps with relative time display.

User Story: Recipe Print – Kitchen-friendly printouts with two-column ingredients, checkboxes, CCP highlighting, and FDA nutrition facts table.

User Story: Menu Cycle Integration – Shows today’s planned recipes by meal period with day navigation for browsing full cycle.

User Story: Contextual Recipe Lookup – Long-press on KDS ticket items (600ms) triggers context menu with View Recipe, View Allergens, and View Diet Info options.

Enhancement: Auto-Calculated Nutrition – Per-serving values calculated from USDA ingredient database including calories, protein, carbs, fat, sodium, and fiber.

BUG FIXES

Bug Fix: Recipe Module Connection String – Fixed AppSettings.Load() calls that used hardcoded defaults instead of AppSettings.Instance singleton, causing connection failures in production deployments.

Version 2026.1.5

(Published: January 18, 2026)

MAJOR FEATURE RELEASE: SESSION PLAYBACK PHASE 2

User Story: UI State Snapshots – Periodic snapshots (every 30 seconds) plus event-triggered capture on startup, shutdown, bump, recall, order received, and errors. Full ticket details serialized as JSON.

User Story: Automatic Error Capture – Exception hooks automatically capture unhandled exceptions from WPF Dispatcher, AppDomain, and TaskScheduler with full context including current view, active ticket count, and related check number.

User Story: Event Correlation – Playback events linked to OrderActivityLog and OrderApiLog entries for comprehensive diagnostic analysis. Check number tracking enables filtering by specific orders.

Enhancement: Rich Context JSON – Each captured interaction event includes current view, connection status, visible check numbers, and target control information.

Version 2026.1.4

(Published: January 17, 2026)

ENHANCEMENTS

User Story: Ticket Activity Audit Trail – Complete lifecycle tracking for every ticket including TicketReceived, TicketResent, TicketUpdated, ItemVoided, TicketBumped, TicketRecalled, TicketCancelled, and TicketArchived activities with timestamps.

User Story: API Request Logging – Every API request from SI 360 POS logged with complete JSON payload for audit trail, troubleshooting, and compliance. Includes timestamp, endpoint, HTTP method, check/course/item numbers, success status, and processing time.

User Story: End-of-Day Automatic Reset – Configurable automatic archive of all active and bumped tickets at end of business day (default 2:00 AM). Tickets removed from display with sound notification. Archived tickets remain in database for historical queries.

User Story: Re-Sent Check Handling – When manager re-sends a check from POS, ticket correctly reappears on display even if previously bumped. Timer resets and items updated to reflect new payload.

Version 2026.1.3

(Published: January 17, 2026)

MAJOR FEATURE RELEASE: LOCAL API MODE

User Story: Local API Mode – Self-hosted Kestrel web server on port 5080 enables direct communication between SI 360 POS terminals and KDS displays without requiring a SignalR hub. Simpler deployment for smaller installations.

User Story: REST API Endpoints – POST /Pos/Checks (new order), POST /Pos/Checks/{id}/Courses/{id}/Items (add items), PATCH /Pos/Checks/{id}/Courses/{id}/Items/{id} (void item), POST /Pos/Checks/{id}/Courses/Cancellations (cancel order), GET /Pos/System/Ping (health check).

User Story: Live UI Updates – Real-time ticket updates when items are added or voided without requiring page refresh.

User Story: Elapsed Timer – Each ticket displays time since order received, counting up in M:SS format.

User Story: Color-Coded Tickets – GREEN for new orders, RED for aged orders based on configurable thresholds.

User Story: Allergy Alerts – [ALLERGY] tag displayed prominently on tickets with guest allergies, highlighted in yellow for visibility.

User Story: Status Bar – Shows connection mode (Local API or SignalR) with visual indicator. Green dot with ‘Local API (Port 5080)’ confirms active local mode.

Version 2026.1.2

(Published: January 2026)

INITIAL RELEASE

User Story: Initial KDS Application – First release of SI-KDS Kitchen Display System for senior living and restaurant environments.

User Story: Real-Time SignalR Communication – Dual-hub failover architecture for reliable order transmission between POS and kitchen displays.

User Story: Ticket Display – Color-coded status indicators (Red/Yellow/Green) for order aging and priority.

User Story: Bump and Recall – Touch-friendly BUMP button to complete orders and Recall screen to restore accidentally bumped tickets.

User Story: Demo Mode – Testing mode for demonstrations without server connection.

User Story: Connection Status Indicator – Real-time display showing Primary/Secondary hub connection status.

User Story: Version Control & Release Notes – Version numbering using YYYY.Q.VersionReleased convention. Clickable version hyperlink opens full-screen release notes window.

User Story: Touch-Optimized UI – Dark theme design optimized for 17-inch touchscreen displays in kitchen environments with minimum 48px button heights and 16px fonts.


ServingIntel Kitchen Display System

Target Framework: .NET 8.0 | Database: SQL Server Express | Architecture: Local API Mode