# Helpdesk Module — Changelog

## [Unreleased] — Phase 7–9 completion

### Added (Phase 9 — AI Readiness)
- **AI Ticket Suggestions**: New `AITicketSuggestion` model for AI-generated recommendations (priority, category, tags, routing, reply drafts).
- **AI Action Audit Log**: New `AIActionLog` model providing an immutable, append-only audit trail for every AI action executed on tickets.
- **AI IAM Permissions**: Five granular permissions for AI operations:
  - `helpdesk.aisuggestion.view` — View AI suggestions
  - `helpdesk.aisuggestion.create` — Generate AI suggestions
  - `helpdesk.aisuggestion.approve` — Approve/reject AI suggestions
  - `helpdesk.aiaction.execute` — Let AI execute actions directly
  - `helpdesk.aiaudit.view` — View AI action audit logs
- **AI Service Layer**: `AISuggestionService` and `AIAuditService` in `helpdesk.ai.services` for suggestion lifecycle management and audit queries.
- **Metrics instrumentation**: New `helpdesk.metrics` module with `@instrument` decorator for operation-level timing and counting, plus structured log enrichment helpers.

### Added (Phase 8 — Testing)
- **Expanded test coverage**: 18 new backend tests covering:
  - TicketService.escalate
  - TicketService.update (field modification + read-only guard)
  - Quota enforcement (`helpdesk.max_tickets`)
  - SLA timer lifecycle (start, pause, resume, mark first response)
  - Transition idempotency
  - Auto-open on public reply
  - Cross-tenant isolation (tickets, queues)
  - Event subscriber registration verification
  - Automation model CRUD + soft-delete
  - AgentTeam model with members and unique constraints

### Changed (Phase 7 — Frontend)
- **Arabic locale completion**: Added missing `teams` section and keys (`tickets.detail`, `tickets.category`, `tickets.subcategory`, `tickets.selectRequester`, `priority.critical`, `queues.create/edit`, `categories.create/edit`, `tags.create/edit`, `sla.create/edit`, `teams.*`, `settings.agentReassign`, `settings.notifySms`).
- **English/Persian locale updates**: Added `agentReassign`, `agentReassignHint`, `notifySms`, `notifySmsHint`, `tickets.detail`, `priority.critical` keys to both locale files.
- **Removed hardcoded labels**: All Persian fallback text removed from `manifest.schema.ts` sidebar items and parent node. Hardcoded Persian defaults in `HelpdeskSettingsPage.tsx` replaced with i18n key lookups.

---

## [1.0.0] — Initial release (Phase 1–6)

### Models
- `Queue`, `Category`, `Tag`, `SLAPolicy`, `Ticket`, `TicketTag`, `TicketReply`, `SLATimer`, `Automation`, `AgentTeam`, `AgentTeamMember`, `ConnectorConfig`

### Services
- `TicketService`: create, update, transition, assign, escalate, add_reply, SLA helpers
- `QueueService`: create

### API (30 endpoints)
- Full CRUD for tickets, queues, categories, tags, SLA policies, automations, teams
- Ticket transitions, assignment, escalation
- Replies (public + internal notes)
- Activity feed, attachments
- Reports summary, import/export, webhooks, email ingestion, CSAT

### Workflow & Events
- 6-state Ticket FSM (new → open ↔ pending/on_hold → solved → closed)
- 13 registered domain events with 16 subscribers (SLA, automations, notifications, realtime)
- 7 notification templates (in-app, email, SMS)

### Platform Integration
- IAM permissions (33 granular permissions + 3 default role templates)
- 9 tenant-configurable settings
- Global search adapters (tickets + queues)
- Feature gating (9 features, some paid-tier)

