Metadata-Version: 2.4
Name: mgf-test-web
Version: 0.1.8
Summary: ProofWarden — the testing & CI authority console. Base = the warden single-flight broker + testctl (FastAPI-free, CI-installable); [web] = the console. Built on the mgf-fedres spine; drives mgf-test-supervisor as the runner. Sibling under mgf.* (PEP420).
Project-URL: Homepage, https://codeberg.org/magogi-admin/mgf-test-web
Project-URL: Issues, https://codeberg.org/magogi-admin/mgf-test-web/issues
Project-URL: Changelog, https://codeberg.org/magogi-admin/mgf-test-web/src/branch/main/CHANGELOG.md
Author: Bassam Alsanie, mgf-test-web contributors
License: Apache-2.0
License-File: LICENSE
License-File: NOTICE
Keywords: ci,magogi,proofwarden,single-flight,testing,warden
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: POSIX
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Typing :: Typed
Requires-Python: >=3.11
Requires-Dist: mgf-fedres<0.5,>=0.3
Requires-Dist: mgf-test-supervisor<0.2,>=0.1.3
Provides-Extra: dev
Requires-Dist: httpx>=0.27; extra == 'dev'
Requires-Dist: import-linter>=2.0; extra == 'dev'
Requires-Dist: mgf-test-supervisor<0.2,>=0.1.2; extra == 'dev'
Requires-Dist: mgf-uitest-web<0.2,>=0.1; extra == 'dev'
Requires-Dist: mypy>=1.10; extra == 'dev'
Requires-Dist: pytest-cov>=5.0; extra == 'dev'
Requires-Dist: pytest-timeout<3,>=2.3; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Requires-Dist: ruff<0.16,>=0.4; extra == 'dev'
Provides-Extra: standards
Requires-Dist: mgf-common[standards]<1.0,>=0.47; extra == 'standards'
Provides-Extra: web
Requires-Dist: fastapi>=0.110; extra == 'web'
Requires-Dist: jinja2>=3.1; extra == 'web'
Requires-Dist: mgf-brand-web<0.6,>=0.5; extra == 'web'
Requires-Dist: python-multipart>=0.0.9; extra == 'web'
Requires-Dist: uvicorn>=0.29; extra == 'web'
Description-Content-Type: text/markdown

# mgf-test-web — ProofWarden

**The testing & CI authority console.** Per project, browse the test catalog, run
tests, watch them live, see full history, and start + watch CI — all through a
single entry point that *cannot* be bypassed.

The rule that defines the product: **a given test can never run twice at once**,
no matter how it was launched (CLI, this website, an AI agent, or CI). A per-project
resident **warden** is the *sole executor*; everyone submits run *requests*; nothing
else ever spawns a test. Single-flight is enforced **by construction**, via an atomic
**lease registry** (heartbeat + TTL + audited reclaim) — fail-closed when the warden
is down.

```
mgf-fedres (spine: schemas, sync engine, live NDJSON, run-records)
      |
mgf-test-web
  base : the warden broker + lease registry + testctl CLI + runner adapters
  |      (pytest-via-mtest, shell). FastAPI-free — CI installs this.
  [web]: the ProofWarden console (Catalog / Running / History / CI)
      ^
mgf-test-supervisor (mtest) — driven as a library in a child process
```

- **warden** — the resident broker (`testctl serve`); the only thing that runs a test.
- **testctl** — the CLI: `catalog`, `status`, `run`, `watch`, `cancel`, `ci start`, `serve`.
- **single-flight** — same test + same effective config relaunched → **coalesce** (attach,
  don't double-run); different work on a busy project → **queue**; warden down → **refuse**.

## Status

**A4 spike** — the single-flight core (lease registry + acquire decision + the warden).
Pre-implementation for the rest; see the plan + spec in `mgf-fedres/docs/planning/`.

## License

MIT © The Magogi Foundation
