Changeset a5515b4 in Klonkt for FEDERATION.md


Ignore:
Timestamp:
08/14/2026 06:38:03 AM (4 weeks ago)
Author:
roboburr <roboburr@…>
Branches:
main
Children:
749605a, eac3229
Parents:
bfadc15
git-author:
Robin <roboburr@…> (08/14/2026 06:36:41 AM)
git-committer:
roboburr <roboburr@…> (08/14/2026 06:38:03 AM)
Message:

FEDERATION.md: accountmigratie erin, en de acht FEPs die ontbraken

Het document was van 4 augustus en liep achter op de code. Acht FEPs die
src/ noemt stonden er niet in: 1580, 633c, 7628, 888d, 9098, 9876, c648 en
e232. Over accountmigratie stond er niets -- geen Move, geen movedTo, geen
alsoKnownAs -- terwijl die er wel is.

Nieuw: een sectie Account migration (FEP-7628 voor de actor, FEP-1580 voor
de objecten, FEP-888d voor de namespace), met daarin expliciet dat de
moves-collectie geen integrity proof draagt zolang FEP-8b32 ontbreekt. Een
consument moet dus de servende host vertrouwen in plaats van de claim.

Gecorrigeerd: FEP-044f stond onder 'Under consideration' met 'quotes appear
as replies with an inline link'. Er zijn inmiddels echte quote-semantieken
(quote + e232 Link tag), dus die is naar Supported verhuisd. De regel dat
het guardian-model 'wordt gedraft als kandidaat-FEP' is vervangen door
FEP-633c met de PR erbij.

Move, Block en Offer toegevoegd aan de lijsten verzonden/ontvangen
activiteiten. Statussen (FINAL/DRAFT) overgenomen uit index.json upstream,
niet uit het hoofd.

Refs shaer-9u6.

