feat(plugins): version subscription (track: tag:vX.Y.Z) + queue-on-drift, no auto-apply #113
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
POST /workspaces/:id/pluginsis a one-shot install. Once a plugin lands in<config_path>/plugins/<name>/, the platform never checks upstream again. If we tag v1.0.2 ofmolecule-skill-five-axis-reviewon Gitea, Reno-Stars (running v1.0.0) keeps running v1.0.0 forever unless someone manually re-installs.We don't want unsolicited auto-updates either (per #2 in this batch — stage/canary required), but we DO want a subscription model: a workspace can opt into following a specific plugin's tagged releases. Then platform-side machinery (poll job, or webhook from Gitea) can stage→canary→fan-out.
Proposed approach
workspace_plugins(or addworkspace_plugin_subscriptions) withtrack: "tag:vX.Y.Z" | "tag:latest" | "sha:abc123" | "none". Defaultnone(current behavior).trackother thannone, store the tracked ref. On a periodic check (cron OR Gitea webhook on tag-create), compare tracked-tag's resolved SHA vs installed SHA; if drift, queue update.GET /admin/plugin-updates-pendingfor operator review (matches the stage→canary→fan-out policy in internal#TBD).POST /admin/plugin-updates/:id/applytriggers the install for the queued update on the listed workspaces; honors hot-reload classifier from #3 if applicable.Acceptance criteria
trackcolumn to relevant table?track=tag:vX.Y.Zparameter (optional)GET /admin/plugin-updates-pendingreturns queued updatesOut of scope
Refs
workspace-server/internal/plugins/github_resolver.go— base for tag resolution