diff --git a/apps/web/.claude/settings.local.json b/apps/web/.claude/settings.local.json index a8d3a0c9..fa93b76a 100644 --- a/apps/web/.claude/settings.local.json +++ b/apps/web/.claude/settings.local.json @@ -48,7 +48,5 @@ "ask": [] }, "enableAllProjectMcpServers": true, - "enabledMcpjsonServers": [ - "sqlite" - ] + "enabledMcpjsonServers": ["sqlite"] } diff --git a/apps/web/src/app/create/worksheets/hooks/useWorksheetState.ts b/apps/web/src/app/create/worksheets/hooks/useWorksheetState.ts index 6def36ff..86f1679e 100644 --- a/apps/web/src/app/create/worksheets/hooks/useWorksheetState.ts +++ b/apps/web/src/app/create/worksheets/hooks/useWorksheetState.ts @@ -111,7 +111,10 @@ export function useWorksheetState( if (affectsProblems) { newState.seed = Date.now() % 2147483647 - console.log('[useWorksheetState] Problem settings changed - generated new seed:', newState.seed) + console.log( + '[useWorksheetState] Problem settings changed - generated new seed:', + newState.seed + ) } console.log('[useWorksheetState] New formState:', { diff --git a/apps/web/src/app/create/worksheets/validation.ts b/apps/web/src/app/create/worksheets/validation.ts index cd95423e..dca908a9 100644 --- a/apps/web/src/app/create/worksheets/validation.ts +++ b/apps/web/src/app/create/worksheets/validation.ts @@ -286,29 +286,36 @@ export function validateWorksheetConfig(formState: WorksheetFormState): Validati const subSkill = getSkillById(subSkillId as any) if (addSkill?.recommendedScaffolding && subSkill?.recommendedScaffolding) { - // Merge user's displayRules with skill's recommended scaffolding - // User's displayRules take precedence for problemNumbers and cellBorders (layout options) - const userDisplayRules: Partial = formState.displayRules || {} + // Merge user's operator-specific displayRules with skill's recommended scaffolding + // User's rules (if set) take precedence over skill's recommendations + // Fall back to general displayRules if operator-specific rules don't exist + const userAdditionRules: Partial = + (formState as any).additionDisplayRules || formState.displayRules || {} + const userSubtractionRules: Partial = + (formState as any).subtractionDisplayRules || formState.displayRules || {} + + console.log('[MIXED MODE SCAFFOLDING] User rules:', { + additionRules: userAdditionRules, + subtractionRules: userSubtractionRules, + generalRules: formState.displayRules, + }) config = { ...baseConfig, additionDisplayRules: { ...addSkill.recommendedScaffolding, - // Override layout options with user's choices - problemNumbers: - userDisplayRules.problemNumbers ?? addSkill.recommendedScaffolding.problemNumbers, - cellBorders: - userDisplayRules.cellBorders ?? addSkill.recommendedScaffolding.cellBorders, + ...userAdditionRules, // User's custom rules override skill's recommendations }, subtractionDisplayRules: { ...subSkill.recommendedScaffolding, - // Override layout options with user's choices - problemNumbers: - userDisplayRules.problemNumbers ?? subSkill.recommendedScaffolding.problemNumbers, - cellBorders: - userDisplayRules.cellBorders ?? subSkill.recommendedScaffolding.cellBorders, + ...userSubtractionRules, // User's custom rules override skill's recommendations }, } as any + + console.log('[MIXED MODE SCAFFOLDING] Final config:', { + additionDisplayRules: config.additionDisplayRules, + subtractionDisplayRules: config.subtractionDisplayRules, + }) } else { console.log('[MIXED MODE SCAFFOLDING] Missing recommendedScaffolding', { addSkill: addSkill?.name,