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

201 lines
6.6 KiB
JSON

[
{
"id": "F001",
"description": "Add 'msp-i18n-enabled' boolean feature flag (default: false) to DEFAULT_BOOLEAN_FLAGS",
"implemented": true,
"prdRefs": ["FR1"]
},
{
"id": "F002",
"description": "Standard MSP server layout checks flag and fetches locale via getHierarchicalLocaleAction only when enabled",
"implemented": true,
"prdRefs": ["FR2"]
},
{
"id": "F003",
"description": "Standard MspLayoutClient conditionally wraps children in I18nWrapper when flag is enabled",
"implemented": true,
"prdRefs": ["FR3"]
},
{
"id": "F004",
"description": "Standard MspLayoutClient renders without I18nWrapper when flag is disabled (zero behavior change)",
"implemented": true,
"prdRefs": ["FR3"]
},
{
"id": "F005",
"description": "EE MSP layout checks flag and fetches locale when enabled",
"implemented": true,
"prdRefs": ["FR2"]
},
{
"id": "F006",
"description": "EE MspLayoutClient conditionally wraps children in I18nWrapper when flag is enabled",
"implemented": true,
"prdRefs": ["FR3"]
},
{
"id": "F007",
"description": "Create features/tickets.json for all 7 languages by extracting tickets.* from clientPortal.json (flattened, no wrapper key)",
"implemented": true,
"prdRefs": ["FR4"]
},
{
"id": "F008",
"description": "Create features/projects.json for all 7 languages by extracting projects.* from clientPortal.json",
"implemented": true,
"prdRefs": ["FR4"]
},
{
"id": "F009",
"description": "Create features/billing.json for all 7 languages by extracting billing.* from clientPortal.json",
"implemented": true,
"prdRefs": ["FR4"]
},
{
"id": "F010",
"description": "Create features/documents.json for all 7 languages by extracting documents.* from clientPortal.json",
"implemented": true,
"prdRefs": ["FR4"]
},
{
"id": "F011",
"description": "Create features/appointments.json for all 7 languages by extracting appointments.* from clientPortal.json",
"implemented": true,
"prdRefs": ["FR4"]
},
{
"id": "F012",
"description": "Create client-portal.json for all 7 languages (nav, dashboard, common, pagination, time, auth, account, profile, clientSettings, notifications keys from clientPortal.json)",
"implemented": true,
"prdRefs": ["FR5"]
},
{
"id": "F013",
"description": "Auth/account keys merged into client-portal.json (flat namespace, no separate auth file)",
"implemented": true,
"prdRefs": ["FR5"]
},
{
"id": "F014",
"description": "Profile/clientSettings/notifications keys merged into client-portal.json (flat namespace, no separate profile file)",
"implemented": true,
"prdRefs": ["FR5"]
},
{
"id": "F015",
"description": "Migrate all client portal components using tickets.* keys to useTranslation('features/tickets')",
"implemented": true,
"prdRefs": ["FR6"]
},
{
"id": "F016",
"description": "Migrate all client portal components using projects.* keys to useTranslation('features/projects')",
"implemented": true,
"prdRefs": ["FR6"]
},
{
"id": "F017",
"description": "Migrate all client portal components using billing.* keys to useTranslation('features/billing')",
"implemented": true,
"prdRefs": ["FR6"]
},
{
"id": "F018",
"description": "Migrate all client portal components using documents.* keys to useTranslation('features/documents')",
"implemented": true,
"prdRefs": ["FR6"]
},
{
"id": "F019",
"description": "Migrate all client portal components using appointments.* keys to useTranslation('features/appointments')",
"implemented": true,
"prdRefs": ["FR6"]
},
{
"id": "F020",
"description": "Migrate client portal components using nav/dashboard/common/pagination/time keys to useTranslation('client-portal')",
"implemented": true,
"prdRefs": ["FR6"]
},
{
"id": "F021",
"description": "Migrate client portal components using auth/account keys to useTranslation('client-portal')",
"implemented": true,
"prdRefs": ["FR6"]
},
{
"id": "F022",
"description": "Migrate client portal components using profile/clientSettings/notifications keys to useTranslation('client-portal')",
"implemented": true,
"prdRefs": ["FR6"]
},
{
"id": "F023",
"description": "Remove or empty clientPortal.json after all components are migrated — no duplication",
"implemented": true,
"prdRefs": ["FR7"]
},
{
"id": "F024",
"description": "Create msp.json for English with nav items from menuConfig.ts, sidebar labels, header actions, and settings tab names",
"implemented": true,
"prdRefs": ["FR8"]
},
{
"id": "F025",
"description": "Create msp.json for all 6 non-English languages (machine-translated placeholders)",
"implemented": true,
"prdRefs": ["FR8"]
},
{
"id": "F026",
"description": "Add personal language preference section to UserProfile component (/msp/profile), gated by useFeatureFlag('msp-i18n-enabled')",
"implemented": true,
"prdRefs": ["FR9"]
},
{
"id": "F027",
"description": "Personal language preference uses existing LanguagePreference component with showNoneOption for fallback to org default",
"implemented": true,
"prdRefs": ["FR9"]
},
{
"id": "F028",
"description": "Create MspLanguageSettings component (mirrors ClientPortalSettings language section) with default language dropdown and enabled languages checkboxes",
"implemented": true,
"prdRefs": ["FR10"]
},
{
"id": "F029",
"description": "Add MspLanguageSettings to Settings > General > Organization & Access section, after Teams, gated by feature flag",
"implemented": true,
"prdRefs": ["FR10"]
},
{
"id": "F030",
"description": "Org MSP language settings persist to tenant_settings (mspPortal.defaultLocale and mspPortal.enabledLocales)",
"implemented": true,
"prdRefs": ["FR10"]
},
{
"id": "F031",
"description": "Create server actions for reading/writing MSP org locale settings (getTenantMspLocaleSettings, updateTenantMspLocaleSettings)",
"implemented": true,
"prdRefs": ["FR10"]
},
{
"id": "F032",
"description": "Extend getHierarchicalLocaleAction to include MSP org default in resolution chain (user > msp org default > system default) for internal users",
"implemented": true,
"prdRefs": ["FR11"]
},
{
"id": "F033",
"description": "All new namespace JSON files are valid with no duplicate keys, consistent structure across all 7 languages",
"implemented": true,
"prdRefs": ["FR12"]
}
]