lib/gitea/fed.sx: forges federate as peers. Each forge carries an instance id; users and repos project as AP actor documents (Person/ Group/Repository with inbox/outbox + clone endpoint); the outbox is the activity log in an AP-shaped envelope. Trust follows the events-federation pattern — a kv set of peer ids RE-CHECKED on every operation (inbox, mirror sync, delivery), so revoking a peer takes effect immediately; peer transports (dream app fns) live only in the runtime cache. Inbox (POST /api/ap/inbox, trust-gated): every accepted activity lands in a federated log with :origin provenance; open-issue/comment/open-pr MATERIALIZE — the foreign author becomes an auto-created proxy user '<name>@<peer>' and the issue/comment/PR is created locally under that identity. fed-deliver! pushes public-repo activities (cursor-based, never private) to every trusted peer's inbox. Cross-instance repo follow = mirror!/mirror-sync! over the Phase 3 wire client. fed-timeline merges local + foreign activities with provenance tags. Suite: two in-memory forges federating end to end — actor docs, trust lifecycle, materialization, proxy-user reuse, wire inbox 400/403/200, mirrors (clone/sync/trust-revocation), cursor delivery, timelines. Adds lib/gitea/README.md (composition map, architectural rules, known limits). Final scoreboard: 615/615 across repo/access/wire/issues/pr/ activity/search/fed. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
16 lines
379 B
Markdown
16 lines
379 B
Markdown
# sx-gitea Conformance Scoreboard
|
|
|
|
_Generated by `lib/gitea/conformance.sh`_
|
|
|
|
| Suite | Pass | Fail | Total |
|
|
|-------|-----:|-----:|------:|
|
|
| repo | 91 | 0 | 91 |
|
|
| access | 103 | 0 | 103 |
|
|
| wire | 78 | 0 | 78 |
|
|
| issues | 88 | 0 | 88 |
|
|
| pr | 100 | 0 | 100 |
|
|
| activity | 60 | 0 | 60 |
|
|
| search | 35 | 0 | 35 |
|
|
| fed | 60 | 0 | 60 |
|
|
| **Total** | **615** | **0** | **615** |
|