[fix] - harness console follows the Ollama→LM Studio fallback like /query and /health #1007
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CyClaw Conda CI | |
| on: | |
| push: | |
| branches: [ main ] | |
| pull_request: | |
| branches: [ main ] | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} | |
| permissions: | |
| contents: read | |
| # security-events: write removed — CodeQL is owned by codeql.yml; no | |
| # duplicate scan here means this workflow needs no SARIF-upload permission. | |
| jobs: | |
| ci: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 30 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python-version: ["3.12"] # match sandbox 3.12 + modern invariants | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 | |
| with: | |
| persist-credentials: false | |
| - name: Setup Miniconda + mamba (fast solver) | |
| uses: conda-incubator/setup-miniconda@8ee1f361103df19b6f8c8655fd3967a8ecb162d5 # v4.0.1 | |
| with: | |
| miniforge-version: latest | |
| python-version: ${{ matrix.python-version }} | |
| channels: conda-forge | |
| channel-priority: strict | |
| activate-environment: cyclaw | |
| environment-file: environment.yml | |
| auto-activate-base: false | |
| use-mamba: true | |
| - name: Cache conda environment | |
| uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0 | |
| with: | |
| path: | | |
| /home/runner/miniconda3/envs/cyclaw | |
| /home/runner/miniconda3/pkgs | |
| key: conda-${{ runner.os }}-${{ matrix.python-version }}-${{ hashFiles('environment.yml', 'pyproject.toml', '**/requirements*.txt') }} | |
| restore-keys: | | |
| conda-${{ runner.os }}-${{ matrix.python-version }}- | |
| - name: Install CyClaw in editable mode + test extras | |
| shell: bash -l {0} | |
| run: | | |
| python -m pip install -e ".[test,dev]" --no-deps | |
| # If heavy deps live in environment.yml, they are already resolved by mamba | |
| - name: Prepare hermetic test env | |
| shell: bash -l {0} | |
| run: | | |
| mkdir -p data/personality index logs | |
| echo '# Soul' > data/personality/soul.md | |
| echo 'GROK_API_KEY=dummy' >> "$GITHUB_ENV" | |
| - name: Pytest — unit + integration + safe smoke (RAG/policy focused) | |
| shell: bash -l {0} | |
| run: | | |
| pytest tests/ \ | |
| -v \ | |
| --cov=gate \ | |
| --cov=gate_ops \ | |
| --cov=graph \ | |
| --cov=mcp_hybrid_server \ | |
| --cov=metrics \ | |
| --cov=llm \ | |
| --cov=retrieval \ | |
| --cov=utils \ | |
| --cov=sync \ | |
| --cov=agentic \ | |
| --cov=guardrails \ | |
| --cov=harness \ | |
| --cov-report=xml \ | |
| --cov-report=term-missing \ | |
| --tb=short | |
| - name: Run verify harness / smoke (if present) | |
| shell: bash -l {0} | |
| run: | | |
| if [ -x ./verify.sh ]; then | |
| echo "Running project verify.sh harness..." | |
| ./verify.sh | |
| fi | |
| if [ -f .claude/skills/CyClaw-Sandbox/verify.sh ]; then | |
| echo "Running sandbox verification harness..." | |
| bash .claude/skills/CyClaw-Sandbox/verify.sh | |
| fi | |
| # CodeQL analysis is owned by .github/workflows/codeql.yml which runs on | |
| # every push/PR to main. A duplicate scan here would double billing and | |
| # upload a conflicting SARIF result to the same security tab. Removed. |