chore: восстановление репозитория из снапшота v0.3.1
Прежняя git-история утрачена при переносе проекта на машину владельца (снапшот без .git). Хэши коммитов в docs/reports/* относятся к утраченной истории. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
commit
1c85091186
184 changed files with 33303 additions and 0 deletions
56
docs/reports/session-8-1.md
Normal file
56
docs/reports/session-8-1.md
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
# Отчёт сессии 9, этап 8.1 (для следующей сессии)
|
||||
|
||||
Дата: 2026-08-06 | Ветка: main | Этап 8.1 (кабинет 2.0) — завершён
|
||||
|
||||
## Что сделано
|
||||
|
||||
1. **Контракты 8.1** в INTERFACES.md + plan-phase-8-1.md; дизайн OAuth
|
||||
VK ID / Яндекс ID — docs/design/oauth-vk-yandex.md (что нужно от
|
||||
владельца: приложения в консолях id.vk.com/business/go и
|
||||
oauth.yandex.ru, ключи в config.php, HTTPS redirect URI; реализация —
|
||||
этап 8.2, ~1 сессия, когда будут ключи).
|
||||
2. **server (подагент)**: api/captcha.php (SVG-капча БЕЗ GD: 5 символов,
|
||||
повороты/шумовые кривые, sha256+expires 10 мин в сессии, одноразовая);
|
||||
register += captcha (порядок: 429→403→422 captcha→422→409→201);
|
||||
api/password-reset/request.php (всегда 200, anti-enumeration; токен
|
||||
bin2hex(32), sha256 в БД, 1 час; mail() со ссылкой; сбой → 503;
|
||||
5/10мин) и confirm.php (200/400/422; 10/10мин); миграция
|
||||
password_resets; config.example.php += base_url/mail_from; тестовый
|
||||
режим GOLEARN_TEST=1 (X-Captcha-Debug, письмо в GOLEARN_TEST_MAIL).
|
||||
3. **web (подагент)**: /account.html — только вход + ссылки «Нет
|
||||
аккаунта? Зарегистрируйтесь» и «Забыли пароль?»; новые страницы
|
||||
/register.html (email, пароль ×2, капча с кнопкой обновления,
|
||||
авто-login → /account) и /password-reset.html (два режима по
|
||||
?token=); sync-client += requestPasswordReset/confirmPasswordReset,
|
||||
register(email, password, captcha); все статусы role=status.
|
||||
4. **Гейты main: 467/467** (+6), 0 warnings, astro build PASS
|
||||
(18 страниц). **smoke.sh: 58 проверок**, прогнан main loop
|
||||
независимо — SMOKE OK (капча, полный цикл reset: письмо→токен→новый
|
||||
пароль→login старым 401/новым 200, 429-е).
|
||||
5. docs/deploy.md += base_url/mail_from и шаг проверки почты (4.1).
|
||||
|
||||
## Отклонения исполнителей (приняты)
|
||||
|
||||
- confirm.php: 422 (пароль <8) проверяется до 400 token_invalid —
|
||||
контракт порядок не фиксировал, оба кода по контракту.
|
||||
- rate_check в register — до проверки заголовка (403-пробы не тратят
|
||||
лимит); запись попытки после заголовка.
|
||||
- Тема письма — сырой UTF-8 без RFC 2047 (риск отображения темы на
|
||||
части MTA; ссылка не страдает) — в PROJECT_STATE.
|
||||
|
||||
## Среда
|
||||
|
||||
- /tmp обнуляется между сессиями: PHP-рантайм (debs в /tmp/debs +
|
||||
/tmp/php-run) пересоздавать; рецепт — в session-8.md. Статический
|
||||
бинарь с dl.static-php.dev не докачивается (обрывы); deb-способ рабочий.
|
||||
- Финальные сообщения подагентов второй раз приходят пустыми/теряются,
|
||||
но «коммить всё» спасает: проверять ветки гитом перед повторной
|
||||
делегацией.
|
||||
|
||||
## Что осталось
|
||||
|
||||
- Этап 8.2 (VK ID / Яндекс ID) — когда владелец получит ключи;
|
||||
дизайн готов.
|
||||
- Ручная приёмка: деплой по docs/deploy.md (включая проверку почты),
|
||||
критерии v1 №2/№3/№5.
|
||||
- Этап 9 (KataGo ONNX) — после приёмки 1–7.
|
||||
Loading…
Add table
Add a link
Reference in a new issue