Hermes 284313f908
Some checks are pending
Bidi Control Character Guard / bidi-control-guard (push) Waiting to run
Circular Dependency Check / Check for new circular dependencies (push) Waiting to run
Citus Migration Smoke / Combined migrations on single-node Citus (push) Waiting to run
E2E Fresh Install Tests / fresh-install-e2e (push) Waiting to run
ext-v2 guardrails / Run ext-v2 guard and ESLint (push) Waiting to run
Integration Tests / Check for relevant changes (push) Waiting to run
Integration Tests / ${{ (github.event_name == 'schedule' || github.event.inputs.suite == 'full') && 'Full integration suite' || 'Tier-1 integration subset' }} (push) Blocked by required conditions
Mobile checks / Mobile lint + typecheck (push) Waiting to run
Mobile checks / Mobile unit tests (push) Waiting to run
Mobile checks / Mobile dependency audit (report) (push) Waiting to run
Mobile checks / Mobile reproducibility checks (push) Waiting to run
Secrets guard (env backups) / Ensure no tracked env backup files (push) Waiting to run
Temporal Readiness / fast-readiness (push) Waiting to run
Temporal Readiness / docker-parity (push) Waiting to run
TypeScript Type Check / Nx affected typecheck (push) Waiting to run
Unit Tests / Skipped-test budget (push) Waiting to run
Unit Tests / Nx affected unit tests (push) Waiting to run
Unit Tests / Server unit coverage (informational) (push) Waiting to run
Validate Tenant Management Schema / Check for relevant changes (push) Waiting to run
Validate Tenant Management Schema / Validate Tenant Management Schema (push) Blocked by required conditions
EE Workflows Build Guard / ee-workflows-build-guard (push) Waiting to run
Initial import of AlgaPSA codebase from PSA server
Excluded: .git, node_modules, secrets/, compose.env, assemblyscript tgz

Source: /opt/alga-psa on psa.joliet.tech
2026-06-22 16:12:17 -05:00

453 lines
13 KiB
JSON

