Přeskočit na obsah

Tato stránka byla automaticky přeložena z angličtiny, jediného jazyka, ve kterém se tento web píše. Číst originál.

I3315 — The image smoke completes an MCP initialize on /mcp and a WebSocket upgrade on /events, not only a ready probe

Extend the one image smoke definition so that the container it judges answers a protocol-level MCP initialize on /mcp and upgrades a WebSocket on /events, completes a minimal exchange and closes cleanly, in docker-image.yml and release.yml alike.

PŘIPRAVENO vlna 0 · p2 · profil implementation · bezpečné souběžně

Součást fly-deployment — Image kontejneru je projekcí modelu repozitáře a jeho smoke test je jeho důkazem.

Připraveno. Všechny závislosti jsou hotové, takže majordomus plan start I3315 bude přijato.

Cíl

Extend the one image smoke definition so that the container it judges answers a protocol-level MCP initialize on /mcp and upgrades a WebSocket on /events, completes a minimal exchange and closes cleanly, in docker-image.yml and release.yml alike.

Proč

On 2026-09-06 the owner asked for the deployed MCP and live channel to be smoke tested as protocols, because a proxy or a misbuilt image can answer HTTP 200 while it kills upgrades or speaks no MCP (c042#5). The image is still the deployment published to the container registry, and the hub target (I3195) puts a proxy in front of it; a ready probe proves neither path. Sources: chatgpt-majordomus:c042#5.

Aktuální stav

Verified on master 707a04c7ce8: .github/actions/image-smoke/action.yml checks that the image runs unprivileged, carries no Rust toolchain, answers /api/v1/ready with capabilities and objects, and names its commit on /api/v1/live. Nothing in it calls /mcp (http/mcp.rs PATH) or upgrades /events (http/events.rs PATH). The only raw WebSocket upgrade in the suite is test/cases/100_execution_plane.sh against a local server, not the image.

Cílový stav

The image smoke sends an MCP initialize and one read (tools/list) and asserts a protocol answer with the image's server info, opens a WebSocket on /events, reads the first frame the protocol promises and closes cleanly; any failure names the step. Whether the probe goes through the published port or from inside the container is decided by what ADR 0126 (proposed) admits for an unauthenticated caller, read from the deployment object, not assumed.

Rozsah

  • .github/actions/image-smoke
  • docs/DISTRIBUTION.md

Mimo rozsah

  • Deploying to a hosting provider
  • Authenticating a remote caller (proposed in ADR 0126)
  • Smoke of a deployed URL

Závislosti

Žádné. Tento úkol je kořenem grafu.

Kritéria přijetí

  • An image whose /mcp answers HTTP 200 with a non-MCP body fails the smoke, naming the MCP step
  • An image that refuses the WebSocket upgrade on /events fails the smoke, naming the upgrade step
  • A good image passes in docker-image.yml and release.yml through the same action, with no second definition
  • The smoke adds no network access beyond the container it started

Validace

  • majordomus deploy check
  • bash test/run.sh 86_deployment_projections

Požadované důkazy

  • image_smoke_speaks_mcp_case
  • image_smoke_upgrades_websocket_case

Důkazy

Nic nezaznamenáno. Za každým tokenem výše musí stát příkaz nebo artefakt, než lze tento úkol dokončit; vyprávění se odmítá.

Časová osa

zahájeno
—
ověřeno
—
dokončeno
—

Tato tři pole, důkazy výše a stav závislostí jsou vše, z čeho se stav skládá. Neexistuje žádné pole stavu, které by s nimi mohlo být v rozporu.

Canonical record: .ai/repo/project/issues/I3315.yaml. Read it back with majordomus plan show I3315.

Prohledává názvy a popisy všech stránek, které tento web publikuje.