support_desk adds a customer support desk to any Rails app: tickets that are conversations. A requester asks for help about something in your app (a ride, an order, a withdrawal) or about nothing in particular, your desk answers, humans or bots sign the answers, and your team works a queue. It is a product gem on the `chats` kernel: chats owns the transcript, realtime, attachments, read state and moderation; support_desk owns cases, topics, assignment, routing and the console API. One macro makes a model ask for help (`has_support_tickets`), one makes a domain record something to ask about (`supportable`), one makes a person answer (`acts_as_support_agent`). Topics are a tree defined in code that drives the wizard, the picker, routing and metrics; assignment is a history, not a column; every transition writes an append-only event row and emits an error-isolated event your app can subscribe to. Batteries included on the user side (a mountable engine with ejectable views), bring-your-own-UI on the agent side (query objects, presenters, a controller concern and a console generator), with no runtime dependency on any admin framework.
Required Ruby Version
>= 3.2.0
Authors
rameerez