From aa5408923061ca12c527d94b099ddbe27d0d40c5 Mon Sep 17 00:00:00 2001 From: Mathias Date: Fri, 2 Oct 2026 16:50:56 +0200 Subject: [PATCH] docs(claude): errors are logged and shown as kinds, and what carries transcript text must be local (ADR-035) Co-Authored-By: Claude Sonnet 5.5 --- CLAUDE.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CLAUDE.md b/CLAUDE.md index 0ab0ffc..bc1a8cd 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -127,6 +127,9 @@ The repo is **green and shipping** — last tag `v0.15.0`. `task check` passes ( implement `uploads.Planner` to declare its own phases. The page tells running / quiet / lost from two timestamps (`alive_at` heartbeat vs `progress_at`) and never shows a percentage that does not come from real counts. **Nothing logged may carry transcript text, words from it, or the spool path.** + Errors reach a log, a row or a page as `errkind.Of(err)` (a kind such as `timeout` or `http_502`), + never `err.Error()`: error text can hold a provider's response body, the spool path or transcript + words (ADR-035 decision 8). Local-only for anything that carries transcript text: `config.IsLocalModel`. `TAPIR_SHOT_DIR=… go test -run TestRenderUploadProgressStatesForReview ./internal/web` renders every state for a screenshot review. **Lint caveat:** `task check` does not fail on lint (#41: the Taskfile `|| echo` swallows