I3244 — The generated Dockerfile copies every path crate cargo metadata names, so a new workspace crate needs no edit of the image
Have render.rs read the local path dependencies of the package from `cargo metadata` and emit their manifests in the recipe and dependency stages and their sources in the build stage.
READY wave 0 · p1 · implementation profile · parallel safe
Ready. Every dependency is done, so majordomus plan start I3244 will be accepted.
Objective
Have render.rs read the local path dependencies of the package from `cargo metadata` and emit their manifests in the recipe and dependency stages and their sources in the build stage.
Why
c286#20 (2026-10-17): PR #1309 added majordomus-core and docker-image failed on a missing /src/apps/majordomus-core/Cargo.toml. The convergence plan keeps compute experimental, so this is not an alpha blocker, but it breaks the image the moment the core lands. Sources: chatgpt-majordomus:c286#20.
Current state
render.rs recipe stage: `COPY {pkg}/Cargo.toml {pkg}/Cargo.lock /recipe/in/` for one package; apps/ on master holds only majordomus-cli.
Desired state
A fixture with a second path crate builds the image with no generator edit; generate --check stays green.
Scope
- apps/majordomus-cli/src/deploy/render.rs
- deploy/Dockerfile
- .dockerignore
Out of scope
- Hand edits of deploy/Dockerfile
Dependencies
None. This issue is a root of the graph.
Acceptance criteria
- The rendered Dockerfile names every path crate of the package
- A one-line source edit still leaves the dependency layers cached
- generate --check passes after a crate is added
Validation
- cargo test --manifest-path apps/majordomus-cli/Cargo.toml --lib deploy::
- majordomus generate --check
Evidence required
- path_crates_rendered_test
Evidence
None recorded. Every token above needs a command or an artifact behind it before this issue can be completed; narrative is refused.
Timeline
- started
- —
- verified
- —
- completed
- —
Those three fields, the evidence above and the state of the dependencies are all the status is made of. There is no status field to disagree with them.
Canonical record: .ai/repo/project/issues/I3244.yaml. Read it back with majordomus plan show I3244.