Skip to content

I2162 — A released archive, installed, serves a foreign repository over the shared server in CI

Make the install check and the release smoke start a shared server from the installed binary in a fresh repository that is not this one, and stop the smoke from swallowing the launcher's failure.

DONE wave 0 · p1 · implementation profile · parallel safe

Part of architecture-is-enforced — A violated invariant fails a gate, and green means every required check ran.

Objective

Make the install check and the release smoke start a shared server from the installed binary in a fresh repository that is not this one, and stop the smoke from swallowing the launcher's failure.

Why

The release smoke checks the version and init only, and swallows the launcher's failure with majordomus-mcp --help >/dev/null 2>&1 || true (.github/workflows/release.yml:452), while docs/DISTRIBUTION.md describes the smoke as installing the release. scripts/ci/install-check runs majordomus-mcp --standalone --repo $ROOT against this repository (scripts/ci/install-check:176). The suite's adopter cases (test/cases/90_mcp_shared_server.sh, apps/majordomus-cli/tests/external_extension.rs) use the checkout's binary. Nothing starts a shared server from an installed release in a foreign repository. Pack M10 asks for injection into a separate minimal foreign repository. Baseline audit of 2026-10-09 at master 1fb8d6be44, failure gap 9 and drift 9.

Current state

An installed release is proven to print its version and run init, not to serve.

Desired state

install-check, and the release smoke on the published archive, init a temporary foreign repository, start majordomus-mcp without --standalone, run initialize and tools/list over stdio, and read /api/v1/ready and the repository id of the server it started; no smoke step ends in || true.

Scope

  • scripts/ci/install-check
  • .github/workflows/release.yml
  • site/static/install.sh
  • test/cases
  • docs/DISTRIBUTION.md

Dependencies

None. This issue is a root of the graph.

What waits on this

Acceptance criteria

  • The release workflow fails when the installed launcher cannot start, proved by a fixture archive whose launcher exits non-zero
  • install-check starts a shared server from the installed binary in a fresh repository and reads its readiness and a repository id that differs from this repository's
  • No step of the release smoke ends in || true

Validation

  • bin/majordomus plan validate
  • MJ_TEST_JOBS=4 bash test/run.sh 85_installer 87_release_pipeline
  • MJ_TEST_JOBS=4 bash test/run.sh <the case this issue adds>

Evidence required

  • installed_release_serves_foreign_repo_case
  • smoke_fails_on_launcher_failure_case

Evidence

coverstypecommandresultat commit
installed_release_serves_foreign_repo_casetestMJ_TEST_JOBS=2 bash test/run.sh 1024_an_installed_release_serves_a_foreign_repositorytests: 1 passed, 0 failed, 0 skipped (run 2026-10-14 between 07:40Z and 07:58Z on master ce5959db59)ce5959d
smoke_fails_on_launcher_failure_casetestMJ_TEST_JOBS=2 bash test/run.sh 1024_an_installed_release_serves_a_foreign_repositorytests: 1 passed, 0 failed, 0 skipped (run 2026-10-14 between 07:40Z and 07:58Z on master ce5959db59)ce5959d

Timeline

started
2026-10-14T08:02:09Z
verified
—
completed
2026-10-14T08:02:17Z

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/I2162.yaml. Read it back with majordomus plan show I2162.

Searches the titles and descriptions of every page this site publishes.