From 0fc3788d7acb7f843cdce5a014eff1a22d878d9d Mon Sep 17 00:00:00 2001 From: Krzysztof kuhy Rudnicki Date: Mon, 27 Jul 2026 11:26:26 +0200 Subject: [PATCH] app_icons: home_inventory has a Linux desktop target 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) --- ...icons-home-inventory-linux-2026-07-27.json | 37 +++++++++++++++++++ python_pkg/app_icons/apps.py | 2 +- 2 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 docs/superpowers/evidence/app-icons-home-inventory-linux-2026-07-27.json diff --git a/docs/superpowers/evidence/app-icons-home-inventory-linux-2026-07-27.json b/docs/superpowers/evidence/app-icons-home-inventory-linux-2026-07-27.json new file mode 100644 index 00000000..5320c5e2 --- /dev/null +++ b/docs/superpowers/evidence/app-icons-home-inventory-linux-2026-07-27.json @@ -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 ` 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." + ] +} diff --git a/python_pkg/app_icons/apps.py b/python_pkg/app_icons/apps.py index 14938fdb..bda57212 100644 --- a/python_pkg/app_icons/apps.py +++ b/python_pkg/app_icons/apps.py @@ -103,7 +103,7 @@ APPS: Final[dict[str, AppIcon]] = { accent="#B8862E", glyph="storage-box", icon_name="home-inventory", - linux=False, + linux=True, ), ) }