tempus-ddb 0.5.3

Local-first B2A security gate with tamper-evident execution receipts
Documentation
# Contributing to Tempus DDB

Tempus DDB is a security boundary for autonomous actions. Contributions are welcome, but
changes to signed contracts, authorization decisions, identity lifecycle, or executor
state require stronger evidence than ordinary feature work.

By participating, you agree to follow the [Code of Conduct](CODE_OF_CONDUCT.md).

## Before opening a change

- Use an issue or [GitHub Discussion]https://github.com/elbuilder77/tempus-ddb/discussions
  for changes that alter a public contract or trust boundary.
- Report suspected vulnerabilities privately as described in [SECURITY.md]SECURITY.md.
- Keep pull requests focused. Large protocol changes should be split into reviewable,
  independently testable steps.

## Development setup

Python 3.10 or newer and a stable Rust toolchain are required.

```bash
git clone https://github.com/elbuilder77/tempus-ddb.git
cd tempus-ddb
python -m venv .venv
python -m pip install --upgrade pip
python -m pip install -e ".[dev]"
```

## Required validation

Run the same local gate used by CI:

```bash
cargo fmt --check
cargo clippy --all-targets -- -D warnings
cargo test --all-targets
cargo audit
ruff check .
pytest -p no:cacheprovider
python -m maturin build
```

Tests and examples must use temporary workspaces. Never commit databases, generated keys,
credentials, logs, caches, wheels, or build output.

## Security and compatibility expectations

- Preserve fail-closed behavior for unknown schema, policy, identity, signer, and
  execution states.
- Add an adversarial regression test for changes to replay prevention, signature
  verification, policy evaluation, credential isolation, or recovery.
- Treat signed JSON fields and machine status values as public contracts. Follow
  [COMPATIBILITY.md]COMPATIBILITY.md before changing them.
- Do not add network telemetry or credential-bearing payloads by default.
- Update [THREAT_MODEL.md]THREAT_MODEL.md when a trust boundary changes.
- Update [CHANGELOG.md]CHANGELOG.md for user-visible behavior.

## Pull requests

Describe the problem, the chosen approach, security and compatibility impact, and exact
validation performed. Link the relevant issue with `Fixes #<number>` when applicable.

Use clear commit subjects such as `feat:`, `fix:`, `docs:`, `test:`, or `chore:`. A
maintainer may squash a pull request when merging.