ci+docs: reverse engine-contract CI + point install story at @opencoven/cli (Phase 2)#151
Conversation
…coven/cli Adds a (non-blocking, bootstrap) job that runs coven's engine contract tests against this engine, and updates install.sh/install.ps1/npm to recommend the unified `@opencoven/cli` while keeping standalone installs working. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
Pull request overview
Adds Phase 2 “engine-side” support for the unified CLI by (1) introducing a reverse engine-contract CI job that builds coven-code and runs OpenCoven/coven contract tests against it, and (2) updating install/docs messaging to recommend the unified @opencoven/cli while keeping standalone engine installs intact.
Changes:
- Add a new non-blocking
coven-contractGitHub Actions job that builds this repo’s engine binary and executescoven’s contract tests against it. - Update
install.sh/install.ps1to print a one-line tip recommendingnpm install -g @opencoven/cli(no install logic changes). - Update npm package description and README to point users at the unified CLI as the recommended install path.
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
.github/workflows/rust-ci.yml |
Adds the reverse engine-contract CI job to exercise coven’s contract tests against this engine (non-blocking for now). |
install.sh |
Adds an informational tip recommending the unified CLI while preserving standalone install behavior. |
install.ps1 |
Adds an informational tip recommending the unified CLI while preserving standalone install behavior. |
npm/package.json |
Updates package description to clarify the unified CLI as the recommended install path. |
npm/README.md |
Adds a prominent “recommended install” note pointing to @opencoven/cli. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| - name: Install system dependencies (engine + coven) | ||
| run: | | ||
| sudo apt-get update | ||
| sudo apt-get install -y libasound2-dev pkg-config libopenblas-dev | ||
|
|
| - name: Check out OpenCoven/coven | ||
| uses: actions/checkout@v5 | ||
| with: | ||
| repository: OpenCoven/coven | ||
| path: coven-main | ||
| persist-credentials: false |
|
Reviewed. Verified beyond the green check (since
Nit, non-blocking: the contract job has no cargo cache, so each run is a cold release build (~7 min). Worth adding when Commit carries an AI co-author trailer (forbidden by AGENTS.md); stripped in the squash-merge message. Merging. |
Summary
Engine-side of Phase 2 of the CLI unification (companion to OpenCoven/coven#347). Two things, both low-risk:
.github/workflows/rust-ci.yml) — builds this engine and runs coven's engine contract tests against it, so an engine change that breaks thecoven↔engine contract is caught here, before release. It's markedcontinue-on-error: truefor now because coven'smainonly gains the contract tests once coven#346 + #347 merge; until thencargo test contractmatches zero tests and passes. A comment documents flipping it to a hard gate once the suite lands and the job is proven stable.install.sh,install.ps1,npm/package.jsondescription, andnpm/README.mdnow recommendnpm install -g @opencoven/cli(which installs and manages this engine for you). All install logic is unchanged — the script diffs are purely added notice lines; standalone installs keep working (they remain the engine artifact source).npm deprecatewas NOT run.Why
coven drives
coven-codeas a separate managed process (license boundary: MIT coven ↔ GPL-3.0 engine). This engine keeps shipping its own release binaries — coven downloads and pins them — but users should now reach for the unified@opencoven/clirather than installing the engine directly.Verification
rust-ci.yml/npm/package.jsonvalidated (YAML/JSON parse);bash -n install.shclean.git diff install.sh install.ps1shows only added notice lines — zero logic changes.deprecatedfield added topackage.json.🤖 Generated with Claude Code