Settings panel section headings inconsistently mixed primary blue and unstyled/tertiary gray within the same app. Nightly UX audit (2026-06-11) identified 5 screens where headings like “Data Point Tags:”, “Query Parameters:”, “Headers:”, “Existing Archives:”, “Restore”, “Schedule”, and “Generated cron:” used either titleMedium without a color, or labelMedium without a color — causing them to inherit the theme default (gray/muted) instead of the primary blue used by “Backend”, “Response Format”, “Input Nodes” and other headings elsewhere.
No shared SectionHeading composable was enforced — each file authored its own inline Text(...) for heading text, choosing style and color ad hoc. The reference pattern (titleSmall + colorScheme.primary) was used correctly in EditLLM.kt, ExecutorEditComponents.kt, and others but was missed when writing EditLambda, EditOutboundWebHook, EditBackup, and CronExpressionEditor.
Standardized 7 heading calls across 4 files to style = MaterialTheme.typography.titleSmall, color = MaterialTheme.colorScheme.primary:
EditLambda.kt: datapoint_tags heading (titleMedium → titleSmall + primary)EditOutboundWebHook.kt: query_parameters and headers headings (labelMedium → titleSmall + primary)EditBackup.kt: “Existing Archives” and “Restore” headings (titleMedium → titleSmall + primary)CronExpressionEditor.kt: schedule heading and generated_cron display (titleMedium/unstyled → titleSmall + primary)When adding a new in-settings section heading, match the established token: style = MaterialTheme.typography.titleSmall, color = MaterialTheme.colorScheme.primary. A SectionHeading(text: String) composable in ExecutorEditComponents.kt or CommonLayout.kt would make this the only valid call site and prevent drift — consider extracting one if a third heading is ever added to any file.