[build-system] requires = ["setuptools>=68", "wheel"] build-backend = "setuptools.build_meta" [tool.pytest.ini_options] testpaths = ["tests"] pythonpath = ["."] # Emit thread stacks for a stalled test without changing its pass/fail budget. faulthandler_timeout = 60 # A stalled test must stop the run instead of sitting there all night: on # 2026-09-13 a TUI test blocked inside CreateProcess (ACL hardening, see # core/private_storage.py) and the suite produced no output until morning. faulthandler_exit_on_timeout = true filterwarnings = [ "error::pytest.PytestUnhandledThreadExceptionWarning", "error::pytest.PytestUnraisableExceptionWarning", ] [tool.ruff] target-version = "py312" line-length = 88 [tool.ruff.lint] ignore = ["E402"] [tool.ruff.lint.per-file-ignores] # The repository root is a historical package named `DeepCode`; Ruff derives # that parent name when linting newly added package initializers. "core/mcp/__init__.py" = ["N999"] # Bundled Skills are pinned, provenance-tracked upstream packages. Lint the # DeepCode host around them without silently rewriting vendor workflows. "core/skills/builtin/**" = ["ALL"] [tool.check-manifest] # The Python sdist contains the shared Agent runtime and CLI. Desktop, tests, # CI/development material, and README artwork are distributed from the source # repository and Desktop release bundles instead of the PyPI source archive. ignore = [ ".dockerignore", ".pre-commit-config.yaml", "assets/**", "CONTRIBUTORS.md", "desktop/**", "docs/**", "examples/**", "rust-toolchain.toml", "scripts/**", "tests/**", ]