From
bafyreidydkjaf5jivgohzkao77qszqxalx4rczt5prfkpgvspw75eszf7e
indexed 2026-10-17 02:20 UTC
View this version
To
bafyreicghanwcwlgm6l22zitlr2rycc42aai3mx5zmogjgotaozm2gyl3u
indexed 2026-11-05 16:25 UTC
View this version
Compatibility
breaking 6 breaking changes, 12 non-breaking changes.
Breaking changes (6)
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "fyi.opensocial.resolveSubject:input", src: "fyi.opensocial.resolveSubject:input", tgt: "fyi.opensocial.resolveSubject:input.status", kind: "prop", name: Some("status") }
- RequiredEdgeRemoved RequiredEdgeRemoved { vertex_id: "fyi.opensocial.resolveSubject:input", src: "fyi.opensocial.resolveSubject:input", tgt: "fyi.opensocial.resolveSubject:input.action", kind: "prop", name: Some("action") }
- RemovedVertex RemovedVertex { vertex_id: "fyi.opensocial.resolveSubject:input.action" }
- KindChanged KindChanged { vertex_id: "fyi.opensocial.resolveSubject:input.subject", old_kind: "string", new_kind: "union" }
- ConstraintAdded ConstraintAdded { vertex_id: "fyi.opensocial.resolveSubject:input.note", sort: "maxLength", value: "20000" }
- ConstraintAdded ConstraintAdded { vertex_id: "fyi.opensocial.resolveSubject:input.note", sort: "maxGraphemes", value: "2000" }
Non-breaking changes (12)
- AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#accountSubject" }
- AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#recordSubject" }
- AddedVertex AddedVertex { vertex_id: "fyi.opensocial.resolveSubject:input.status" }
- AddedVertex AddedVertex { vertex_id: "fyi.opensocial.resolveSubject:input.subject:variant0" }
- AddedVertex AddedVertex { vertex_id: "fyi.opensocial.resolveSubject:input.subject:variant1" }
- AddedVertex AddedVertex { vertex_id: "fyi.opensocial.resolveSubject:output" }
- AddedEdge AddedEdge { src: "fyi.opensocial.resolveSubject", tgt: "fyi.opensocial.resolveSubject:output", kind: "prop", name: Some("output") }
- AddedEdge AddedEdge { src: "fyi.opensocial.resolveSubject:input.subject", tgt: "fyi.opensocial.resolveSubject:input.subject:variant0", kind: "variant", name: Some("fyi.opensocial.defs#accountSubject") }
- AddedEdge AddedEdge { src: "fyi.opensocial.resolveSubject:input.subject", tgt: "fyi.opensocial.resolveSubject:input.subject:variant1", kind: "variant", name: Some("fyi.opensocial.defs#recordSubject") }
- AddedEdge AddedEdge { src: "fyi.opensocial.resolveSubject:input.subject:variant0", tgt: "fyi.opensocial.defs#accountSubject", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "fyi.opensocial.resolveSubject:input.subject:variant1", tgt: "fyi.opensocial.defs#recordSubject", kind: "ref", name: None }
- ConstraintRemoved ConstraintRemoved { vertex_id: "fyi.opensocial.resolveSubject:input.subject", sort: "format" }
Migration guidance
Removed
RemovedVertex { vertex_id: "fyi.opensocial.resolveSubject:input.action" }
Added
AddedVertex { vertex_id: "fyi.opensocial.defs#accountSubject" }AddedVertex { vertex_id: "fyi.opensocial.defs#recordSubject" }AddedVertex { vertex_id: "fyi.opensocial.resolveSubject:input.status" }AddedVertex { vertex_id: "fyi.opensocial.resolveSubject:input.subject:variant0" }AddedVertex { vertex_id: "fyi.opensocial.resolveSubject:input.subject:variant1" }AddedVertex { vertex_id: "fyi.opensocial.resolveSubject:output" }
Constraint changes
- ConstraintAdded ConstraintAdded { vertex_id: "fyi.opensocial.resolveSubject:input.note", sort: "maxLength", value: "20000" }
- ConstraintAdded ConstraintAdded { vertex_id: "fyi.opensocial.resolveSubject:input.note", sort: "maxGraphemes", value: "2000" }
- ConstraintRemoved ConstraintRemoved { vertex_id: "fyi.opensocial.resolveSubject:input.subject", sort: "format" }
Notes
- Breaking: RequiredEdgeAdded { vertex_id: "fyi.opensocial.resolveSubject:input", src: "fyi.opensocial.resolveSubject:input", tgt: "fyi.opensocial.resolveSubject:input.status", kind: "prop", name: Some("status") }
- Breaking: RequiredEdgeRemoved { vertex_id: "fyi.opensocial.resolveSubject:input", src: "fyi.opensocial.resolveSubject:input", tgt: "fyi.opensocial.resolveSubject:input.action", kind: "prop", name: Some("action") }
- Breaking: KindChanged { vertex_id: "fyi.opensocial.resolveSubject:input.subject", old_kind: "string", new_kind: "union" }
- Non-breaking: AddedEdge { src: "fyi.opensocial.resolveSubject", tgt: "fyi.opensocial.resolveSubject:output", kind: "prop", name: Some("output") }
- Non-breaking: AddedEdge { src: "fyi.opensocial.resolveSubject:input.subject", tgt: "fyi.opensocial.resolveSubject:input.subject:variant0", kind: "variant", name: Some("fyi.opensocial.defs#accountSubject") }
- Non-breaking: AddedEdge { src: "fyi.opensocial.resolveSubject:input.subject", tgt: "fyi.opensocial.resolveSubject:input.subject:variant1", kind: "variant", name: Some("fyi.opensocial.defs#recordSubject") }
- Non-breaking: AddedEdge { src: "fyi.opensocial.resolveSubject:input.subject:variant0", tgt: "fyi.opensocial.defs#accountSubject", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "fyi.opensocial.resolveSubject:input.subject:variant1", tgt: "fyi.opensocial.defs#recordSubject", kind: "ref", name: None }
Changes
11
{22
"$type": "com.atproto.lexicon.schema",33
"defs": {44
"main": {5
"description": "Resolve or escalate a subject, optionally with a note. Requires mod.resolve.",5
"description": "Resolve or escalate a subject, optionally with a note. Repeating the current status adds the note. Requires mod.resolve.",6
"errors": [7
{8
"description": "The subject isn't an account or record in this group.",9
"name": "InvalidSubject"10
},11
{12
"description": "The subject has never been reported.",13
"name": "SubjectNotFound"14
}15
],616
"input": {717
"encoding": "application/json",818
"schema": {919
"properties": {10
"action": {11
"knownValues": [12
"resolve",13
"escalate",14
"note"15
],16
"type": "string"17
},1820
"group": {19
"description": "The group DID. Every method is served by the group's host and authorized against that group's roles. Or the host's own DID, for its queue of what's shared with everyone: templates, their versions, and likes of them, for the host's moderators alone.",21
"description": "The group DID. Every method is served by the group's host and authorized against that group's roles.",2022
"format": "did",2123
"type": "string"2224
},2325
"note": {26
"maxGraphemes": 2000,27
"maxLength": 20000,2428
"type": "string"2529
},30
"status": {31
"enum": [32
"resolved",33
"escalated"34
],35
"type": "string"36
},2637
"subject": {27
"description": "A record's at-uri, or an account's DID.",28
"format": "uri",29
"type": "string"38
"refs": [39
"fyi.opensocial.defs#accountSubject",40
"fyi.opensocial.defs#recordSubject"41
],42
"type": "union"3043
}3144
},3245
"required": [3346
"group",3447
"subject",35
"action"48
"status"3649
],3750
"type": "object"3851
}3952
},53
"output": {54
"encoding": "application/json",55
"schema": {56
"ref": "fyi.opensocial.defs#subjectView",57
"type": "ref"58
}59
},4060
"type": "procedure"4161
}4262
},4363
"id": "fyi.opensocial.resolveSubject",4464
"lexicon": 14565
}