Skip to content

release: Ship the Steward team file inside the release archive (#4) - #8

Merged
immakermatty merged 2 commits into
mainfrom
lazurio/ship-steward-team-in-archive
Sep 30, 2026
Merged

immakermatty merged 2 commits into
mainfrom
lazurio/ship-steward-team-in-archive

Conversation

@immakermatty

@immakermatty immakermatty commented Sep 30, 2026 •

Copy link
Copy Markdown

Status: ready for review

Why

The Steward preset in LazurioPlatform (decision F27, merged in Lazurio/LazurioPlatform#106) declares that an Automated Environment imports its bot team from the installed Lazurio MausBot release. Machines installs only the release archive (HumanAndMachine-ai/Machines#271, merged), so the team file must be inside it. Plan DEV-6632, issue #4.

What changes

  • scripts/lazurio-release-archive.sh copies lazurio/teams/ into the generated npm package and adds lazurio to that package's files list before npm pack. Upstream's build-npm-package.mjs and package.json stay untouched.
  • The smoke test requires package/lazurio/teams/steward.openmaus.json and parses it as JSON.
  • The runbook archive layout and LAZURIO.md say where the file is.
  • The release contract test pins these invariants: the team file exists and parses; it is copied and listed after upstream's build and before npm pack; the smoke test requires and parses it; and upstream's build script and source package.json do not mention it (review feedback).

What does not change

Server code, the release workflow and the four assets Machines verifies stay as they were. The package gains one extra JSON file.

Verification

  • A local build scripts/lazurio-release-archive.sh 0.1.91-lazurio.0 /tmp/... exits 0, and its smoke test passes: health, version, and OMB_DEFAULT_BOT_CWD. The resulting tarball lists package/lazurio/teams/steward.openmaus.json.
  • The release contract test passes (6/6). The new test fails (5/6) against the archive script on main. shellcheck is clean.

🤖 Generated with Claude Code

The Steward preset (LazurioPlatform decision F27) imports the team from the
installed release, and an Environment has no copy of this repository. The
archive now carries package/lazurio/teams/steward.openmaus.json. It is
added to the generated npm package and its files list only, so upstream's
build script and package.json stay untouched. The smoke test requires the
file and checks that it parses as JSON. Closes #4.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@agentrozjedemeai agentrozjedemeai left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@immakermatty — exact-head review of 6e98c07 (base 282dd08).

P2 / acceptance gap: #4 explicitly requires the Steward team file to be covered by BOTH the release contract test and the archive smoke test. The archive smoke in scripts/lazurio-release-archive.sh:89-93 does require and parse it, but scripts/lazurio-release-contract.node-test.mjs:53-76 is unchanged and contains no assertion for the team path, copy into release/npm, files-list inclusion, or the smoke requirement. Its 5/5 green result therefore does not cover this new release contract. Please add focused contract assertions for the packaging and smoke invariants, preserving upstream's build script and source package.json unchanged.

Independent evidence: git diff --check passes; the release contract test passes 5/5 and shellcheck is clean. The green exact-head CI run 36655457588 produced an archive containing package/lazurio/teams/steward.openmaus.json, byte-identical to the tracked JSON and listed in the generated package.json files. This is a missing required regression guard, not a claim that the current archive omits the file. No repository changes, merge, or release performed.

The contract test now pins what issue #4 asks of the archive: the team file
exists and parses, it is copied into release/npm and added to the generated
package's files list after upstream's build and before npm pack, the smoke
test requires and parses it inside the package, and upstream's build script
and source package.json stay untouched. It fails against the archive script
of main.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@agentrozjedemeai agentrozjedemeai left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@immakermatty — exact-head re-review of 32774f1 (base 282dd08): APPROVED. The new contract test covers the tracked, parseable Steward team JSON, packaging after the upstream build and before npm pack, inclusion in the generated files list, smoke requirement and parsing, and no lazurio/teams references in the upstream build script or source package.json. Independent local test: 6/6 pass on this head; the new test fails as intended with main’s archive script (5/6). git diff --check and shellcheck pass. Exact-head Fork CI is green (six successful jobs, Macroscope skipped); the Archive linux-x64 artifact contains package/lazurio/teams/steward.openmaus.json, byte-identical to the tracked file, and the generated package lists lazurio. Zero unresolved review threads; no competing reviewer requests. No merge or release performed.

@immakermatty
immakermatty merged commit e115bdd into main Sep 30, 2026
7 checks passed
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.

2 participants