feat(updateserver): npm/mcp return N-A instead of Joomla feed; derive platform from metadata [#810 #811] #825

Merged
jmiller merged 1 commits from feature/updateserver-npm-mcp into dev 2026-07-19 02:49:06 +00:00

1 Commits

Author SHA1 Message Date
Moko Consulting 9a8d9bc504 feat(updateserver): npm/mcp return N-A instead of Joomla feed; derive platform from metadata [#810 #811]
Universal: PR Check / Branch Policy (pull_request) Successful in 5s
Universal: PR Check / Require Docs Update (pull_request) Has been skipped
Universal: PR Check / Wiki Update Reminder (pull_request) Has been skipped
Generic: Project CI / Tests (pull_request) Successful in 36s
Generic: Project CI / Lint & Validate (pull_request) Successful in 39s
Universal: PR Check / Validate PR (pull_request) Successful in 11s
Universal: PR Check / Secret Scan (pull_request) Successful in 53s
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
Branch Cleanup / Delete merged branch (pull_request) Failing after 5m10s
RC Revert / Rename rc/ back to dev/ (pull_request) Failing after 7m39s
#810: The update-feed handlers no longer fall back to a Joomla feed for
unset or feedless platforms. Every Serve* handler now gates positively on
its own platform constant, so npm/mcp (and any unrecognized platform)
return NotFound instead of an (empty) Joomla updates.xml. Added npm/mcp as
recognized platform constants and an IsFeedlessPlatform helper.

#811: The effective update-stream platform (RepoUpdatePlatform) is now
resolved via ResolvePlatform(cfgPlatform, metadataPlatform): an explicit
update-stream config platform wins; otherwise it derives from the repo
metadata platform (metadata.platform); only when neither is set does it
fall back to "joomla". This stops the update-stream store and the repo
metadata store from drifting and removes the "empty => joomla" fallback
at its root (services/context/repo_public_feed.go and repo.go).

No schema/migration required: UpdateStreamConfig.Platform is a plain string
column with no DB-level enum/CHECK constraint, so npm/mcp are enforced at
the application layer only.

Authored-by: Moko Consulting
2026-07-18 21:07:28 -05:00