feat(planning): complete verified explanations and trace delivery (#46)
Implement plan explanations, original decision traces, calendar replay, and worker counterfactual analysis. Preserve incomplete checkpoints and conflict reasons, with accessible navigation and localized comparison details. Keep planning outcomes independent of tracing and bound worker delivery with receiver acknowledgements. Retain complete candidate history while releasing temporary buffers and benchmark references. Validated with 201 tests, app/spec type checks, lint, production build, baseline outcome comparisons, and repeated loaded browser measurements. Document performance and remaining limits.
This commit is contained in:
1 parent
0ce33cc9d6
commit
01c87d1e44
20 files changed
+7625
-1001
No files matched your search
@@ -119,10 +119,16 @@
|
||||
"next": "Asignación siguiente",
|
||||
"last": "Última asignación",
|
||||
"remaining": "Días sin usar en el plan final",
|
||||
"balanceRemaining": "restantes",
|
||||
"counterfactual": "Fechas alternativas",
|
||||
"counterfactualLoading": "Analizando cada fecha del horizonte…",
|
||||
"counterfactualReady": "Las fechas alternativas están listas.",
|
||||
"counterfactualError": "No se pudieron calcular las fechas alternativas.",
|
||||
"retryCounterfactual": "Reintentar el análisis de fechas",
|
||||
"historicalEligibilityLoading": "Comprobando qué fechas podía usar este permiso…",
|
||||
"historicalEligibilityReady": "La elegibilidad histórica de las fechas está lista.",
|
||||
"historicalEligibilityError": "No se pudo comprobar la elegibilidad histórica de las fechas.",
|
||||
"retryHistoricalEligibility": "Reintentar la comprobación de elegibilidad",
|
||||
"eligible": "Válida",
|
||||
"ineligible": "No válida",
|
||||
"historical": "Estado de la búsqueda original",
|
||||
@@ -140,6 +146,7 @@
|
||||
"outsideHorizon": "Fecha de contexto fuera del horizonte de planificación",
|
||||
"traceTitle": "Avanzado: traza de decisiones original",
|
||||
"traceLoading": "El plan está listo; su traza de decisiones aún se está cargando…",
|
||||
"traceReady": "El plan está listo y se ha cargado su traza de decisiones.",
|
||||
"traceUnavailable": "No hay una traza de decisiones disponible para este resultado.",
|
||||
"phases": "Fases de la traza",
|
||||
"firstPhase": "Primera fase",
|
||||
@@ -200,6 +207,7 @@
|
||||
"leaveUsed": "Esta fecha usa 1 día del saldo «{balance}».",
|
||||
"expires": "Usa este saldo hasta el",
|
||||
"linkedRules": "Reglas vinculadas:",
|
||||
"atRiskContribution": "Protege permisos que podrían vencer.",
|
||||
"impact": "Qué cambia con este día",
|
||||
"impactHelp": "Compara todo el plan con y sin este día de permiso. Las demás fechas no cambian; solo se muestran los totales que varían.",
|
||||
"criterion": "En todo tu plan",
|
||||
@@ -218,6 +226,10 @@
|
||||
"withCandidate": "Con este candidato",
|
||||
"comparisonUnavailable": "La comparación de la fecha original no está disponible, por lo que no se puede mostrar el cambio.",
|
||||
"objectives": {
|
||||
"obligation-validity": {
|
||||
"label": "Obligaciones sin cumplir",
|
||||
"help": "Número de reglas obligatorias incumplidas. Un plan válido tiene cero."
|
||||
},
|
||||
"unplaced-at-risk": {
|
||||
"label": "Días sin usar que podrían vencer",
|
||||
"help": "Días sin planificar que vencen durante el período. Menos es mejor."
|
||||
@@ -282,6 +294,10 @@
|
||||
"expires": "Vence el",
|
||||
"criteria": "Las prioridades del cálculo",
|
||||
"criteriaHelp": "Lee de arriba abajo: la primera diferencia tiene prioridad. Selecciona un criterio para ver cómo se calcula.",
|
||||
"traceImpactTitle": "Efecto de esta rama en el plan completo",
|
||||
"traceImpactHelp": "Estos valores comparan el estado completo antes y después de esta rama. Muestran su efecto, no por qué el planificador la eligió.",
|
||||
"traceStageTitle": "Comparación real en esta etapa",
|
||||
"traceStageHelp": "Estos valores brutos se compararon en esta decisión; la primera diferencia explica el estado de la opción. La tabla del plan completo muestra el efecto de esta elección.",
|
||||
"firstDifference": "Primera diferencia",
|
||||
"higher": "Más es mejor",
|
||||
"lower": "Menos es mejor",
|
||||
|
||||
Reference in new issue
Block a user