Skip to content

fix(search): stabilize active-ingest retries #102

fix(search): stabilize active-ingest retries

fix(search): stabilize active-ingest retries #102

name: T0 test architecture
on:
pull_request:
paths:
- '.github/workflows/ci-test-architecture.yml'
# Protocol, runtime, fixture, scenario, schema, and CLI tests share one Python lane.
- 'scripts/bench/**'
- 'autoresearch.sh'
# Wrapper tests exercise both lifecycle scripts and their adjacent Compose/image support.
- 'scripts/dev/sandbox/**'
- 'docs/development/test-architecture/package_isolation.py'
# Root metadata and the lockfile control every --locked Cargo invocation below.
- 'Cargo.toml'
- 'Cargo.lock'
- 'rust-toolchain.toml'
# Any workspace member manifest can alter metadata-derived package isolation.
- 'apps/*/Cargo.toml'
- 'crates/*/Cargo.toml'
# Cargo auto-discovers build scripts and test/example targets.
- 'apps/*/build.rs'
- 'crates/*/build.rs'
- 'apps/*/tests/**'
- 'crates/*/tests/**'
- 'apps/*/benches/**'
- 'crates/*/benches/**'
- 'apps/*/examples/**'
- 'crates/*/examples/**'
# Sandbox/live targets consume checked-in runtime defaults, including ClickHouse settings.
- 'config/**'
# The ClickHouse client embeds this SQL migration/schema set into live and benchmark builds.
- 'sql/**'
# Analytics/live compilation uses these client and configuration implementations directly.
- 'crates/moraine-clickhouse/src/**'
- 'crates/moraine-config/src/**'
# Repository queries and row decoding are the production side of analytics/live assertions.
- 'crates/moraine-conversations/src/**'
# Live parity starts the production monitor handlers and validates their decoded responses.
- 'crates/moraine-monitor-core/src/**'
workflow_dispatch:
permissions:
contents: read
pull-requests: read
jobs:
architecture-t0:
name: T0 / deterministic test architecture
runs-on: ubuntu-latest
timeout-minutes: 45
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Detect package-isolation changes
id: changes
if: github.event_name == 'pull_request'
uses: dorny/paths-filter@v3
with:
filters: |
package_isolation:
- '.github/workflows/ci-test-architecture.yml'
- 'docs/development/test-architecture/package_isolation.py'
# Cargo metadata and --locked resolution depend on every workspace manifest and lock.
- 'Cargo.toml'
- 'Cargo.lock'
- 'rust-toolchain.toml'
- 'apps/*/Cargo.toml'
- 'crates/*/Cargo.toml'
# Auto-discovered build scripts and test/bench/example targets alter package topology.
- 'apps/*/build.rs'
- 'crates/*/build.rs'
- 'apps/*/tests/**'
- 'crates/*/tests/**'
- 'apps/*/benches/**'
- 'crates/*/benches/**'
- 'apps/*/examples/**'
- 'crates/*/examples/**'
- name: Setup Python 3.12
uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Install Rust stable toolchain
uses: dtolnay/rust-toolchain@stable
- name: Run performance suite unittest discovery
run: |
python - <<'PY'
import unittest
suite = unittest.defaultTestLoader.discover(
"scripts/bench/tests", pattern="test_*.py"
)
count = suite.countTestCases()
print(f"Discovered {count} performance suite unittest(s).")
if count == 0:
raise SystemExit("Performance suite discovery selected zero tests.")
PY
python -m unittest discover -v -s scripts/bench/tests -p 'test_*.py'
- name: Check autoresearch adapter syntax
run: bash -n autoresearch.sh
- name: Run sandbox live-wrapper unittest discovery
run: |
python - <<'PY'
import unittest
suite = unittest.defaultTestLoader.discover(
"scripts/dev/sandbox/tests", pattern="test_*.py"
)
count = suite.countTestCases()
print(f"Discovered {count} sandbox live-wrapper unittest(s).")
if count == 0:
raise SystemExit("Sandbox live-wrapper discovery selected zero tests.")
PY
python -m unittest discover -v -s scripts/dev/sandbox/tests -p 'test_*.py'
- name: Run deterministic live ClickHouse support
run: cargo test -p moraine-conversations --test live_clickhouse --locked
- name: Compile metadata-derived package isolation set
if: github.event_name != 'pull_request' || steps.changes.outputs.package_isolation == 'true'
run: python docs/development/test-architecture/package_isolation.py --repo-root .
- name: Report package isolation not selected
if: github.event_name == 'pull_request' && steps.changes.outputs.package_isolation != 'true'
run: echo 'Package isolation not selected because no workspace manifest, lockfile, Cargo target-topology, or shared support path changed.'