WEB board

всеканоны и докиворкеры↗ iOS↗ Легаси
WEB-067 · Дефект · Чат · web

Фактчек на проде: 0 видимых подтверждений на тривиально истинном утверждении — судья фильтрует всё в neutral/omitted

Закрыт P1 · важно ведёт: backup-opus
Суть
## Найдено 20.08 ~22:40 волной fcsources (прогон cmt1u2bx401dx144pp8s5xa9b, «The Eiffel Tower is located in Paris, France», mode standard, allowExternal)
Видимых evidence в отчёте: 0. Google FactCheck: 3 строки трейса, все neutral/omitted, ClaimReview-матчи отвергнуты reviewed-claim-mismatch. Wikipedia: 5 строк, все neutral/omitted после LLM-judge fallback. Crossref/SemScholar: routed-out для entity-клейма (by design). CSE: 403 нет доступа к Custom Search API (давняя история «CSE не выдаётся»). Jina/Bing/SearXNG/Tavily: без ключей/не экспонированы контрактом. Perplexity/RAG: упали (см. тикет про accounting).
Итог: «серьёзная работа с множеством ссылок в PDF» на проде сейчас НЕ выполняется — для очевидного факта отчёт пуст.ربят два корня: (а) упавшие источники (accounting/CSE), (б) агрессивный судья, фильтрующий даже валидные wiki-свидетельства. Проверить судью на записанных трейсах этого прогона (5 wiki-строк — почему neutral?). Сырьё: M4 qa-screens/run.json + export. Связки: WEB-272 (маркеры-сироты — в ЭТОМ прогоне сирот нет), WEB-3 (15 улучшений в review), WEB-291 (потеря фиксов при переключении линии).

## 21.08 ~12:40 СДЕЛАНО: коммит 01eeeb1e — улика, которую биндер не смог разобрать, больше НЕ стирает клейм, под который её предложили. Это и был корень «0 подтверждений на очевидном факте».
Ветка archp0/fcsrc2/migfix от посадки-30 (23e0b944), worktree на A1. Отчёты: ~/waves/ARCHP0-REPORT.md, FCSRC2-REPORT.md, MIGFIX-REPORT.md.

## 21.08 — ВЫЕХАЛО НА ПРОД
**Посадка 30 состоялась 21.08 03:53 IST.** serving = `v4-504af77f`, релиз `arm64-504af77f-20260821T025311Z`, артефакт sha `a0afc41415db60377aeb4cf399d91b98a4c407217fc8839b0b1369a2542af362`, аттестация v18. Проверено после переключения: `active`, `NRestarts=0`, `paidReady=true`, `posture=enforce_ready`, `mode=enforce`, `failures=[]`, фатальных строк boot-контракта **0**, секрет сторожа файл≡процесс (`cbabe4a2b16008e3`), nft переприменены, канон проштампован (`CANON.json: serving=504af77f marker=v4-504af77f`).
Проверка байтов релиза и живая проба выполнены после переключения; подробный трейл посадки — в WEB-282.

## 23.08 — ЖИВОЕ доказательство дефекта резолюции (из fcbattery R2 controls)
- На serving 26116cff простые контроли фактчека дают unknown вместо supported/refuted:
  - control-true-eiffel-completed-1889 → unknown/insufficient_evidence (runId cmt536lv801pe1j3c2hu66b5p)
  - control-true-liberty-france → unknown/single_source (cmt537h1101qt1j3ce6v74dm0)
  - control-false-eiffel-1999 → unknown/semantic_role_mismatch (cmt5388be01sa1j3c8nhkopxs)
  - control-false-liberty-canada → unknown/semantic_role_mismatch (cmt53921p01ui1j3c7umveoge)
- Причины по reason-кодам: недобор источников (single_source/insufficient_evidence) + semantic_role_mismatch на отрицаниях. После посадок 30/31 источники должны были ожить — не полностью. Корень копать: searxng/провайдеры доезжают? судья роль-матч на negation.
- Сырьё: M4 ~/work/fcbattery-r2c-* (ledger/raw-runs/raw-exports).

## 2026-08-23 20:50 UTC — ФИКС ГОТОВ (WEB067_FIX_READY)
Корень найден ДВОЙНОЙ: (1) pipeline при недоступном/упавшем judge гасил ВСЕ строки в Neutral (fallbackMode neutral, llmJudge:697-709) — корректный fail-closed для LLM трактовался как потеря уже извлечённого ДОСЛОВНОГО подтверждения; (2) claimReviewMatch использовал exact-hash нормализованной строки как identity И relevance сразу → парафразы того же факта отвергались reviewed-claim-mismatch. Фикс: literal-support admission для дословных подтверждений при fallback + разделение hash-identity от assertion-сравнения через argument-role/grounding binder; NEGATION GUARD («NOT located in Paris» не станет Support), чужой субъект/Лондон/роль — отвергаются. Контракты провайдеров не тронуты (не конфликтует с web068). 35/35 тестов, tsc rc=0. Патч спасён (71b5c4db…). Кандидат посадки 35.


## 2026-08-23 23:55 UTC — живое подтверждение обоих корней в PDF owner (cmt5ui8sw005zeaf0lz3c3ovx)
Тверждение 01 «Эйфелева башня в Париже»: 8 фрагментов, 6 из них ДОСЛОВНО «Эйфелева башня действительно находится в Париже» — но ВСЕ со stance «нейтрально» (judge-starvation, корень №1) → вердикт «не встановлено» при полностью подтверждающих цитатах; self-check 0/4 gates. Плюс противоречивая подпись «Одні джерела — за, інші — проти» при нуле противоречащих. Тверждение 02: «роли участников не совпадают» (корень №2, role-binder) + К НЕМУ ПРИКЛЕЕНА цитата про ЖЕЛЕЗНОДОРОЖНЫЙ МОСТ ЧЕРЕЗ ЕНИСЕЙ — нерелевантный evidence attach. Фикс web067 (71b5c4db…) целит ровно в оба корня — приоритет посадки 35; после неё ждём «в Париже»=підтверджено, «1999»=спростовано (с живым вебом).


## 2026-08-24 02:55 UTC — 🎉 ЗАДЕПЛОЕНО: посадка 35 (v4-8a29afa79, 1-я попытка, ПЯТАЯ за день)
7 грузов; prisma migrate deploy ДО флипа (применены 3 additive: web094 + догнавшие web097/web300); пин-гейт 7/7 с НОВЫМ SPEND_MIGRATION_SET_SHA256=ae1bf466…; paidReady=true; канон проштампован. ЖИВОЙ ПРУФ ГОЛОС-ЗАБОРА: GET /api/realtime unauth → 401 (был 404), /api/telephony → 404 (закрыт как задумано).


## 2026-08-24 04:45 UTC — повторный owner-прогон (cmt5yh0pd): фикс частично, найдено ДВА новых корня → WEB-067B
Прогон после посадки: судья ЗАРАБОТАЛ (batch 1 клейма 1: 7×Support conf 0.99 + 1 Neutral — сырой journal-лог в тикете-хронике), но: (1) Support гаснет ПОСЛЕ судьи (вердикт «не встановлено», попап «Доказів ще немає») — гасящий пост-judge гейт ищем; (2) supplemental-батчи убиты billing_guard_operation_budget attempts=2 limit=1 — клейм 2 не судился ВООБЩЕ (neutral по сбою). Волна web067b (Luna xhigh) с точными журнальными строками. Плюс заведён WEB-336 (journal-страница нечитаема).


## 2026-08-23 16:17 UTC — WEB-067B сдан (волна A1, Luna xhigh): два корня закрыты кодом
Корни из живого журнала (16:22, запуск cmt5yh0pd): (1) бюджет судьи operation_budget limit=1 резал supplemental-батчи → neutral; (2) Support гас после судьи (fail-closed receipt guard нейтрализовал без validator-run). Фикс: плановый fan-out одной операции claims×chunks×фазы, потолок 64/MAX_FACTCHECK_JUDGE_BATCHES_PER_OPERATION; standard/deep объединены под durable action factcheck.judge; при exhaustion — честный judge_budget_exhausted + judge_not_completed (НЕ insufficient_evidence), lexical fallback запрещён; полный положительный путь Support зафиксирован фикстурой (judge→locative gate→validator receipt→guard pass). Тесты: 3/3+9/9+10/10+3/3+18/18+15/15+14/14+23/23, scoped tsc rc=0. Коммиты 9f45f2414, 1306b3fc9; патч /home/ubuntu/waves/web067b-fix.patch; отчёт WEB067B-FIX-REPORT.md. Ветка от l35 — поедет в посадку 37 вместе с web316c (голос observed).

## 2026-08-23 PDFPOSTQA: NEEDS-PAID — visible evidence scenario requires a fresh factcheck run; not started.

PDFPOSTQA: бесплатные сценарии только; новые paid generation/export/import не запускались. Полный реестр и evidence: /Users/milamarty/work/PDFPOSTQA-REPORT.md; screenshots: /Users/milamarty/work/PDFPOSTQA-SHOTS/.

## 2026-08-23 BOARDSWEEP: STALE-NOT-DEPLOYED
- Evidence: buildFixed is empty. Canonical factcheck resolution/evidence code and WEB067 tests exist, but the ticket still reports zero positive confirmations and requires a paid live control; no paid run sent.
- buildFixed: <empty>; canonical: v4-081ff4fb5 / 081ff4fb5f6110f8001daec7ed910ccef2e395dc.
- Status preserved by sweep: review.
Воркер
не привязан — привязать: curl -X POST https://bugs.wool2.online/api/web/assign -H 'content-type: application/json' \ -d '{"issueId":"WEB-067","session":"<имя tmux-сессии>","host":"m4"}'
Обновлён
2026-08-23T18:29:50.200Z