docs(14-06): Phase 14 validation signed off, requirements complete, API coverage confirmed, folded todos closed

- 14-VALIDATION.md: per-task map 14-01-T1 to 14-06-T4, all green, the
  measured coverage, validated, Nyquist-compliant, Wave 0 complete, the
  final --all and --removal results
- REQUIREMENTS.md: INTG-02 and API-08 Complete (JOBS-02, JOBS-03, SRCH-02,
  INTG-01, CLI-05 already were)
- COVERAGE.md: every INTEGRATE row's test confirmed by --named
- fetchguard-guarded-http-client and redacting-slog-handler moved to done
This commit is contained in:
Jakub Zych
2026-10-04 02:47:41 +02:00
parent a1fccd39ad
commit 17b2ef1961
5 changed files with 75 additions and 39 deletions

View File

@@ -0,0 +1,12 @@
---
title: Extend fetchguard into a guarded outbound http.Client (replaces Apparatus RequestSender)
date: 2026-09-28
priority: high
area: summercms.go/fetchguard
---
fetchguard today is a guarded HTTPS GET fetcher. Extend it into a guarded `http.Client` (or a client constructor) that supports POST, PUT, multipart file upload and bearer auth, keeping the dial-time private/reserved IP rejection.
- Replaces `Golem15\Apparatus\Classes\RequestSender` (see `.planning/notes/apparatus-dissolved-into-framework.md`).
- Consumers: feedback `G15OfficeClient` (JSON POST + multipart), golem `AIService`-style adapters (Anthropic/OpenAI-compatible) and the Discogs client.
- Needed before Phase 14 (INTG-01, INTG-02, feedback).

View File

@@ -0,0 +1,12 @@
---
title: Framework slog handler that redacts credentials (port RedactCredentialsTap)
date: 2026-09-28
priority: medium
area: summercms.go logging
---
Port `Golem15\Apparatus\Classes\Logging\RedactCredentialsTap` as a framework `slog.Handler` wrapper: redact attribute keys `api_key`, `apikey`, `authorization`, `bearer`, `password`, `secret`, `token`, `webhook_secret`, `admin_password` (case-insensitive, nested groups), and scrub its message regex patterns.
Also verify whether `surf`'s error path already gives `SafeExceptionResponse` behaviour (generic "Internal server error" outside debug, real message logged); add a small helper only if it does not.
See `.planning/notes/apparatus-dissolved-into-framework.md`.