feat: complete Epic 1 production foundation

This commit is contained in:
2026-08-25 01:24:11 +03:00
parent 767428436d
commit 182bde8ac0
298 changed files with 35719 additions and 5299 deletions
+35
View File
@@ -100,6 +100,25 @@ python3 scripts/check-config-boundaries.py --root .
committed machine contract. PostgreSQL DDL вне `crank-registry::migrations`
блокируется Rust module boundary check.
Операторские auth-команды живут в том же `crank-migrate` binary и используют
database-only config projection:
```bash
crank-migrate admin-auth bootstrap-create --email owner@example.local
crank-migrate admin-auth recover \
--email owner@example.local \
--password-file /secure/new-admin-password.txt \
--password-pepper-file /secure/password-pepper.txt \
--master-key-file /secure/current-master.key
```
Команда создаёт одноразовый local bootstrap contract и выводит token для UI
`/login`; static startup password не является production bootstrap authority.
Recovery проверяет active master-key identity, заменяет verifier существующего
Admin account, отзывает browser sessions и не выводит password, pepper,
master key или Secret material.
## Typed metrics contract
`just metrics-contract-check` сверяет Rust registry с versioned JSON snapshot и
@@ -107,6 +126,22 @@ committed machine contract. PostgreSQL DDL вне `crank-registry::migrations`
Checker распознаёт прямые macro calls, imports, aliases и re-exports; новые
Rust-файлы можно передать явно через `--files`.
## Unified execution boundary
`check-execution-boundaries.py` запрещает Admin/MCP route и service слоям
обходить typed `RuntimeExecutionRequest`: напрямую импортировать REST adapter,
Reqwest, legacy `execute_with_*` helpers или запускать execution через
persistence. Проверка видит tracked и untracked файлы, а explicit mode
fail-closed отклоняет missing, symlink и path escape:
```bash
python3 scripts/check-execution-boundaries.py --root .
python3 scripts/check-execution-boundaries.py --root . --files <paths...>
```
Canonical composition roots создают adapters, но продуктовые Admin Draft Test
и MCP snapshot calls проходят только через единый runtime outcome contract.
## `check-community-scope.sh`
Проверяет, что в community-репозиторий не попали функции и тексты за пределами