Skip to content

refactor(agentgateway-mcp): build only from this lab's own directory - #10

Open
JonZeolla wants to merge 1 commit into
mainfrom
independent-agentgateway-lab
Open

refactor(agentgateway-mcp): build only from this lab's own directory#10
JonZeolla wants to merge 1 commit into
mainfrom
independent-agentgateway-lab

Conversation

@JonZeolla

@JonZeolla JonZeolla commented Aug 31, 2026

Copy link
Copy Markdown
Member

What

labs/agentgateway-mcp/compose.yaml built its mcp-get-started service from context: ../mcp-get-started. Editing the mcp-get-started lab therefore changed what the agentgateway lab runs, and a reader could not clone one lab on its own.

This lab now ships its own server.py and Dockerfile.get-started, and Dockerfile is renamed to the explicit Dockerfile.tickets. Both services build from context: ..

Why

The two labs had already drifted. mcp-get-started's Dockerfile grew a HEALTHCHECK for docker compose up --wait; the agentgateway lab does not use --wait, and the healthcheck puts a health status in the docker compose ps STATUS column that workshop shows, so its captured output no longer matched what a reader saw.

The copy is deliberate and is commented as such in compose.yaml. Independence between labs is worth one duplicated 30-line file.

Testing

Ran the stack end to end on this branch:

  • docker compose up -d --build then docker compose ps — image names (agentgateway-mcp-mcp-get-started, agentgateway-mcp-tickets), COMMAND and STATUS columns match the workshop's captured output exactly.
  • 01-passthrough.yamlclient.py lists add and shout; add 20260825 101 -> 20260926.
  • 03-multiplexed.yaml — all four prefixed tools list; tickets_list_tickets returns both tickets.
  • 04-controlled.yamltickets_close_ticket absent from the listing and refused with 400 when called by name.
  • docker compose down clean.

No workshop prose or captured output needs to change for this.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Y5qAfTpr6kEW1Yo4WqGor9

PR Description from Zenable

Makes the agentgateway-mcp lab fully self-contained by copying server.py and adding a new Dockerfile.get-started locally, rather than building from ../mcp-get-started. The existing Dockerfile is renamed to Dockerfile.tickets, and both services in compose.yaml now build from context: ..

  • The two labs had drifted: mcp-get-started gained a HEALTHCHECK that pollutes docker compose ps STATUS output in the workshop's captured screenshots
  • The copy is intentional and commented in compose.yaml; lab independence is worth one duplicated 30-line file
  • No workshop prose or captured output needs to change

The compose file built its `mcp-get-started` service from
`context: ../mcp-get-started`, so editing that lab changed what this one
runs. It had already drifted: the other lab's Dockerfile grew a
HEALTHCHECK, which puts a health status in the `docker compose ps` STATUS
column this workshop shows.

Ship this lab's own `server.py` and a Dockerfile for it, and give tickets
an explicitly named one. Every lab now builds from its own directory, so
a reader can clone one lab and have everything it needs.

Ran 01-passthrough, 03-multiplexed and 04-controlled end to end: image
names, `docker compose ps`, the tool listings and the refusal all match
the captured output in the workshop unchanged.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y5qAfTpr6kEW1Yo4WqGor9

@ai-coding-guardrails ai-coding-guardrails Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice work! 😎

I didn't find anything of concern

Risk: 🟢 Low

Reviewed with 🤟 by Zenable

@ai-coding-guardrails ai-coding-guardrails Bot added the zenable/risk:low Zenable assessed this PR as LOW risk. label Aug 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

zenable/risk:low Zenable assessed this PR as LOW risk.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant