v1.0.2
All checks were successful
Build and push image / build (push) Successful in 1m24s

- Fix CI registry login (unauthorized): use dedicated REGISTRY_TOKEN secret
  instead of GITHUB_TOKEN, fail fast with a clear error if it's unset.
- Pause ticket work-timer while a ticket is closed (won't auto-start on open
  or manual resume; stops on close via status change, quick action, API, or
  merge).
- Reject empty/blank login submissions client- and server-side instead of
  passing them straight to the auth provider.
- Closing a ticket now sends only the "ticket closed" notification instead
  of also sending a duplicate "status changed" one.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-22 08:50:03 +02:00
parent 13a758779d
commit 4e8f17189a
14 changed files with 174 additions and 14 deletions

View File

@@ -75,10 +75,18 @@ class TicketService
$ticket->update(['status_key' => $statusKey, 'sla_notified_at' => null]);
$ticket->addHistory('Status zmieniony na: '.Status::labelFor($statusKey));
$this->notify($ticket, 'status_changed');
// A transition to "closed" fires its own dedicated notification
// instead of the generic status-changed one, so closing a ticket
// doesn't send the customer/operator two emails for one event.
if ($statusKey === 'closed') {
$this->notify($ticket, 'ticket_closed');
// Time tracking only applies to open work — checkpoint and pause
// the running segment (if any) the moment a ticket is closed,
// regardless of which flow triggered the status change.
$ticket->stopTimer();
} else {
$this->notify($ticket, 'status_changed');
}
}
@@ -253,6 +261,7 @@ class TicketService
}
$other->update(['status_key' => 'closed']);
$other->stopTimer();
$note = $other->messages()->create([
'author_name' => 'System',
'internal' => true,