mirror of
https://github.com/kuhyx/testsAndMisc.git
synced 2026-11-11 21:54:00 +01:00
Registers the new Epopeja character-sheet app (~/epopeja_karta, its own
repo at kuhyx/epopeja_karta) in the shared icon family and lets it run
under focus mode.
The quill-nib glyph and the initial APPS entry already landed in c600760
("Move billsplit Flutter app into the monorepo"), which picked them up
from the working tree while they were still in progress. This commit adds
what was still outstanding:
- phone_focus_mode/config.sh: whitelist com.kuhy.epopeja_karta, without
which focus mode kills it within ~1s at home. Not deployed to the device
yet, so config and phone are out of sync until deploy.sh runs.
- apps.py: correct the epopeja_karta comment. It claimed there was no
desktop target; a linux/ target was since added so the app can be driven
on the desktop during development. linux stays False - the app ships no
desktop entry and gets no hicolor set.
- The evidence and contract artifacts the pre-commit hooks require.
Verified: 44 app_icons tests pass, 100% branch coverage on the package,
safe_box_overflow for quill-nib is (0, 0), and the generated mipmaps show
the nib rather than the stock Flutter icon.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
21 lines
3.3 KiB
JSON
21 lines
3.3 KiB
JSON
{
|
|
"title": "Register the new Epopeja character-sheet app in the shared icon family and the phone focus-mode whitelist",
|
|
"objective": "~/epopeja_karta is a new Flutter app, ported out of a claude.ai session, that still shipped the stock Flutter 'beach' launcher icon -- which per CLAUDE.md means it is not done. It also carries a com.kuhy.* package id, and phone_focus_mode disables any com.kuhy.* package not on its whitelist within about a second at home, so an install would appear to work and then close instantly. Give the app a family icon generated by the shared generator (never a hand-rolled one-off) and add it to the whitelist. Success: `generate --app epopeja_karta --android` writes mipmaps showing the app's own glyph, the glyph is distinguishable from the other eight at 48dp, and the package id is present in config.sh ready for the next deploy.",
|
|
"acceptance_criteria": [
|
|
"The glyph is registered in python_pkg/app_icons/glyphs.py and the app in python_pkg/app_icons/apps.py -- no per-repo copy of the generator and no hand-drawn icon anywhere in ~/epopeja_karta",
|
|
"The accent is the shared family accent #B8862E, not an app-specific colour: apps in this family are distinguished by glyph shape only, as apps.py's own docstring requires",
|
|
"The glyph reads as what it depicts at launcher size and collides with nothing already in the family; the first draft rendered as a map pin and was rejected on exactly that ground",
|
|
"Geometry is inside the family budget: safe_box_overflow returns (0, 0), and every gap between filled regions is at or above MIN_NEGATIVE_SPACE (36px), so nothing merges into a blob at 48dp",
|
|
"The vent hole and slit are true holes via fill-rule=evenodd, because icon_foreground and icon_monochrome render on transparency where a painted hole shows as a blob and in the wrong colour",
|
|
"python_pkg/app_icons keeps 100% branch coverage with zero suppressions, and pre-commit passes on every changed file except hooks failing for pre-existing repo-wide reasons",
|
|
"com.kuhy.epopeja_karta appears in the WHITELIST block of phone_focus_mode/config.sh alongside the other com.kuhy.* productive apps"
|
|
],
|
|
"out_of_scope": [
|
|
"The app itself -- lib/, tests, CI and the Android package rename all live in ~/epopeja_karta, a separate repo, and are not part of this commit",
|
|
"Deploying the whitelist to the phone -- deploy.sh needs the device, which is intentionally not being used this session; config.sh and the device stay out of sync until then",
|
|
"A Linux hicolor icon set or .desktop entry -- the app has a linux/ target purely so it can be driven on the desktop during development, so linux=False",
|
|
"Any change to the shared accent or to another app's glyph"
|
|
],
|
|
"verifier": "PYTHONPATH=~/testsAndMisc python3 -m python_pkg.app_icons list (shows epopeja_karta -> quill-nib #B8862E); preview -o sheet.png and eyeball the nib against the other eight glyphs at all three sizes; python3 -c \"...render.safe_box_overflow(glyphs.get_glyph('quill-nib'), '#B8862E')\" returns (0, 0); generate --app epopeja_karta --android then view android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png; python3 -m coverage run --branch --source=python_pkg/app_icons -m pytest python_pkg/app_icons/tests then coverage report (100%); pre-commit run --files python_pkg/app_icons/glyphs.py python_pkg/app_icons/apps.py phone_focus_mode/config.sh"
|
|
}
|