diff --git a/.github/workflows/rust-ci.yml b/.github/workflows/rust-ci.yml index 4143024..8ead92d 100644 --- a/.github/workflows/rust-ci.yml +++ b/.github/workflows/rust-ci.yml @@ -62,3 +62,44 @@ jobs: - name: Run tests working-directory: src-rust run: cargo test --workspace --locked --quiet + + coven-contract: + name: Coven engine contract (non-blocking until coven#346 lands) + runs-on: ubuntu-latest + timeout-minutes: 45 + # Non-blocking during bootstrap: coven `main` gains the engine contract + # tests only when OpenCoven/coven#346 + the engine-lock PR merge. Until then + # `cargo test contract` on coven matches zero tests and passes. Once coven + # main carries the suite and this job is proven stable, remove + # `continue-on-error` to make engine contract breaks a hard gate. + continue-on-error: true + steps: + - uses: actions/checkout@v5 + with: + persist-credentials: false + + - name: Install Rust toolchain + uses: dtolnay/rust-toolchain@stable + + - name: Install system dependencies (engine + coven) + run: | + sudo apt-get update + sudo apt-get install -y libasound2-dev pkg-config libopenblas-dev + + - name: Build the engine + working-directory: src-rust + run: cargo build --release -p claurst --locked + + - name: Check out OpenCoven/coven + uses: actions/checkout@v5 + with: + repository: OpenCoven/coven + path: coven-main + persist-credentials: false + + - name: Run coven's engine contract tests against this engine + working-directory: coven-main + run: | + ENGINE="$GITHUB_WORKSPACE/src-rust/target/release/coven-code" + echo "engine: $ENGINE"; "$ENGINE" --version + COVEN_ENGINE_BIN="$ENGINE" cargo test -p coven-cli --locked contract -- --nocapture diff --git a/install.ps1 b/install.ps1 index f90a925..d6eb158 100644 --- a/install.ps1 +++ b/install.ps1 @@ -227,6 +227,8 @@ function GithubPathHint { } # ----- Main flow ----- +Write-Info "Tip: the unified Coven CLI installs and manages this engine for you -- 'npm install -g @opencoven/cli', then run 'coven'. This standalone installer still works." + if (-not [string]::IsNullOrEmpty($Binary)) { Install-FromBinary } else { diff --git a/install.sh b/install.sh index 1047209..08a0cbb 100644 --- a/install.sh +++ b/install.sh @@ -63,6 +63,8 @@ while [[ $# -gt 0 ]]; do esac done +print_message info "Tip: the unified Coven CLI installs and manages this engine for you — 'npm install -g @opencoven/cli', then run 'coven'. This standalone installer still works." + # Detect platform OS=$(uname -s | tr '[:upper:]' '[:lower:]') ARCH=$(uname -m) diff --git a/npm/README.md b/npm/README.md index cfd4897..694a221 100644 --- a/npm/README.md +++ b/npm/README.md @@ -3,6 +3,9 @@ [![Version](https://img.shields.io/npm/v/@opencoven/coven-code?style=flat-square)](https://www.npmjs.com/package/@opencoven/coven-code) [![License](https://img.shields.io/badge/License-GPL--3.0-blue?style=flat-square)](https://github.com/OpenCoven/coven-code/blob/main/LICENSE.md) +> **Recommended install:** `npm install -g @opencoven/cli` — the unified `coven` CLI installs and manages this engine for you. +> This package (`@opencoven/coven-code`) still installs the engine binary directly and continues to work. + **Coven Code** — open-source agentic coding TUI built in Rust. OpenCoven fork of [Claurst](https://github.com/Kuberwastaken/claurst) by Kuber Mehta (GPL-3.0). diff --git a/npm/package.json b/npm/package.json index f3297f3..5e32ef2 100644 --- a/npm/package.json +++ b/npm/package.json @@ -1,7 +1,7 @@ { "name": "@opencoven/coven-code", "version": "0.6.1", - "description": "Open-source agentic coding TUI for the terminal \u2014 OpenCoven fork of Claurst", + "description": "Coven engine (agentic coding TUI). The unified CLI is @opencoven/cli \u2014 'npm i -g @opencoven/cli'. This package installs the engine binary directly.", "license": "GPL-3.0-only", "repository": { "type": "git",