Ticketing has no notification integration (no ticketing.* category, no Notifications class) #8
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Persona: superadmin@playwright.test
URL: https://central-dev.vancs.org/app/ticketing (and /app/notifications/log)
What I did:
Expected: Comparable snap-ins all fire an email/SMS notification through the shared
notification system for equivalent events — e.g.
forms.assigned,forms.submitted,tasks.assigned,oncall.job_assigned,oncall.job_offered,staff_employment.noe_posted.I'd expect ticketing to notify the submitter when their ticket gets a reply, and/or notify an
assigned agent when a ticket is assigned to them.
Actual:
admissions., attendance.confirm_request, bosch., forms., inbox., inventory.collection_email,
oncall., payments.receipt, signage., staff_employment.noe_posted, system., tasks.,
tools.file_downloaded, verification.requested) but no
ticketing.*category exists at all.src/has noNotificationsdirectory (every other snap-in that participates in the shared notificationsystem has one), and
TicketingServiceProvider.phpcontains no mention ofnotifanywhere.option — nothing notification-related there either.
So it looks like ticketing currently has zero integration with the shell's notification system:
submitters and agents have no way to learn about ticket activity except by manually checking the
queue/My Tickets page.
Console errors: none — this is a missing-feature/integration-gap finding, not a crash.
Filed as an integration gap under the "new/existing feature should surface in shell notifications"
category from this run's test plan, since every comparable snap-in (forms/tasks/oncall/staff-employment)
does have this integration and ticketing doesn't.
Filed automatically by the Claude-driven QA sweep (
/opt/qa-agent). The marker below dedupes repeat reports — do not edit it.Still occurring — re-verified 2026-07-28 (full-sweep). Created a fresh ticket (QA-0001) and sent a reply as the agent; checked
/app/notifications/logafterward and there's still noticketing.*category in the filter, and no log entry generated for either the create or reply action.Fixed in
4719cba. Verified after the change: 2ticketing.*categories register (39 total), so the Category filter now lists them.Your source reading was right, and more literally than "not wired up": this was not a mail sweep like the other apps. There was no existing
Mail::call to redirect —TicketMessageController::notifySubmitter()was an empty stub:So nobody has ever been told their ticket was answered.
Two categories, matching the moments somebody is waiting on another person — the two you suggested:
ticketing.replied→ the submitter when an agent replies. Internal notes are excluded at the call site, since the point of an internal note is that the submitter does not see it.ticketing.assigned→ the agent a ticket is handed to. The previous assignee is captured before the write so a genuine hand-off is distinguishable from a save that merely touched other fields, and assigning to yourself sends nothing.Neither is mandatory — a reply notice is a convenience rather than a security or financial record, so it is opt-out in preferences.
Bridge shape follows
ToolsNotifier: one class owning the platform contact,available()false when the platform is absent or dark, and a queue failure logged rather than thrown, because sending a reply must succeed even if the email cannot be queued.One consequence worth stating plainly: Notifications is still
betaand ships dark, so with the platform disabled ticketing stays silent, exactly as it is today. There is no direct-mail fallback here, unlike the swept apps, because there was never any direct mail to fall back to. These start delivering when Notifications is enabled.