Skip to content

[Feature]: Community help wanted — CPU-only API tests in CI #46

Closed

Description

@hsliuustc0106

Feature, motivation and pitch

Community help wanted: strengthen System1-Omni's basic API tests in CI. We do not have GPU resources; this contribution must run on standard CPU-only GitHub-hosted runners using deterministic mock workers, without model weights or inference dependencies.

We already have GitHub Actions CI running Rust formatting, Clippy, workspace tests, and a release build. The frontend integration tests exercise real sockets with mock workers, covering health, multimodal byte preservation, authorization, large uploads, backend errors, timeouts, and binary startup/shutdown. These tests already run in CI.

The immediate task is to extend that API coverage where there are gaps and make it easy for contributors to run and diagnose. Reuse the existing test harness and CI workflow.

Proposed first contribution

  • Add deterministic request/response fixtures for POST /v1/systemone covering choice, score, and noul, separately and together. Assert that status, content type, and body are preserved through the frontend.
  • Check route behavior for unsupported methods and unknown paths, including that rejected requests do not reach the worker.
  • Cover decision requests with a backend path prefix and query parameters, complementing the existing health-path test.
  • Identify any remaining gaps in health and backend-error coverage before adding cases; avoid duplicating existing tests.
  • Keep tests bounded, use dynamically allocated local ports, and clean up task-owned child processes where applicable.
  • Ensure the API tests run on every PR in the existing CPU CI workflow, with readable failures and a documented focused test command.

The frontend currently forwards payloads and leaves parsing and validation to the worker. Tests should verify that boundary, including forwarding worker validation errors, rather than introduce new frontend schema validation.

Acceptance criteria

  • Runs on a standard CPU-only GitHub-hosted runner with no GPU, checkpoint downloads, model serving packages, or external inference service.
  • Extends the existing mock-worker tests with meaningful coverage of missing API behavior.
  • Passes the repository's Rust checks and documents how to run the API suite locally.

Real-model inference tests and hardware-backed E2E tests are outside this issue's scope.

Reference

Use vLLM-Omni's API tests and CPU entrypoint CI checks as references for API coverage and separation from inference testing. Our initial setup should remain small and fit the existing Rust frontend.

How to help

Contributions are welcome from people familiar with Rust HTTP testing or GitHub Actions. Please comment if you would like to take this on, suggest missing API cases, or help validate the tests. A focused PR extending the existing suite and documenting reproduction commands would be a useful first step.

Please follow CONTRIBUTING.md, including self-review and reporting the checks you ran before requesting maintainer review.

Activity

  1. changed the title [-][Feature]: Community help wanted — real-worker API smoke tests in CI[/-] [+][Feature]: Community help wanted — CPU-only API tests in CI[/+] on Sep 30, 2026
  2. MrDongsls commented on Sep 30, 2026

    @MrDongsls
    Collaborator

    Hi, I’d be happy to take this on. I’ll extend the existing mock-worker API tests with the proposed coverage, keep everything CPU-only and deterministic, and document the focused local test command. I’ll also run the required Rust checks and report the results before requesting review. Thanks!

  3. hsliuustc0106 commented on Oct 3, 2026

    @hsliuustc0106
    ContributorAuthor

    Hi, I’d be happy to take this on. I’ll extend the existing mock-worker API tests with the proposed coverage, keep everything CPU-only and deterministic, and document the focused local test command. I’ll also run the required Rust checks and report the results before requesting review. Thanks!

    pin me when a PR ready

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

enhancementNew feature or requesthelp wantedExtra attention is needed

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions