feat(plugin): trust-on-first-use manifest pinning
Plugins are now verified against ~/.config/gnoma/plugins.pins.toml at load time. Each plugin's plugin.json bytes are hashed (SHA-256) and: - recorded automatically on first load (TOFU) with a prominent warning - compared on subsequent loads - refused with a clear error if the hash drifted, without overwriting the pin so the user can review and re-enrol deliberately Pin-store I/O failures degrade to load-without-pinning rather than locking the user out of previously-trusted plugins. Closes audit finding C2. See ADR-003 for the decision rationale and docs/plugins-trust.md for the end-user trust model.
This commit is contained in:
@@ -33,3 +33,9 @@ essentials:
|
||||
| 10 | Milestones | complete | [milestones.md](milestones.md) | 2026-04-03 |
|
||||
| 11 | Decision Log | complete | [decisions/001-initial-decisions.md](decisions/001-initial-decisions.md) | 2026-04-03 |
|
||||
| 12 | Risk / Unknowns | complete | [risks.md](risks.md) | 2026-04-03 |
|
||||
|
||||
## Architecture Decision Records
|
||||
|
||||
- [ADR-001 — Initial Decisions](decisions/001-initial-decisions.md)
|
||||
- [ADR-002 — SLM Routing](decisions/002-slm-routing.md)
|
||||
- [ADR-003 — Plugin Trust via TOFU Manifest Pinning](decisions/003-plugin-trust.md)
|
||||
|
||||
Reference in New Issue
Block a user