Initial public ModelForge release

This commit is contained in:
Jens
2026-09-01 21:30:16 +02:00
commit 7082ab955a
490 changed files with 104252 additions and 0 deletions
+46
View File
@@ -0,0 +1,46 @@
# Contributing
Thank you for improving ModelForge. Small, focused changes with tests and an explicit security
impact are easiest to review.
## Set up
ModelForge requires Python 3.12, Node.js, npm, Docker Engine 24+ and Docker Compose 2+. Each Python
component has its own package metadata; the frontend uses its committed npm lockfile.
```bash
python -m venv .venv
. .venv/bin/activate
python -m pip install -e 'backend[dev]' -e 'node-agent[dev]' -e 'runtime-worker[dev]'
cd frontend && npm ci
```
On Windows, activate with `.venv\Scripts\Activate.ps1`.
## Before opening a change
```bash
python -m ruff check backend/src backend/tests node-agent/src runtime-worker/src
python -m mypy backend/src
python -m mypy --config-file node-agent/pyproject.toml node-agent/src
python -m mypy --config-file runtime-worker/pyproject.toml runtime-worker/src
python -m pytest backend/tests node-agent/tests runtime-worker/tests -q
cd frontend && npm test -- --run && npm run build
```
Also run `git diff --check` and Gitleaks. Do not commit `.env`, credentials, private hostnames,
production evidence, model weights, generated backups or personal data.
## Design rules
- Applications depend on versioned capabilities, never concrete model names.
- Production identities use exact commits, artifact digests and image digests.
- No production promotion occurs without evidence and explicit approval.
- `trust_remote_code` stays false; untrusted model code is not executed.
- Agents and runtime workers use narrow identities and least privilege.
- Destructive actions require a bounded plan, current preconditions and an audit record.
- Do not introduce Kubernetes or inbound compute-node orchestration.
Update user documentation when behavior or configuration changes. Add a migration for schema
changes and prove both the upgrade chain and the PostgreSQL privilege boundary. Security issues must
follow [SECURITY.md](SECURITY.md), not the public issue tracker.