Skip to content

feat(fix): multi-language check resolution — Cargo/Python auto-detect + openswarm.json checks config#193

Merged
unohee merged 2 commits into
mainfrom
feat/int-2303-multilang-checks
Jul 2, 2026
Merged

feat(fix): multi-language check resolution — Cargo/Python auto-detect + openswarm.json checks config#193
unohee merged 2 commits into
mainfrom
feat/int-2303-multilang-checks

Conversation

@unohee

@unohee unohee commented Jul 2, 2026

Copy link
Copy Markdown
Owner

Summary

openswarm fix only understood package.json scripts — Rust/Python projects always exited with No checks resolved (INT-2303). Check resolution is now ecosystem-aware; the first non-empty source wins:

  1. openswarm.json "checks"{"key": "shell command"}, run via sh -c. The explicit escape hatch for any language/toolchain and for mixed repos.
  2. package.json scripts — unchanged npm path.
  3. Cargo.tomlcargo check --all-targets + cargo test by default; clippy/build resolve when requested via --checks lint,build.
  4. Python markers (pyproject/setup.py/setup.cfg/requirements.txt) — ruff check . / mypy . / pytest, each included only when the repo is actually configured for the tool; --checks bypasses the gating.

Check gains a display field so worker prompts show pytest -x instead of the sh -c wrapper. RepoMetadataSchema accepts the new checks map.

Verification

  • 35 unit tests: resolveProjectChecks priority/gating/aliases, cargo+pytest output parsing, openswarm.json schema round-trip
  • E2E smoke on real fixtures: cargo new crate (auto check+test, green), pytest project (auto pytest, green), openswarm.json checks override, red check → correct file blame from pytest output
  • Full suite 1326 passed · oxlint 0 · tsc clean

🤖 Generated with Claude Code

unohee added 2 commits July 2, 2026 10:02
… + openswarm.json checks config (INT-2303)

openswarm fix only understood package.json scripts, so Rust/Python
projects always died with 'No checks resolved'. Check resolution is now
ecosystem-aware, first non-empty source wins:

- openswarm.json "checks" (key -> shell command, run via sh -c): the
  explicit escape hatch for any language/toolchain and for mixed repos
- package.json scripts (unchanged npm path)
- Cargo.toml: cargo check --all-targets + cargo test by default;
  clippy/build resolve when requested via --checks
- Python markers (pyproject/setup.py/setup.cfg/requirements.txt):
  ruff check . / mypy . / pytest, each gated on the repo actually being
  configured for the tool; --checks bypasses the gating

Check gains a display field so prompts show 'pytest -x' instead of the
sh -c wrapper. RepoMetadataSchema accepts the new checks map.

Verified: 35 unit tests (resolveProjectChecks priority/gating/aliases,
cargo+pytest output parsing, schema round-trip) + E2E smoke on real
cargo/pytest fixtures incl. openswarm.json override and red-check file
blame. Full suite 1326 passed, lint 0, tsc clean.
@unohee unohee merged commit 239b16e into main Jul 2, 2026
9 checks passed
@unohee unohee deleted the feat/int-2303-multilang-checks branch July 2, 2026 01:11
@unohee unohee mentioned this pull request Jul 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant