chore(sync): develop → main — MCP chart runAsUser - #426
Merged
Conversation
…corpus (#425) `src/packages/mcp-server/Dockerfile` creates `evolith` at uid 1001, `chown -R evolith:evolith /repo /app`, and declares `USER evolith`. The chart pinned `runAsUser: 1000`, which overrides the image's USER and lands the process on the base image's `node` user. The symptom is remote from the cause and total. `policy.wasm` ships mode 600 owned by 1001, so at uid 1000 the OPA engine gets EACCES: permission denied, open '.../rulesets/opa/policy.wasm' and dispatch requires BOTH the native and OPA engines to allow. OPA erroring fail-closes, so EVERY `tools/call` returns FORBIDDEN: a deployed MCP server that advertises 51 tools and can execute none. Found by running the `core-integration` robot against a live two-cluster stack for the first time — it is excluded from the default RoboSoft list and had never executed. The pod reported `uid=1000(node)` while the file it could not open was owned by `evolith`. `evolith-core-api` and `evolith-agent-runtime` already pin 1001; this chart was the odd one out, which is why only the MCP surface failed. Verified on the live cluster after the change: the pod reports `uid=1001(evolith)` and the wasm is readable. Not in this change, and separate: the same robot found `/core/evaluate` returning 201 with no gates, and `/assistant/converse` 502 on a 401 from the agent-runtime (a key mismatch in my local wiring, not the product). Both still to be run down. Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
📊 Bilingual Coverage ImpactPR Changes
Repository Coverage
✅ Good: All EN changes have ES counterparts. Generated by GitHub Actions |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Brings #425 to
main. Theevolith-mcpchart pinnedrunAsUser: 1000while its image creates and chowns to uid 1001, so the pod ran as a user owning none of its corpus:policy.wasm(mode 600) was unreadable, OPA fail-closed, and everytools/callreturned FORBIDDEN — 51 tools advertised, none executable.evolith-core-apiandevolith-agent-runtimealready pinned 1001; the MCP chart was the odd one out.Found by running the
core-integrationrobot against a live two-cluster stack for the first time, and verified on that cluster after the change.🤖 Generated with Claude Code