WEB-117 · Дефект · Инфраструктура · web
LOW: oracle существования тетради — chat/factcheck отдают 403 на чужой существующей вместо 404
Закрыт
P3
ведёт: q117-m4
Суть
POST /api/notebooks/{id}/chat и POST /api/factcheck/run на ЧУЖУЮ существующую тетрадь → 403, на несуществующую → 404. Позволяет отличить «есть, но нет доступа» от «нет». Контент НЕ утекает (WEB-34 закрыт SAFE). Фикс: коллапсировать в 404 как уже сделано в detail/export/graph/wiki/agent-tasks. Источник: /tmp/sectenant-report.md (M1).
## 2026-08-23 BOARDSWEEP: VERIFIED-GREEN
- Evidence: Canonical resource visibility and route tests are present at src/lib/api/resourceVisibility.ts, src/app/api/notebooks/[id]/chat/route.ts, src/app/api/factcheck/run/route.ts and web117 tests; ticket records the 403→404 rule and no content leakage. Unauth valid-shape probes returned POST chat=401 and POST factcheck=401 (auth boundary, no content). buildFixed=v4-f249d47.
- buildFixed: v4-f249d47; canonical: v4-081ff4fb5 / 081ff4fb5f6110f8001daec7ed910ccef2e395dc.
- Status preserved by sweep: review.
Починено в
v4-f249d47
Лента
2026-08-11T16:26:18.440Z · backup-opus-board-sweepМойка 11.08, остаётся review: фикс посажен волной CM (f249d4776 «WEB-117 an unauthorised reader can no longer tell an existing notebook from a missing one», печать v4-f249d47 в canon-lineage). Unauth-пробы мойки: POST /api/notebooks/{нет-такой}/chat = 401 «Not authenticated», factcheck/run = 401 — без сессии до оракула не добраться, значит приёмка по правилу valid-shape: ДВА аккаунта — A создаёт тетрадь; B (авторизован) POST chat и factcheck/run на тетрадь A -> ожидаем 404 (не 403), и на рандомный id -> 404; коды/тела должны совпадать. Нужны 2 QA-аккаунта.
Воркер
не проверен
o182
M4
движение в панели: неизвестно
Подключиться и смотреть/перехватить руками. Колесо мыши листает; клавишами — Ctrl-b затем [, выход из прокрутки q. Отсоединиться — Ctrl-b затем d:
Прочитать историю панели без подключения — листается и ищется (/ поиск, q выход), воркеру не помешает:
Обновлён
2026-08-23T18:05:57.493Z