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
60 lines
10 KiB
JSON
60 lines
10 KiB
JSON
[
|
|
{"id": "F001", "description": "Audit features/projects.json and list MSP-specific key gaps (taskForm.*, taskDependencies.*, taskTicketLinks.*, projectDetail.*, kanban.*, materials.*, export.*, templates.editor.*, templates.wizard.*, templates.apply.*, templates.list.*, dialogs.*, import.*, filters.deadline.*)", "implemented": true, "prdRefs": ["2b-21b/namespace-gaps"]},
|
|
{"id": "F002", "description": "Extend en/features/projects.json with missing MSP keys under appropriate groups (nested per semantic area)", "implemented": true, "prdRefs": ["2b-21b/namespace-gaps"]},
|
|
{"id": "F003", "description": "Translate new keys in fr/es/de/nl/it/pl features/projects.json (IT accent audit included)", "implemented": true, "prdRefs": ["2b-21b/non-functional"]},
|
|
{"id": "F004", "description": "Run `node scripts/generate-pseudo-locales.cjs` to regenerate xx/ and yy/ pseudo-locales from updated English source (do NOT hand-edit pseudo-locales)", "implemented": true, "prdRefs": ["2b-21b/non-functional"]},
|
|
{"id": "F005", "description": "Verify /msp/projects/templates, /msp/projects/templates/[id], /msp/projects/templates/create routes transitively load features/projects via /msp/projects prefix match; add explicit ROUTE_NAMESPACES entries if not", "implemented": true, "prdRefs": ["2b-21b/open-questions"]},
|
|
|
|
{"id": "F020", "description": "Wire useTranslation(['features/projects', 'common']) in ProjectDetail.tsx — tabs, budget/hours display, phase management, task panels (~50 strings)", "implemented": true, "prdRefs": ["2b-21b/sub-batch-A"]},
|
|
{"id": "F021", "description": "Wire TaskForm.tsx — all fields, placeholders, validation errors, toast messages, save/cancel buttons (~39 strings)", "implemented": true, "prdRefs": ["2b-21b/sub-batch-A"]},
|
|
{"id": "F022", "description": "Wire PhaseTaskImportDialog.tsx — CSV import flow, preview, validation errors, toast messages (~21 strings)", "implemented": true, "prdRefs": ["2b-21b/sub-batch-A"]},
|
|
{"id": "F023", "description": "Wire Projects.tsx — list page filters, search placeholder, empty state, status tabs (~21 strings)", "implemented": true, "prdRefs": ["2b-21b/sub-batch-A"]},
|
|
{"id": "F024", "description": "Wire TaskDocumentsSimple.tsx — upload/attach/download/remove controls, empty states (~21 strings)", "implemented": true, "prdRefs": ["2b-21b/sub-batch-A"]},
|
|
{"id": "F025", "description": "Wire TaskTicketLinks.tsx — link/unlink, create ticket from task, search placeholder (~21 strings)", "implemented": true, "prdRefs": ["2b-21b/sub-batch-A"]},
|
|
{"id": "F026", "description": "Wire TaskDependencies.tsx — dependency add/remove, blocking indicators, cycle warnings (~21 strings)", "implemented": true, "prdRefs": ["2b-21b/sub-batch-A"]},
|
|
{"id": "F027", "description": "Wire ProjectMaterialsDrawer.tsx — materials list, add/edit dialog, cost labels, delete confirm (~19 strings)", "implemented": true, "prdRefs": ["2b-21b/sub-batch-A"]},
|
|
{"id": "F028", "description": "Wire ProjectTaskExportDialog.tsx — format options, column picker, download toast (~18 strings)", "implemented": true, "prdRefs": ["2b-21b/sub-batch-A"]},
|
|
{"id": "F029", "description": "Wire ProjectQuickAdd.tsx — dialog labels, validation (reused in global QuickCreate) (~15 strings)", "implemented": true, "prdRefs": ["2b-21b/sub-batch-A"]},
|
|
{"id": "F030", "description": "Wire ProjectDetailsEdit.tsx — edit form fields, save/cancel, validation (~13 strings)", "implemented": true, "prdRefs": ["2b-21b/sub-batch-A"]},
|
|
{"id": "F031", "description": "Wire PrefillFromTicketDialog.tsx — field mapping, prefill confirmation (~10 strings)", "implemented": true, "prdRefs": ["2b-21b/sub-batch-A"]},
|
|
{"id": "F032", "description": "Wire TaskListView.tsx — column headers, inline edit prompts, bulk actions (~9 strings)", "implemented": true, "prdRefs": ["2b-21b/sub-batch-A"]},
|
|
{"id": "F033", "description": "Wire TaskCard.tsx — quick-actions menu, drag indicators (~7 strings)", "implemented": true, "prdRefs": ["2b-21b/sub-batch-A"]},
|
|
{"id": "F034", "description": "Wire PhaseQuickAdd.tsx — inline phase add, placeholder, save (~7 strings)", "implemented": true, "prdRefs": ["2b-21b/sub-batch-A"]},
|
|
|
|
{"id": "F050", "description": "Wire TemplateEditor.tsx — editor title, phase/task sections, save/publish/delete actions, validation (~28 strings)", "implemented": true, "prdRefs": ["2b-21c/sub-batch-B"]},
|
|
{"id": "F051", "description": "Wire TemplateTaskForm.tsx — template task create/edit form fields, validation (~22 strings)", "implemented": true, "prdRefs": ["2b-21c/sub-batch-B"]},
|
|
{"id": "F052", "description": "Wire wizard-steps/TemplateTasksStep.tsx — wizard step 3 (tasks) (~20 strings)", "implemented": true, "prdRefs": ["2b-21c/sub-batch-B"]},
|
|
{"id": "F053", "description": "Wire ApplyTemplateDialog.tsx — apply dialog, project selection, confirmation, toast (~20 strings)", "implemented": true, "prdRefs": ["2b-21c/sub-batch-B"]},
|
|
{"id": "F054", "description": "Wire ProjectTemplatesList.tsx — list page columns (Name/Description/Category/Times Used/Last Used/Actions), search, filter, delete confirm (~12 strings)", "implemented": true, "prdRefs": ["2b-21c/sub-batch-B"]},
|
|
{"id": "F055", "description": "Wire CreateTemplateDialog.tsx — create template from project dialog (~11 strings)", "implemented": true, "prdRefs": ["2b-21c/sub-batch-B"]},
|
|
{"id": "F056", "description": "Wire TemplateTaskListView.tsx — template task list columns, inline actions (~8 strings)", "implemented": true, "prdRefs": ["2b-21c/sub-batch-B"]},
|
|
{"id": "F057", "description": "Wire wizard-steps/TemplateReviewStep.tsx — wizard review summary (~7 strings)", "implemented": true, "prdRefs": ["2b-21c/sub-batch-B"]},
|
|
{"id": "F058", "description": "Wire wizard-steps/TemplatePhasesStep.tsx — wizard phases step (~6 strings)", "implemented": true, "prdRefs": ["2b-21c/sub-batch-B"]},
|
|
{"id": "F059", "description": "Wire CreateTemplateForm.tsx — template create form body (~6 strings)", "implemented": true, "prdRefs": ["2b-21c/sub-batch-B"]},
|
|
{"id": "F060", "description": "Wire TemplateDetail.tsx — template detail sidebar (~4 strings)", "implemented": true, "prdRefs": ["2b-21c/sub-batch-B"]},
|
|
{"id": "F061", "description": "Wire wizard-steps/TemplateClientPortalStep.tsx — client portal exposure toggle (~2 strings)", "implemented": true, "prdRefs": ["2b-21c/sub-batch-B"]},
|
|
{"id": "F062", "description": "Wire TemplateCreationWizard.tsx — wizard shell, nav buttons (~1 string)", "implemented": true, "prdRefs": ["2b-21c/sub-batch-B"]},
|
|
{"id": "F063", "description": "Wire wizard-steps/TemplateBasicsStep.tsx — wizard basics step (~1 string)", "implemented": true, "prdRefs": ["2b-21c/sub-batch-B"]},
|
|
{"id": "F064", "description": "Confirm AddTemplateDialog.tsx has zero user-visible strings (re-export shim)", "implemented": true, "prdRefs": ["2b-21c/sub-batch-B"]},
|
|
|
|
{"id": "F080", "description": "Wire settings/projects/TenantProjectTaskStatusSettings.tsx — tenant-level status defaults (~11 strings)", "implemented": true, "prdRefs": ["2b-21b/sub-batch-C"]},
|
|
{"id": "F081", "description": "Wire settings/projects/ProjectStatusSettings.tsx — project status config (~10 strings)", "implemented": true, "prdRefs": ["2b-21b/sub-batch-C"]},
|
|
{"id": "F082", "description": "Wire ProjectTaskStatusEditor.tsx — inline status editor (~7 strings)", "implemented": true, "prdRefs": ["2b-21b/sub-batch-C"]},
|
|
{"id": "F083", "description": "Wire CreateTaskFromTicketDialog.tsx — create task from ticket (~5 strings)", "implemented": true, "prdRefs": ["2b-21b/sub-batch-C"]},
|
|
{"id": "F084", "description": "Wire LinkTicketToTaskDialog.tsx — link ticket to task (~5 strings)", "implemented": true, "prdRefs": ["2b-21b/sub-batch-C"]},
|
|
{"id": "F085", "description": "Wire DeadlineFilter.tsx — deadline filter dropdown options (~5 strings)", "implemented": true, "prdRefs": ["2b-21b/sub-batch-C"]},
|
|
{"id": "F086", "description": "Wire settings/ProjectSettings.tsx — top-level project settings page (~5 strings)", "implemented": true, "prdRefs": ["2b-21b/sub-batch-C"]},
|
|
{"id": "F087", "description": "Wire ProjectTaskStatusSelector.tsx — status select dropdown (~4 strings)", "implemented": true, "prdRefs": ["2b-21b/sub-batch-C"]},
|
|
{"id": "F088", "description": "Wire MoveTaskDialog.tsx — move task to phase (~4 strings)", "implemented": true, "prdRefs": ["2b-21b/sub-batch-C"]},
|
|
{"id": "F089", "description": "Wire ProjectInfo.tsx — project info card (~12 strings)", "implemented": true, "prdRefs": ["2b-21b/sub-batch-C"]},
|
|
{"id": "F090", "description": "Wire DuplicateTaskDialog.tsx — duplicate task dialog (~12 strings)", "implemented": true, "prdRefs": ["2b-21b/sub-batch-C"]},
|
|
{"id": "F091", "description": "Wire TicketLinkedTasksBadge.tsx — linked tasks badge (~5 strings)", "implemented": true, "prdRefs": ["2b-21b/sub-batch-C"]},
|
|
{"id": "F092", "description": "Wire settings/projects/AddStatusDialog.tsx — add status dialog (~10 strings)", "implemented": true, "prdRefs": ["2b-21b/sub-batch-C"]},
|
|
{"id": "F093", "description": "Wire ProjectPhases.tsx, TaskStatusSelect.tsx, TicketSelect.tsx, TaskTypeSelector.tsx — placeholder/label cleanup (~10 strings)", "implemented": true, "prdRefs": ["2b-21b/sub-batch-C"]},
|
|
{"id": "F094", "description": "Confirm zero-string components and wire discovered non-zero components (TaskCommentThread, TaskCommentForm, ProjectActiveToggle). Confirmed zero: StatusColumn, KanbanBoard, ProjectPage, KanbanZoomControl, DonutChart, TaskQuickAdd, TaskEdit, HoursProgressBar, TaskPrioritySettings. Deferred: ClientPortalConfigEditor (client-portal config UI, many strings)", "implemented": true, "prdRefs": ["2b-21b/sub-batch-C"]},
|
|
|
|
{"id": "F100", "description": "Run `node scripts/generate-pseudo-locales.cjs && node scripts/validate-translations.cjs` and resolve any key parity issues (exit code 0 required)", "implemented": true, "prdRefs": ["2b-21b/acceptance"]},
|
|
{"id": "F101", "description": "Update parent plan .ai/translation/MSP_i18n_plan.md — mark 2b-21b and 2b-21c ✅ DONE with final string count", "implemented": true, "prdRefs": ["2b-21b/acceptance"]},
|
|
{"id": "F102", "description": "Update SCRATCHPAD.md with final key count, namespace design decisions, deferred items", "implemented": true, "prdRefs": ["2b-21b/acceptance"]}
|
|
]
|