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
Excluded: .git, node_modules, secrets/, compose.env, assemblyscript tgz Source: /opt/alga-psa on psa.joliet.tech
64 lines
10 KiB
JSON
64 lines
10 KiB
JSON
[
|
|
{ "id": "T001", "description": "Standards: new payload schemas follow the conventions in PRD §6 (tenantId required; transitions have previous/new; mutation events include updatedFields/changes)", "implemented": true, "featureIds": ["F001", "F003"] },
|
|
{ "id": "T002", "description": "Schema registry: every catalog event with payload_schema_ref resolves via schema registry (no 404) and validates example payloads", "implemented": true, "featureIds": ["F003", "F006", "F005"] },
|
|
{ "id": "T003", "description": "Event bus schema: every expanded event_type is accepted by the event bus schema/types and maps to a payload schema", "implemented": true, "featureIds": ["F004"] },
|
|
{ "id": "T004", "description": "Catalog migration: system_event_catalog contains entries (category/name/description/payload_schema_ref) for all events listed in event-proposals.md", "implemented": true, "featureIds": ["F005"] },
|
|
{ "id": "T005", "description": "Simulator: form-mode builder renders for each new catalog event and rejects invalid payloads with schema validation errors", "implemented": true, "featureIds": ["F006", "F003"] },
|
|
{ "id": "T006", "description": "Overlap handling: ticket message/comment and appointment/schedule-entry overlap decisions are encoded and documented (no duplicate/ambiguous triggers)", "implemented": true, "featureIds": ["F004", "F012", "F020"] },
|
|
|
|
{ "id": "T010", "description": "Tickets: status/priority transitions publish TICKET_STATUS_CHANGED and TICKET_PRIORITY_CHANGED with previous/new values", "implemented": true, "featureIds": ["F010"] },
|
|
{ "id": "T011", "description": "Tickets: assignment changes publish TICKET_ASSIGNED and TICKET_UNASSIGNED with previous/new assignee context", "implemented": true, "featureIds": ["F010"] },
|
|
{ "id": "T012", "description": "Tickets: reopen publishes TICKET_REOPENED with previous/new status and actor", "implemented": true, "featureIds": ["F010"] },
|
|
{ "id": "T013", "description": "Tickets: escalation/queue changes publish TICKET_ESCALATED and TICKET_QUEUE_CHANGED", "implemented": true, "featureIds": ["F010"] },
|
|
{ "id": "T014", "description": "Tickets: merge/split publish TICKET_MERGED and TICKET_SPLIT with source/target ids", "implemented": true, "featureIds": ["F011"] },
|
|
{ "id": "T015", "description": "Tickets: tag changes publish TICKET_TAGS_CHANGED (or TAG_APPLIED/TAG_REMOVED as decided) with added/removed tags", "implemented": true, "featureIds": ["F010", "F053"] },
|
|
{ "id": "T016", "description": "Tickets: communication events publish TICKET_MESSAGE_ADDED/TICKET_CUSTOMER_REPLIED/TICKET_INTERNAL_NOTE_ADDED (or map to existing comment events) with correct visibility/channel", "implemented": true, "featureIds": ["F012"] },
|
|
{ "id": "T017", "description": "Tickets: time logging publishes TICKET_TIME_ENTRY_ADDED with billable/minutes metadata", "implemented": true, "featureIds": ["F013"] },
|
|
{ "id": "T018", "description": "Tickets: SLA stage enter/met/breached publish events only when SLA module enabled; payload includes stage + target timestamps", "implemented": true, "featureIds": ["F014"] },
|
|
{ "id": "T019", "description": "Tickets: approval events are catalog-only (no emission until an approvals subsystem exists); schemas + catalog entries are still validated", "implemented": true, "featureIds": ["F015"] },
|
|
|
|
{ "id": "T020", "description": "Scheduling: create/reschedule/cancel/complete/no-show emit appointment/schedule events with start/end times and timezone", "implemented": true, "featureIds": ["F020"] },
|
|
{ "id": "T021", "description": "Scheduling: assignment changes emit APPOINTMENT_ASSIGNED (or mapped schedule-entry equivalent) with previous/new assignee", "implemented": true, "featureIds": ["F020"] },
|
|
{ "id": "T022", "description": "Scheduling: schedule blocks emit SCHEDULE_BLOCK_CREATED and SCHEDULE_BLOCK_DELETED with owner context", "implemented": true, "featureIds": ["F021"] },
|
|
{ "id": "T023", "description": "Scheduling: capacity thresholds emit CAPACITY_THRESHOLD_REACHED only when configured, with team/date metrics", "implemented": true, "featureIds": ["F022"] },
|
|
{ "id": "T024", "description": "Field ops: dispatch lifecycle emits TECHNICIAN_DISPATCHED/EN_ROUTE/ARRIVED/CHECKED_OUT only when supported", "implemented": true, "featureIds": ["F023"] },
|
|
|
|
{ "id": "T030", "description": "Projects: updates emit PROJECT_UPDATED with updatedFields/changes", "implemented": true, "featureIds": ["F030"] },
|
|
{ "id": "T031", "description": "Projects: status transitions emit PROJECT_STATUS_CHANGED with previous/new status", "implemented": true, "featureIds": ["F030"] },
|
|
{ "id": "T032", "description": "Projects: task creation/assignment/status/complete emit PROJECT_TASK_CREATED/ASSIGNED/STATUS_CHANGED/COMPLETED", "implemented": true, "featureIds": ["F031"] },
|
|
{ "id": "T033", "description": "Projects: dependency blocked/unblocked emit PROJECT_TASK_DEPENDENCY_BLOCKED/UNBLOCKED", "implemented": true, "featureIds": ["F032"] },
|
|
{ "id": "T034", "description": "Projects: approval events are catalog-only (no emission until an approvals subsystem exists); schemas + catalog entries are still validated", "implemented": true, "featureIds": ["F033"] },
|
|
|
|
{ "id": "T040", "description": "Billing: invoice send/status/due-date change emit INVOICE_SENT/INVOICE_STATUS_CHANGED/INVOICE_DUE_DATE_CHANGED", "implemented": true, "featureIds": ["F040"] },
|
|
{ "id": "T041", "description": "Billing: overdue/write-off emit INVOICE_OVERDUE and INVOICE_WRITTEN_OFF with monetary context", "implemented": true, "featureIds": ["F040"] },
|
|
{ "id": "T042", "description": "Billing: payments emit PAYMENT_RECORDED/APPLIED/FAILED/REFUNDED with invoice application details", "implemented": true, "featureIds": ["F041"] },
|
|
{ "id": "T043", "description": "Billing: credits emit CREDIT_NOTE_CREATED/APPLIED/VOIDED with amounts and affected invoiceId when applicable", "implemented": true, "featureIds": ["F042"] },
|
|
{ "id": "T044", "description": "Billing: contracts emit CONTRACT_CREATED/UPDATED/STATUS_CHANGED and CONTRACT_RENEWAL_UPCOMING with renewal timing", "implemented": true, "featureIds": ["F043"] },
|
|
{ "id": "T045", "description": "Billing: recurring billing runs emit RECURRING_BILLING_RUN_STARTED/COMPLETED/FAILED with summary counts", "implemented": true, "featureIds": ["F044"] },
|
|
|
|
{ "id": "T050", "description": "CRM: clients emit CLIENT_CREATED/UPDATED/STATUS_CHANGED/OWNER_ASSIGNED/ARCHIVED (CLIENT_MERGED is catalog-only; schemas + catalog entries validated)", "implemented": true, "featureIds": ["F050"] },
|
|
{ "id": "T051", "description": "CRM: contacts emit CONTACT_CREATED/UPDATED/PRIMARY_SET/ARCHIVED (CONTACT_MERGED is catalog-only; schemas + catalog entries validated)", "implemented": true, "featureIds": ["F051"] },
|
|
{ "id": "T052", "description": "CRM: interactions/notes emit INTERACTION_LOGGED and NOTE_CREATED with entity linkage", "implemented": true, "featureIds": ["F052"] },
|
|
{ "id": "T053", "description": "Tags: tag definition/apply/remove emit TAG_DEFINITION_CREATED/UPDATED and TAG_APPLIED/TAG_REMOVED with entityType/entityId", "implemented": true, "featureIds": ["F053"] },
|
|
|
|
{ "id": "T060", "description": "Documents: uploads/deletes emit DOCUMENT_UPLOADED and DOCUMENT_DELETED with storage metadata", "implemented": true, "featureIds": ["F060"] },
|
|
{ "id": "T061", "description": "Documents: associate/detach emit DOCUMENT_ASSOCIATED and DOCUMENT_DETACHED with entity references", "implemented": true, "featureIds": ["F061"] },
|
|
{ "id": "T062", "description": "Documents: generation emits DOCUMENT_GENERATED for supported generation paths with sourceType/sourceId", "implemented": true, "featureIds": ["F062"] },
|
|
{ "id": "T063", "description": "Documents: signature events are catalog-only (no emission until an e-signature subsystem exists); schemas + catalog entries are still validated", "implemented": true, "featureIds": ["F063"] },
|
|
|
|
{ "id": "T070", "description": "Email: inbound replies emit INBOUND_EMAIL_REPLY_RECEIVED when reply parsing/matching succeeds", "implemented": true, "featureIds": ["F070"] },
|
|
{ "id": "T071", "description": "Email: outbound send pipeline emits OUTBOUND_EMAIL_QUEUED/OUTBOUND_EMAIL_SENT/OUTBOUND_EMAIL_FAILED", "implemented": true, "featureIds": ["F071"] },
|
|
{ "id": "T072", "description": "Email: delivery/bounce/complaint/unsubscribe emits EMAIL_DELIVERED/EMAIL_BOUNCED/EMAIL_COMPLAINT_RECEIVED/EMAIL_UNSUBSCRIBED where supported", "implemented": true, "featureIds": ["F072"] },
|
|
{ "id": "T073", "description": "Notifications: send/deliver/fail/read emits NOTIFICATION_SENT/DELIVERED/FAILED/READ for supported channels", "implemented": true, "featureIds": ["F073"] },
|
|
{ "id": "T074", "description": "Surveys/CSAT: survey lifecycle emits SURVEY_SENT/RESPONSE_RECEIVED/REMINDER_SENT/EXPIRED and CSAT alerts emit CSAT_ALERT_TRIGGERED", "implemented": true, "featureIds": ["F074"] },
|
|
|
|
{ "id": "T080", "description": "Integrations: sync lifecycle emits INTEGRATION_SYNC_STARTED/COMPLETED/FAILED with summary/error shape", "implemented": true, "featureIds": ["F080"] },
|
|
{ "id": "T081", "description": "Integrations: webhook receipt emits INTEGRATION_WEBHOOK_RECEIVED with safe raw payload handling/redaction", "implemented": true, "featureIds": ["F081"] },
|
|
{ "id": "T082", "description": "Integrations: connect/disconnect emits INTEGRATION_CONNECTED/INTEGRATION_DISCONNECTED", "implemented": true, "featureIds": ["F082"] },
|
|
{ "id": "T083", "description": "Integrations: token expiring/refresh failed emits INTEGRATION_TOKEN_EXPIRING/INTEGRATION_TOKEN_REFRESH_FAILED", "implemented": true, "featureIds": ["F083"] },
|
|
{ "id": "T084", "description": "Integrations: mapping/config changes emit EXTERNAL_MAPPING_CHANGED with mappingType + previous/new values", "implemented": true, "featureIds": ["F084"] },
|
|
|
|
{ "id": "T090", "description": "Assets: lifecycle emits ASSET_CREATED/UPDATED/ASSIGNED/UNASSIGNED/WARRANTY_EXPIRING with consistent owner fields", "implemented": true, "featureIds": ["F090"] },
|
|
{ "id": "T091", "description": "Media: upload + processing emits FILE_UPLOADED/MEDIA_PROCESSING_SUCCEEDED/MEDIA_PROCESSING_FAILED with stable file ids", "implemented": true, "featureIds": ["F091"] }
|
|
]
|