Nothing from the 2026-08-19 code review now lives only in its plan file. Four new roadmap items, all `candidate`: - csrf-tokens — §4.4. The review recorded a decision to add per-session tokens but never turned it into a task, and security.md still argues the header checks suffice. The item says to settle which of the two stands first. - template-data-typing — §7.1, map[string]any template payloads. - structured-logging — §7.2 and §5.5, log/slog plus the per-package logf aliases. - review-2026-08-followups — the small remainder: backup re-auth, the missing DMARC-service / handler / error-page / corrupted-backup tests, and the nine minor findings (§6.1, §6.2, §6.4, §7.4, §8.6, §9.3, §10.3-10.5) that were never carried into the phase tables. §7.3 (build tags for the /proc reader) is deliberately not carried over: it was declined during the pass, and both documents now say so, so it does not get re-raised at the next review. The plan's status table links each open row to its roadmap item, and the roadmap's recommended-order note points back at the plan. Also unlinked two CHANGELOG references to plan files deleted after those releases shipped; the text stays, the dead links do not. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -336,18 +336,18 @@ SelfPost — зрелый, хорошо структурированный пр
|
||||
| 14 | Ссылки на spec в build/deploy | сделано: `build/`, `deploy/`, миграции, workflow |
|
||||
| 15 | `dmarc-ingest` symlink | не требовалось — уже описан в `architecture.md` |
|
||||
| 16 | Ссылки в roadmap | сделано |
|
||||
| 17 | Типизированные template data structs | **не сделано** |
|
||||
| 18 | Миграция на `log/slog` | **не сделано** |
|
||||
| 17 | Типизированные template data structs | **не сделано** → `template-data-typing` |
|
||||
| 18 | Миграция на `log/slog` | **не сделано** → `structured-logging` |
|
||||
| 19 | Build tags для `machine.go` | отклонено, см. ниже |
|
||||
| 20 | Guide URL → `{{.SourceURL}}` | сделано |
|
||||
| 21 | Тесты DMARC service layer | **не сделано** |
|
||||
| 22 | Тесты хендлеров | **не сделано** |
|
||||
| 21 | Тесты DMARC service layer | **не сделано** → `review-2026-08-followups` |
|
||||
| 22 | Тесты хендлеров | **не сделано** → `review-2026-08-followups` |
|
||||
| 23 | postfix/dmarc injection cases | сделано |
|
||||
| 24 | `validate_email_test` | сделано |
|
||||
| 25 | Тесты error pages / битого бэкапа | **не сделано** |
|
||||
| 25 | Тесты error pages / битого бэкапа | **не сделано** → `review-2026-08-followups` |
|
||||
| 26 | CSP `unsafe-inline` | не требовалось — директивы в CSP нет |
|
||||
| 27 | bcrypt cost 12 | сделано, включая setup-аккаунт (`auth.BcryptCost`) |
|
||||
| 28 | Re-auth перед бэкапом | **не сделано** |
|
||||
| 28 | Re-auth перед бэкапом | **не сделано** → `review-2026-08-followups` |
|
||||
| 29 | Accessibility help drawer | сделано |
|
||||
| 30 | Ограничение `postqueue -p` | сделано: таймаут 5 с + лимит вывода 4 МиБ |
|
||||
| 31 | `internal/configsafe` | сделано |
|
||||
@@ -361,9 +361,25 @@ SelfPost — зрелый, хорошо структурированный пр
|
||||
|
||||
**Открытый вопрос.** §4.4: решение «добавить per-session CSRF-токен» записано,
|
||||
но задачи под него в таблицах фаз нет, и токенов в коде нет. Нужно либо
|
||||
завести задачу, либо вернуть §4.4 в статус осознанного компромисса.
|
||||
реализовать токены, либо вернуть §4.4 в статус осознанного компромисса и
|
||||
оставить это решение в одном месте — в `security.md`.
|
||||
|
||||
**Вне фазовых таблиц** (в план не переносились и не делались): §5.5, §6.1,
|
||||
§6.2, §6.4, §7.4, §8.6, §10.3, §10.4, §10.5, а также §9.3–9.4 сверх задач
|
||||
23–25.
|
||||
|
||||
---
|
||||
|
||||
## Что перенесено в roadmap
|
||||
|
||||
Всё незакрытое заведено в [roadmap.md](../roadmap.md) — этот файл больше не
|
||||
единственное место, где живут остатки:
|
||||
|
||||
| Пункт плана | Элемент roadmap |
|
||||
|---|---|
|
||||
| §4.4 CSRF-токен | [csrf-tokens](../roadmap.md#csrf-tokens) |
|
||||
| Задача 17 (§7.1) | [template-data-typing](../roadmap.md#template-data-typing) |
|
||||
| Задача 18 (§7.2), §5.5 | [structured-logging](../roadmap.md#structured-logging) |
|
||||
| Задачи 21, 22, 25, 28 и §6.1, §6.2, §6.4, §7.4, §8.6, §9.3, §10.3–10.5 | [review-2026-08-followups](../roadmap.md#review-2026-08-followups) |
|
||||
| Задача 19 (§7.3) | не переносится — отклонено, обоснование выше |
|
||||
|
||||
|
||||
Reference in New Issue
Block a user