Skip to content

fix(ollama): always send num_ctx to prevent context-window errors #2197

fix(ollama): always send num_ctx to prevent context-window errors

fix(ollama): always send num_ctx to prevent context-window errors #2197

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
branches: [main, dev]
permissions:
contents: read
jobs:
release-versioning:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 22
- name: Release versioning tests
run: node --test scripts/ci/semantic-beta-version.test.mjs
go:
runs-on: ubuntu-latest
# Postgres service container for integration tests. pgvector/pgvector:pg18
# matches the local dev image (Makefile uses the same tag on port 5433).
# Healthcheck blocks the job until PG accepts connections, avoiding
# first-connection flakiness on cold runner starts.
services:
pg:
image: pgvector/pgvector:pg18
env:
POSTGRES_PASSWORD: test
POSTGRES_DB: goclaw_test
ports:
- 5432:5432
options: >-
--health-cmd "pg_isready -U postgres"
--health-interval 5s
--health-timeout 3s
--health-retries 10
env:
# tests/integration/v3_test_helper.go reads TEST_DATABASE_URL and runs
# migrations once via golang-migrate. Uses port 5432 (CI-clean) vs 5433
# for local dev (avoids clash with desktop Postgres installs).
TEST_DATABASE_URL: postgres://postgres:test@localhost:5432/goclaw_test?sslmode=disable
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version-file: go.mod
cache-dependency-path: go.sum
- run: go build ./...
- run: go build -tags sqliteonly ./...
- run: go vet ./...
# -timeout=5m caps each test binary so a deadlocked test fails fast
# instead of blocking CI for the 10-minute default. Bumped from 90s
# because real 1s retry backoffs in HTTPHandler and goja memory-bomb
# sandbox tests push the internal/hooks/handlers binary past 90s
# under -race -coverpkg=./... Followup: make handler backoff
# configurable so tests can use ms-scale delays.
- name: Unit tests
run: go test -race -timeout=5m -coverpkg=./... -coverprofile=coverage.out ./...
# Invariant tests (P0) - tenant isolation, permission enforcement
# These run against real DB and MUST pass for merge.
- name: Invariant tests (P0)
run: go test -race -timeout=90s -tags integration ./tests/invariants/...
# Contract tests (P1) - API schema validation
# Skip if no server available (requires CONTRACT_TEST_* env vars).
- name: Contract tests (P1)
run: go test -race -timeout=90s -tags integration ./tests/contracts/... || echo "::warning::Contract tests skipped (no server configured)"
continue-on-error: true
# Integration suite runs against the `pg` service container above.
# Longer -timeout=180s because the first test runs migrations from
# scratch (can take 10-30s on a cold CI runner). Local full suite
# completes in <3s against a warm DB.
- name: Integration tests
run: go test -race -timeout=180s -tags integration ./tests/integration/
- name: Coverage summary
run: go tool cover -func=coverage.out | tail -1
web:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ui/web
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
with:
version: 10
- uses: actions/setup-node@v4
with:
node-version: 22
cache: pnpm
cache-dependency-path: ui/web/pnpm-lock.yaml
- run: pnpm install --frozen-lockfile
- run: pnpm lint
- run: pnpm build