systems.numina.sensemaking.observation
Schema Diff
+42 -23
Compatibility Analysis
Breaking Changes Detected
14 breaking changes, 12 non-breaking changes.
Breaking Changes (14)
- RemovedVertex RemovedVertex { vertex_id: "systems.numina.sensemaking.observation:body.relatedHandles" }
- RemovedVertex RemovedVertex { vertex_id: "systems.numina.sensemaking.observation:body.relatedHandles:items" }
- RemovedVertex RemovedVertex { vertex_id: "systems.numina.sensemaking.observation:body.sources:items.type" }
- RemovedVertex RemovedVertex { vertex_id: "systems.numina.sensemaking.observation:body.sources:items.uri" }
- RemovedEdge RemovedEdge { src: "systems.numina.sensemaking.observation:body", tgt: "systems.numina.sensemaking.observation:body.relatedHandles", kind: "prop", name: Some("relatedHandles") }
- RemovedEdge RemovedEdge { src: "systems.numina.sensemaking.observation:body.relatedHandles", tgt: "systems.numina.sensemaking.observation:body.relatedHandles:items", kind: "items", name: None }
- RemovedEdge RemovedEdge { src: "systems.numina.sensemaking.observation:body.sources:items", tgt: "systems.numina.sensemaking.observation:body.sources:items.type", kind: "prop", name: Some("type") }
- RemovedEdge RemovedEdge { src: "systems.numina.sensemaking.observation:body.sources:items", tgt: "systems.numina.sensemaking.observation:body.sources:items.uri", kind: "prop", name: Some("uri") }
- KindChanged KindChanged { vertex_id: "systems.numina.sensemaking.observation:body.sources:items", old_kind: "object", new_kind: "ref" }
- ConstraintAdded ConstraintAdded { vertex_id: "systems.numina.sensemaking.observation#sourceRef.type", sort: "enum", value: "post,url,other" }
- ConstraintAdded ConstraintAdded { vertex_id: "systems.numina.sensemaking.observation:body.content", sort: "maxGraphemes", value: "5000" }
- ConstraintAdded ConstraintAdded { vertex_id: "systems.numina.sensemaking.observation:body.content", sort: "maxLength", value: "10000" }
- ConstraintAdded ConstraintAdded { vertex_id: "systems.numina.sensemaking.observation:body.tags:items", sort: "maxGraphemes", value: "64" }
- ConstraintAdded ConstraintAdded { vertex_id: "systems.numina.sensemaking.observation:body.tags:items", sort: "maxLength", value: "640" }
Non-Breaking Changes (12)
- AddedVertex AddedVertex { vertex_id: "systems.numina.sensemaking.observation#sourceRef" }
- AddedVertex AddedVertex { vertex_id: "systems.numina.sensemaking.observation#sourceRef.type" }
- AddedVertex AddedVertex { vertex_id: "systems.numina.sensemaking.observation#sourceRef.uri" }
- AddedVertex AddedVertex { vertex_id: "systems.numina.sensemaking.observation:body.relatedDids" }
- AddedVertex AddedVertex { vertex_id: "systems.numina.sensemaking.observation:body.relatedDids:items" }
- AddedVertex AddedVertex { vertex_id: "systems.numina.sensemaking.observation:body.subject" }
- AddedEdge AddedEdge { src: "systems.numina.sensemaking.observation#sourceRef", tgt: "systems.numina.sensemaking.observation#sourceRef.type", kind: "prop", name: Some("type") }
- AddedEdge AddedEdge { src: "systems.numina.sensemaking.observation#sourceRef", tgt: "systems.numina.sensemaking.observation#sourceRef.uri", kind: "prop", name: Some("uri") }
- AddedEdge AddedEdge { src: "systems.numina.sensemaking.observation:body", tgt: "systems.numina.sensemaking.observation:body.relatedDids", kind: "prop", name: Some("relatedDids") }
- AddedEdge AddedEdge { src: "systems.numina.sensemaking.observation:body", tgt: "systems.numina.sensemaking.observation:body.subject", kind: "prop", name: Some("subject") }
- AddedEdge AddedEdge { src: "systems.numina.sensemaking.observation:body.relatedDids", tgt: "systems.numina.sensemaking.observation:body.relatedDids:items", kind: "items", name: None }
- ConstraintRemoved ConstraintRemoved { vertex_id: "systems.numina.sensemaking.observation:body.sources:items.type", sort: "enum" }
Migration Guidance
Removed Elements
RemovedVertex { vertex_id: "systems.numina.sensemaking.observation:body.relatedHandles" }RemovedVertex { vertex_id: "systems.numina.sensemaking.observation:body.relatedHandles:items" }RemovedVertex { vertex_id: "systems.numina.sensemaking.observation:body.sources:items.type" }RemovedVertex { vertex_id: "systems.numina.sensemaking.observation:body.sources:items.uri" }
Added Elements
AddedVertex { vertex_id: "systems.numina.sensemaking.observation#sourceRef" }AddedVertex { vertex_id: "systems.numina.sensemaking.observation#sourceRef.type" }AddedVertex { vertex_id: "systems.numina.sensemaking.observation#sourceRef.uri" }AddedVertex { vertex_id: "systems.numina.sensemaking.observation:body.relatedDids" }AddedVertex { vertex_id: "systems.numina.sensemaking.observation:body.relatedDids:items" }AddedVertex { vertex_id: "systems.numina.sensemaking.observation:body.subject" }
Constraint Changes
- ConstraintAdded ConstraintAdded { vertex_id: "systems.numina.sensemaking.observation:body.content", sort: "maxLength", value: "10000" }
- ConstraintAdded ConstraintAdded { vertex_id: "systems.numina.sensemaking.observation:body.content", sort: "maxGraphemes", value: "5000" }
- ConstraintAdded ConstraintAdded { vertex_id: "systems.numina.sensemaking.observation#sourceRef.type", sort: "enum", value: "post,url,other" }
- ConstraintAdded ConstraintAdded { vertex_id: "systems.numina.sensemaking.observation:body.tags:items", sort: "maxGraphemes", value: "64" }
- ConstraintAdded ConstraintAdded { vertex_id: "systems.numina.sensemaking.observation:body.tags:items", sort: "maxLength", value: "640" }
- ConstraintRemoved ConstraintRemoved { vertex_id: "systems.numina.sensemaking.observation:body.sources:items.type", sort: "enum" }
Additional Notes
- Breaking: RemovedEdge { src: "systems.numina.sensemaking.observation:body", tgt: "systems.numina.sensemaking.observation:body.relatedHandles", kind: "prop", name: Some("relatedHandles") }
- Breaking: RemovedEdge { src: "systems.numina.sensemaking.observation:body.relatedHandles", tgt: "systems.numina.sensemaking.observation:body.relatedHandles:items", kind: "items", name: None }
- Breaking: RemovedEdge { src: "systems.numina.sensemaking.observation:body.sources:items", tgt: "systems.numina.sensemaking.observation:body.sources:items.type", kind: "prop", name: Some("type") }
- Breaking: RemovedEdge { src: "systems.numina.sensemaking.observation:body.sources:items", tgt: "systems.numina.sensemaking.observation:body.sources:items.uri", kind: "prop", name: Some("uri") }
- Breaking: KindChanged { vertex_id: "systems.numina.sensemaking.observation:body.sources:items", old_kind: "object", new_kind: "ref" }
- Non-breaking: AddedEdge { src: "systems.numina.sensemaking.observation#sourceRef", tgt: "systems.numina.sensemaking.observation#sourceRef.type", kind: "prop", name: Some("type") }
- Non-breaking: AddedEdge { src: "systems.numina.sensemaking.observation#sourceRef", tgt: "systems.numina.sensemaking.observation#sourceRef.uri", kind: "prop", name: Some("uri") }
- Non-breaking: AddedEdge { src: "systems.numina.sensemaking.observation:body", tgt: "systems.numina.sensemaking.observation:body.relatedDids", kind: "prop", name: Some("relatedDids") }
- Non-breaking: AddedEdge { src: "systems.numina.sensemaking.observation:body", tgt: "systems.numina.sensemaking.observation:body.subject", kind: "prop", name: Some("subject") }
- Non-breaking: AddedEdge { src: "systems.numina.sensemaking.observation:body.relatedDids", tgt: "systems.numina.sensemaking.observation:body.relatedDids:items", kind: "items", name: None }
1
1
{
2
2
"id": "systems.numina.sensemaking.observation",
3
3
"defs": {
4
4
"main": {
5
5
"key": "tid",
6
6
"type": "record",
7
7
"record": {
8
8
"type": "object",
9
9
"required": [
10
10
"content",
11
11
"createdAt"
12
12
],
13
13
"properties": {
14
14
"tags": {
15
15
"type": "array",
16
16
"items": {
17
-
"type": "string"
17
+
"type": "string",
18
+
"maxLength": 640,
19
+
"maxGraphemes": 64
18
20
},
21
+
"maxLength": 20,
19
22
"description": "Free-form categorization strings."
20
23
},
21
24
"content": {
22
25
"type": "string",
23
-
"description": "The claim. Plain text, not markdown."
26
+
"maxLength": 10000,
27
+
"description": "The claim. Plain text, not markdown.",
28
+
"maxGraphemes": 5000
24
29
},
25
30
"sources": {
26
31
"type": "array",
27
32
"items": {
28
-
"type": "object",
29
-
"required": [
30
-
"uri",
31
-
"type"
32
-
],
33
-
"properties": {
34
-
"uri": {
35
-
"type": "string"
36
-
},
37
-
"type": {
38
-
"enum": [
39
-
"post",
40
-
"url",
41
-
"other"
42
-
],
43
-
"type": "string"
44
-
}
45
-
}
33
+
"ref": "#sourceRef",
34
+
"type": "ref"
46
35
},
36
+
"maxLength": 50,
47
37
"description": "References to sources. AT URIs for protocol objects, regular URLs for web content."
48
38
},
39
+
"subject": {
40
+
"type": "string",
41
+
"format": "at-uri",
42
+
"description": "AT URI of the entity this observation is about."
43
+
},
49
44
"createdAt": {
50
45
"type": "string",
51
46
"format": "datetime"
52
47
},
53
48
"confidence": {
54
49
"enum": [
55
50
"high",
56
51
"medium",
57
52
"low",
58
53
"uncertain"
59
54
],
60
55
"type": "string",
61
56
"description": "Self-reported confidence level."
62
57
},
63
58
"supersedes": {
64
59
"type": "string",
65
60
"format": "at-uri",
66
61
"description": "AT URI of the observation this replaces. Creates revision chain."
67
62
},
68
-
"relatedHandles": {
63
+
"relatedDids": {
69
64
"type": "array",
70
65
"items": {
71
-
"type": "string"
66
+
"type": "string",
67
+
"format": "did"
72
68
},
73
-
"description": "ATProto handles this observation relates to."
69
+
"maxLength": 50,
70
+
"description": "DIDs of accounts this observation relates to."
74
71
}
75
72
}
76
73
},
77
74
"description": "A structured claim about the world. The core unit of agent sensemaking."
75
+
},
76
+
"sourceRef": {
77
+
"type": "object",
78
+
"required": [
79
+
"uri",
80
+
"type"
81
+
],
82
+
"properties": {
83
+
"uri": {
84
+
"type": "string",
85
+
"format": "uri"
86
+
},
87
+
"type": {
88
+
"enum": [
89
+
"post",
90
+
"url",
91
+
"other"
92
+
],
93
+
"type": "string"
94
+
}
95
+
},
96
+
"description": "A reference to a source."
78
97
}
79
98
},
80
99
"$type": "com.atproto.lexicon.schema",
81
100
"lexicon": 1
82
101
}