Forge
deeb25a2
1# CascadeIDE — заводские дефолты (шипнутый слой, ADR 0028).
2# EmbeddedResource + Settings/defaults-settings.toml рядом с exe.
3# Merge: %LocalAppData%\CascadeIDE\settings.toml поверх этого файла.
4#
5# Соглашение:
6# - Пути/URL с каноном — явное значение (относительно CascadeIDE.exe, workspace или LocalAppData — см. комментарий).
7# - Пустая строка только там, где «выключено / поиск в PATH / выбор позже» — всегда с комментарием.
8# Расширенный пример: docs/samples/settings.toml
9
10[display.screens]
11topology = "(F)"
12
13[display.presentation]
14tier = "auto"
15cockpit_min_total_width_px = 4800
16cockpit_min_anchor_width_px = 1280
17compact_intercom_placement = "side"
18compact_auxiliary_panel_width_px = 380
19ultrawide_cockpit_enabled = true
20tier_first_run_completed = false
21
22[display.screens.grammar]
23brackets = "()"
24between_screens = " "
25between_zones = "+"
26pfd = "P"
27forward = "F"
28mfd = "M"
29
30[display]
31maximize_hosts_on_dedicated_screens = true
32prefer_repo_instruments = false
33
34[display.pfd]
35open_on_startup = false
36
37[display.mfd]
38open_on_startup = false
39
40[display.skia]
41zone_geometry_overlay = false
42instrument_mount = false
43
44[display.mount]
45default_style = "instrument_mount_v1"
46enforce_eligibility = false
47min_sa = 0.6
48min_performance = 0.6
49max_workload = 0.5
50require_scores = false
51
52[[display.mount.rules]]
53surface = "main_window_docked_grid"
54slot = "pfd"
55instrument = "ide_health_status_v1"
56style = "instrument_mount_v1"
57sa_score = 0.8
58performance_score = 0.8
59workload_score = 0.2
60
61[[display.mount.rules]]
62surface = "main_window_plus_mfd_host_top_level"
63slot = "mfd"
64instrument = "ide_health_status_v1"
65style = "instrument_mount_v1"
66sa_score = 0.75
67performance_score = 0.72
68workload_score = 0.28
69
70[display.instruments]
71pfd_primary = "workspace_map"
72pfd_status_strip = "background_status"
73forward_status_strip = "background_status"
74
75[ai]
76# local | acp | mcp_only | cloud
77mode = "local"
78
79[ai.local]
80backend = "ollama"
81
82[ai.local.ollama]
83model = "qwen2.5-coder:7b"
84
85[ai.acp]
86cursor_acp_path = ""
87# PATH = поиск cursor-agent в PATH; иначе имя переменной с путём (ADR 0149)
88cursor_acp_path_env = "PATH"
89# Пусто = модель из session/new или дефолт ACP
90cursor_acp_model_id = ""
91
92[ai.mcp_only]
93
94[ai.cloud]
95active_provider = "anthropic"
96
97[ai.cloud.anthropic]
98model = "claude-sonnet-4-20250514"
99
100[ai.cloud.openai]
101base_url = "https://api.openai.com"
102model = "gpt-4o"
103
104[ai.cloud.deepseek]
105base_url = "https://api.deepseek.com"
106model = "deepseek-chat"
107
108[ai.chat]
109# mfd | window
110settings_presentation = "mfd"
111show_thinking_in_history = true
112
113[mcp]
114acp_auto_inject_ide_mcp = true
115external_servers_json = "[]"
116# Пусто = только inline JSON выше; иначе путь относительно %LocalAppData%\CascadeIDE\
117external_servers_json_path = ""
118
119[hybrid_index]
120enabled = true
121# Относительно корня workspace
122index_dir = ".hybrid-codebase-index"
123debounce_ms = 750
124auto_reindex_on_solution_open = true
125watch_files = true
126scope_mode = "workspace+solution"
127pause_when_mcp_stdio_host = false
128
129[solution_warmup]
130enabled = true
131warm_active_file_on_solution_open = true
132warm_feed_anchors_after_symbol_sidecar = true
133warm_open_documents = true
134warm_recent_cs_files = true
135max_parallel_file_jobs = 2
136max_open_document_files = 6
137show_background_status_on_pfd = true
138
139[command_palette.go_to_search]
140backend = "rg"
141
142[agent.environment]
143default_verify_policy = "standard"
144default_sandbox_profile = "agent_ephemeral"
145runner_max_concurrency = 2
146coalesce_window_ms = 1500
147# deny | tests_only | allow_with_audit
148shell_escape_tier = "deny"
149
150# agent_worktree | agent_ephemeral | in_place — для batch/long autonomous verify (W6)
151long_run_sandbox_profile = "agent_worktree"
152# supervised-inproc | supervised-worker-process | supervised-worker-daemon (opt-in long-lived IPC)
153build_verify_host = "supervised-inproc"
154# Пусто = авто (рядом с CascadeIDE.exe или tools/ в dev)
155# build_verify_worker_assembly_path = ""
156
157[agent.environment.dev_services]
158require_config_override = true
159gate_test_scoped_on_violation = true
160
161[agent.environment.ladder]
162diagnose_files_enabled = true
163test_full_require_explicit = true
164test_scoped_touched_tests_only = true
165# open_tabs — только вкладки; open_tabs_and_git_dirty_cs — + .cs из git diff / --cached в workspace.
166diagnose_files_cs_scope = "open_tabs_and_git_dirty_cs"
167diagnose_files_git_dirty_max_files = 48
168# + .cs из solution warm-up (открытые/активный), с диска если не во вкладке
169diagnose_files_include_warmup_cs = true
170# 0 = как solution_warmup.max_open_document_files
171diagnose_files_warmup_max_files = 0
172
173[agent.environment.time_accounting]
174show_in_chat = true
175pfd_instrument_enabled = true
176show_task_progress_in_chat = true
177# 0 = idle_user выкл
178idle_user_threshold_ms = 0
179
180[agent.harness]
181load_hot_context_on_session_start = true
182load_hot_context_on_topic_fork = true
183checkpoint_enabled = true
184checkpoint_threshold_user_turns = 40
185checkpoint_repeat_every_user_turns = 40
186auto_verify_after_cs_write = true
187# interim 0082: MAF/cloud = in-proc; suppress second CascadeIDE for Cursor ACP
188suppress_acp_ide_stdio_inject = true
189checkpoint_on_context_pressure = true
190context_pressure_thread_message_threshold = 60
191context_pressure_repeat_every_messages = 30
192inject_harness_telemetry_in_context = true
193context_warn_pct = 75
194inject_topic_fork_brief = true
195# topic_fork_brief_template = ""
196
197[agent_notes]
198# Пусто = встроенный agent-notes; иначе путь относительно %LocalAppData%\CascadeIDE\
199config_path = ""
200config_path_env = ""
201# Пусто = без overlay; иначе каталог с knowledge/ поверх KB-Base
202kb_base_overlay_path = ""
203kb_base_overlay_path_env = ""
204
205[workspace]
206pfd_expanded = false
207show_terminal = true
208show_git = false
209show_instrumentation = true
210mode = "Flight"
211# Пусто = язык UI из ОС / thread culture
212culture = ""
213splitters_locked = false
214# editor | intercom
215primary_work_surface = "intercom"
216
217[workspace.solution_explorer]
218track_active_item = true
219compact_tree = true
220
221[code_navigation_map]
222# list | graph | both
223view = "graph"
224# file | controlFlow
225depth = "file"
226# glance | normal | inspect
227detail_level = "normal"
228# radial | top_down | bottom_up — укладка related-files на PFD (не solution explorer)
229related_graph_layout = "top_down"
230# auto | vertical | horizontal — главная ось потока на мини-карте control-flow
231control_flow_main_axis = "auto"
232# intent (деф.) | detailed — зерно subgraph control-flow: намерение vs пошаговый CFG (ADR 0151)
233control_flow_grain = "intent"
234# id активного пресета: бандл → .cascade/workspace.toml → settings ([[code_navigation_map.condition_branch.presets]])
235condition_branch_label_preset = "plus_minus"
236# при preset = custom — подписи на секции (не из таблицы):
237# condition_branch_positive = "+"
238# condition_branch_negative = "-"
239# [[code_navigation_map.condition_branch.presets]]
240# id = "ja"
241# positive = "はい"
242# negative = "いいえ"
243
244[languages.csharp]
245# ParseOnly | OmniSharp | CSharpLs | Custom
246mode = "OmniSharp"
247
248[languages.csharp.parse_only]
249executable = ""
250arguments = ""
251
252[languages.csharp.omni_sharp]
253executable = ""
254# PATH = явно искать OmniSharp в PATH (ADR 0149); иначе имя переменной с абсолютным путём
255executable_env = "PATH"
256arguments = ""
257arguments_env = ""
258
259[languages.csharp.csharp_ls]
260executable = ""
261executable_env = "PATH"
262arguments = ""
263arguments_env = ""
264
265[languages.csharp.custom]
266executable = ""
267arguments = ""
268
269[languages.markdown]
270# Off | Marksman | Custom
271mode = "Marksman"
272
273[languages.markdown.off]
274executable = ""
275arguments = ""
276
277[languages.markdown.marksman]
278executable = ""
279executable_env = "PATH"
280arguments = ""
281arguments_env = ""
282
283[languages.markdown.custom]
284executable = ""
285arguments = ""
286
287[markdown.diagrams]
288kroki = true
289kroki_url = "https://kroki.io"
290
291[fonts.intercom]
292prose_pt = 14
293prose_pt_forward = 14
294composer_pt = 16
295command_line_pt = 15
296chrome_title_pt = 14
297chrome_subtitle_pt = 11
298chrome_heading_pt = 15
299card_title_pt = 15
300panel_title_pt = 16
301panel_subtitle_pt = 12
302panel_label_pt = 13
303panel_input_pt = 15
304panel_body_pt = 16
305prose_family = "Segoe UI"
306mono_family = "Cascadia Mono,Consolas"
307chip_family = "Segoe UI"
308chip_id_family = "Consolas"
309slash_meta_family = "Consolas"
310slash_args_family = "Consolas"
311role_family = "Segoe UI"
312gutter_family = "Cascadia Mono,Consolas"
313
314[fonts.editor]
315size_pt = 14
316family = "Consolas,Cascadia Code,monospace"
317
318# Forward editor host (ADR 0162): avalonia_edit | monaco_webview2
319[editor]
320forward_host = "monaco_webview2"
321
322[editor.inline_hints]
323enabled = true
324parameter_names = true
325variable_types = true
326
327[editor.debug_hints]
328enabled = true
329show_assignments = true
330show_conditions = true
331
332[intercom]
333# comfortable | compact
334feed_metrics = "comfortable"
335# left | right | highlight_only
336tci_validation_icon = "right"
337
338[intercom.attachments.code]
339# reveal | select
340navigate = "reveal"
341# when_needed | never
342reveal_load_solution = "when_needed"
343
344[intercom.transport]
345enabled = false
346base_url = "http://127.0.0.1:5080"
347base_url_env = ""
348local_server_path = "tools/intercom-service/IntercomService.exe"
349local_server_path_env = ""
350# Пусто = после Connect / resolve workspace (не путь к файлу)
351team_id = ""
352# Пусто = topic general на сервере
353default_topic_id = ""
354oauth_provider = "github"
355# DEV: Bearer для curl/локальных тестов; пусто = только OAuth
356dev_team_token = ""
357sse_reconnect_backoff_ms = 1000
358auto_connect_on_send = true
359sync_agent_channel_messages = true
360
361[logging.intercom]
362send_trace = false
363
View only · write via MCP/CIDE