Forge
deeb25a2
1# Пример пользовательского settings.toml (ADR 0028: %LocalAppData%\CascadeIDE\settings.toml).
2# Ключи — snake_case (CascadeTomlSerializer / Tomlyn). Секции — вложенные таблицы.
3# Заводские дефолты: Settings/defaults-settings.toml (embedded; merge поверх user-файла).
4# Соглашение как в defaults: явные URL/пути; пустая строка только с комментарием (PATH, выключено, позже).
5# Env: <field>_env (ADR 0149): executable_env = "PATH" или имя переменной с путём/URL.
6
7# Строка топологии и грамматика якорей (ADR 0017 § display.screens).
8# Tier compact/cockpit — ADR 0171: на 1–2 мониторах обычно compact; cockpit — 3 mon / ultrawide.
9[display.screens]
10topology = "(F)"
11
12[display.presentation]
13tier = "auto"
14compact_intercom_placement = "side"
15compact_auxiliary_panel_width_px = 380
16compact_intercom_bottom_dock_height_px = 280
17compact_mfd_bottom_dock_height_px = 220
18
19[display.screens.grammar]
20brackets = "()"
21between_screens = " "
22between_zones = "+"
23pfd = "P"
24forward = "F"
25mfd = "M"
26
27[display]
28maximize_hosts_on_dedicated_screens = true
29prefer_repo_instruments = false
30
31[display.pfd]
32open_on_startup = false
33
34[display.mfd]
35open_on_startup = false
36
37[display.skia]
38zone_geometry_overlay = false
39instrument_mount = false
40
41[display.mount]
42default_style = "instrument_mount_v1"
43enforce_eligibility = false
44min_sa = 0.6
45min_performance = 0.6
46max_workload = 0.5
47require_scores = false
48
49[[display.mount.rules]]
50surface = "main_window_docked_grid"
51slot = "pfd"
52instrument = "ide_health_status_v1"
53style = "instrument_mount_v1"
54sa_score = 0.8
55performance_score = 0.8
56workload_score = 0.2
57
58[[display.mount.rules]]
59surface = "main_window_plus_mfd_host_top_level"
60slot = "mfd"
61instrument = "ide_health_status_v1"
62style = "instrument_mount_v1"
63sa_score = 0.75
64performance_score = 0.72
65workload_score = 0.28
66
67# Основные слоты PFD/MFD (ADR 0050): alias или канонический instrument_id.
68[display.instruments]
69pfd_primary = "workspace_map"
70# Полоса warm-up/HCI (instrument workspace_background_status_v1): background_status | none
71pfd_status_strip = "background_status"
72forward_status_strip = "background_status"
73
74[ai]
75mode = "local"
76
77[ai.local]
78backend = "ollama"
79
80[ai.local.ollama]
81model = "qwen2.5-coder:7b"
82
83[ai.acp]
84cursor_acp_path = ""
85# Пусто = искать cursor-agent в PATH.
86cursor_acp_model_id = ""
87
88[ai.mcp_only]
89
90[ai.cloud]
91active_provider = "anthropic"
92
93[ai.cloud.anthropic]
94model = "claude-sonnet-4-20250514"
95
96[ai.cloud.openai]
97base_url = "https://api.openai.com"
98model = "gpt-4o"
99
100[ai.cloud.deepseek]
101base_url = "https://api.deepseek.com"
102model = "deepseek-chat"
103
104[ai.chat]
105settings_presentation = "mfd"
106show_thinking_in_history = true
107
108[mcp]
109acp_auto_inject_ide_mcp = true
110external_servers_json = "[]"
111external_servers_json_path = ""
112
113[hybrid_index]
114# In-proc integration settings for Hybrid Codebase Index (ADR 0106).
115# Core HCI settings live in workspace folder under `index_dir` (same as external MCP).
116enabled = true
117index_dir = ".hybrid-codebase-index"
118debounce_ms = 750
119auto_reindex_on_solution_open = true
120watch_files = true
121scope_mode = "workspace+solution" # or "workspace"
122pause_when_mcp_stdio_host = false
123
124# Palette go-to workspace search (ADR 0112): t:/m:/x:. hci/auto fall back to ripgrep until HCI path lands.
125[command_palette.go_to_search]
126backend = "rg"
127
128[workspace]
129pfd_expanded = true
130show_terminal = true
131show_git = false
132show_instrumentation = true
133mode = "Flight"
134culture = ""
135splitters_locked = false
136# ADR 0120: "editor" (дефолт) | "intercom" — Intercom в Forward, редактор на MFD
137primary_work_surface = "intercom"
138
139[code_navigation_map]
140view = "list"
141depth = "file"
142related_graph_layout = "auto"
143# auto | vertical | horizontal — главная ось control-flow мини-карты
144control_flow_main_axis = "auto"
145# intent | detailed (ADR 0151)
146control_flow_grain = "intent"
147# id пресета: бандл → .cascade/workspace.toml → settings ([[code_navigation_map.condition_branch.presets]])
148condition_branch_label_preset = "plus_minus"
149# [[code_navigation_map.condition_branch.presets]]
150# id = "my_labels"
151# positive = "Y"
152# negative = "N"
153
154# ------------------------------------------------------------
155# workspace.adr.map — doc correspondence (ADR 0061)
156# ------------------------------------------------------------
157#
158# Это пример секции для .cascade/workspace.toml (в корне репозитория), не для settings.toml.
159#
160# Секция задаёт декларативную карту «префикс пути (от корня репо) → ADR-док(и)».
161# Алгоритм: longest prefix wins, затем fallback "*".
162#
163# [workspace.adr.map]
164# "Features/UiChrome/" = [
165# "docs/adr/0010-ui-mode-catalog.md",
166# "docs/adr/0021-pfd-mfd-cockpit-attention-model.md",
167# ]
168# "*" = "docs/adr/0006-presentation-layers-and-feature-slices.md"
169#
170# [workspace.adr]
171# # none | linked — auto include ADRs linked from выбранного ADR markdown (1 hop)
172# auto_include = "linked"
173# # max linked ADRs to add (per click/preview)
174# max_related = 8
175#
176# [workspace.features]
177# [[workspace.features.feature]]
178# id = "intercom.chat"
179# title = "Intercom Chat"
180# paths = ["Features/Chat/", "Intercom/"]
181# docs = ["docs/adr/0137-intercom-message-code-correspondence.md", "docs/adr/0144-intercom-oauth-connect.md"]
182# tags = ["intercom", "chat"]
183
184[languages.csharp]
185mode = "OmniSharp"
186
187[languages.csharp.omni_sharp]
188executable = ""
189arguments = ""
190
191[languages.markdown]
192mode = "Marksman"
193
194[languages.markdown.marksman]
195executable = ""
196arguments = ""
197
198[markdown.diagrams]
199kroki = true
200kroki_url = "https://kroki.io"
201
202[code_navigation]
203# Пресеты: бандл CodeNavigation/presets.toml + .cascade/workspace.toml + этот файл ([[code_navigation.presets]]).
204# Подписи ветвей IF (control-flow): condition-branch-label-presets.toml + workspace + settings
205# [[code_navigation_map.condition_branch.presets]] в .cascade/workspace.toml — team overlay.
206# [[code_navigation.presets]]
207# id = "my_preset"
208# exclude_kinds = ["same_namespace"]
209
210# Типографика (Skia Intercom, AvaloniaEdit). Заводские значения — Settings/defaults-settings.toml.
211[fonts.intercom]
212prose_pt = 14
213# Отдельный размер только для лобового Forward (intercom); MFD Chat — prose_pt. Не про ширину split-колонки.
214prose_pt_forward = 14
215# Composer: ввод и placeholder внизу; 0 = ~prose×12/11
216# composer_pt = 15
217# chrome_title_pt = 14
218# chrome_subtitle_pt = 11
219# chrome_heading_pt = 15
220# card_title_pt = 15
221# panel_title_pt = 16
222# panel_subtitle_pt = 12
223# panel_label_pt = 13
224# panel_input_pt = 15
225# panel_body_pt = 16
226prose_family = "Segoe UI"
227mono_family = "Cascadia Mono,Consolas"
228chip_family = "Segoe UI"
229chip_id_family = "Consolas"
230slash_meta_family = "Consolas"
231slash_args_family = "Consolas"
232role_family = "Segoe UI"
233gutter_family = "Cascadia Mono,Consolas"
234
235[fonts.editor]
236size_pt = 14
237family = "Consolas,Cascadia Code,monospace"
238
239[editor.inline_hints]
240# Editor inlay-hints toggles.
241enabled = true
242parameter_names = true
243variable_types = true
244
245[editor.debug_hints]
246enabled = true
247show_assignments = true
248show_conditions = true
249
250# Intercom: плотность ленты — comfortable | compact (см. также [fonts.intercom] prose_pt / prose_pt_forward)
251[intercom]
252feed_metrics = "comfortable"
253
254# Intercom: code-attach (chip F:/M:/L:) — ADR 0130
255# navigate: reveal | select; reveal_load_solution: when_needed | never
256[intercom.attachments.code]
257navigate = "reveal"
258reveal_load_solution = "when_needed"
259
260# Диагностика отправки Intercom → {workspace}/.cascade-ide/intercom-send-trace.log
261[logging.intercom]
262send_trace = false
263
View only · write via MCP/CIDE