chore(ops): scripts/update-host-mcp.sh — sync submodule on host-clone update #65

Merged
janpeter merged 1 commit from chore/host-mcp-update-script into main 2026-07-04 17:21:19 +02:00
Owner

Waarom

De host-side stdio-MCP-clone (operator-MCP, draait tsx src/index.ts) wordt handmatig bijgewerkt — de agent-runner-images klonen scrum4me-mcp vers, en de update_*_worker-flows raken deze clone niet aan. Een kale git pull verzet de geregistreerde vendor/scrum4me-shared-pointer maar checkt de submodule-werkboom niet uit, wat:

  1. de tree dirty laat ( M vendor/scrum4me-shared), en
  2. een daaropvolgende prisma:generate het schema uit de oude shared laat bouwen (gen-schema.sh leest de submodule) → stille schema-drift.

(Dit veroorzaakte o.a. de dirty-tree die de redeploy_all-preconditie liet aborten; die flows gebruiken daarom git_fetch i.p.v. git_pull.)

Wat

Een committed scripts/update-host-mcp.sh dat de juiste routine codificeert: git pull --ff-only --recurse-submodules + expliciete git submodule update + npm run prisma:generate, met een reminder dat de stdio-MCP geen hot-reload heeft (herstart/reconnect handmatig). De expliciete --recurse-submodules maakt het onafhankelijk van een lokale submodule.recurse=true-config → overleeft een re-clone.

Op scrum4me-srv is de bestaande host-clone ook al met submodule.recurse=true geconfigureerd (belt-and-suspenders voor kale pulls).

🤖 Generated with Claude Code

## Waarom De host-side **stdio-MCP-clone** (operator-MCP, draait `tsx src/index.ts`) wordt **handmatig** bijgewerkt — de agent-runner-images klonen scrum4me-mcp vers, en de `update_*_worker`-flows raken deze clone niet aan. Een kale `git pull` verzet de geregistreerde `vendor/scrum4me-shared`-pointer maar checkt de submodule-werkboom **niet** uit, wat: 1. de tree dirty laat (` M vendor/scrum4me-shared`), en 2. een daaropvolgende `prisma:generate` het schema uit de **oude** shared laat bouwen (`gen-schema.sh` leest de submodule) → stille schema-drift. (Dit veroorzaakte o.a. de dirty-tree die de `redeploy_all`-preconditie liet aborten; die flows gebruiken daarom `git_fetch` i.p.v. `git_pull`.) ## Wat Een committed `scripts/update-host-mcp.sh` dat de juiste routine codificeert: `git pull --ff-only --recurse-submodules` + expliciete `git submodule update` + `npm run prisma:generate`, met een reminder dat de stdio-MCP **geen hot-reload** heeft (herstart/reconnect handmatig). De **expliciete** `--recurse-submodules` maakt het onafhankelijk van een lokale `submodule.recurse=true`-config → overleeft een re-clone. Op scrum4me-srv is de bestaande host-clone ook al met `submodule.recurse=true` geconfigureerd (belt-and-suspenders voor kale pulls). 🤖 Generated with [Claude Code](https://claude.com/claude-code)
The host-side stdio-MCP clone (operator-MCP, runs `tsx src/index.ts`) is updated
manually — the agent-runner images clone scrum4me-mcp fresh, and the
update_*_worker flows don't touch this clone. A bare `git pull` moves the
recorded vendor/scrum4me-shared pointer but does not check out the submodule
working tree, which (a) leaves the tree dirty (` M vendor/scrum4me-shared`) and
(b) makes a subsequent `prisma:generate` build prisma/schema.prisma from the
STALE shared (gen-schema.sh reads the submodule) — silent schema drift.

This vendors the correct routine as a committed script: `git pull --ff-only
--recurse-submodules` + explicit `git submodule update` + `npm run
prisma:generate`, plus a reminder that the stdio-MCP has no hot-reload. Using the
explicit --recurse-submodules flag means it does not depend on a local
`submodule.recurse=true` config, so it survives a re-clone.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
janpeter/scrum4me-mcp!65
No description provided.