Skip to content

WI-1078 (I3): ship the Rust vogt-core in the stack image - #1085

Merged
thedancingdeveloper merged 3 commits into
rust-corefrom
wi-1078-i3-stack-image
Oct 17, 2026
Merged

thedancingdeveloper merged 3 commits into
rust-corefrom
wi-1078-i3-stack-image

Conversation

@thedancingdeveloper

Copy link
Copy Markdown
Contributor

Builds vogt-core in engine/Dockerfile's server-build stage and links vogt / vogt-mcp-remote to it. Drops the uv/CORE_IMAGE stages and the venv copy. The entrypoint runs vogt-core init then vogt-core serve --host … --port 8000, with the same health URL. CORE_IMAGE is removed from the bake files, build.yml, e2e.yml, rust-core.yml, the overlays and the smoke script. The root Dockerfile and core-image job stay until I7.

Docs: DEPLOYMENT.md and CUSTOMISATION.md describe the Rust admin CLI that WI-1751 (#1081) landed. It has status, token issue, user create, backup, restore, migrate and project import/register. Still unported: diagnostics, engine status, connect. deploy/stack.compose.yml is unchanged because the port and health URL are the same.

Not done here: the I1 e2e. "Done when the stack image passes the I1 e2e" is deferred to I1 (WI-1076, in review). e2e.yml still fronts the root Python core image.

Size / startup / RSS. The sources are mixed and are not a measurement of this head:

Metric Python Rust Source
Stack image size 9.75 GB 7.55 GB Python: GHCR vogt-stack sha-21c95f6 (CI). Rust: local build at acc8ba6 (pre-rebase), not this head
Cold start to /health/ready 2.6–5.0 s 231–255 ms bare core binaries outside the image
Idle RSS 77.6–77.7 MB 23.4–23.6 MB bare core binaries outside the image

Gates on the rebased head: pytest test_engine_image_core / test_public_delivery / test_release_workflow / test_demo_delivery passed (60). No image build (disk). Cargo check of engine/server/tests/rust_core.rs was not run to completion; CI covers it. Coverage is in-process only, with no deployed topology.

🤖 Generated with Claude Code

sprooty and others added 3 commits October 17, 2026 10:07
The engine image now carries the vogt-core it builds in server-build. The
uv venv stage and the CORE_IMAGE stage that lifted the Python core are
removed, along with the venv copy. vogt, vogt-core and vogt-mcp-remote are
links to the one Rust binary; the entrypoint runs `vogt-core init` and
`vogt-core serve --host … --port …` where it ran the Python CLI. The port
and the health URL are unchanged.

The Rust contract test now checks the engine image builds its own core
rather than detecting a .rust-core marker, and a static test pins the
Dockerfile and entrypoint shape.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Signed-off-by: sprooty <sprooty@sprooty.com>
…-1078)

The stack image builds its own vogt-core, so nothing passes CORE_IMAGE any
more. Remove it from the stack and workbench bake files, the merged-image jobs
in build.yml (and their dependency on the core-image job, which only existed
for the digest), the compose overlays, the smoke script and the rust-core and
e2e workflows.

The core-image job still publishes the root Dockerfile until I7; its comments
no longer say the merged image lifts from it.

Docs: DEPLOYMENT.md now says vogt-core init/serve and lists the Python CLI
commands the stack image does not carry. CUSTOMISATION.md qualifies the
virtualenv path as the Python core image's. ENGINE.md and engine/AGENTS.md no
longer describe a CORE_IMAGE build.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Signed-off-by: sprooty <sprooty@sprooty.com>
WI-1751 ported the admin verbs, so the stack image's vogt carries status,
token issue, user create, backup, restore and project import/register. Only
diagnostics, engine status and connect remain unported.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@thedancingdeveloper
thedancingdeveloper merged commit da6d9b3 into rust-core Oct 17, 2026
10 of 18 checks passed
@thedancingdeveloper
thedancingdeveloper deleted the wi-1078-i3-stack-image branch October 17, 2026 10:30
thedancingdeveloper pushed a commit that referenced this pull request Oct 17, 2026
#1085 added the test without a ledger row, so
every_python_test_has_one_disposition failed on rust-core.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: sprooty <sprooty@sprooty.com>
thedancingdeveloper pushed a commit that referenced this pull request Oct 17, 2026
#1085 added the test without a ledger row, so
every_python_test_has_one_disposition failed on rust-core.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: sprooty <sprooty@sprooty.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant