# Step-5 Increment Update (2026-04-15) Дата: 2026-04-15 Статус: `active` Связанные документы: - `step5_architecture_ux_quality_plan_v1_2026-04-08.md` - `project_status_rails_graph_2026-04-08.md` - `followup_context_root_pivot_audit_2026-04-15.md` ## 1. Что именно обновлено в runtime В текущем инкременте зафиксирован bounded fix для cross-domain carryover: 1. Если пользователь находится внутри inventory drilldown по выбранной позиции, 2. и следующим коротким сообщением делает pivot в чужой учетный домен, 3. runtime больше не тянет selected item в новый route, 4. а сохраняет только root context. Практически это выражается так: - `followupSelectionMode = carry_root_context` - `followupContext.root_context_only = true` Сохраняются только root-level поля: - `organization` - `warehouse` - `as_of_date` - `period_from` - `period_to` Не сохраняются: - `item` - object-level `previous_intent` - object-level anchor ## 2. Почему это решение считается чистым Это решение не спорит с текущей архитектурой rails, потому что: 1. не меняет execution semantics existing exact capabilities; 2. не отключает inventory selected-object carryover внутри inventory domain; 3. не подменяет root frame object frame-ом и наоборот; 4. не лечит UX-проблемы через query-level костыли. То есть это не "новая архитектура", а аккуратный guard на границе между: - follow-up orchestration, - selected-object navigation, - domain pivot policy. ## 3. Что показал свежий live audit Разбор прогона из `C:\Users\DCTOUCH\Desktop\test.txt` подтверждает: ### Уже нормально 1. VAT root route сам по себе работает. 2. Data-scope вопрос по базе/организации работает. 3. Multiple-organization clarification в этом сценарии работает корректно. 4. Inventory selected-object sale trace доходит до exact capability. ### Еще не закрыто 1. Meta follow-up `это много или мало?` все еще replays предыдущий factual VAT answer. 2. Новый inventory root-query после VAT все еще несет `previous_intent = vat_payable_forecast`. 3. После limited selected-object sale step короткое `а купили у кого` может выпасть в `non_domain_query_indexed`. 4. В extraction все еще возможен мусорный `warehouse = "за май"`. ## 4. Как интерпретировать эти дефекты Важно не смешивать разные классы проблем: ### A. Route/intent problem Когда нужный intent вообще не распознан или address lane не запускается. ### B. Retrieval/execution problem Когда route выбран корректно, но retrieval возвращает `empty_match` / `no_raw_rows`. ### C. Answer-shape problem Когда данные/intent корректны, но форма ответа не соответствует пользовательскому вопросу. ### D. Follow-up continuity problem Когда новый короткий вопрос не унаследовал допустимый контекст из предыдущего шага. Свежий прогон содержит все четыре типа, но в разных местах. Это важно для планирования, чтобы не чинить retrieval-пустоту как orchestration-баг и наоборот. ## 5. Следующий bounded backlog ### P0 1. `meta_followup_answer_policy` Для evaluative short follow-up поверх VAT/tax factual summary запретить replay полного ответа. 2. `root_domain_pivot_resets_previous_intent` Для нового root inventory query после VAT/tax не тянуть `previous_intent` из чужого домена. 3. `selected_object_continuity_after_limited_result` После limited inventory drilldown answer short follow-up должен оставаться в address lane. ### P1 1. `invalid_warehouse_anchor_guard` Темпоральные куски вроде `за май` не должны заполнять `warehouse`. 2. `acceptance_split_for_empty_match` В acceptance нужно отдельно учитывать: - `route matched but empty` - `route not matched` - `follow-up continuity lost` ## 6. Обязательные regression chains 1. `прогноз НДС -> это много или мало?` 2. `прогноз НДС -> остаток на складе за май 2020` 3. `inventory selected item -> кому продали -> а купили у кого` 4. `остаток на складе за май 2020` с проверкой admissibility для `warehouse` ## 7. Итог Состояние на 2026-04-15 выглядит так: - bounded root-context-only fix — правильный; - inventory rails не надо откатывать; - текущие open issues лежат рядом с ним, а не внутри него; - дальнейшая работа должна идти через изолированные policy/acceptance fixes, а не через очередной общий rewrite follow-up логики.