generated from coulomb/repo-seed
Infrastructure (T01): - tests/conftest.py: sync schema setup (psycopg2), per-test table truncation, async ASGI client with get_session override - pyproject.toml: [tool.pytest.ini_options] asyncio_mode=auto - Makefile: make test target with TEST_DATABASE_URL Core router tests (T02): 19 tests - domains, topics, workstreams, tasks, decisions + state summary - Caught real bug: topic router missing duplicate-slug 409 guard (fixed) TD/EP/Contributions/SBOM tests (T03): 10 tests - CRUD + status transitions + lifecycle guard + SBOM ingest MCP smoke tests (T04): 12 tests - get_state_summary, create_task, update_task_status, add_progress_event, flag_for_human HTTP shapes CI gate (T05): make test documented in CLAUDE.md session protocol Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
45 lines
972 B
TOML
45 lines
972 B
TOML
[project]
|
|
name = "state-hub"
|
|
version = "0.1.0"
|
|
description = "Custodian State Hub — PostgreSQL + FastAPI + MCP server"
|
|
requires-python = ">=3.12"
|
|
dependencies = [
|
|
"fastapi>=0.115.0",
|
|
"uvicorn[standard]>=0.32.0",
|
|
"sqlalchemy[asyncio]>=2.0.0",
|
|
"asyncpg>=0.30.0",
|
|
"alembic>=1.14.0",
|
|
"pydantic>=2.10.0",
|
|
"pydantic-settings>=2.7.0",
|
|
"httpx>=0.28.0",
|
|
"fastmcp>=2.0.0",
|
|
"python-dotenv>=1.0.0",
|
|
"psycopg2-binary>=2.9.0",
|
|
"llm-connect",
|
|
]
|
|
|
|
[project.scripts]
|
|
custodian = "custodian_cli:main"
|
|
|
|
[build-system]
|
|
requires = ["hatchling"]
|
|
build-backend = "hatchling.build"
|
|
|
|
[tool.hatch.build.targets.wheel]
|
|
packages = ["api", "mcp_server"]
|
|
artifacts = ["custodian_cli.py"]
|
|
|
|
[tool.uv.sources]
|
|
llm-connect = { path = "/home/worsch/llm-connect", editable = true }
|
|
|
|
[tool.pytest.ini_options]
|
|
asyncio_mode = "auto"
|
|
testpaths = ["tests"]
|
|
|
|
[tool.uv]
|
|
dev-dependencies = [
|
|
"pytest>=8.0.0",
|
|
"pytest-asyncio>=0.24.0",
|
|
"httpx>=0.28.0",
|
|
]
|