56 lines
1.0 KiB
Markdown
56 lines
1.0 KiB
Markdown
# Epic 5 — Approval system (Tiers, grants, approvals)
|
|
|
|
## completed deliverables
|
|
|
|
### 1. Tier model (T0-T4)
|
|
|
|
introduced `Tier` as a enum in `core:events` with values 0-4 where 0 is inference and 4 is something destructive.
|
|
|
|
---
|
|
|
|
### 2. grants system
|
|
|
|
introduced `ApprovalGrant` as a serializable data class in `core:approvals`.
|
|
|
|
scopes:
|
|
|
|
```text
|
|
Session -> stage -> project
|
|
```
|
|
|
|
properties:
|
|
|
|
* all grants work on the concrete scope.
|
|
* grants are revoked when scope changes.
|
|
* grants contain set of `permittedTiers`.
|
|
|
|
---
|
|
|
|
### 3. approval lifecycle events
|
|
|
|
introduced events in `:core:events` to emit when approval is:
|
|
- ApprovalRequested
|
|
- ApprovalDecisionResolved
|
|
- ApprovalGrantCreated
|
|
- ApprovalGrantExpired
|
|
|
|
---
|
|
|
|
### 4. timeout semantics
|
|
|
|
timeout are resolved on a higher level, not in approval system.
|
|
|
|
---
|
|
|
|
### 5. steering injection module
|
|
|
|
introduced `UserSteering` in `core:events`.
|
|
gets injected in approval and should be respected by other components.
|
|
|
|
---
|
|
|
|
# final state
|
|
|
|
Correx now has:
|
|
|
|
> tiered, replay-safe approval authorization layer |