From 8b1c2cc7a3e63d7435419dad4bfe1a0275211a91 Mon Sep 17 00:00:00 2001 From: kickthemoon0817 Date: Tue, 5 May 2026 20:25:23 +0900 Subject: [PATCH 1/2] ci: add informational lint + type-check job Surfaces lint/type-check output in CI without blocking PRs on the documented backlog (~941 mypy errors as of iter22, isort drift in 5 files, flake8 line-length tension). Each tool runs with 'continue-on-error: true' so the diff-friendly checklist appears in CI logs for incremental cleanup but does not gate merges. The job itself is also marked 'continue-on-error', keeping the workflow's overall green status tied to functional gates only (unit-tests + packaging-gate). Future iters can: - Tighten flake8 by adding [flake8] max-line-length = 119 to match CLAUDE.md, or migrate to ruff for a single-tool replacement. - Reduce the mypy backlog file-by-file; CI will track delta. - Auto-format isort drift via 'uv run isort src/ tests/' once. Once each tool is clean, drop its 'continue-on-error' to make it a hard gate without re-touching the workflow shape. --- .github/workflows/ci.yml | 55 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index df9cacc..cf027c6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -95,3 +95,58 @@ jobs: # Override the addopts default `-m "not packaging"` by # passing `-m packaging` last; pytest takes the LAST -m. run: uv run pytest tests/packaging/ -m packaging --no-cov -v + + lint-and-typecheck: + # Informational lint visibility — does NOT block PRs because the + # repo carries a documented backlog (~941 mypy errors, isort + # drift in 5 files, flake8 line-length tension between black's + # 88 and CLAUDE.md's 119). Each tool runs with + # `continue-on-error: true` so failures surface in CI logs as a + # diff-friendly checklist for incremental cleanup, without + # gating merges on the full backlog. The job itself is also + # marked `continue-on-error` so the workflow's overall green + # status remains tied to the actual functional gates + # (unit-tests + packaging-gate). + name: Lint + type-check (informational) + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 + + - name: Set up Python 3.11 + uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0 + with: + python-version: "3.11" + + - name: Install uv + uses: astral-sh/setup-uv@caf0cab7a618c569241d31dcd442f54681755d39 # v3.2.4 + with: + enable-cache: true + + - name: Install project from uv.lock (with dev extras) + run: uv sync --extra dev + + - name: black --check (informational) + continue-on-error: true + run: uv run black --check src/ tests/ + + - name: isort --check-only (informational) + continue-on-error: true + run: uv run isort --check-only src/ tests/ + + - name: flake8 (informational) + # Note: project lacks a flake8 config, so default 79-char + # max-line-length applies — many failures expected against + # CLAUDE.md's 119-char convention. A future iter that adds + # `[flake8] max-line-length = 119` (or migrates to ruff) + # will tighten this gate. + continue-on-error: true + run: uv run flake8 src/ tests/ + + - name: mypy (informational) + # Per pyproject.toml [tool.mypy] this is strictly configured + # but the codebase has a ~941-error backlog as of iter22. + # Surfacing the count in CI lets contributors see whether + # their PR adds or removes errors. + continue-on-error: true + run: uv run mypy src/ From 2cd79615873e573c10fd14803a1d1fa3e34b44e2 Mon Sep 17 00:00:00 2001 From: kickthemoon0817 Date: Tue, 5 May 2026 20:25:23 +0900 Subject: [PATCH 2/2] chore: bump version to 0.0.47, 4-file lockstep --- .claude-plugin/plugin.json | 2 +- pyproject.toml | 2 +- src/simul_mcp/__init__.py | 2 +- src/simul_mcp/bridge_ext/khemoo.simul.mcp/config/extension.toml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json index 076d37e..4a623e6 100644 --- a/.claude-plugin/plugin.json +++ b/.claude-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "simul", - "version": "0.0.46", + "version": "0.0.47", "description": "3D simulation and DCC skills — scene setup, physics, materials, camera, scripting, and headless workflows for Isaac Sim, Unreal Engine, Blender, and USD", "author": { "name": "khemoo", diff --git a/pyproject.toml b/pyproject.toml index 591e837..52a89e5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "simul-mcp" -version = "0.0.46" +version = "0.0.47" description = "MCP server for 3D simulation and DCC tools — USD scene control, Isaac Sim, Blender, and Unreal Engine integration" authors = [ {name = "khemoo"} diff --git a/src/simul_mcp/__init__.py b/src/simul_mcp/__init__.py index 359a5dd..dcb43fe 100644 --- a/src/simul_mcp/__init__.py +++ b/src/simul_mcp/__init__.py @@ -5,7 +5,7 @@ USD scene understanding, mesh operations, and runtime integration capabilities. """ -__version__ = "0.0.46" +__version__ = "0.0.47" __author__ = "khemoo" __email__ = "" diff --git a/src/simul_mcp/bridge_ext/khemoo.simul.mcp/config/extension.toml b/src/simul_mcp/bridge_ext/khemoo.simul.mcp/config/extension.toml index 24cd32f..60b7d60 100644 --- a/src/simul_mcp/bridge_ext/khemoo.simul.mcp/config/extension.toml +++ b/src/simul_mcp/bridge_ext/khemoo.simul.mcp/config/extension.toml @@ -1,5 +1,5 @@ [package] -version = "0.0.46" +version = "0.0.47" category = "Utility" title = "Simul MCP Bridge" description = "Production-oriented Isaac Sim bridge transport for Simul MCP with typed requests and VS Code fallback compatibility."