WEB board

всеканоны и докиворкеры↗ iOS↗ Легаси
WEB-180 · Задача · Чат · web

Раунд 4: восемь живых прогонов по манифесту ревизора через приёмочный харнесс (RUN-03 research, ROLE-12 money, ACL revoke, Council receipts)

Закрыт P0 · горит ведёт: backup-opus-harness
Суть
Минимальный ретест раунда 4: (1) derivative privacy; (2) A/B одной тетради; (3) explicit empty; (4) ТОЧНЫЙ ROLE-12 Money (расчёты €73/€88/€15, 0.210MWh, €12+€3, inventory not-fired); (5) ТОЧНЫЙ исходный RUN-03 research (causality+cite) с role receipt/strictEvidenceMode/judge trace/coverage/repair trace в payload; (6) SAFE-05; (7) ACL before→revoke→after; (8) Research+Plan Council с member-level receipts. Использовать существующий приёмочный харнесс (искать в role107-наследии/scripts: ownerQuestionsHarness, QA-ACCEPTANCE). Плюс packaging-дисциплина: serving-verify.bundle РЕАЛЬНО в архиве (в раунде 3 потерялся молча — проверять ls перед tar).
Доказательства
[25.08 ~15:45Z] В очереди СРАЗУ после web293fix (пересборка стенда): 8 живых прогонов идут через тот же приёмочный харнесс — гонять их на битом бандле (cites=0) бессмысленно. Как стенд зелёный по контролю C4-RU-1 — запускаю по манифесту.
[25.08 ~16:48Z] → in_progress: волна web180 на M4 (codex sol xhigh, tmux -L gui, бриф /Users/milamarty/briefs/WEB180-BRIEF.md). 8 живых прогонов на тестовых ключах стенда, спенд-кап $3, результат /Volumes/M4Ext/ops/paidlegs/web180-round4-*/, отчёт WEB180-REPORT.md, маркер WEB180_DONE. Стенд-референс: web293-full-20260825T151110Z (42/50).
[25.08 ~18:00Z] → review: раунд 4 8/8 PASS на ЖИВОМ стенде (127.0.0.1:39093, source 039b3d7b). Все 8 сценариев ревизора: derivative privacy, A/B тетради (42%% оба, recall 1.0), explicit empty (paid=0), ROLE-12 Money (€73/€88/€15, 0.210MWh→210kWh, €12+€3), RUN-03 research, SAFE-05, ACL revoke, Research+Plan Council с member-receipts. Тестовые ключи стенда (.env.keys.v9b 0600, боевые НЕ читались), DB-леджер $0.321, итог консервативно $1.34/$3.00, SPEND-STOP не создавался. serving-verify.bundle проверен в архиве. Результат /Volumes/M4Ext/ops/paidlegs/web180-round4-20260825T170240Z/. Отчёт WEB180-REPORT.md.
[2026-08-25 19:11Z] ЗАКРЫТО: раунд 4 принят до компакта 25.08 — 8/8 живых прогонов по манифесту ревизора через приёмочный харнесс ($1.34 из капа $3), см. хендофф HANDOFF-COMPACT-2026-08-25-EVENING.md и WEB-320. Перевод review→done.
Починено в
a453b16
Лента
2026-08-06T09:53:00.367Z · backup-opus
Разблокировано наполовину: P0-preflight манифеста теперь выполним — сквозная цепочка «коммит→дерево→ассет→байты на проде→живой маркер» заработала сегодня (WEB-257) и даёт ATTESTED одной командой. Остались восемь живых прогонов (R4-01 производная приватность, R4-02 изоляция A/B, R4-03 пустой скоуп, R4-04 Money с нормализацией единиц, R4-05 Research без выдуманных ссылок, R4-06 SAFE таймлайн, R4-07 отзыв ACL с повтором, R4-08 Council) — это ручная работа на проде с подготовкой данных (два аккаунта, источники с разной видимостью, счета за май/июнь), делаю я, не воркер. ГЛАВНЫЙ БЛОКЕР вердикта (утечка через citations[].content) закрыт волной CD и сидит на проде.
2026-08-06T10:07:47.975Z · backup-opus
ЖИВЫЕ ПРОГОНЫ, ЧАСТЬ 1 из 2 — ACL/приватность: 8 из 8 PASS против ПРОДА (serving v4-e7718b5, прод-база через туннель M1:5433). Харнесс и сырой вывод: /tmp/roles-r4-live/ на M1. Прогнано на одноразовых данных (две тестовые учётки browser-tool-smoke, две тетради, два источника), всё снесено в finally. Результаты: R4-01 производная приватность — читатель без доступа получает отредактированную цитату, секретный текст ОТСУТСТВУЕТ во всём payload (проверка по подстроке, не по флагу); R4-01b владелец видит свою цитату (hidden=0); R4-02 запрос двух источников возвращает только доступный; R4-03 пустой скоуп = ноль чтений; R4-03b подделанный id отбрасывается (fail-closed); R4-07a после выдачи доступа ТОТ ЖЕ сохранённый отчёт показывает цитату; R4-07b после отзыва ТОТ ЖЕ отчёт снова редактирует — то есть гейт действительно на ЧТЕНИИ, как требовал ревизор; R4-01c маркер редакции соответствует документированному.
ВАЖНО ПРО МЕТОД: первый прогон дал 6/8, причём провалились именно ПОЛОЖИТЕЛЬНЫЕ контроли (владелец не видел собственную цитату). Разбор показал, что я дал цитате не ту форму — идентичность берётся из raw_payload, а не из верхнеуровневых полей, — из-за чего скрывалось ВСЁ подряд, и «пройденный» приватный тест был ПУСТЫМ. Без положительных контролей я бы отрапортовал зелёное на нерабочем тесте. Форма исправлена, прогон повторён: 8/8 с осмысленными контролями. Это тот же класс ошибки, что мы сегодня ловили в тесте воркера (спай, который ничего не перехватывает) — фиксирую как правило: у каждого запрещающего теста обязан быть положительный контроль.
ОСТАЛОСЬ: часть 2 — четыре сценария качества ответа (R4-04 Money с нормализацией единиц, R4-05 Research без выдуманных ссылок, R4-06 SAFE таймлайн без домысливания, R4-08 Council). Они требуют реальных прогонов чата с подготовленным содержимым (счета за май/июнь и т.д.), это следующий шаг.
2026-08-10T23:55:34.420Z · backup-opus
11.08 триаж: снято с in_progress — воркер-ассайни мёртв ~5-6 дней (orphaned), фактически НЕ в работе. Возвращено в К работе для честного переподхвата. Если покрыто активной нитью — подниму на нить при следующем скане.
Воркер
не проверен r6 M4 движение в панели: неизвестно
Подключиться и смотреть/перехватить руками. Колесо мыши листает; клавишами — Ctrl-b затем [, выход из прокрутки q. Отсоединиться — Ctrl-b затем d:
Прочитать историю панели без подключения — листается и ищется (/ поиск, q выход), воркеру не помешает:
Обновлён
2026-08-25T19:11:21.066Z