Forge
csharpdeeb25a2
1namespace CascadeIDE.Features.Chat;
2
3/// <summary>Правила adaptive default для overview/detail ([ADR 0072 §3](docs/adr/0072-chat-topic-cards-intent-melody-keyboard-contract.md)).</summary>
4internal static class ChatTopicOverviewPolicy
5{
6 public static bool ResolveNextOverviewMode(int threadCount, int lastOverviewThreadCount, bool currentOverviewMode)
7 {
8 if (threadCount == lastOverviewThreadCount)
9 return currentOverviewMode;
10
11 // ADR 0127: вкладки тем — daily path в detail; overview остаётся для картотеки.
12 if (lastOverviewThreadCount < 0)
13 return false;
14
15 if (threadCount <= 1)
16 return false;
17
18 if (lastOverviewThreadCount <= 1)
19 return true;
20
21 return currentOverviewMode;
22 }
23
24 public static void ApplyAdaptiveDefault(int threadCount, ref int lastOverviewThreadCount, Action<bool> setOverviewMode, Func<bool> getOverviewMode)
25 {
26 if (threadCount == lastOverviewThreadCount)
27 return;
28
29 var next = ResolveNextOverviewMode(threadCount, lastOverviewThreadCount, getOverviewMode());
30 lastOverviewThreadCount = threadCount;
31 if (next != getOverviewMode())
32 setOverviewMode(next);
33 }
34}
35
View only · write via MCP/CIDE