Per-client-org sweep: audit client-mokosuite-* repo metadata across client orgs (extends #759) #760

Open
opened 2026-07-06 22:33:52 +00:00 by jmiller · 1 comment
Owner

Coverage gap found by the #759 audit: that audit was scoped to the MokoConsulting org, but the client-mokosuite-* repos (the original ClarksvilleFurs failure class) live in separate per-client orgs (e.g. ClarksvilleFurs/client-mokosuite-clarksvillefurs) and were therefore not covered.

Task

Sweep every client org for client-mokosuite-* (and any other client extension) repos and audit their first-class metadata the same way #759 did:

  1. Enumerate client orgs (from the client list / org admin), and their client-mokosuite-* repos.
  2. For each: GET /repos/{org}/{repo}/metadata → compare extension_type + element_name against the repo's actual Joomla manifest (templateDetails.xml for templates → raw folder name, no tpl_; source/*.xml / install manifest for other types).
  3. Fix mismatches via PUT /repos/{org}/{repo}/metadata (tooling: mokogitea_metadata_update, mcp-mokogitea-api v1.5.0).
  4. Spot-check each corrected repo's bare /updates.xml emits the right (type, element).

Reference resolved case: ClarksvilleFurs/client-mokosuite-clarksvillefurs (was template/tpl_clarksvillefurs; corrected to file/file_mokoonyx_clarksvillefurs).

Also track: MokoSuiteHQ references .../MokoSuiteHQ/updates.xml in its <updateservers> block but the file is absent on main — an update-server gap to resolve.

Refs #759, #752.

https://claude.ai/code/session_01Wsno14cxE49MstXFs9G5KT

Coverage gap found by the #759 audit: that audit was scoped to the **`MokoConsulting`** org, but the **`client-mokosuite-*`** repos (the original ClarksvilleFurs failure class) live in **separate per-client orgs** (e.g. `ClarksvilleFurs/client-mokosuite-clarksvillefurs`) and were therefore **not covered**. ## Task Sweep every client org for `client-mokosuite-*` (and any other client extension) repos and audit their first-class metadata the same way #759 did: 1. Enumerate client orgs (from the client list / org admin), and their `client-mokosuite-*` repos. 2. For each: `GET /repos/{org}/{repo}/metadata` → compare `extension_type` + `element_name` against the repo's actual Joomla manifest (`templateDetails.xml` for templates → raw folder name, no `tpl_`; `source/*.xml` / install manifest for other types). 3. Fix mismatches via `PUT /repos/{org}/{repo}/metadata` (tooling: `mokogitea_metadata_update`, mcp-mokogitea-api v1.5.0). 4. Spot-check each corrected repo's bare `/updates.xml` emits the right `(type, element)`. Reference resolved case: `ClarksvilleFurs/client-mokosuite-clarksvillefurs` (was template/`tpl_clarksvillefurs`; corrected to file/`file_mokoonyx_clarksvillefurs`). Also track: **`MokoSuiteHQ`** references `.../MokoSuiteHQ/updates.xml` in its `<updateservers>` block but the file is absent on `main` — an update-server gap to resolve. Refs #759, #752. https://claude.ai/code/session_01Wsno14cxE49MstXFs9G5KT
Author
Owner

Branch created: feature/760-per-client-org-sweep-audit-client-mokosu

git fetch origin
git checkout feature/760-per-client-org-sweep-audit-client-mokosu
Branch created: [`feature/760-per-client-org-sweep-audit-client-mokosu`](https://git.mokoconsulting.tech/MokoConsulting/MokoGitea-Fork/src/branch/feature/760-per-client-org-sweep-audit-client-mokosu) ```bash git fetch origin git checkout feature/760-per-client-org-sweep-audit-client-mokosu ```
Sign in to join this conversation.