fix(dashboard): make title auto-summarize settings searchable

Index Project Models for summarize/auto-summarize phrases and control labels so Settings search surfaces autoSummarizeTitles.
This commit is contained in:
gsxdsm
2026-07-14 23:28:41 -07:00
parent a242f1b449
commit c63637ff44
2 changed files with 40 additions and 0 deletions

View File

@@ -487,6 +487,9 @@ export const SETTINGS_SECTIONS: SettingsSection[] = [
/**
* FNXC:SettingsNavigation 2026-07-13-00:00:
* Project Models owns the FN-7907 Direct-chat default settings. Its shared Settings search index must advertise chat-default terms and i18n labels so desktop nav, the mobile section picker, and filtered search all surface this section when operators search for Chat defaults.
* FNXC:SettingsNavigation 2026-07-14-20:15:
* Title auto-summarization lives under Project Models but operators search for "summarize", "auto summarize", "title summarization", and related phrases that did not match the prior chat-only/summarization-model index. Advertise those terms and the control's i18n keys so Settings search finds this section.
*/
{
id: "project-models",
@@ -501,6 +504,18 @@ export const SETTINGS_SECTIONS: SettingsSection[] = [
"Executor",
"Reviewer",
"summarization model",
"summarize",
"summarize titles",
"auto summarize",
"auto-summarize",
"auto summarize titles",
"auto-summarize titles",
"autoSummarizeTitles",
"title summarization",
"title summarizer",
"AI title",
"AI merge commit summaries",
"merge commit summary",
"chat",
"new chat",
"new chat behavior",
@@ -521,6 +536,11 @@ export const SETTINGS_SECTIONS: SettingsSection[] = [
"settings.projectModels.chatDefaultKind",
"settings.projectModels.chatDefaultModel",
"settings.projectModels.chatDefaultAgent",
"settings.projectModels.aITitleAndGitCommitMessageSummarization",
"settings.projectModels.autoSummarizeLongDescriptionsAsTitles",
"settings.projectModels.whenEnabledTasksCreatedWithoutATitleBut",
"settings.projectModels.aIMergeCommitSummaries",
"settings.projectModels.whenEnabledMergeCommitMessagesIncludeAnAI",
],
},
{ id: "secrets", label: "Secrets", labelKey: "settings.nav.secrets", scope: "project", searchableText: ["secrets", "secret storage", "environment", "credentials"] },

View File

@@ -16,6 +16,11 @@ const searchTranslations: Record<string, string> = {
"settings.projectModels.chatDefaultKind": "Chat default target",
"settings.projectModels.chatDefaultModel": "Chat Default Model",
"settings.projectModels.chatDefaultAgent": "Chat Default Agent",
"settings.projectModels.aITitleAndGitCommitMessageSummarization": "AI Title and Git Commit Message Summarization",
"settings.projectModels.autoSummarizeLongDescriptionsAsTitles": "Auto-summarize long descriptions as titles",
"settings.projectModels.whenEnabledTasksCreatedWithoutATitleBut": "When enabled, tasks created without a title but with descriptions over 200 characters will automatically get an AI-generated title",
"settings.projectModels.aIMergeCommitSummaries": "AI merge commit summaries",
"settings.projectModels.whenEnabledMergeCommitMessagesIncludeAnAI": "When enabled, merge commit messages include an AI-generated subject plus body summary",
};
function searchSettingsSectionIds(query: string): string[] {
@@ -35,6 +40,21 @@ describe("SettingsModal Settings search index", () => {
},
);
/*
FNXC:SettingsNavigation 2026-07-14-20:15:
Operators search Settings for title auto-summarization with plain phrases ("summarize", "auto summarize titles") that previously missed Project Models. Assert the search index surfaces that section for those queries.
*/
it.each([
"summarize",
"auto summarize",
"auto-summarize titles",
"title summarization",
"autoSummarizeTitles",
"AI title",
])("surfaces Project Models for the title-summarization query %s", (query) => {
expect(searchSettingsSectionIds(query)).toContain("project-models");
});
it("does not surface Project Models for unrelated Remote Access terms", () => {
expect(searchSettingsSectionIds("cloudflared")).not.toContain("project-models");
});