mirror of
https://relay.ngit.dev/npub15qydau2hjma6ngxkl2cyar74wzyjshvl65za5k5rl69264ar2exs5cyejr/ngit-grasp.git
synced 2026-10-05 15:08:24 +00:00
The v3.0.1 authorization fix is intentionally small. Follow it with a separate structural pass so the implementation and documentation express the present-tense maintainer model directly instead of leaving the security behavior hidden behind owner-oriented names and repeated raw-tag interpretation.
Parse indexed roles once into a current-only snapshot of active maintainers, active lead targets, and announcement-author activity. Preserve detailed lead-resolution failures internally while policy callers continue to fail closed, distinguish selected authorization coordinates from physical owner views, and name broad announcement admission as discovery rather than authority.
Keep history relevant only while deriving current activity and retain active leads only for selected-coordinate resolution. Preserve the v3.0 public API through compatibility projections and deprecated aliases; this commit is not intended to change the authorization outcome established by 650cfb57.
Refresh architecture, inline authorization, storage, sync, and audit documentation. Correct the audit fixture description that claimed a listed maintainer authorized with no reciprocal announcement even though its setup already published one.
Validated with cargo test --lib (903 tests), cargo test --test state_authorization (53 tests), cargo test -p grasp-audit --lib (54 passed, 5 ignored), cargo test --test push_authorization (56 tests), and cargo clippy --tests -- -D warnings.
Learnings Directory - DEPRECATED
Status: This directory is deprecated as of November 4, 2025.
What Happened?
We migrated to the Diátaxis documentation framework, which provides a clearer structure based on content purpose rather than origin.
Where Did Content Go?
The "learnings" were distributed into appropriate Diátaxis categories:
Gotchas and Patterns → How-To Guides
nix-flakes.md→docs/how-to/nix-flakes.md- Task-oriented solutions to common problems
Technical Details → Reference
nostr-sdk.md→docs/reference/nostr-sdk-upgrade.md(planned)git-http-backend.md→docs/reference/git-protocol.md- Factual technical information
Concepts and Understanding → Explanation
grasp-audit.md→ Incorporated intodocs/explanation/architecture.md- Discussion of design and architecture
Why the Change?
The "learnings" category was ambiguous:
- Mixed gotchas, patterns, and concepts
- Unclear where to put new content
- Hard for readers to know what to expect
Diátaxis provides clear categories:
- Tutorials - Learning by doing
- How-To - Solving problems
- Reference - Looking up facts
- Explanation - Understanding concepts
See docs/README.md for the new structure.
For Content Authors
Don't create new files here. Instead, ask:
- "Can you teach me to...?" →
docs/tutorials/ - "How do I...?" →
docs/how-to/ - "What is...?" →
docs/reference/ - "Why...?" →
docs/explanation/
Migration Status
- ✅
nix-flakes.md→ Migrated tohow-to/nix-flakes.md - ⏳
nostr-sdk.md→ Being incorporated into reference docs - ✅
grasp-audit.md→ Content inexplanation/architecture.md
This directory will be removed in a future cleanup.
See AGENTS.md for documentation guidelines.