Forge
markdowndeeb25a2
1# Playbook: solution warm-up v1
2
3ADR: [0141](../adr/0141-solution-scoped-warmup-orchestration.md)
4
5## Что прогревается при open solution
6
7| Id | Когда | Где кэш |
8|----|-------|---------|
9| `bracket.active_file` | Сразу (P0) | `BracketMemberCompletionProvider` in-memory |
10| `hci.poke` | Сразу (отдельно) | HCI SQLite + observer → symbol sidecar |
11| `intercom.feed_anchors` | После HCI | Chips в ленте (in-memory) |
12| `intercom.bracket` + `roslyn_l1` (open tabs) | После P1, параллельно ≤N | Bracket + `IntercomAttachmentRoslynWorkspaceCache` |
13
14## Настройки
15
16TOML `[solution_warmup]` в `settings.toml` (см. `defaults-settings.toml`).
17
18`show_background_status_on_pfd` (по умолчанию `true`) — мастер-выключатель полосы warm-up/HCI.
19
20Размещение по зонам — instrument **`workspace_background_status_v1`** (alias `background_status`) в **`[display.instruments]`** (ADR 0050, оверлей-слоты, не `pfd_primary`):
21
22| Ключ | Зона |
23|------|------|
24| `pfd_status_strip` | колонка PFD (над картой / обозревателем) |
25| `forward_status_strip` | Forward (над чатом / редактором) |
26
27Значения: `background_status` (показать) или `none` (скрыть в этой зоне). По умолчанию в `defaults-settings.toml` — обе зоны `background_status`. Текст: «Indexing…» / «Warming…»; после успеха полоса скрывается (мин. ~400 ms); при ошибке — caution, клик → HCI.
28
29## Для агента
30
31- UI **не ждёт** `Ready` — только lazy/debounce fallback.
32- Смена solution **отменяет** предыдущий прогон (`Cancelled`).
33- Symbol sidecar при in-proc HCI **не** вызывать `ScheduleRebuildAfterHybridIndex` (observer 0.1.2+); fallback только если HCI выключен.
34
View only · write via MCP/CIDE