- .forgejo/workflows/deep_research-ci.yml: build, test, clippy (-D warnings), and fmt --check on push/PR, scoped to deep_research (not workspace-wide — swear_cleanup has an unrelated pre-existing clippy warning that would otherwise break CI on an unrelated project) - README.md: what the project does, the four-agent architecture, why it's local-first (Ollama + self-hosted SearXNG, no cloud API key, no query leaves the host), project layout, and how to run/test it - docs/case-study.md: narrative walkthrough of the max-turns recovery path, the DuckDuckGo-rate-limiting root cause and SearXNG fix, and the separation-of-concerns refactor — each step verified against a live run of the actual failing case, not just unit tests. Uses a neutral "AI customer-support chatbot trends" research run as the illustrative clean-pipeline example rather than the personal topic used during actual debugging.
47 lines
1.1 KiB
YAML
47 lines
1.1 KiB
YAML
name: deep_research CI
|
|
|
|
on:
|
|
push:
|
|
branches: ['**']
|
|
paths:
|
|
- 'deep_research/**'
|
|
- '.forgejo/workflows/deep_research-ci.yml'
|
|
pull_request:
|
|
paths:
|
|
- 'deep_research/**'
|
|
- '.forgejo/workflows/deep_research-ci.yml'
|
|
|
|
jobs:
|
|
test:
|
|
runs-on: docker
|
|
container: rust:1-bookworm
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: https://code.forgejo.org/actions/checkout@v4
|
|
|
|
- name: Cache cargo registry and build artifacts
|
|
uses: https://code.forgejo.org/actions/cache@v4
|
|
with:
|
|
path: |
|
|
~/.cargo/registry
|
|
~/.cargo/git
|
|
target
|
|
key: cargo-${{ runner.os }}-${{ hashFiles('Cargo.lock') }}
|
|
restore-keys: |
|
|
cargo-${{ runner.os }}-
|
|
|
|
- name: Install rustfmt and clippy
|
|
run: rustup component add rustfmt clippy
|
|
|
|
- name: Check formatting
|
|
run: cargo fmt -p deep_research -- --check
|
|
|
|
- name: Lint
|
|
run: cargo clippy -p deep_research --all-targets -- -D warnings
|
|
|
|
- name: Build
|
|
run: cargo build -p deep_research
|
|
|
|
- name: Test
|
|
run: cargo test -p deep_research
|