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
+2 -2
View File
@@ -42,7 +42,7 @@ except ImportError: # pragma: no cover - dependency guidance only
NAME_RE = re.compile(r"^[a-z0-9_-]{1,64}$")
SHA_RE = re.compile(r"^[0-9a-f]{40}$")
TIERS = ("official", "community")
CATEGORIES = ("memory", "desktop", "platform", "web", "tools", "voice", "automation", "models", "other")
CATEGORIES = ("desktop", "memory", "platform", "web", "tools", "voice", "automation", "models", "general")
PLATFORMS = ("linux", "macos", "windows")
CAPABILITY_KEYS = (
"provides_tools",
@@ -127,7 +127,7 @@ def validate_entry(data: object) -> tuple[list[str], list[str]]:
if tier not in TIERS:
errors.append(f"tier {tier!r} must be one of {list(TIERS)}")
category = data.get("category", "other")
category = data.get("category", "desktop")
if category not in CATEGORIES:
errors.append(f"category {category!r} must be one of {list(CATEGORIES)}")