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
270 lines
7.3 KiB
JSON
270 lines
7.3 KiB
JSON
[
|
|
{
|
|
"id": "T001",
|
|
"description": "DB integration: first billing-settings ensure for a client creates exactly one system-managed default contract + one assignment (idempotent on repeated call).",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F002",
|
|
"F003",
|
|
"F004",
|
|
"F005",
|
|
"F006",
|
|
"F007",
|
|
"F012"
|
|
]
|
|
},
|
|
{
|
|
"id": "T002",
|
|
"description": "Concurrency integration: parallel ensure calls for same tenant+client produce no duplicate default contracts.",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F003",
|
|
"F004",
|
|
"F055",
|
|
"F056",
|
|
"F063"
|
|
]
|
|
},
|
|
{
|
|
"id": "T003",
|
|
"description": "Unit+integration: time-entry save resolves default line by effective work date (covers backdated, current, future dates).",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F019",
|
|
"F021",
|
|
"F022",
|
|
"F024",
|
|
"F025",
|
|
"F064"
|
|
]
|
|
},
|
|
{
|
|
"id": "T004",
|
|
"description": "Unit+integration: usage create/update resolves default line by effective usage date and remains consistent with UI eligibility endpoint.",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F020",
|
|
"F021",
|
|
"F023",
|
|
"F024",
|
|
"F026",
|
|
"F064"
|
|
]
|
|
},
|
|
{
|
|
"id": "T005",
|
|
"description": "Billing-engine integration: unresolved time row with exactly one eligible line is persisted with contract_line_id and removed from unresolved output.",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F028",
|
|
"F030",
|
|
"F031",
|
|
"F032"
|
|
]
|
|
},
|
|
{
|
|
"id": "T006",
|
|
"description": "Billing-engine integration: unresolved usage row with exactly one eligible line is persisted with contract_line_id and removed from unresolved output.",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F029",
|
|
"F030",
|
|
"F031",
|
|
"F032"
|
|
]
|
|
},
|
|
{
|
|
"id": "T007",
|
|
"description": "Due-work integration: ambiguous or no-match records remain unresolved and visible; deterministic records do not surface as non-contract candidates.",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F033",
|
|
"F034",
|
|
"F058",
|
|
"F070"
|
|
]
|
|
},
|
|
{
|
|
"id": "T008",
|
|
"description": "Invoice-generation integration: selected recurring rows generate correctly with default-contract-aware keys and no primary-path dependence on legacy non-contract IDs.",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F035",
|
|
"F036",
|
|
"F037",
|
|
"F070"
|
|
]
|
|
},
|
|
{
|
|
"id": "T009",
|
|
"description": "UI test: automatic invoicing grouped rows show business labels for default-contract and unmatched records; metadata-missing rows are hard-blocked.",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F038",
|
|
"F039",
|
|
"F047",
|
|
"F065"
|
|
]
|
|
},
|
|
{
|
|
"id": "T010",
|
|
"description": "UI test: contract list/detail show system-managed default badge/helper copy and hide/disable disallowed destructive/ownership actions.",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F040",
|
|
"F041",
|
|
"F042",
|
|
"F043",
|
|
"F044",
|
|
"F049",
|
|
"F050"
|
|
]
|
|
},
|
|
{
|
|
"id": "T011",
|
|
"description": "UI test: time-entry and usage banners/messages use default-contract terminology and do not imply a persisted default when assignment is unresolved.",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F045",
|
|
"F046",
|
|
"F027"
|
|
]
|
|
},
|
|
{
|
|
"id": "T012",
|
|
"description": "Lifecycle integration: client delete through package action removes billing settings/cycles and default-contract assignment artifacts without dangling references.",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F016",
|
|
"F017",
|
|
"F018",
|
|
"F068"
|
|
]
|
|
},
|
|
{
|
|
"id": "T013",
|
|
"description": "Lifecycle integration: client delete through API/controller path executes equivalent cleanup behavior (no orphaned default-contract links).",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F015",
|
|
"F016",
|
|
"F068"
|
|
]
|
|
},
|
|
{
|
|
"id": "T014",
|
|
"description": "Integration: null-setting override/deletion paths do not recreate default contract unexpectedly, while valid active billing-configuration paths still ensure it.",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F010",
|
|
"F011",
|
|
"F013",
|
|
"F057",
|
|
"F067"
|
|
]
|
|
},
|
|
{
|
|
"id": "T015",
|
|
"description": "Migration test: schema migration for markers/pointers/uniqueness is idempotent and safe on already-migrated databases.",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F055",
|
|
"F056",
|
|
"F062"
|
|
]
|
|
},
|
|
{
|
|
"id": "T016",
|
|
"description": "Regression integration: service-period and contract-cadence recurring invoicing scenarios remain correct after default-contract cutover.",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F048",
|
|
"F060",
|
|
"F064",
|
|
"F070"
|
|
]
|
|
},
|
|
{
|
|
"id": "T017",
|
|
"description": "Observability test: ensure/reconcile/route paths emit expected structured logs/markers with no PII leakage.",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F051",
|
|
"F052",
|
|
"F053",
|
|
"F054"
|
|
]
|
|
},
|
|
{
|
|
"id": "T018",
|
|
"description": "Integration-import regression: clients created via integration pathways still receive default contract on first qualifying billing-configuration interaction.",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F014",
|
|
"F057",
|
|
"F066"
|
|
]
|
|
},
|
|
{
|
|
"id": "T019",
|
|
"description": "DB integration: saving a client billing schedule with an optional historical bootstrap date and no existing cycles creates client_billing_cycles from the normalized containing boundary through the present.",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F077",
|
|
"F078",
|
|
"F079",
|
|
"F082"
|
|
]
|
|
},
|
|
{
|
|
"id": "T020",
|
|
"description": "DB integration: moving the historical bootstrap earlier while cycles remain uninvoiced regenerates historical client billing cycles deterministically without gaps or overlaps.",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F078",
|
|
"F080",
|
|
"F082",
|
|
"F083"
|
|
]
|
|
},
|
|
{
|
|
"id": "T021",
|
|
"description": "DB integration: attempting to move the historical bootstrap earlier than the earliest invoiced cycle boundary is rejected and does not mutate invoiced history.",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F081",
|
|
"F083"
|
|
]
|
|
},
|
|
{
|
|
"id": "T022",
|
|
"description": "UI integration: system-managed default contract detail/list render attribution-only copy and block contract-line, cadence, pricing-schedule, and assignment-date authoring surfaces.",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F071",
|
|
"F073",
|
|
"F074"
|
|
]
|
|
},
|
|
{
|
|
"id": "T023",
|
|
"description": "End-to-end billing integration: back-dated unmatched time/usage for a client with historical bootstrap enabled routes through the system-managed default contract attribution path and invoices on the client billing schedule window.",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F075",
|
|
"F076",
|
|
"F079",
|
|
"F084"
|
|
]
|
|
},
|
|
{
|
|
"id": "T024",
|
|
"description": "Regression integration: system-managed default contracts never materialize recurring service periods or appear as schedulable recurring obligations in service-period/admin flows.",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F072",
|
|
"F085"
|
|
]
|
|
}
|
|
]
|