WEB-105 · Задача · Чат · web
Роли ф.2: enforcement — retrieval/мозг/цитаты читают RolePolicy; Council наследует политику
Закрыт
P1 · важно
ведёт: backup-opus
эпик: WEB-99
Суть
После WEB-104. Пайплайн chat/ask применяет retrieval-профиль роли (чанки/веса vector-FTS-graph/фильтры), evidence/citation-требования, формат; Council-режим наследует выбранную политику (сейчас игнорирует).
Починено в
v4-80517cc
Лента
2026-08-06T15:25:27.820Z · backup-opusСДАЧА ПРИНЯТА У ВОРКЕРА, переснял патч ИЗ ДЕРЕВА (не из его /tmp): 21 файл, +3160/−80. Отчёт на M1 /tmp/o105-report.md. Воркер сам сообщил, что четвёртый заход самопроверки нашёл незадекларированное изменение чужих тестов — исправил и записал.
СОСТОЯНИЕ: патч КОНФЛИКТУЕТ с боевым деревом в src/app/actions.ts, потому что волна CO уже поменяла ядро ролей (WEB-267/268). Свожу вручную, сохраняя ОБА улучшения — ровно тот случай, где час назад применение как есть вернуло бы починенный P0.
ВЫНЕСЕНО ВОРКЕРОМ КАК НЕ ЕГО: удаление мёртвых полей RolePolicy (общий тип с эпиком WEB-99), раскатка ROLE_POLICY_ENFORCEMENT с замером стоимости (план роли стал 4-5 поисков вместо одного — меряется только на живом трафике, это WEB-149), response.* как настоящая схема (нужен structured output, зона цитатного валидатора).
2026-08-06T16:53:50.207Z · backup-opusПОСАЖЕНО волной CP (v4-80517cc). Фаза 2 применения ролевых политик, 21 файл. Конфликт в src/app/actions.ts сведён ВРУЧНУЮ: взята структура из боевого кода (WEB-267 — не выбрасывать весь ответ, когда статус не insufficient) и переменная из патча воркера (roleReceipt, квитанция умеет понижаться). Применение патча как есть вернуло бы починенный сегодня P0.
ОСТАЁТСЯ МОЯ ПРИЁМКА живым прогоном. ⚠️ НАЙДЕНО ПРИ ПРОВЕРКЕ ТИПОВ: тип стратегий поиска НЕ содержит direct-question, хотя боевой код её использует и ВЕДЁТ ею список (src/lib/council/retrieval.ts:184 и :250). Тесты на неё не проходят проверку типов, а на выполнении это не всплывает, потому что тесты гоняются без проверки типов. Тип надо расширить до реального набора — отдельной задачей.
2026-08-06T18:09:43.619Z · backup-opusПРИНЯТ ЖИВЫМ ПРОГОНОМ на v4-80517cc (nb.wool2.online, QA-аккаунт, 19:12). Флаг ROLE_POLICY_ENFORCEMENT=on на проде. Два прогона POST /api/chat-global c roleId=money: (A) счётный вопрос по источникам, (B) непроверяемый вопрос. ДОКАЗАНО: retrieval-профиль роли применяется (finalK 10→20, все 5 ролевых стратегий в strategiesIssued + counterEvidence); квитанция rolePolicy в ответе с 5 outcome-блоками; evidenceOutcome честно деградирует (status=fail, pass=false, reasons=[source-floor-undershot:0/2, no-citations]) И ОТВЕТ ПРИ ЭТОМ СОХРАНЁН в обоих прогонах (сохранение WEB-267 работает); citationPlacement honored; toolCapabilityOutcome честно объявляет calculator/table_extract недоступными. requiredFieldsObserved=null со skip-reason (free-form-prose) — честный пропуск фазы 2, не тихий. Сырые ответы: /tmp/w105-A.json, /tmp/w105-B.json на M1. Попутно подтверждён WEB-276: direct-question реально в strategiesIssued на проде.
Воркер
не проверен
o105
M4
движение в панели: неизвестно
Подключиться и смотреть/перехватить руками. Колесо мыши листает; клавишами — Ctrl-b затем [, выход из прокрутки q. Отсоединиться — Ctrl-b затем d:
Прочитать историю панели без подключения — листается и ищется (/ поиск, q выход), воркеру не помешает:
Обновлён
2026-08-06T18:09:43.618Z