feat(v2): add validated runtime and metadata store
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
# M1 Runtime and Metadata Evidence
|
||||
|
||||
## RED
|
||||
|
||||
Commit: `8f78484 test(v2): define runtime and metadata contracts`
|
||||
|
||||
Command:
|
||||
|
||||
```bash
|
||||
.venv/bin/python -m pytest tests/unit/test_config.py tests/integration/test_migrations.py -q
|
||||
```
|
||||
|
||||
Observed result: exit 2 during collection because `backup_tool.clock` did not exist. This proves the test-only commit preceded runtime implementation.
|
||||
|
||||
## GREEN
|
||||
|
||||
Migration gate executed against a disposable absolute SQLite database:
|
||||
|
||||
```bash
|
||||
cd backend
|
||||
BACKUP_TOOL_DATABASE_URL=sqlite+aiosqlite:////absolute/path/.m1-gate.db ../.venv/bin/python -m alembic upgrade head
|
||||
BACKUP_TOOL_DATABASE_URL=sqlite+aiosqlite:////absolute/path/.m1-gate.db ../.venv/bin/python -m alembic downgrade base
|
||||
BACKUP_TOOL_DATABASE_URL=sqlite+aiosqlite:////absolute/path/.m1-gate.db ../.venv/bin/python -m alembic upgrade head
|
||||
../.venv/bin/python -m pytest ../tests/unit/test_config.py ../tests/integration/test_migrations.py -q
|
||||
cd ..
|
||||
make check
|
||||
```
|
||||
|
||||
Observed results:
|
||||
|
||||
- Alembic upgrade, downgrade, and second upgrade each exited 0.
|
||||
- Focused M1 suite: `13 passed`.
|
||||
- Fast unit/contract suite: `28 passed`.
|
||||
- Ruff check/format and strict mypy: passed.
|
||||
- Frontend typecheck/build: passed.
|
||||
- Disposable database removed after verification.
|
||||
|
||||
## Hand Review
|
||||
|
||||
- Baseline revision contains explicit `op.create_table`, constraints, foreign keys, and indexes for all 14 v2 entities; it does not call `create_all`.
|
||||
- SQLite connections enable foreign keys, WAL, and a bounded busy timeout.
|
||||
- Startup compares the database Alembic revision with the current script head and rejects unmigrated databases.
|
||||
- Runtime roles are explicit CLI subcommands; no role starts another role in M1.
|
||||
Reference in New Issue
Block a user