From 18551f9f360f2aa4972898afceb2ca75bdab61fc Mon Sep 17 00:00:00 2001 From: Davide Scaini Date: Sat, 11 Apr 2026 09:01:34 +0200 Subject: [PATCH] document where feedback is saved --- CLAUDE.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/CLAUDE.md b/CLAUDE.md index f8249e0..f721bea 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -248,6 +248,31 @@ When a user uploads a FIT/GPX/TCX file the server may keep the source in `{user_ For Strava sync, `store_originals=true` causes `POST /api/strava/sync` to save `{"meta":…,"streams":…}` JSON per activity to `{user_dir}/originals/strava/{activity_id}.json`. +## Feedback storage + +User feedback submitted via `/feedback/` is stored as flat files under the instance data root (NOT inside a user's own data dir): + +``` +{data_root}/ + _feedback/ + {handle}.json ← append-only list of submissions for that user + {handle}/ + {timestamp}_{token}_{filename} ← attached images +``` + +Each entry in `{handle}.json`: +```json +{ "id": "1712345678_ab12cd34", "handle": "brut", "submitted_at": "...", "text": "...", "images": ["..."] } +``` + +To read feedback on the VPS: +```bash +cat /var/bincio/data/_feedback/brut.json | python3 -m json.tool +ls /var/bincio/data/_feedback/brut/ # attached images +``` + +There is no admin UI for feedback — it is intentionally read via SSH/shell only. + ## About pages Static public pages at `/about/` (EN), `/about/it/` (IT), `/about/es/` (ES), `/about/ca/` (CA). All use `public={true}` to bypass the auth wall. Each page: