feat(plugin-catalog): default shelf is Desktop, catch-all is General; categorise today's six entries

Teknium's call: most community submissions are Desktop panes, so an entry
without a category lands on the Desktop shelf; "other" becomes "general" for
plugins that genuinely span areas. Shelf order puts Desktop first. The six
entries merged today (pets-all, newswire, auto-titler, live-voice,
metamask-wallet, web-octen) get explicit categories.
This commit is contained in:
teknium1
2026-09-14 20:48:33 -07:00
committed by Teknium
parent 55dbd7f6e1
commit 2de17e5d40
14 changed files with 29 additions and 22 deletions
+3 -3
View File
@@ -141,7 +141,7 @@ def test_main_writes_catalog_and_meta(mod, tmp_path):
catalog = tmp_path / "plugin-catalog"
catalog.mkdir()
_write_entry(catalog, "alpha", tier="official", category="memory")
_write_entry(catalog, "beta") # no category → "other" shelf
_write_entry(catalog, "beta") # no category → default "desktop" shelf
(catalog / "removed.yaml").write_text(
"removed:\n - name: gone\n", encoding="utf-8"
)
@@ -155,8 +155,8 @@ def test_main_writes_catalog_and_meta(mod, tmp_path):
assert [p["name"] for p in plugins] == ["alpha", "beta"]
assert meta["total"] == 2
assert meta["byTier"] == {"official": 1, "community": 1}
assert {p["name"]: p["category"] for p in plugins} == {"alpha": "memory", "beta": "other"}
assert meta["byCategory"] == {"memory": 1, "other": 1}
assert {p["name"]: p["category"] for p in plugins} == {"alpha": "memory", "beta": "desktop"}
assert meta["byCategory"] == {"desktop": 1, "memory": 1}
assert meta["removedCount"] == 1
assert meta["generatedAt"]
# The live-refresh document consumed by installed clients: loader-schema entries + the kill list.