testsAndMisc/docs
Krzysztof kuhy Rudnicki e971bf73bb Add focus_owner and a padlock-closed glyph to the icon family
focus_owner (com.kuhy.focus_owner, the Device Owner enforcer) was the one
Flutter app never registered with the shared generator. It shipped a
hand-written vector adaptive icon added purely to unblock its build — the app
had no icon resource at all and every release AND debug build failed on AAPT
"resource mipmap/ic_launcher not found". That placeholder used #E8EAED, so it
was off-family as well as unregistered.

None of the existing 13 glyphs fits a device-policy enforcer, so this adds
padlock-closed: shackle stroked (inheriting the group's round caps), body
filled in the accent, keyhole punched back out in the field colour. A fully
stroked padlock loses its keyhole at 48dp and a fully filled one loses the
shackle's opening; splitting them keeps both.

Geometry was computed against style.py's constraints rather than eyeballed,
per the lesson recorded on _NOTE_ASCENDER: body 292..732 x 520..792, shackle
centreline r=132 about (512,520) so its outer top is 352 (inside the 232 safe
edge) and its legs land at 380/644, well within the body. The keyhole leaves
60px of body above it and 76px below the stem, both clear of
MIN_NEGATIVE_SPACE=36 — checked by rendering at 48px, where the hole survives.

The repo path points into ~/phone-focus-mode/focus-owner: focus-owner was
absorbed as a subtree on 2026-08-24 and both the standalone clone and its
GitHub repo are gone.

app_icons stays at 100% branch coverage; 44 tests pass.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017KU9czAaz7wAkjyJ5uEB3t
2026-08-24 23:23:28 +02:00
..
explanations Dissolve linux_configuration/scripts/ and single_use/ 2026-08-23 18:53:30 +02:00
superpowers Add focus_owner and a padlock-closed glyph to the icon family 2026-08-24 23:23:28 +02:00
DOCS-agent-harness-evaluation-2026-08-18.md Adopt the four markdown namespaces and gate them 2026-08-24 15:55:46 +02:00
DOCS-app-split-recipes.md Adopt the four markdown namespaces and gate them 2026-08-24 15:55:46 +02:00
DOCS-device-owner-research.md Adopt the four markdown namespaces and gate them 2026-08-24 15:55:46 +02:00
DOCS-dns-filtering-parked.md Adopt the four markdown namespaces and gate them 2026-08-24 15:55:46 +02:00
DOCS-kcov-under-report.md Adopt the four markdown namespaces and gate them 2026-08-24 15:55:46 +02:00
DOCS-python-split-recipes.md Adopt the four markdown namespaces and gate them 2026-08-24 15:55:46 +02:00
DOCS-restructure-live-state.md Adopt the four markdown namespaces and gate them 2026-08-24 15:55:46 +02:00
DOCS-shared-checkout-safety.md Adopt the four markdown namespaces and gate them 2026-08-24 15:55:46 +02:00
DOCS-shell-split-harness.md Adopt the four markdown namespaces and gate them 2026-08-24 15:55:46 +02:00
DOCS-shell-split-recipes.md Adopt the four markdown namespaces and gate them 2026-08-24 15:55:46 +02:00
DOCS-shell-split-verification.md Adopt the four markdown namespaces and gate them 2026-08-24 15:55:46 +02:00
DOCS-syncyomi-restore-runbook.md Adopt the four markdown namespaces and gate them 2026-08-24 15:55:46 +02:00
mcp-shortlist.html docs: add MCP server security-triage shortlist 2026-07-17 19:16:31 +02:00