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
+4 -4
View File
@@ -40,7 +40,7 @@ DEFAULT_CATALOG_DIR = REPO_ROOT / "plugin-catalog"
DEFAULT_OUTPUT_DIR = REPO_ROOT / "website" / "static" / "api"
CATALOG_TIERS = ("official", "community")
CATALOG_CATEGORIES = ("memory", "desktop", "platform", "web", "tools", "voice", "automation", "models", "other")
CATALOG_CATEGORIES = ("desktop", "memory", "platform", "web", "tools", "voice", "automation", "models", "general")
SHA_RE = re.compile(r"^[0-9a-f]{40}$")
@@ -107,10 +107,10 @@ def load_catalog_entries(catalog_dir: Path) -> list[dict]:
if tier not in CATALOG_TIERS:
_log(f"{path.name} ({name}): unknown tier {tier!r}, treating as community")
tier = "community"
category = str(raw.get("category") or "other").strip().lower()
category = str(raw.get("category") or "desktop").strip().lower()
if category not in CATALOG_CATEGORIES:
_log(f"{path.name} ({name}): unknown category {category!r}, treating as other")
category = "other"
_log(f"{path.name} ({name}): unknown category {category!r}, treating as general")
category = "general"
entries.append({
"name": name,