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

609 lines
16 KiB
JSON

[
{
"id": "T001",
"description": "Lang-pack validation: `node scripts/generate-pseudo-locales.cjs && node scripts/validate-translations.cjs` passes for all 9 locales after each namespace update (covers key parity, missing/extra keys, interpolation variables, pseudo-locale patterns, Italian accents). Single check, run on every commit.",
"implemented": true,
"featureIds": [
"F001",
"F002",
"F003",
"F004",
"F005",
"F006",
"F007",
"F008",
"F009"
]
},
{
"id": "T002",
"description": "Unit: ContractDetail.i18n.test -- tab labels (Overview, Contract Lines, Pricing Schedules, Documents, Invoices) render via t() in en",
"implemented": true,
"featureIds": [
"F011"
]
},
{
"id": "T003",
"description": "Unit: ContractDetail.i18n.test -- unsaved changes alert and save success alert render translated text",
"implemented": true,
"featureIds": [
"F011"
]
},
{
"id": "T004",
"description": "Unit: ContractDetail.i18n.test -- Contract Details card labels, edit/save/cancel buttons render via t()",
"implemented": true,
"featureIds": [
"F012"
]
},
{
"id": "T005",
"description": "Unit: ContractDetail.i18n.test -- Contract Header card renders translated status, billing, currency, renewal labels",
"implemented": true,
"featureIds": [
"F013"
]
},
{
"id": "T006",
"description": "Unit: ContractDetail.i18n.test -- Client Ownership and Assignment cards render translated labels, PO fields, empty state",
"implemented": true,
"featureIds": [
"F014"
]
},
{
"id": "T007",
"description": "Unit: ContractDetail.i18n.test -- Quick Actions buttons, save/cancel row, and confirmation dialogs render translated text",
"implemented": true,
"featureIds": [
"F015"
]
},
{
"id": "T008",
"description": "Unit: ContractDetail.i18n.test -- invoice tab column headers and empty/loading states render translated text",
"implemented": true,
"featureIds": [
"F015"
]
},
{
"id": "T009",
"description": "Unit: ContractDetail.i18n.test -- pseudo-locale (xx) shows no bare English leakage across all tabs",
"implemented": true,
"featureIds": [
"F011",
"F012",
"F013",
"F014",
"F015"
]
},
{
"id": "T010",
"description": "Unit: ContractDialog.i18n.test -- dialog title, form field labels, and validation errors render via t()",
"implemented": true,
"featureIds": [
"F016"
]
},
{
"id": "T011",
"description": "Unit: ContractDialog.i18n.test -- PO section labels and preset picker section render translated text",
"implemented": true,
"featureIds": [
"F017"
]
},
{
"id": "T012",
"description": "Unit: ContractDialog.i18n.test -- pseudo-locale (xx) coverage for all visible strings",
"implemented": true,
"featureIds": [
"F016",
"F017",
"F018"
]
},
{
"id": "T013",
"description": "Unit: ContractTemplateDetail.i18n.test -- page header, back button, tab labels render via t()",
"implemented": true,
"featureIds": [
"F019"
]
},
{
"id": "T014",
"description": "Unit: ContractTemplateDetail.i18n.test -- contract lines section columns, actions, and inline editing labels render translated",
"implemented": true,
"featureIds": [
"F020"
]
},
{
"id": "T015",
"description": "Unit: ContractTemplateDetail.i18n.test -- billing timing and cadence owner options render translated labels",
"implemented": true,
"featureIds": [
"F021"
]
},
{
"id": "T016",
"description": "Unit: ContractTemplateDetail.i18n.test -- pseudo-locale (xx) coverage",
"implemented": true,
"featureIds": [
"F019",
"F020",
"F021"
]
},
{
"id": "T017",
"description": "Unit: CreateCustomContractLineDialog.i18n.test -- dialog title, type selector labels, service picker labels render via t()",
"implemented": true,
"featureIds": [
"F022"
]
},
{
"id": "T018",
"description": "Unit: CreateCustomContractLineDialog.i18n.test -- bucket overlay, proration, and validation messages render translated",
"implemented": true,
"featureIds": [
"F023"
]
},
{
"id": "T019",
"description": "Unit: CreateCustomContractLineDialog.i18n.test -- pseudo-locale (xx) coverage",
"implemented": true,
"featureIds": [
"F022",
"F023",
"F024"
]
},
{
"id": "T020",
"description": "Unit: ContractLines.i18n.test -- section header, Add/Create buttons, column labels, empty state render via t()",
"implemented": true,
"featureIds": [
"F025"
]
},
{
"id": "T021",
"description": "Unit: ContractLines.i18n.test -- inline edit fields, service config details, delete confirmation render translated",
"implemented": true,
"featureIds": [
"F026"
]
},
{
"id": "T022",
"description": "Unit: ContractLines.i18n.test -- pseudo-locale (xx) coverage for expanded line details",
"implemented": true,
"featureIds": [
"F025",
"F026",
"F027"
]
},
{
"id": "T023",
"description": "Unit: AddContractLinesDialog.i18n.test -- dialog title, search, filter, preset labels render via t()",
"implemented": true,
"featureIds": [
"F028"
]
},
{
"id": "T024",
"description": "Unit: AddContractLinesDialog.i18n.test -- expanded preset details and empty/loading states render translated",
"implemented": true,
"featureIds": [
"F029"
]
},
{
"id": "T025",
"description": "Unit: Contracts.i18n.test -- sub-tab labels, New Contract/Template buttons, search placeholders render via t()",
"implemented": true,
"featureIds": [
"F030"
]
},
{
"id": "T026",
"description": "Unit: Contracts.i18n.test -- row action menus, confirmation dialogs, toast messages render translated",
"implemented": true,
"featureIds": [
"F031"
]
},
{
"id": "T027",
"description": "Unit: Contracts.i18n.test -- column headers for all three sub-tabs render via t()",
"implemented": true,
"featureIds": [
"F032"
]
},
{
"id": "T028",
"description": "Unit: Contracts.i18n.test -- pseudo-locale (xx) coverage",
"implemented": true,
"featureIds": [
"F030",
"F031",
"F032"
]
},
{
"id": "T029",
"description": "Unit: ClientContractsTab.i18n.test -- column headers, status badges, search placeholder render via t()",
"implemented": true,
"featureIds": [
"F033"
]
},
{
"id": "T030",
"description": "Unit: ClientContractsTab.i18n.test -- empty state, terminate dialog, and error alert render translated",
"implemented": true,
"featureIds": [
"F034"
]
},
{
"id": "T031",
"description": "Unit: ContractWizard.i18n.test -- step labels render via t() in the wizard progress component",
"implemented": true,
"featureIds": [
"F035"
]
},
{
"id": "T032",
"description": "Unit: ContractWizard.i18n.test -- validation errors and save/draft buttons render translated",
"implemented": true,
"featureIds": [
"F036"
]
},
{
"id": "T033",
"description": "Unit: ContractOverview.i18n.test -- stat cards (Est. Monthly Value, Contract Lines, Total Services) render via t()",
"implemented": true,
"featureIds": [
"F037"
]
},
{
"id": "T034",
"description": "Unit: ContractOverview.i18n.test -- line cards with service count interpolation and empty state render translated",
"implemented": true,
"featureIds": [
"F038"
]
},
{
"id": "T035",
"description": "Unit: PricingSchedules.i18n.test -- section title, columns, actions, empty state render via t()",
"implemented": true,
"featureIds": [
"F039",
"F040"
]
},
{
"id": "T036",
"description": "Unit: TemplatesTab.i18n.test -- columns, status badges, search, actions render via t()",
"implemented": true,
"featureIds": [
"F041"
]
},
{
"id": "T037",
"description": "Unit: ContractForm.i18n.test -- form heading, field labels, status options, validation messages render via t()",
"implemented": true,
"featureIds": [
"F043"
]
},
{
"id": "T038",
"description": "Unit: QuickStartGuide.i18n.test -- step headings, descriptions, billing model labels, best practices render via t()",
"implemented": true,
"featureIds": [
"F044"
]
},
{
"id": "T039",
"description": "Unit: QuickStartGuide.i18n.test -- pseudo-locale (xx) covers all visible text",
"implemented": true,
"featureIds": [
"F044"
]
},
{
"id": "T040",
"description": "Unit: BucketOverlayFields.i18n.test -- included units label, overage rate label, rollover checkbox label render via t()",
"implemented": true,
"featureIds": [
"F045"
]
},
{
"id": "T041",
"description": "Unit: ContractLineEditDialog.i18n.test -- dialog title with interpolation, rate/timing labels, timing options render via t()",
"implemented": true,
"featureIds": [
"F046"
]
},
{
"id": "T042",
"description": "Unit: ContractHeader.i18n.test -- stat labels, status badges, Template/Client-owned badges, PO alert render via t()",
"implemented": true,
"featureIds": [
"F047"
]
},
{
"id": "T043",
"description": "Unit: ContractDetailSwitcher.i18n.test -- error messages and loading text render via t()",
"implemented": true,
"featureIds": [
"F048"
]
},
{
"id": "T044",
"description": "Unit: ContractLineRateDialog.i18n.test -- dialog title with interpolation, rate label, validation error, buttons render via t()",
"implemented": true,
"featureIds": [
"F049"
]
},
{
"id": "T045",
"description": "Unit: BillingFrequencyOverrideSelect.i18n.test -- label, description with interpolation, placeholder with interpolation render via t()",
"implemented": true,
"featureIds": [
"F050"
]
},
{
"id": "T046",
"description": "Unit: ServicePicker.i18n.test -- placeholder and empty message render via t()",
"implemented": true,
"featureIds": [
"F051"
]
},
{
"id": "T047",
"description": "Unit: ContractBasicsStep.i18n.test -- step heading, template picker labels, client picker label render via t()",
"implemented": true,
"featureIds": [
"F052"
]
},
{
"id": "T048",
"description": "Unit: ContractBasicsStep.i18n.test -- renewal section, PO fields, cadence owner options render translated",
"implemented": true,
"featureIds": [
"F053"
]
},
{
"id": "T049",
"description": "Unit: FixedFeeServicesStep.i18n.test -- step heading, service picker, rate/proration labels render via t()",
"implemented": true,
"featureIds": [
"F054"
]
},
{
"id": "T050",
"description": "Unit: ProductsStep.i18n.test -- step heading, service picker, quantity/rate labels render via t()",
"implemented": true,
"featureIds": [
"F055"
]
},
{
"id": "T051",
"description": "Unit: HourlyServicesStep.i18n.test -- step heading, rate/minimum/rounding labels render via t()",
"implemented": true,
"featureIds": [
"F056"
]
},
{
"id": "T052",
"description": "Unit: UsageBasedServicesStep.i18n.test -- step heading, unit rate/measure labels render via t()",
"implemented": true,
"featureIds": [
"F057"
]
},
{
"id": "T053",
"description": "Unit: ReviewContractStep.i18n.test -- Contract Basics section labels and fallback values render via t()",
"implemented": true,
"featureIds": [
"F058"
]
},
{
"id": "T054",
"description": "Unit: ReviewContractStep.i18n.test -- service summary sections with rates and bucket summaries render translated",
"implemented": true,
"featureIds": [
"F059"
]
},
{
"id": "T055",
"description": "Unit: TemplateWizard.i18n.test -- step labels and validation messages render via t()",
"implemented": true,
"featureIds": [
"F060"
]
},
{
"id": "T056",
"description": "Unit: TemplateContractBasicsStep.i18n.test -- step heading, name/notes/frequency labels render via t()",
"implemented": true,
"featureIds": [
"F061"
]
},
{
"id": "T057",
"description": "Unit: TemplateFixedFeeServicesStep.i18n.test -- step heading, service picker, preview render via t()",
"implemented": true,
"featureIds": [
"F062"
]
},
{
"id": "T058",
"description": "Unit: TemplateProductsStep.i18n.test -- step heading, service picker, preview render via t()",
"implemented": true,
"featureIds": [
"F063"
]
},
{
"id": "T059",
"description": "Unit: TemplateHourlyServicesStep.i18n.test -- step heading, service picker, bucket/minimum/rounding labels render via t()",
"implemented": true,
"featureIds": [
"F064"
]
},
{
"id": "T060",
"description": "Unit: TemplateUsageBasedServicesStep.i18n.test -- step heading, service picker, unit measure/bucket labels render via t()",
"implemented": true,
"featureIds": [
"F065"
]
},
{
"id": "T061",
"description": "Unit: TemplateReviewContractStep.i18n.test -- review heading, section labels, service summaries render via t()",
"implemented": true,
"featureIds": [
"F066"
]
},
{
"id": "T062",
"description": "Unit: TemplateServicePreviewSection.i18n.test -- service type labels, heading with interpolation, remove confirmation dialog render via t()",
"implemented": true,
"featureIds": [
"F067"
]
},
{
"id": "T063",
"description": "Integration: /msp/billing?tab=contracts loads Contracts.tsx in en with no hardcoded English visible in template/client/draft sub-tabs",
"implemented": true,
"featureIds": [
"F030",
"F031",
"F032",
"F041",
"F033",
"F034"
]
},
{
"id": "T064",
"description": "Integration: /msp/billing?tab=contracts loads in de with translated sub-tab labels, column headers, and action menus",
"implemented": true,
"featureIds": [
"F030",
"F031",
"F032"
]
},
{
"id": "T065",
"description": "Integration: /msp/billing?tab=contracts&contractId=<id> contract detail page renders all tabs translated in de with no English leakage",
"implemented": true,
"featureIds": [
"F011",
"F012",
"F013",
"F014",
"F015",
"F025",
"F026",
"F039",
"F040"
]
},
{
"id": "T066",
"description": "Integration: contract creation wizard renders all step labels and form fields translated in de",
"implemented": true,
"featureIds": [
"F035",
"F052",
"F053",
"F054",
"F055",
"F056",
"F057",
"F058",
"F059"
]
},
{
"id": "T067",
"description": "Integration: template creation wizard renders all step labels and form fields translated in de",
"implemented": true,
"featureIds": [
"F060",
"F061",
"F062",
"F063",
"F064",
"F065",
"F066",
"F067"
]
},
{
"id": "T068",
"description": "Integration: contract detail QuickStartGuide renders fully translated in de with no English leakage",
"implemented": true,
"featureIds": [
"F044"
]
},
{
"id": "T069",
"description": "Integration: currency amounts in contract detail and review steps use locale-aware formatting (not hardcoded 'en-US')",
"implemented": true,
"featureIds": [
"F015",
"F059"
]
}
]