systems.numina.sensemaking.observation

lasa.numina.systems

Schema Diff

+42 -23

From

CID
bafyreie7mea66dh...
Indexed At
2026-04-15 22:49 UTC
View this version

To

CID
bafyreihhgikrbif...
Indexed At
2026-04-15 23:30 UTC
View this version

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
}

Compare Other Versions

Lexicon Garden

@