Skip to content

Two-machine manifest, bootstrap, and reconcile smoke #95

Description

@BramVR

Parent: #70

What to build

Add a two-machine smoke for the actual CodeMesh control-plane loop: machine identity, manifest entry files, bootstrap, hydration, and reconcile drift.

Use two isolated CodeMesh homes on the same host as the default fixture. Optionally allow a live GitHub manifest remote once the live lane is ready.

Acceptance criteria

  • The smoke creates Machine A and Machine B with separate CODEMESH_HOME, HOME, git config, machine ids, and workspace roots.
  • Machine A registers a project and writes the expected manifest entry state.
  • Machine B bootstraps from the manifest without cloning unrelated projects by default.
  • Machine B hydrates one selected project and records provenance for remote, base, desired path, and machine id.
  • Reconcile detects at least one deliberate drift case and prints a dry-run plan before any mutation.
  • The case proves no source checkout from Machine A is reused by Machine B.
  • The report includes both machine ids, manifest location, hydrated project id, drift summary, and cleanup status.

Blocked by

Cost guardrail

  • Must stay free by default: two-machine smoke uses two isolated local CodeMesh homes on one host. Any live manifest remote uses public GitHub over HTTPS and SKIPs on unavailable free prerequisites.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions