Commit Graph
19 Commits
Author SHA1 Message Date
thePR0M3TH3AN 5e0fffb32e feat(nostr): implement Phase 3 codecs
Event formats live in codecs so the core never learns which kind stores roles,
which d identifier is used, or how a legacy list is shaped.

- bech32/NIP-19 decoding, verified against the NIP-19 test vector, so the core
  can stay hex-only and dependency-free
- canonical v1 codec on kind:30078 with namespaced d identifiers, role rosters
  carrying both role labels and explicit capabilities, and size-bounded policy
  documents that return null rather than throwing on malformed JSON
- NIP-56 reports, resolving the report type across the three tag layouts
  clients use and excluding relay hints from the type position
- NIP-51 mute lists; encrypted entries are flagged, never decoded
- legacy admin-list codec supporting all five migration stages, with editors
  surfaced separately so a UI permission cannot silently become signing authority
- replaceable selection with a deterministic same-timestamp tiebreak, without
  which two relays returning events in different orders would produce different
  state on different clients

129 codec tests; 402 total.
2026-08-09 17:39:37 -04:00
thePR0M3TH3AN 4f689184e2 feat(core): rebuild governance core to the plan's decision model
The evaluator was a skeleton with invented thresholds (5/3/10/5) and two
unimplemented branches. Rebuild it against the migration plan's spec and the
behavior characterized from the pinned reference commit.

Core:
- four independent decision dimensions (ranking, visibility, interaction,
  transaction) with severity ladders and max-merge composition
- stable reason identifiers replacing free-text strings
- structured evidence, redacted unless a profile opts in
- administrative-state reduction with capability filtering at merge time, so
  revoking a role drops that actor's entries immediately
- protected actors stripped from every denial set
- snapshot fingerprints for cache invalidation
- generic policy engine: applications supply profiles and category thresholds;
  the core carries none of its own

Characterization:
- 34 generated fixtures covering every behavior the plan's Phase 0 requires
- conformance suite that actually evaluates them, replacing a placeholder that
  asserted a list's length
- reference thresholds (3/3/20/5, 60-day mute window) live in bitvid-compat as
  an application profile, not as engine defaults

Fixes found while building:
- reduceAdminState accepted malformed target identifiers, because getTargetKey
  formats anything it is given
- community-user-deny fired for any contributor rather than only for
  community-curated sources

273 tests pass; typecheck and the reference-import guard are clean.
2026-08-09 17:33:41 -04:00
thePR0M3TH3AN 5a7c1a26de feat(core): implement evaluator module with governance decision making 2026-07-26 19:17:38 -04:00
thePR0M3TH3AN d4c8e47b55 docs: update checkpoints for core policy implementation 2026-07-26 19:12:03 -04:00
thePR0M3TH3AN b24500010f feat(core): implement policy module with decision making and effect composition 2026-07-26 19:11:49 -04:00
thePR0M3TH3AN 8492411265 docs: update checkpoints for core authority implementation 2026-07-26 19:09:20 -04:00
thePR0M3TH3AN 919d94c7a9 feat(core): implement authority module with role and capability management 2026-07-26 19:09:07 -04:00
thePR0M3TH3AN 2c1ae75b71 docs: update checkpoints for core targets implementation 2026-07-26 19:05:59 -04:00
thePR0M3TH3AN ec03aab0ab feat(core): implement targets module with target validation and hierarchy functions 2026-07-26 19:05:44 -04:00
thePR0M3TH3AN c6b93aed82 docs: update checkpoints for core identifiers implementation 2026-07-26 19:02:46 -04:00
thePR0M3TH3AN 7bf304db2c feat(core): implement identifiers module with target creation and normalization 2026-07-26 19:02:33 -04:00
thePR0M3TH3AN 358c6c0bc2 docs: update checkpoints to mark phase 1 complete 2026-07-26 18:59:57 -04:00
thePR0M3TH3AN 6bf577f718 docs: add phase 1 summary for fixture import harness 2026-07-26 18:59:46 -04:00
thePR0M3TH3AN 6873acae06 docs: update checkpoints for fixture harness completion 2026-07-26 18:58:52 -04:00
thePR0M3TH3AN 1002185a03 feat: add fixture import harness and conformance test framework for BitVid parity cases 2026-07-26 18:58:41 -04:00
thePR0M3TH3AN 10326a2804 fix: make workspace install under npm and enforce real guardrails
Replace pnpm-only workspace: protocol with npm workspace deps, pin BitVid and
BitRoad reference commits, add Node types, and make the reference-import check
scan package graphs and source for forbidden bitvid/bitroad imports.
2026-07-26 18:55:21 -04:00
thePR0M3TH3AN 81998396b9 feat: bootstrap workspace with CI, typecheck, and import guardrails 2026-07-26 18:52:58 -04:00
thePR0M3TH3AN 34152e3577 added dev plan 2026-07-26 16:38:44 -04:00
thePR0M3TH3AN 2475c32704 Initial commit 2026-07-26 16:37:00 -04:00