- 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>
Documentation overhaul (TESTING/CONTRIBUTING/ARCHITECTURE/SECURITY/CLAUDE.md,
CHANGELOG.md, drop unmaintained src/README.md) plus CI-built Docker images:
Gitea Actions now builds and pushes the servicedesk image to the Gitea
container registry on Dockerfile changes, and compose.yaml pulls that image
instead of building locally. No application behavior changes.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>