diff --git a/api/config.py b/api/config.py index b5c2130e..d8108e7f 100644 --- a/api/config.py +++ b/api/config.py @@ -7815,6 +7815,7 @@ _SETTINGS_DEFAULTS = { "session_jump_buttons": False, # show Start/End transcript jump pills "render_user_markdown": False, # opt-in: render full markdown in user messages (#3870) "large_text_paste_as_attachment": True, # convert very large composer text pastes into .md attachments by default + "project_quick_create_buttons": False, # opt-in: show per-project "+" quick-create buttons on sidebar project chips (#4676) "structured_code_default_view": "auto", # JSON/YAML fenced-block default render: auto | on | off (#484 follow-up). auto => Tree when line count >= structured_code_auto_tree_lines, else Raw. "structured_code_auto_tree_lines": 10, # in 'auto' mode, minimum line count to default a JSON/YAML block to Tree view (preserves the original hardcoded >=10 behavior) "session_endless_scroll": False, # auto-load older transcript pages while scrolling upward @@ -8065,6 +8066,7 @@ _SETTINGS_BOOL_KEYS = { "session_jump_buttons", "render_user_markdown", "large_text_paste_as_attachment", + "project_quick_create_buttons", "session_endless_scroll", "auto_scroll_follow", "worklog_details_expanded_default", diff --git a/static/i18n.js b/static/i18n.js index c884c5e5..7a2c418a 100644 --- a/static/i18n.js +++ b/static/i18n.js @@ -621,6 +621,8 @@ const LOCALES = { settings_desc_render_user_markdown: 'When enabled, bold, italic, links, and other markdown in your own messages are rendered. Off by default; fenced code blocks and math always render regardless of this setting.', settings_label_large_text_paste_as_attachment: 'Attach large pasted text as file', settings_desc_large_text_paste_as_attachment: 'When enabled, long pasted text becomes a .md attachment instead of filling the composer.', + settings_label_project_quick_create: 'Show per-project new-conversation buttons', + settings_desc_project_quick_create: 'When enabled, each project chip in the sidebar gets a + button to start a conversation in that project.', settings_label_structured_code: 'JSON/YAML code blocks', settings_option_structured_code_auto: 'Auto: Tree for long blocks', settings_option_structured_code_on: 'Tree by default', @@ -2269,6 +2271,8 @@ const LOCALES = { settings_desc_render_user_markdown: 'When enabled, bold, italic, links, and other markdown in your own messages are rendered. Off by default; fenced code blocks and math always render regardless of this setting.', settings_label_large_text_paste_as_attachment: 'Attach large pasted text as file', settings_desc_large_text_paste_as_attachment: 'When enabled, long pasted text becomes a .md attachment instead of filling the composer.', + settings_label_project_quick_create: 'Show per-project new-conversation buttons', + settings_desc_project_quick_create: 'When enabled, each project chip in the sidebar gets a + button to start a conversation in that project.', settings_label_structured_code: 'JSON/YAML code blocks', settings_option_structured_code_auto: 'Auto: Tree for long blocks', settings_option_structured_code_on: 'Tree by default', @@ -3908,6 +3912,8 @@ const LOCALES = { settings_desc_render_user_markdown: 'When enabled, bold, italic, links, and other markdown in your own messages are rendered. Off by default; fenced code blocks and math always render regardless of this setting.', settings_label_large_text_paste_as_attachment: 'Attach large pasted text as file', settings_desc_large_text_paste_as_attachment: 'When enabled, long pasted text becomes a .md attachment instead of filling the composer.', + settings_label_project_quick_create: 'Show per-project new-conversation buttons', + settings_desc_project_quick_create: 'When enabled, each project chip in the sidebar gets a + button to start a conversation in that project.', settings_label_structured_code: 'JSON/YAML code blocks', settings_option_structured_code_auto: 'Auto: Tree for long blocks', settings_option_structured_code_on: 'Tree by default', @@ -6261,6 +6267,8 @@ const LOCALES = { settings_desc_render_user_markdown: 'When enabled, bold, italic, links, and other markdown in your own messages are rendered. Off by default; fenced code blocks and math always render regardless of this setting.', settings_label_large_text_paste_as_attachment: 'Attach large pasted text as file', settings_desc_large_text_paste_as_attachment: 'When enabled, long pasted text becomes a .md attachment instead of filling the composer.', + settings_label_project_quick_create: 'Show per-project new-conversation buttons', + settings_desc_project_quick_create: 'When enabled, each project chip in the sidebar gets a + button to start a conversation in that project.', settings_label_structured_code: 'JSON/YAML code blocks', settings_option_structured_code_auto: 'Auto: Tree for long blocks', settings_option_structured_code_on: 'Tree by default', @@ -7825,6 +7833,8 @@ const LOCALES = { settings_desc_render_user_markdown: 'When enabled, bold, italic, links, and other markdown in your own messages are rendered. Off by default; fenced code blocks and math always render regardless of this setting.', settings_label_large_text_paste_as_attachment: 'Attach large pasted text as file', settings_desc_large_text_paste_as_attachment: 'When enabled, long pasted text becomes a .md attachment instead of filling the composer.', + settings_label_project_quick_create: 'Show per-project new-conversation buttons', + settings_desc_project_quick_create: 'When enabled, each project chip in the sidebar gets a + button to start a conversation in that project.', settings_label_structured_code: 'JSON/YAML code blocks', settings_option_structured_code_auto: 'Auto: Tree for long blocks', settings_option_structured_code_on: 'Tree by default', @@ -9070,6 +9080,8 @@ const LOCALES = { settings_desc_render_user_markdown: 'When enabled, bold, italic, links, and other markdown in your own messages are rendered. Off by default; fenced code blocks and math always render regardless of this setting.', settings_label_large_text_paste_as_attachment: 'Attach large pasted text as file', settings_desc_large_text_paste_as_attachment: 'When enabled, long pasted text becomes a .md attachment instead of filling the composer.', + settings_label_project_quick_create: 'Show per-project new-conversation buttons', + settings_desc_project_quick_create: 'When enabled, each project chip in the sidebar gets a + button to start a conversation in that project.', settings_label_structured_code: 'JSON/YAML code blocks', settings_option_structured_code_auto: 'Auto: Tree for long blocks', settings_option_structured_code_on: 'Tree by default', @@ -10988,6 +11000,8 @@ const LOCALES = { settings_desc_render_user_markdown: 'When enabled, bold, italic, links, and other markdown in your own messages are rendered. Off by default; fenced code blocks and math always render regardless of this setting.', settings_label_large_text_paste_as_attachment: 'Attach large pasted text as file', settings_desc_large_text_paste_as_attachment: 'When enabled, long pasted text becomes a .md attachment instead of filling the composer.', + settings_label_project_quick_create: 'Show per-project new-conversation buttons', + settings_desc_project_quick_create: 'When enabled, each project chip in the sidebar gets a + button to start a conversation in that project.', settings_label_structured_code: 'JSON/YAML code blocks', settings_option_structured_code_auto: 'Auto: Tree for long blocks', settings_option_structured_code_on: 'Tree by default', @@ -11852,6 +11866,8 @@ const LOCALES = { settings_desc_render_user_markdown: 'When enabled, bold, italic, links, and other markdown in your own messages are rendered. Off by default; fenced code blocks and math always render regardless of this setting.', settings_label_large_text_paste_as_attachment: 'Attach large pasted text as file', settings_desc_large_text_paste_as_attachment: 'When enabled, long pasted text becomes a .md attachment instead of filling the composer.', + settings_label_project_quick_create: 'Show per-project new-conversation buttons', + settings_desc_project_quick_create: 'When enabled, each project chip in the sidebar gets a + button to start a conversation in that project.', settings_label_structured_code: 'JSON/YAML code blocks', settings_option_structured_code_auto: 'Auto: Tree for long blocks', settings_option_structured_code_on: 'Tree by default', @@ -13388,6 +13404,8 @@ const LOCALES = { settings_desc_render_user_markdown: 'When enabled, bold, italic, links, and other markdown in your own messages are rendered. Off by default; fenced code blocks and math always render regardless of this setting.', settings_label_large_text_paste_as_attachment: 'Attach large pasted text as file', settings_desc_large_text_paste_as_attachment: 'When enabled, long pasted text becomes a .md attachment instead of filling the composer.', + settings_label_project_quick_create: 'Show per-project new-conversation buttons', + settings_desc_project_quick_create: 'When enabled, each project chip in the sidebar gets a + button to start a conversation in that project.', settings_label_structured_code: 'JSON/YAML code blocks', settings_option_structured_code_auto: 'Auto: Tree for long blocks', settings_option_structured_code_on: 'Tree by default', @@ -14926,6 +14944,8 @@ const LOCALES = { settings_desc_render_user_markdown: 'When enabled, bold, italic, links, and other markdown in your own messages are rendered. Off by default; fenced code blocks and math always render regardless of this setting.', settings_label_large_text_paste_as_attachment: 'Attach large pasted text as file', settings_desc_large_text_paste_as_attachment: 'When enabled, long pasted text becomes a .md attachment instead of filling the composer.', + settings_label_project_quick_create: 'Show per-project new-conversation buttons', + settings_desc_project_quick_create: 'When enabled, each project chip in the sidebar gets a + button to start a conversation in that project.', settings_label_structured_code: 'JSON/YAML code blocks', settings_option_structured_code_auto: 'Auto: Tree for long blocks', settings_option_structured_code_on: 'Tree by default', @@ -16577,6 +16597,8 @@ const LOCALES = { settings_desc_render_user_markdown: 'Lorsqu\'il est activé, le gras, l\'italique, les liens et autres éléments markdown dans vos propres messages sont rendus. Désactivé par défaut ; les blocs de code et les formules mathématiques sont toujours rendus, indépendamment de ce paramètre.', settings_label_large_text_paste_as_attachment: 'Attach large pasted text as file', settings_desc_large_text_paste_as_attachment: 'When enabled, long pasted text becomes a .md attachment instead of filling the composer.', + settings_label_project_quick_create: 'Show per-project new-conversation buttons', + settings_desc_project_quick_create: 'When enabled, each project chip in the sidebar gets a + button to start a conversation in that project.', settings_label_structured_code: 'Blocs de code JSON/YAML', settings_option_structured_code_auto: 'Auto : Arborescence pour les blocs longs', settings_option_structured_code_on: 'Arborescence par défaut', @@ -18184,6 +18206,8 @@ const LOCALES = { settings_desc_render_user_markdown: 'When enabled, bold, italic, links, and other markdown in your own messages are rendered. Off by default; fenced code blocks and math always render regardless of this setting.', settings_label_large_text_paste_as_attachment: 'Attach large pasted text as file', settings_desc_large_text_paste_as_attachment: 'When enabled, long pasted text becomes a .md attachment instead of filling the composer.', + settings_label_project_quick_create: 'Show per-project new-conversation buttons', + settings_desc_project_quick_create: 'When enabled, each project chip in the sidebar gets a + button to start a conversation in that project.', settings_label_structured_code: 'JSON/YAML code blocks', settings_option_structured_code_auto: 'Auto: Tree for long blocks', settings_option_structured_code_on: 'Tree by default', @@ -19843,6 +19867,8 @@ const LOCALES = { settings_desc_structured_code: 'Gdy wybrano tryb automatyczny, bloki JSON/YAML o długości przynajmniej podanej liczby wierszy zostaną otwarte w widoku drzewa. Widok drzewa zawsze otwiera strukturyzowaną przeglądarkę; widok źródła zachowuje podświetlony składniowo tekst. Nadal możesz przełączać tryby dla każdego bloku osobno.', settings_label_large_text_paste_as_attachment: 'Attach large pasted text as file', settings_desc_large_text_paste_as_attachment: 'When enabled, long pasted text becomes a .md attachment instead of filling the composer.', + settings_label_project_quick_create: 'Show per-project new-conversation buttons', + settings_desc_project_quick_create: 'When enabled, each project chip in the sidebar gets a + button to start a conversation in that project.', settings_label_worklog_details_expanded_default: 'Otwieraj szczegóły Worklog automatycznie', settings_desc_worklog_details_expanded_default: 'Gdy ta opcja jest włączona, nowe szczegóły Worklog zaczynają rozwinięte, dzięki czemu karty narzędzi, Thinking i postępu są widoczne bez dodatkowego kliknięcia. Gdy jest wyłączona, szczegóły Worklog pozostają domyślnie zwinięte. Ręczne decyzje o zwinięciu/rozwinięciu w danej turze mają pierwszeństwo.', settings_label_chat_activity_display_mode: 'Wyświetlanie aktywności', @@ -21378,6 +21404,8 @@ const LOCALES = { settings_desc_render_user_markdown: 'Khi bật, chữ đậm, chữ nghiêng, liên kết và các Markdown khác trong tin nhắn của bạn sẽ được render. Mặc định tắt; khối code fenced và công thức toán luôn được render bất kể cài đặt này.', settings_label_large_text_paste_as_attachment: 'Attach large pasted text as file', settings_desc_large_text_paste_as_attachment: 'When enabled, long pasted text becomes a .md attachment instead of filling the composer.', + settings_label_project_quick_create: 'Show per-project new-conversation buttons', + settings_desc_project_quick_create: 'When enabled, each project chip in the sidebar gets a + button to start a conversation in that project.', settings_label_structured_code: 'Khối code JSON/YAML', settings_option_structured_code_auto: 'Tự động: dạng cây cho khối dài', settings_option_structured_code_on: 'Mặc định dạng cây', diff --git a/static/index.html b/static/index.html index 249e0cd5..ea0c29ae 100644 --- a/static/index.html +++ b/static/index.html @@ -1059,6 +1059,13 @@