The support-copilot gallery is a committed Phoenix example app that demonstrates Scoria in a realistic B2B support domain. It is the human-clickable companion to the merge-blocking generated-host overlay proof.
Clone the repository
The gallery lives at examples/support_copilot in the GitHub repository. It is not included in the Hex package tarball — clone the repository to run it locally:
git clone https://github.com/szTheory/scoria.git
cd scoria/examples/support_copilot
mix setup
mix phx.server
This starts the separate gallery app under examples/support_copilot, not the
Scoria repo dashboard. Visit the gallery host chat at
http://localhost:4010/ and the gallery-local Scoria operator surface at
http://localhost:4010/scoria.
Path dependency vs tarball consumer proof
| Surface | Dependency shape | Purpose |
|---|---|---|
Gallery (examples/support_copilot) | path: dependency ({:scoria, path: "../.."}) | Human-clickable demo + advisory LiveView journey tests |
Merge-blocking adoption (mix test.adoption) | Hex-shaped tarball from mix hex.build --unpack | Proves packaged artifact installs in a generated Phoenix host |
Adopters evaluating from Hex should run mix test.adoption in their host app. Clone the repo when you want the full interactive gallery.
Persona
Support Ops Lead at Acme Corp (acme-corp tenant) triages billing disputes, escalates refunds to a billing_specialist role, and inspects operator evidence in Scoria.
Advisory verification lane
Maintainers and adopters exploring the gallery can run:
mix scoria.test.support_copilot
This lane is advisory — it is not part of VerificationLanes.closeout_order/0. Merge-blocking adoption proof remains mix test.adoption.
Optional lane commands exercised by gallery journeys (run in the main repo, not inside the gallery app):
mix test.semantic_fast_path— semantic FAQ journeymix test.knowledge— knowledge refund-policy journeymix test.connector— billing connector register → fleet → drawer journey
Journey fixtures
Shared identities, ticket data, and handler logic live in Scoria.SupportJourney, SupportJourney handlers, and priv/fixtures/support_journey/. The gallery, host-proof overlay, and this guide must stay aligned via source contract tests.
Default lane
- Host starts a durable run with
Scoria.start_run/2for sessionsupport-session-42. - An approval step pauses with
waiting_for_approvalwhile a refund is reviewed. - Operator approves and the host calls
Scoria.resume_run/2until status iscompleted. - Evidence is visible at
/scoria/workflows/:run_id.
Handoff lane
- Host escalates with
Scoria.start_handoff_run/3tobilling_specialistwithbilling_reviewdelegated kind. - Operator inspects delegated lineage via
Scoria.get_run_detail/1on/scoria/workflows/:run_id.
Semantic FAQ lane
- Gallery starts a read-only semantic run with
SupportCopilot.SemanticLane. - Operator inspects semantic evidence on the workflow detail surface.
Knowledge lane
- Gallery seeds
Acme refund policyknowledge source from journey fixtures. - Host runs a grounded answer step; evidence references the knowledge corpus.
Connector lane
- Gallery registers a
billingconnector for tenantacme-corp. - Host runs a connector lookup step; operator fleet view lists the connector.
Tools in the scenario
lookup_support_ticket— read ticketTKT-1042("Duplicate charge on Pro plan")issue_refund— approval-gated refund for the disputed charge
Shared handlers
Overlay smokes and the gallery delegate to the shared SupportJourney handlers so approval, lookup, and lane handlers cannot drift between merge-blocking proof and the reference demo.