Files
felhom-controller/REPORT.md
T

45 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# REPORT — docs: REUSE.md introduced (cross-repo reuse map)
**Date:** 2026-07-03 · **Class:** docs-only (no code change, no version bump, no deploy)
**Baseline:** `main` @ `d0c70a7da6f4060422a545cea2396f9df5f7d61f` (v0.98.3)
## What was done
- **`REUSE.md`** created at the repo root (210 lines): the curated reuse map — canonical helpers
(62 rows across 9 domains), canonical patterns (10), dangerous lookalikes (8), test seams +
cross-repo edges, extension points, and observed duplication (12 clusters, recorded NOT fixed).
- Sourced from a full code sweep (1174 non-test `func` declarations scanned; call-site counts +
body reads per candidate; mandatory trap sweep over `--delete`/`os.RemoveAll`/`mkfs`/etc.).
Every entry cites file + symbol, verified in code — not copied from README/docs.
- **`CLAUDE.md`**: two hook lines added — "See `REUSE.md` before writing new code" (read-first
pointers) and end-of-session checklist item 7 (update REUSE.md in the same commit as a shared
helper change). No other CLAUDE.md edits.
- `CHANGELOG.md` entry (no version number) + `CONTEXT.md` note.
## Verification
`python felhom.eu/scripts/reuse_refs_check.py e:/git/felhom-controller`
`OK [felhom-controller]: 65 cited paths, all exist` (the check caught and fixed one wrong citation:
the template/emoji gate scripts live at `controller/scripts/`, not `scripts/`).
## Notable traps recorded (§3 highlights)
`rsyncMirror` (`--delete`, tier-2 only) vs `rsyncCopy`; raw `os.RemoveAll` vs the
`ProtectedHDDPaths`-gated delete path; fresh `agentapi.New` per request (the v0.74.0 conn-leak
incident); `timeAgo` on string timestamps; `DumpAppVolumes` on a running DB app;
no-timeout `composeExec` for new long-running calls.
## Observations (NOT acted on)
- Atomic-write helper exists ×4 (+1 inline) with differing semantics; two of them have a deliberate
NON-atomic bind-mount fallback — a convergence candidate needs care.
- `util.TruncateStr` (rune-safe) has 1 caller while the byte-based `stacks.truncateStr` twin is the
widely used one.
- 5 JSON writers / 3 envelope shapes; 6 dir-size implementations; 2 CSRF implementations
(intentional but unlabeled). Full list in REUSE.md §6.
- CLAUDE.md "Workspace layout" lists ~7 internal packages; code has ~30. Its bare-metal
`/opt/docker` deploy steps are superseded by the 9201 bootstrap mechanism (already flagged
in-file). A CLAUDE.md refresh is a separate task.
Cross-repo summary + full sweep counts: `felhom.eu/REPORT.md`.