Closes #1421
## Product slice
- require a gate-ID-bound one-time fresh-authorization grant before Release or Hold
- reserve and finalize an encrypted Security Activity event for each new decision
- fail closed when the journal cannot reserve and discard pending events on rejected decisions
- keep private decision reasons out of the security journal
## Validation
- `pytest -q tests/test_human_gate_api.py` — 9 passed
- `pytest -q tests/test_dashboard_session_frontend.py tests/test_security_activity.py` — 65 passed
- `pytest -q` — 2717 passed, 24 skipped
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Closes #1421
Product slice
Validation
pytest -q tests/test_human_gate_api.py— 9 passedpytest -q tests/test_dashboard_session_frontend.py tests/test_security_activity.py— 65 passedpytest -q— 2717 passed, 24 skipped