From
bafyreifrelge4y2yzxmanomhdna4vel2y63pdc5434vv4ht4ehyh75r44i
indexed 2026-10-29 23:16 UTC
View this version
To
bafyreiavcn7hcb7zfmlgas4wx6xfims5y72mebmwfuhppucdvw3lndwoo4
indexed 2026-10-31 02:41 UTC
View this version
Compatibility
breaking 3 breaking changes, 2 non-breaking changes.
Breaking changes (3)
- RequiredEdgeRemoved RequiredEdgeRemoved { vertex_id: "org.cairnsproto.draft.seen:body", src: "org.cairnsproto.draft.seen:body", tgt: "org.cairnsproto.draft.seen:body.project", kind: "prop", name: Some("project") }
- RemovedVertex RemovedVertex { vertex_id: "org.cairnsproto.draft.seen:body.project" }
- RemovedEdge RemovedEdge { src: "org.cairnsproto.draft.seen:body.project", tgt: "com.atproto.repo.strongRef", kind: "ref", name: None }
Non-breaking changes (2)
- AddedVertex AddedVertex { vertex_id: "org.cairnsproto.draft.seen:body.afterRound" }
- AddedEdge AddedEdge { src: "org.cairnsproto.draft.seen:body", tgt: "org.cairnsproto.draft.seen:body.afterRound", kind: "prop", name: Some("afterRound") }
Migration guidance
Removed
RemovedVertex { vertex_id: "org.cairnsproto.draft.seen:body.project" }
Added
AddedVertex { vertex_id: "org.cairnsproto.draft.seen:body.afterRound" }
Notes
- Breaking: RequiredEdgeRemoved { vertex_id: "org.cairnsproto.draft.seen:body", src: "org.cairnsproto.draft.seen:body", tgt: "org.cairnsproto.draft.seen:body.project", kind: "prop", name: Some("project") }
- Breaking: RemovedEdge { src: "org.cairnsproto.draft.seen:body.project", tgt: "com.atproto.repo.strongRef", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "org.cairnsproto.draft.seen:body", tgt: "org.cairnsproto.draft.seen:body.afterRound", kind: "prop", name: Some("afterRound") }
Changes
11
{22
"$type": "com.atproto.lexicon.schema",33
"defs": {44
"externalAnchor": {55
"description": "Where firstSeenRoot was also published outside ATProto.",66
"properties": {77
"reference": {88
"maxLength": 2048,99
"type": "string"1010
},1111
"system": {1212
"maxLength": 128,1313
"type": "string"1414
}1515
},1616
"required": [1717
"system",1818
"reference"1919
],2020
"type": "object"2121
},2222
"main": {23
"description": "A timekeeper's record, once per epoch, of which records existed.",23
"description": "A timekeeper's record of which Cairns records it first saw, across every project, in the rounds after afterRound through beaconRound. Published at the timekeeper's cadence and skipped when nothing new was seen.",2424
"key": "tid",2525
"record": {2626
"properties": {27
"afterRound": {28
"description": "The window starts after this round: the previous record's beaconRound, or 0 for a timekeeper's first record.",29
"minimum": 0,30
"type": "integer"31
},2732
"beaconRound": {28
"description": "drand quicknet round that closed the epoch.",33
"description": "drand quicknet round that closes the window.",2934
"minimum": 1,3035
"type": "integer"3136
},3237
"createdAt": {3338
"format": "datetime",3439
"type": "string"3540
},3641
"externalAnchor": {3742
"ref": "#externalAnchor",3843
"type": "ref"3944
},4045
"firstSeen": {4146
"description": "The leaves under firstSeenRoot.",4247
"ref": "org.cairnsproto.draft.defs#external",4348
"type": "ref"4449
},4550
"firstSeenRoot": {46
"description": "Merkle root of the CIDs first seen this epoch.",51
"description": "RFC 6962 Merkle root over each record first seen in the window: its URI, a zero byte, and its binary CID.",4752
"ref": "org.cairnsproto.draft.defs#hash",4853
"type": "ref"4954
},5055
"previous": {5156
"ref": "com.atproto.repo.strongRef",5257
"type": "ref"53
},54
"project": {55
"ref": "com.atproto.repo.strongRef",56
"type": "ref"5758
}5859
},5960
"required": [60
"project",6161
"beaconRound",6262
"firstSeenRoot",6363
"createdAt"6464
],6565
"type": "object"6666
},6767
"type": "record"6868
}6969
},7070
"id": "org.cairnsproto.draft.seen",7171
"lexicon": 17272
}