[
{
"id": "T001",
"description": "Unit: ISlaBackend interface has all required method signatures",
"implemented": true,
"featureIds": ["F001"]
},
{
"id": "T002",
"description": "Unit: SlaBackendFactory returns PgBossSlaBackend when isEnterprise is false",
"implemented": true,
"featureIds": ["F002"]
},
{
"id": "T003",
"description": "Unit: SlaBackendFactory returns TemporalSlaBackend when isEnterprise is true and Temporal available",
"implemented": true,
"featureIds": ["F002"]
},
{
"id": "T004",
"description": "Unit: SlaBackendFactory falls back to PgBossSlaBackend when Temporal unavailable in EE",
"implemented": true,
"featureIds": ["F002", "F033", "F034"]
},
{
"id": "T005",
"description": "Unit: PgBossSlaBackend.startSlaTracking() returns without error",
"implemented": true,
"featureIds": ["F003", "F047"]
},
{
"id": "T006",
"description": "Unit: PgBossSlaBackend.pauseSla() calls slaPauseService.pauseSla()",
"implemented": true,
"featureIds": ["F003"]
},
{
"id": "T007",
"description": "Unit: PgBossSlaBackend.resumeSla() calls slaPauseService.resumeSla()",
"implemented": true,
"featureIds": ["F003"]
},
{
"id": "T008",
"description": "Unit: PgBossSlaBackend.completeSla('response') calls slaService.recordFirstResponse()",
"implemented": true,
"featureIds": ["F003"]
},
{
"id": "T009",
"description": "Unit: PgBossSlaBackend.completeSla('resolution') calls slaService.recordResolution()",
"implemented": true,
"featureIds": ["F003"]
},
{
"id": "T010",
"description": "Unit: PgBossSlaBackend.cancelSla() returns without error",
"implemented": true,
"featureIds": ["F003", "F048"]
},
{
"id": "T011",
"description": "Unit: PgBossSlaBackend.getSlaStatus() delegates to slaService.getSlaStatus()",
"implemented": true,
"featureIds": ["F003", "F049"]
},
{
"id": "T012",
"description": "Unit: SlaTicketWorkflow initializes with correct input parameters",
"implemented": true,
"featureIds": ["F004", "F005"]
},
{
"id": "T013",
"description": "Unit: SlaTicketWorkflow initial state has currentPhase='response' and empty notifiedThresholds",
"implemented": true,
"featureIds": ["F006"]
},
{
"id": "T014",
"description": "Unit: SlaTicketWorkflow calculates correct sleep duration for 50% threshold",
"implemented": true,
"featureIds": ["F007"]
},
{
"id": "T015",
"description": "Unit: SlaTicketWorkflow calculates correct sleep duration for 75% threshold",
"implemented": true,
"featureIds": ["F007"]
},
{
"id": "T016",
"description": "Unit: SlaTicketWorkflow calculates correct sleep duration for 90% threshold",
"implemented": true,
"featureIds": ["F007"]
},
{
"id": "T017",
"description": "Unit: SlaTicketWorkflow calculates correct sleep duration for 100% threshold",
"implemented": true,
"featureIds": ["F007"]
},
{
"id": "T018",
"description": "Unit: SlaTicketWorkflow pause signal sets pauseStartedAt timestamp",
"implemented": true,
"featureIds": ["F008"]
},
{
"id": "T019",
"description": "Unit: SlaTicketWorkflow resume signal clears pauseStartedAt and increments totalPauseMinutes",
"implemented": true,
"featureIds": ["F009"]
},
{
"id": "T020",
"description": "Unit: SlaTicketWorkflow resume signal recalculates next wake time with updated pause minutes",
"implemented": true,
"featureIds": ["F009"]
},
{
"id": "T021",
"description": "Unit: SlaTicketWorkflow completeResponse signal transitions to resolution phase",
"implemented": true,
"featureIds": ["F010"]
},
{
"id": "T022",
"description": "Unit: SlaTicketWorkflow completeResolution signal terminates workflow with success",
"implemented": true,
"featureIds": ["F011"]
},
{
"id": "T023",
"description": "Unit: SlaTicketWorkflow cancel signal terminates workflow without breach",
"implemented": true,
"featureIds": ["F012"]
},
{
"id": "T024",
"description": "Unit: SlaTicketWorkflow getState query returns current status and remaining time",
"implemented": true,
"featureIds": ["F013"]
},
{
"id": "T025",
"description": "Unit: calculateNextWakeTime returns correct wall-clock time for 8am-5pm Mon-Fri schedule",
"implemented": true,
"featureIds": ["F014"]
},
{
"id": "T026",
"description": "Unit: calculateNextWakeTime advances to Monday when start is Friday 4pm and target is 2 hours",
"implemented": true,
"featureIds": ["F014", "F015"]
},
{
"id": "T027",
"description": "Unit: calculateNextWakeTime skips holidays in calculation",
"implemented": true,
"featureIds": ["F014"]
},
{
"id": "T028",
"description": "Unit: calculateNextWakeTime handles recurring holidays correctly",
"implemented": true,
"featureIds": ["F014"]
},
{
"id": "T029",
"description": "Unit: calculateNextWakeTime subtracts pause minutes from elapsed time",
"implemented": true,
"featureIds": ["F016"]
},
{
"id": "T030",
"description": "Unit: calculateNextWakeTime returns immediate time for 24x7 schedule",
"implemented": true,
"featureIds": ["F014", "F050"]
},
{
"id": "T031",
"description": "Unit: sendSlaNotification activity calls slaNotificationService.sendSlaNotification()",
"implemented": true,
"featureIds": ["F017"]
},
{
"id": "T032",
"description": "Unit: checkAndEscalate activity calls escalationService.checkEscalationNeeded()",
"implemented": true,
"featureIds": ["F018"]
},
{
"id": "T033",
"description": "Unit: checkAndEscalate activity calls escalationService.escalateTicket() when threshold exceeded",
"implemented": true,
"featureIds": ["F018"]
},
{
"id": "T034",
"description": "Unit: updateSlaStatus activity updates ticket sla_response_met field",
"implemented": true,
"featureIds": ["F019"]
},
{
"id": "T035",
"description": "Unit: updateSlaStatus activity updates ticket sla_resolution_met field",
"implemented": true,
"featureIds": ["F019"]
},
{
"id": "T036",
"description": "Unit: recordSlaAuditLog activity inserts entry with correct event type",
"implemented": true,
"featureIds": ["F020"]
},
{
"id": "T037",
"description": "Unit: TemporalSlaBackend.startSlaTracking() starts workflow with correct ID",
"implemented": true,
"featureIds": ["F021", "F022"]
},
{
"id": "T038",
"description": "Unit: TemporalSlaBackend workflow ID follows format sla-ticket-{tenantId}-{ticketId}",
"implemented": true,
"featureIds": ["F022"]
},
{
"id": "T039",
"description": "Unit: TemporalSlaBackend.pauseSla() sends pause signal to workflow",
"implemented": true,
"featureIds": ["F023"]
},
{
"id": "T040",
"description": "Unit: TemporalSlaBackend.resumeSla() sends resume signal to workflow",
"implemented": true,
"featureIds": ["F024"]
},
{
"id": "T041",
"description": "Unit: TemporalSlaBackend.completeSla('response') sends completeResponse signal",
"implemented": true,
"featureIds": ["F025"]
},
{
"id": "T042",
"description": "Unit: TemporalSlaBackend.completeSla('resolution') sends completeResolution signal",
"implemented": true,
"featureIds": ["F025"]
},
{
"id": "T043",
"description": "Unit: TemporalSlaBackend.cancelSla() sends cancel signal to workflow",
"implemented": true,
"featureIds": ["F026"]
},
{
"id": "T044",
"description": "Unit: TemporalSlaBackend.getSlaStatus() queries workflow state",
"implemented": true,
"featureIds": ["F027"]
},
{
"id": "T045",
"description": "Unit: slaService.startSlaForTicket() calls backend.startSlaTracking()",
"implemented": true,
"featureIds": ["F028"]
},
{
"id": "T046",
"description": "Unit: slaPauseService.pauseSla() calls backend.pauseSla()",
"implemented": true,
"featureIds": ["F029"]
},
{
"id": "T047",
"description": "Unit: slaPauseService.resumeSla() calls backend.resumeSla()",
"implemented": true,
"featureIds": ["F030"]
},
{
"id": "T048",
"description": "Unit: slaService.recordFirstResponse() calls backend.completeSla('response')",
"implemented": true,
"featureIds": ["F031"]
},
{
"id": "T049",
"description": "Unit: slaService.recordResolution() calls backend.completeSla('resolution')",
"implemented": true,
"featureIds": ["F032"]
},
{
"id": "T050",
"description": "Unit: TemporalSlaBackend.startSlaTracking() handles duplicate workflow ID without error",
"implemented": true,
"featureIds": ["F035"]
},
{
"id": "T051",
"description": "Unit: CE stub TemporalSlaBackend throws 'only available in Enterprise Edition'",
"implemented": true,
"featureIds": ["F046"]
},
{
"id": "T052",
"description": "Integration: New ticket in EE starts Temporal workflow",
"implemented": true,
"featureIds": ["F004", "F021", "F028"]
},
{
"id": "T053",
"description": "Integration: Workflow sends notification at 50% threshold",
"implemented": true,
"featureIds": ["F038"]
},
{
"id": "T054",
"description": "Integration: Workflow sends notification at 75% threshold",
"implemented": true,
"featureIds": ["F039"]
},
{
"id": "T055",
"description": "Integration: Workflow sends notification at 90% threshold",
"implemented": true,
"featureIds": ["F040"]
},
{
"id": "T056",
"description": "Integration: Workflow marks breach at 100% threshold",
"implemented": true,
"featureIds": ["F041"]
},
{
"id": "T057",
"description": "Integration: Workflow checks escalation at each threshold",
"implemented": true,
"featureIds": ["F042"]
},
{
"id": "T058",
"description": "Integration: Pausing ticket pauses workflow timer",
"implemented": true,
"featureIds": ["F008", "F023", "F029"]
},
{
"id": "T059",
"description": "Integration: Resuming ticket resumes workflow timer with adjusted time",
"implemented": true,
"featureIds": ["F009", "F024", "F030"]
},
{
"id": "T060",
"description": "Integration: First response transitions workflow to resolution phase",
"implemented": true,
"featureIds": ["F010", "F031"]
},
{
"id": "T061",
"description": "Integration: Resolution completes workflow",
"implemented": true,
"featureIds": ["F011", "F032"]
},
{
"id": "T062",
"description": "Integration: Ticket deletion cancels workflow",
"implemented": true,
"featureIds": ["F012", "F036"]
},
{
"id": "T063",
"description": "Integration: SLA policy change cancels old workflow and starts new one",
"implemented": true,
"featureIds": ["F037"]
},
{
"id": "T064",
"description": "Integration: New ticket in CE does not start Temporal workflow",
"implemented": true,
"featureIds": ["F002", "F003"]
},
{
"id": "T065",
"description": "Integration: CE sla-timer job continues to process tickets normally",
"implemented": true,
"featureIds": ["F003"]
},
{
"id": "T066",
"description": "Integration: Temporal worker loads SlaTicketWorkflow on startup",
"implemented": true,
"featureIds": ["F043", "F044"]
},
{
"id": "T067",
"description": "Integration: Temporal worker loads SLA activities on startup",
"implemented": true,
"featureIds": ["F045"]
},
{
"id": "T068",
"description": "E2E: Full ticket lifecycle in EE - create, 50% notification, pause, resume, first response, 50% resolution notification, resolve",
"implemented": true,
"featureIds": ["F004", "F008", "F009", "F010", "F011", "F038"]
},
{
"id": "T069",
"description": "E2E: Full ticket lifecycle in CE - create, poll-based 50% notification, pause, resume, first response, resolve",
"implemented": true,
"featureIds": ["F003"]
},
{
"id": "T070",
"description": "E2E: EE fallback to pgboss when Temporal unavailable",
"implemented": true,
"featureIds": ["F033", "F034"]
},
{
"id": "T071",
"description": "Unit: calculateNextWakeTime handles timezone correctly for America/New_York",
"implemented": true,
"featureIds": ["F014"]
},
{
"id": "T072",
"description": "Unit: calculateNextWakeTime handles timezone correctly for Europe/London",
"implemented": true,
"featureIds": ["F014"]
},
{
"id": "T073",
"description": "Unit: calculateNextWakeTime handles DST transition correctly",
"implemented": true,
"featureIds": ["F014"]
},
{
"id": "T074",
"description": "Unit: SlaTicketWorkflow handles workflow replay correctly (deterministic)",
"implemented": true,
"featureIds": ["F004"]
},
{
"id": "T075",
"description": "Unit: SlaTicketWorkflow survives worker restart and continues from correct state",
"implemented": true,
"featureIds": ["F004"]
}
]