Forge
markdowna2ee7322
1<!-- English translation of adr/0074-settings-ui-mfd-compact-layout-overflow.md. Canonical Russian: ../../adr/0074-settings-ui-mfd-compact-layout-overflow.md -->
2
3# ADR 0074: Settings UI - more compact, anchored on MFD; lack of space in the P+F+M layout
4
5**Status:** Proposed
6**Date:** 2026-04-19
7## Related ADRs
8
9| ADR | Role |
10|-----|------|
11| [0029](0029-configuration-toml-canonical-ui-facade.md) | TOML canon; holistic settings center **deferred**; dot UI = canon façade |
12| [0028](0028-user-settings-toml-localappdata-and-secrets.md) | `settings.toml` |
13| [0021](0021-pfd-mfd-cockpit-attention-model.md) | anchors PFD / Forward / MFD |
14| [0046](0046-presentation-layout-authority-and-cockpit-invariants.md) | `presentation`, layout invariants |
15| [0017](0017-multi-window-workspace-and-agent-surfaces.md) | multi-window, `display.screens` |
16| [0069](0069-markdown-preview-tool-surface-and-renderer-decoupling.md) | example **MFD-first** tool surface |
17
18### Outside ADR
19
20| Document | Role |
21|----------|------|
22| [`Models/MfdShellPage.cs`](../../Models/MfdShellPage.cs) | enum MFD pages |
23
24---
25## Context
26
27**User expectation:** settings are logical to look for in the **secondary circuit** of the “home” tools - **MFD** ([0021](0021-pfd-mfd-cockpit-attention-model.md)), and not as the only heavy modal layer on top of the editor, if the goal is **not to lose the context** of the cockpit.
28
29**Code fact:** some of the settings are already available as the **`AiChatSettings`** page in **`MfdShellView`**; the full set still opens **in a separate window** (menu “Settings → AI and chat settings...” → `OpenSettingsCommand` → `ShowSettingsWindow`). [0029](0029-configuration-toml-canonical-ui-facade.md) does not prohibit UI development, but does **deferred** a separate "full-screen settings center as a separate product"; the transfer **to MFD** is not a second truth on disk, but a **surface** above the same `CascadeIdeSettings`.
30
31**Density issue:** in a typical **P + F + M** (PFD | Forward | MFD) layout, the MFD column is **limited in width**; long forms and many sections give **scroll**, cutting off or a feeling of “crowding” - an explicit policy is needed **if there is not enough space**.
32
33---
34
35## Proposed direction (draft)
36
371. **Target anchor:** main **UI for editing settings** (or most of it) - **inside the MFD** (secondary outline), **compact** layout: groups, accordions, shortcuts to rare keys, link “open `settings.toml`” without duplicating the canon.
382. **Separate window:** leave as **fallback** (large monitor, side comparison, accessibility) or **collapse** to rare scenarios - **product solution** after MFD prototype.
393. **Agree with [0029](0029-configuration-toml-canonical-ui-facade.md):** any UI is still **facade** model and files; MFD screen expansion **doesn't** add a second source of truth.
40
41---
42
43<a id="adr0074-overflow"></a>
44
45## Open questions: lack of space (P + F + M, etc.)
46
47Fix **one** or **hierarchy** of strategies (to be selected):
48
49| # | Strategy | Meaning | Risk |
50|---|-----------|------|------|
51| 1 | **Vertical scroll** inside MFD page | Simple baseline | Long forms “run away” down; need sticky section navigation |
52| 2 | **Minimum MFD width** + **custom** column resize | Maintain readability | On narrow screens conflict with Forward (editor) |
53| 3 | **Full screen mode** only for MFD (expand column / temporarily max width) | Compromise without a separate window | Need explicit exit/restore preset gesture |
54| 4 | **Separate window** as fallback for `ActualWidth < threshold` | Predictable on small displays | Two path codes or adaptive container |
55| 5 | **Second window** (already exists for MFD host in [0017](0017-multi-window-workspace-and-agent-surfaces.md)) - duplicate settings there | Lots of monitors | Synchronizing focus and "where the truth is revealed" |
56| 6 | **Collapse PFD** (auto or by policy) when focusing on settings | More space for uniforms | The attention model changes without explicit user action - carefully ([0021](0021-pfd-mfd-cockpit-attention-model.md)) |
57
58**Recommendation for discussion:** start with **(1) + (2)** and an explicit **breakpoint** for **(4)**; **(6)** - only by explicit user command, not automatically in v1.
59
60---
61
62## Solution
63
64**Fix as Proposed:** direction “**settings → MFD, more compact**” and a list of **open** overflow strategies - **not** as an immediate change [0029](0029-configuration-toml-canonical-ui-facade.md) (canon on disk does not change), but as **product and UX** selection of the next iteration.
65**Next step:** prototype or refactor the settings page markup in **`MfdShellView`**; measure minimum width and behavior on **1366x768** and **ultra-wide** screens; write the selected policy from the overflow table to this ADR or to **presentation**/capabilities ([0046](0046-presentation-layout-authority-and-cockpit-invariants.md)).
66
67---
68
69## Consequences
70
71- **Advantage:** consistency with the “settings near chat/terminal” mental model on MFD; less separation from the cockpit.
72- **Minus:** engineering work on adaptive layout and tests; you need to avoid breaking users who are accustomed to a separate window - **migration path** (menu item → MFD first, “Open in a separate window” optional).
73
74---
View only · write via MCP/CIDE