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
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
| covers | type | command | result | at commit |
|---|---|---|---|---|
| installed_release_serves_foreign_repo_case | test | MJ_TEST_JOBS=2 bash test/run.sh 1024_an_installed_release_serves_a_foreign_repository | tests: 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_case | test | MJ_TEST_JOBS=2 bash test/run.sh 1024_an_installed_release_serves_a_foreign_repository | tests: 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.