app_icons: home_inventory has a Linux desktop target
Some checks are pending
Pre-commit checks / pre-commit (push) Waiting to run
Python tests / test (push) Waiting to run
Shell tests / shell-tests (push) Waiting to run
Shell tests / arch-tests (push) Waiting to run

Its desktop app is a Chrome wrapper around the Flutter web build, and it
ships a .desktop entry plus a hicolor icon theme -- so it genuinely has a
Linux target. With linux=False, `generate --linux-out` skipped it silently
and reported success, which meant desktop/icons/ in that repo could not be
regenerated at all.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Krzysztof Rudnicki 2026-07-27 11:26:26 +02:00
parent 45f4311993
commit 0fc3788d7a
2 changed files with 38 additions and 1 deletions

View File

@ -0,0 +1,37 @@
{
"intent": "Let `app_icons generate --linux-out` emit hicolor PNGs for home_inventory, so its .desktop entry and launcher icon can be regenerated instead of being hand-kept.",
"scope": [
"python_pkg/app_icons/apps.py — the home_inventory registry entry only",
"Non-goal: no change to glyphs, palette, sizes or the CLI surface",
"Consumer: ~/home_inventory/desktop/{icons,install_desktop_entry.sh}"
],
"changes": [
"home_inventory: linux=False -> linux=True. Its desktop app is a Chrome-wrapper around the Flutter web build and ships a .desktop entry + hicolor icon theme, so it genuinely has a Linux target; with the flag false cli.py skipped --linux-out for it silently, emitting nothing and reporting success.",
"No test change needed: test_cli.py's linux-out test asserts over todo (linux=True) and dufs_client (linux=False), neither of which this touches."
],
"verification": [
{
"command": "PYTHONPATH=. python3 -m pytest python_pkg/app_icons/tests -q --cov=python_pkg.app_icons --cov-branch",
"result": "pass",
"evidence": "43 passed; every app_icons module at 100% line and branch coverage"
},
{
"command": "PYTHONPATH=. python3 -m python_pkg.app_icons generate --app home_inventory --linux-out ~/home_inventory/desktop/icons",
"result": "pass",
"evidence": "wrote 6 asset files + 8 hicolor PNGs (16..512); before this change the second line was absent"
},
{
"command": "bash ~/home_inventory/desktop/install_desktop_entry.sh",
"result": "pass",
"evidence": "installed home-inventory.png into ~/.local/share/icons/hicolor and home-inventory.desktop into ~/.local/share/applications"
}
],
"risks": [
"Running `generate --linux-out <dir>` with no --app now also writes home_inventory PNGs into that directory; harmless, since icon_name namespaces the files (home-inventory.png).",
"The generated PNGs live in the consuming repo, not here, so a palette change there needs a regenerate step in that repo."
],
"rollback": [
"Set linux=False on the home_inventory AppIcon entry and re-run the app_icons test suite.",
"After rollback, ~/home_inventory/desktop/icons is stale-but-valid: the committed PNGs keep working, only regeneration stops."
]
}

View File

@ -103,7 +103,7 @@ APPS: Final[dict[str, AppIcon]] = {
accent="#B8862E",
glyph="storage-box",
icon_name="home-inventory",
linux=False,
linux=True,
),
)
}