From 123c17c42e420096a37f41664c71159481554cb6 Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Thu, 18 Jun 2026 20:45:14 -0500 Subject: chore(todo): note face-coverage prefix-collision edge --- todo.org | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/todo.org b/todo.org index 256207c53..3b3d73554 100644 --- a/todo.org +++ b/todo.org @@ -62,7 +62,9 @@ From the 2026-06-15 lint-org sweep. Each needs a human read — these are judgme ** DONE [#C] Reproducible face-coverage generator + coverage diff :feature:solo: CLOSED: [2026-06-18 Thu] -Built: =face-coverage-dump.el= + =face_coverage.py= + =make face-coverage= / =make face-coverage-diff=. Validated by regenerating and diffing against the hand-built worklist (headings identical; only an intro line and one sharper description differ). Compare mode reports newly-covered / newly-present / disappeared / per-tier deltas. +Built: =face-coverage-dump.el= + =face_coverage.py= + =make face-coverage= / =make face-coverage-diff=. Validated by regenerating and diffing against the hand-built worklist (headings identical; only an intro line and one sharper description differ). Compare mode reports newly-covered / newly-present / disappeared / per-tier deltas. Unrecognized faces route by defface source (elpa -> own package bucket, built-in -> emacs-general child), so a newly-loaded package self-buckets. + +Known edge: a new package whose face prefix collides with an existing family name (e.g. =org-modern= faces start with =org=) folds into that family's bucket instead of getting its own, because the family match wins before the source fallback. Fix when it bites: add the package's prefix to =EXTRA_FAMILIES= in =face_coverage.py=. =scripts/theme-studio/face-coverage.org= is hand-regenerated by a throwaway /tmp script each time. Commit a self-contained generator so the worklist regenerates with one command, plus a diff that names what coverage changed between runs. -- cgit v1.2.3