Co-Authored-By: Claude Opus 5 <noreply@…>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • FEDERATION.md

    rbfadc15 ra5515b4  
    2222- [FEP-67ff: FEDERATION.md](https://codeberg.org/fediverse/fep/src/branch/main/fep/67ff/fep-67ff.md) (FINAL): this file.
    2323- [FEP-f1d5: NodeInfo in Fediverse Software](https://codeberg.org/fediverse/fep/src/branch/main/fep/f1d5/fep-f1d5.md) (FINAL): `/.well-known/nodeinfo` links to a NodeInfo 2.1 document advertising software, version and the `activitypub` protocol.
     24- [FEP-e232: Object Links](https://codeberg.org/fediverse/fep/src/branch/main/fep/e232/fep-e232.md) (FINAL): `Link` tags with `mediaType` `application/ld+json; profile="https://www.w3.org/ns/activitystreams"` for object references inside content.
     25- [FEP-044f: Consent-respecting quote posts](https://codeberg.org/fediverse/fep/src/branch/main/fep/044f/fep-044f.md) (DRAFT): a quoted fediverse object carries real quote semantics — the `quote` property plus an FEP-e232 `Link` tag — and renders as a quote card rather than a bare link.
     26- [FEP-9098: Custom emojis](https://codeberg.org/fediverse/fep/src/branch/main/fep/9098/fep-9098.md) (DRAFT): `:shortcode:` emoji tags on content and display names, preserved on the wire so connected apps can render them.
     27- [FEP-c648: Blocked Collection](https://codeberg.org/fediverse/fep/src/branch/main/fep/c648/fep-c648.md) (DRAFT): inbound `Block` and `Undo(Block)` are honoured.
     28- [FEP-7628: Move actor](https://codeberg.org/fediverse/fep/src/branch/main/fep/7628/fep-7628.md) (DRAFT): account migration — `alsoKnownAs`, `movedTo` and the `Move` activity, sent and received. See "Account migration".
     29- [FEP-1580: Move Actor Objects with a `migration` Collection](https://codeberg.org/fediverse/fep/src/branch/main/fep/1580/fep-1580.md) (DRAFT): the objects a `Move` leaves behind, exposed as a `migration` collection alongside `moves`.
     30- [FEP-888d: Using `https://w3id.org/fep` as a base for FEP-specific namespaces](https://codeberg.org/fediverse/fep/src/branch/main/fep/888d/fep-888d.md) (DRAFT): the FEP-1580 terms are declared under `https://w3id.org/fep/1580/`, as that FEP registers them.
     31
     32Two further proposals are our own and are not (yet) part of the FEP index:
     33
     34- **FEP-633c: Guardians** — guardian-gated actors: wards, gated follows and
     35  replies, the call-in flow, and a multi-party handshake. Implemented here and
     36  submitted upstream as pull request
     37  [#889](https://codeberg.org/fediverse/fep/pulls/889); the vocabulary is served
     38  at [`https://ns.klonkt.com/shaer`](https://ns.klonkt.com/shaer).
     39- **FEP-9876: enriched actor references** — collection members are bare URIs by
     40  default and embedded objects on request, opt-in through
     41  `Prefer: return=representation` ([RFC 7240](https://www.rfc-editor.org/rfc/rfc7240)).
     42  Implemented; not yet submitted.
    2443
    2544Beyond these, Klonkt aims for de-facto Mastodon compatibility (the
     
    4564`Create`, `Update`, `Delete` (as `Tombstone`), `Follow`, `Accept`, `Like`,
    4665`Announce`, `Undo` (of `Follow` / `Like` / `Announce`), `Add` / `Remove`
    47 (featured-pin sync), and `Flag` (moderation reports). Posts, replies, boosts,
     66(featured-pin sync), `Flag` (moderation reports), `Move` (account migration),
     67and `Offer` (the FEP-633c guardianship handshake). Posts, replies, boosts,
    4868likes and follows are delivered to remote inboxes with a signed HTTP request and
    4969a retrying delivery queue.
     
    5272
    5373`Create`, `Update`, `Delete`, `Follow`, `Accept`, `Reject`, `Like`, `Announce`,
    54 `Undo` and `Flag`. Inbound follows are answered with `Accept` and backfilled with
    55 recent posts. Every inbound activity must carry a valid HTTP signature; unsigned
    56 or unverifiable requests are rejected.
     74`Undo`, `Flag`, `Block`, `Move` and `Offer`. Inbound follows are answered with
     75`Accept` and backfilled with recent posts. Every inbound activity must carry a
     76valid HTTP signature; unsigned or unverifiable requests are rejected.
    5777
    5878### Object types
     
    91111- A note's `replies` collection is served, and inbound threads are crawled one
    92112  level at a time (stale-while-revalidate, SSRF-guarded, budget-limited).
     113
     114## Account migration
     115
     116Klonkt implements account moves in both directions, following
     117[FEP-7628](https://codeberg.org/fediverse/fep/src/branch/main/fep/7628/fep-7628.md)
     118for the actor and
     119[FEP-1580](https://codeberg.org/fediverse/fep/src/branch/main/fep/1580/fep-1580.md)
     120for the objects the actor leaves behind.
     121
     122- **Actor terms.** `alsoKnownAs` and `movedTo` are declared with the same term
     123  definitions Mastodon ships, so an existing implementation reads them without
     124  special-casing. `alsoKnownAs` is reserved for former identities of the same
     125  actor; a reference to an external register (a MusicBrainz artist, say) uses
     126  `schema:sameAs` instead, precisely so that a move cannot be confused by it.
     127- **The `Move` activity** is both sent and received. FEP-7628 moves *followers*
     128  and says so explicitly; the objects are a separate problem, which is what
     129  FEP-1580 addresses.
     130- **Object migration.** A migrated site exposes a `migration` collection and a
     131  `moves` collection, plus `migrationComplete`, `migratedFrom` and `migratedAt`.
     132  The terms live under `https://w3id.org/fep/1580/`, the namespace that FEP
     133  registers by way of FEP-888d. The FEP's own CURIE for the collection is
     134  `migration:migration`; Klonkt emits the JSON key `migration`, because that is
     135  what a consumer reads on.
     136- **Importing.** An import from an export is not treated as a separate case: the
     137  same path ingests from a source actor.
     138
     139One gap is worth stating plainly: the `moves` collection carries **no integrity
     140proof**. Without [FEP-8b32](https://codeberg.org/fediverse/fep/src/branch/main/fep/8b32/fep-8b32.md)
     141there is no signature under it, so a consumer has to trust the serving host
     142rather than the claim itself. This is tracked and not yet resolved.
    93143
    94144## Client-to-Server (C2S)
     
    144194- Actor public keys as Multikey: FEP-521a (FINAL). Klonkt still uses the legacy
    145195  `publicKey` representation.
    146 - Object Integrity Proofs: FEP-8b32 (DRAFT). Not used.
     196- Object Integrity Proofs: FEP-8b32 (DRAFT). Not used. This is also what leaves
     197  the `moves` collection unsigned; see "Account migration".
    147198- Followers collection synchronization: FEP-8fcf (FINAL). Not implemented.
    148 - Quote posts: FEP-044f (DRAFT). Quotes appear as replies with an inline link.
    149 
    150 A guardian-gated actor model (guardianship for wards, gated follows and replies)
    151 is being drafted separately as a candidate FEP.
    152199
    153200## Additional documentation
Note: See TracChangeset for help on using the changeset viewer.