Files
felhom-controller/REPORT.md
T

2.5 KiB
Raw Blame History

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-controllerOK [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.